/* v3.3.1 — Zen Dots everywhere, readable sizes, refresh progress, Calendar in the poster look.
   Loaded last on purpose. Zen Dots: SIL Open Font License, see fonts/OFL.txt. */
@font-face{font-family:Zen;src:url('fonts/ZenDots-Regular.ttf') format('truetype');font-display:swap}
html,body{font-family:Zen,system-ui,sans-serif}
body *:not(svg):not(svg *){font-family:Zen,system-ui,sans-serif!important}
/* Zen Dots has one weight; faux bold smears it. Emphasis comes from colour and size instead. */
body{font-synthesis:none;-webkit-font-smoothing:antialiased;line-height:1.45}
h1,h2,h3,b,strong,button,.eyebrow,small,label,span{overflow-wrap:break-word}
h1,h2,h3{overflow-wrap:break-word;word-break:normal;hyphens:manual;line-height:1.2}
.chip{white-space:nowrap!important}
.episode{grid-template-columns:104px minmax(0,1fr) 44px!important;gap:10px!important}
.episode .thumb{width:104px!important}
.episode h3{font-size:13px!important;overflow-wrap:break-word!important}
p{line-height:1.55}
/* Wide letters need less tracking. */
.eyebrow,.ph-eyebrow,.ph-label,.brand small,.month-heading .eyebrow{letter-spacing:.6px!important}
/* Labels may wrap instead of being cut off. */
.pill,.plan-status,.subject-tab,.watch-tabs button,.idea-status-tabs button,.calendar-view-tabs button,.plan-filters button,.idea-action,nav button,.conn-row span,.clip-label,.category{white-space:normal!important;text-overflow:clip!important;overflow:visible;line-height:1.25}
/* 44 px touch targets for app-owned controls. */
button,.chip,summary,[role=tab],input[type=radio]+span{min-height:44px}
nav button{min-height:52px}
.save,.picker-close,.dialog-close,.month-controls button,.header-icon,.header-refresh{min-width:44px;min-height:44px}
.calendar-day{min-height:44px}
button.text{min-height:44px;padding-top:8px;padding-bottom:8px}
input,select,textarea{font-size:15px!important;min-height:44px}
/* Readable muted text on the dark background. */
.small,.desc,.meta,.compact,.calendar-sync,.calendar-legend,.calendar-bottom,.ph-meta{color:#c9c4e2}

/* ---- Refresh progress (one tap, with Cancel) ---- */
.refresh-panel{position:fixed;left:12px;right:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:60;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 14px 14px 16px;border-radius:22px;border:2px solid #c4b5fd66;background:linear-gradient(135deg,#1a2444,#121a30);box-shadow:0 14px 40px #0009;color:#fff}
.refresh-panel[hidden]{display:none}
.refresh-panel-copy{display:grid;gap:4px;min-width:0}
.refresh-panel-copy b{font-size:13px;color:#a7f3d0;font-weight:400}
.refresh-panel-copy span{font-size:12px;color:#d6d1ee;line-height:1.35}
.refresh-progress{height:6px;border-radius:99px;background:#ffffff1a;overflow:hidden;margin-top:4px}
.refresh-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#34d399,#c4b5fd);transition:width .3s ease}
.refresh-panel .secondary{min-height:44px;padding:0 16px;border-radius:14px;font-size:12px}
.conn-row.warn .conn-dot{background:#e7bb80}
.safety-note{display:block;margin:8px 0;font-size:12px;color:#c9c4e2;line-height:1.5}

/* ---- Calendar: the poster look. Outlined dark cards, no white or pale boxes. ---- */
.month-card,.calendar-agenda,.upcoming-plan,.next-episode-card,.plans-empty,.schedule-intro,.calendar-empty,.agenda-item{background:linear-gradient(135deg,#1a2444,#121a30)!important;border:2px solid #c4b5fd55!important;border-radius:24px!important;box-shadow:none!important;color:#fff}
.next-episode-card.confirmed,.upcoming-plan.confirmed{border-color:#a7f3d066!important}
.next-episode-card.maybe,.upcoming-plan.maybe{border-color:#e7bb8066!important}
.calendar-agenda{padding:16px!important}
.agenda-item{padding:14px!important;margin:0 0 12px!important;border-width:1.5px!important}
.agenda-item:last-child{margin-bottom:0!important}
.calendar-empty{border-style:solid!important}
.calendar-day{background:#141c33!important;border:1.5px solid #ffffff1f!important;color:#e9e6fa!important;border-radius:14px!important}
.calendar-day.maybe{background:#2a2216!important;border-color:#e7bb80aa!important;color:#f5d6a8!important}
.calendar-day.confirmed{background:#132a25!important;border-color:#a7f3d0aa!important;color:#a7f3d0!important}
.calendar-day.today{box-shadow:0 0 0 2px #c4b5fd inset!important}
.calendar-day.selected{background:#2b2350!important;border-color:#c4b5fd!important;color:#fff!important}
.calendar-view-tabs,.plan-filters{background:#141c33!important;border:2px solid #ffffff1f!important;border-radius:20px!important}
.calendar-view-tabs button.active,.plan-filters button.active{background:#2b2350!important;color:#fff!important;border:1.5px solid #c4b5fd!important}
.plan-filters button{background:transparent!important;color:#d6d1ee!important}
.agenda-date,.plan-date-choice,.next-episode-details>div,.next-possible-dates,.next-episode-notes{background:#141c33!important;border:1.5px solid #ffffff26!important;border-radius:16px!important;color:#fff!important}
.agenda-date.confirmed,.plan-date-choice.confirmed{border-color:#a7f3d088!important;color:#a7f3d0!important}
.agenda-date.maybe,.plan-date-choice.maybe{border-color:#e7bb8088!important;color:#f5d6a8!important}
.plan-status{background:transparent!important;border:1.5px solid currentColor!important;border-radius:999px!important;padding:3px 10px!important}
.plan-status.confirmed{color:#a7f3d0!important}.plan-status.maybe{color:#f5d6a8!important}
.calendar-notice,.demo-notice{background:#141c33!important;border:1.5px solid #e7bb8088!important;border-radius:18px!important;color:#f5d6a8!important}
.calendar-notice button{color:#a7f3d0!important;background:transparent!important}
.month-controls button{background:#141c33!important;border:1.5px solid #c4b5fd66!important;color:#fff!important;border-radius:14px!important}
#schedule-dialog,#modal,#season-picker{background:linear-gradient(160deg,#1a2444,#121a30)!important;border:2px solid #c4b5fd55!important;color:#fff!important}
#schedule-dialog input,#schedule-dialog select,#modal input{background:#0f1529!important;color:#fff!important;border:1.5px solid #c4b5fd66!important;border-radius:14px!important}
.next-date-display strong{color:#a7f3d0!important}

/* ---- Minimum readable size: every label that used to be below 11 px (generated from the older stylesheets). ---- */
.compact-button{font-size:11px}
.section-heading .small{font-size:11px}
.pill{font-size:11px}
.tag{font-size:11px}
.season>small{font-size:11px}
.idea-status-tabs span{font-size:11px}
.idea-result-heading .small{font-size:11px}
.new-idea-subjects span{font-size:11px}
.flow-info .pill{font-size:11px}
.month-heading .eyebrow{font-size:11px}
.calendar-weekdays span{font-size:11px}
.calendar-bottom{font-size:11px}
.calendar-bottom button{font-size:11px}
.calendar-sync .text{font-size:11px}
.calendar-notice{font-size:11px}
.calendar-notice button{font-size:11px}
.next-plan small{font-size:11px}
.next-plan>span:nth-child(2)>span{font-size:11px}
.plan-status{font-size:11px}
.calendar-agenda>.row .small{font-size:11px}
.agenda-date span{font-size:11px}
.agenda-content p{font-size:11px}
.compact{font-size:11px}
.youtube-channel-card small{font-size:11px}
.channel-country{font-size:11px}
.origin-history>.eyebrow{font-size:11px}
.origin-line p{font-size:11px}
.founder-card .pill{font-size:11px}
.founder-card p{font-size:11px}
.co-creators p{font-size:11px}
.mascot-note p{font-size:11px}
.about-details p{font-size:11px}
.flight-hud small{font-size:11px}
.flight-overlay>.eyebrow{font-size:11px}
.flight-overlay>small{font-size:11px}
.flight-overlay>.text{font-size:11px}
.schedule-view-heading .eyebrow{font-size:11px}
.upcoming-count{font-size:11px}
.plan-filters button{font-size:11px}
.upcoming-plan .plan-status{font-size:11px}
.plan-relative{font-size:11px}
.plan-date-choice b{font-size:11px}
.upcoming-plan .plan-calendar-link{font-size:11px}
.plans-empty>.eyebrow{font-size:11px}
.next-episode-top .eyebrow{font-size:11px}
.next-episode-top .plan-status{font-size:11px}
.next-date-display .next-relative{font-size:11px}
.next-episode-details dt{font-size:11px}
.next-episode-notes .eyebrow{font-size:11px}
nav button{font-size:11px}
.season-picture>span{font-size:11px}
.feature-card .feature-number{font-size:11px}
.discovery-card .eyebrow{font-size:11px}
.library-sync{font-size:11px}
.library-sync .text{font-size:11px}
.season-options small{font-size:11px}
.calendar-legend{font-size:11px}
.calendar-sync{font-size:11px}
.flight-heading .eyebrow{font-size:11px}
.difficulty-tag{font-size:11px}
.flight-sector{font-size:11px}
.flight-overlay .star-legend{font-size:11px}
.flight-overlay .star-legend>span{font-size:11px}
.flight-footer{font-size:11px}
.flight-footer>span:first-child{font-size:11px}
.flight-touch-hint{font-size:11px}
.brand small{font-size:11px}
.eyebrow{font-size:11px}
.section-heading .text{font-size:11px}
.mission-hello p{font-size:11px}
.fresh-section .section-heading .eyebrow{font-size:11px}
.hero-media .tag{font-size:11px}
.hero-copy .text{font-size:11px}
.hero-copy .eyebrow{font-size:11px}
.recording-date small{font-size:11px}
.recording-copy>small{font-size:11px}
.recording-copy>span{font-size:11px}
.seasons-section .small{font-size:11px}
.coming-soon{font-size:11px}
.season-label small{font-size:11px}
.feature-number{font-size:11px}
.discovery-card .text{font-size:11px}
.hangar-card p{font-size:11px}
.hangar-card .eyebrow{font-size:11px}
.subject-count{font-size:11px}
.notification-settings-card small{font-size:11px}
.mission-planet>span{font-size:11px}
.mission-copy p{font-size:11px}
.mission-best{font-size:11px}
.flight-chooser-note{font-size:11px}
.mission-hello .eyebrow{font-size:11px}
.hero-copy .row>span{font-size:11px}
.subject-index{font-size:11px}
.subject-copy small{font-size:11px}
.idea .category{font-size:11px}
.simple-notifications .eyebrow{font-size:11px}
.notification-choice small{font-size:11px}
.home-destinations .destination-label small{font-size:11px}
.ph-chip{font-size:11px}
.ph-soon{font-size:11px}
.ph-season-name small{font-size:11px}
.ph-tile small{font-size:11px}
.app-header .brand small{font-size:11px}
.fg-stage-label{font-size:11px!important}
.clip-label{font-size:11px!important}
@media(max-width:370px){
.mission-hello p{font-size:11px}
.feature-number{font-size:11px}
.next-plan .plan-status{font-size:11px}
.flight-heading p{font-size:11px}
.brand small{font-size:11px}
.feature-card small{font-size:11px}
.subject-count{font-size:11px}
}
@media(max-width:380px){
.calendar-view-tabs button{font-size:11px}
.next-episode-actions button{font-size:11px}
.plan-relative{font-size:11px}
.brand small{font-size:11px}
}
/* The one-tap Refresh button is back in the header. */
.header-refresh{display:grid!important;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid #a7f3d066;background:#16283a;color:#a7f3d0;font-size:21px!important;line-height:1;padding:0}
.header-icon{width:44px!important;height:44px!important}
.header-tools{gap:6px!important}
.fg-hero h1{font-size:clamp(22px,6.6vw,30px)!important;max-width:70%!important;overflow-wrap:normal!important}
