/* DS-A: dark-only override layer. Keep the legacy sheets independently usable. */
:root{
  --canvas:#06121F;--screen:#071B2D;--surface:#0B2236;--surface-2:#102C46;--nav:#050D16;
  --ink:#F6FAFF;--fog:#A5BDD0;--cyan:#4ACBFF;--blue:#137DFF;--violet:#7952D7;--coral:#FF4C73;
  --green:#20C9A2;--amber:#FFB84C;--editorial:#F8FBFF;--editorial-ink:#193047;
  --line:rgba(255,255,255,.08);--edge:inset 0 1px 0 rgba(255,255,255,.06);
  --shadow:0 10px 30px rgba(0,0,0,.35);--r-hero:18px;--r-card:14px;--r-pill:999px;
  --bg:var(--screen);--paper:var(--surface);--sand:var(--surface-2);--teal:var(--cyan);--ocean:var(--cyan);
  --success:var(--green);--alert:var(--coral);--caribbean:var(--cyan);--accent:var(--cyan);
  --ticker:var(--nav);--glass:var(--surface);--glass-border:1px solid var(--line);
  --glass-shadow:var(--shadow);--glass-filter:none;--ticker-h:32px;--nav-h:64px;
  color-scheme:dark;background:var(--canvas);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Inter,Arial,sans-serif;
}
@media(prefers-contrast:more){:root{--fog:#C9D9E6}}
body{color:var(--ink)}
body:not(.has-ticker){--ticker-h:0px}
.app-background{background-image:radial-gradient(120% 60% at 50% -10%,#0E2F4D 0%,#06121F 60%)!important;background-color:#06121F!important}
.app-background-image,.app-background-ripple,.app-background img,.app-background canvas{display:none!important}
h1{font-size:28px;font-weight:800;letter-spacing:-.02em}h2{font-size:19px;font-weight:750}h3{font-size:16px;font-weight:700}
.meta,small{font-size:13px;font-weight:500;color:var(--fog)}
.tnum,[data-countdown],.home-days,.ec-tl time,.poster-when{font-variant-numeric:tabular-nums}
button,.button{background:var(--cyan);color:var(--canvas);transition:background-color 160ms ease,color 160ms ease}
button:hover,.button:hover{filter:brightness(1.08)}button:active,.button:active{filter:brightness(.92)}
input,select,textarea{background:var(--surface-2);color:var(--ink);border-color:var(--fog)}
input::placeholder,textarea::placeholder{color:var(--fog);opacity:1}
.secondary,.sheet-close,.more-grid a,.info-category-grid button,.info-avatar,.crew-invite>span,.media-placeholder{background:var(--surface-2);color:var(--cyan)}
.danger{background:color-mix(in srgb,var(--coral) 18%,var(--surface));color:var(--coral)}
.sheet,.ec-solid,.skip-link{background:var(--surface);color:var(--ink)}
.update,#toast:not(:empty){background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.skeleton,.ec-skel{background:linear-gradient(100deg,var(--surface) 25%,var(--surface-2) 45%,var(--surface) 65%);background-size:200% 100%}
.card,.sheet-link,.member,.invite,.info-card,.info-announcement,.info-settings details,.event-info-panel details,.home-news-row,.itinerary-day,.task-card,.note-comments article{border-color:var(--line)}
/* --ticker used to double as a heading colour; it now belongs to the shell. */
.brand,.more-grid a,.planner-heading,.plan-card h2,.day-copy strong,.task-section>h2,.social-heading h1,.media-heading h1,.social-heading button,.social-icon-button,.social .crew-member,.crew-invite,.chat-bubble header,.home-news-row>a,.info h2,.info h3,.info-place-row strong,.info-profile,.info-settings summary,.info-announcement>a,.snap-tips h2{color:var(--ink)}
.topbar,.topbar.is-scrolled{background:rgba(6,18,31,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);box-shadow:var(--edge)}
.topbar .screen-title,.topbar .settings-link{color:var(--ink);text-shadow:none}.topbar .event-switch{filter:none}
.event-topbar .settings-link[href="#/settings"]{display:none}
.topbar-row{flex-wrap:wrap;padding:calc(6px + env(safe-area-inset-top)) 8px 6px;gap:0}
.topbar-row>.event-switch,.topbar-row>.settings-link,.event-menu-button{flex:0 0 44px}
.screen-title{min-width:0;flex:1;font-size:16px}
.screen-title .brand-logo-screen{gap:6px;height:auto;min-height:44px;overflow:visible}
.brand-logo-screen .brand-logo-img{width:56px;height:auto;max-width:56px;flex:0 0 56px}
.screen-title .brand-screen-title,.screen-title>span:not(.brand-heading){white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.2;font-size:16px}
.screen-title .brand-event{white-space:normal;overflow:visible;font-size:22px;line-height:1.25}
.offline-pill:not([hidden]){flex:0 0 auto;margin-left:4px}
nav.tabs{background:rgba(5,13,22,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);box-shadow:none}
.tabs a,.tabs button{color:var(--fog)}.tabs a[aria-current]{color:var(--cyan);background:transparent}
.tabs [data-plus]>.ec-icon{background:var(--cyan);color:var(--canvas);box-shadow:0 0 0 4px var(--nav)}
.ticker{height:32px;background:var(--nav);color:var(--fog);font-size:12px;border-top:1px solid var(--line)}
.ticker .ticker-text,.ticker button{color:var(--fog)}
.ticker button,.ticker .ticker-text{min-height:32px;height:32px;transform:none}
.ticker button{min-width:32px;width:32px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--fog)}
/* Explicit state rules beat the more specific legacy feature selectors. */
.ec-seg [aria-pressed=true],.ec-seg [aria-current],.ec-pills [aria-pressed=true],.ec-pills [aria-current],.feed-tabs button[aria-pressed=true],.info-radar .feed-tabs button[aria-pressed=true],.event-info-tabs button[aria-pressed=true],.info-pills button[aria-pressed=true],.social-tabs [aria-selected=true],.media-tabs [aria-selected=true],.planner .plan-tabs [aria-pressed=true],.segments a:first-child,.lineup-page [data-star][aria-pressed=true],.lineup-page [data-favourite][aria-pressed=true]{background:var(--cyan);color:var(--canvas);border-color:var(--cyan)}
.info-radar .feed-tabs button,.event-info-tabs button,.note-card .social-actions button{background:var(--surface-2);color:var(--cyan)}
.social-action,.thread-link .thread-unread,.social .chat-composer [type=submit],.planner .planner-fab,.media-panel .media-fab,.info-settings [data-apply-update],.snap-banner{background:var(--cyan);color:var(--canvas);border-color:var(--nav)}
.home-top{background:var(--surface);text-shadow:none;border-color:var(--line);box-shadow:var(--edge);backdrop-filter:none;-webkit-backdrop-filter:none}
.home-local{border-color:var(--line)}.home-local button,.home-checklist{min-height:44px}
.home-top [data-level=soon] .home-aboard{color:var(--amber)}.home-top [data-level=urgent] .home-aboard{color:var(--coral)}
.news-icon,.ec-badge,.chip,.feed-official_source,.feed-admin{background:color-mix(in srgb,var(--cyan) 15%,var(--surface));color:var(--cyan)}
.news-admin,.news-safety,.feed-safety,.feed-urgent,.badge,.brain-badge-red,.brain-paused{background:color-mix(in srgb,var(--coral) 18%,var(--surface));color:var(--coral);border-color:var(--coral)}
.news-crew,.brain-badge-green{background:color-mix(in srgb,var(--green) 15%,var(--surface));color:var(--green)}
.news-unconfirmed,.feed-unconfirmed,.brain-badge-amber,.tag-test,.plan-aboard .plan-card{background:color-mix(in srgb,var(--amber) 15%,var(--surface));color:var(--amber);border-color:var(--amber)}
.news-official_source{background:color-mix(in srgb,var(--cyan) 15%,var(--surface));color:var(--cyan)}
.brain-badge-grey,.feed-past,.feed-past .feed-chip{background:var(--surface-2);color:var(--fog)}.feed-past h3 a{color:var(--fog)}
.chat-bubble:not(.mine){background:var(--surface-2)}
.chat-bubble.mine{background:#124578}.chat-bubble.mine,.chat-bubble.mine *{color:var(--ink)}
.social .reaction-popover,.chat-bubble.mine .reaction-popover,.social .chat-composer textarea{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
.reaction-pill{background:var(--surface);color:var(--ink);border-color:var(--line)}
.chat-bubble.mine .reaction-popover [aria-pressed=true]{background:var(--cyan);color:var(--canvas)}
.crew-avatar{background:var(--surface-2)!important;color:var(--ink);border:2px solid var(--cyan)}
.chat-avatar,.message-avatar{background:var(--surface-2);color:var(--ink)}
.crew-screen h2{text-shadow:none}
.info-map{background:var(--surface);border:1px solid var(--line)}
/* Keep map tiles and their native light controls readable without inversion. */
.leaflet-popup-content-wrapper,.leaflet-popup-tip,.leaflet-control{color:var(--editorial-ink)}
.info .leaflet-control a,.leaflet-popup-content a{color:#075878}
.port-placeholder,.port-placeholder[data-kind]{background:linear-gradient(135deg,var(--surface-2),var(--surface));color:var(--cyan)}
.port-tile small{color:inherit;text-shadow:0 1px 3px #000}
/* Only editorial / RSVP cards retain a light surface, with locally scoped ink. */
.plan-card.ec-solid,.poll-card.ec-solid,.edition-card{--ink:var(--editorial-ink);--fog:#4F6478;--ocean:#075878;--teal:#075878;background:var(--editorial);color:var(--editorial-ink)}
.plan-card.ec-solid h2,.poll-card.ec-solid strong{color:var(--editorial-ink)}
.poll-options button{color:inherit}.poll-bar{background:color-mix(in srgb,var(--green) 22%,transparent)}
/* Contain flex/grid content naturally; horizontal pill scrollers stay internal. */
main,.view,.actions>*,.topbar-row,.info,.social,.planner{min-width:0;max-width:100%}
button,.button{overflow-wrap:anywhere}fieldset{min-width:0}
.ec-page :focus-visible,.ec-seg :focus-visible,.ec-pills :focus-visible{outline-color:var(--cyan)}
.planner button[aria-pressed=true],.chat-card button[aria-pressed=true]{background:var(--cyan);color:var(--canvas)}
.plan-card.ec-solid button[aria-pressed=true],.poll-card.ec-solid button[aria-pressed=true]{background:var(--cyan);color:var(--canvas)}
.plan-card.ec-solid button,.poll-card.ec-solid button{background:var(--cyan);color:var(--canvas)}
.plan-card.ec-solid .plan-chip{background:#E3EDF5;color:var(--editorial-ink)}
.plan-card.ec-solid input,.plan-card.ec-solid select,.poll-card.ec-solid input{background:var(--editorial);color:var(--editorial-ink)}
.lineup-tile{background-color:var(--surface);background-blend-mode:multiply;color:var(--ink)}

/* == DS-B == */
.home-screen{gap:8px}
.ec-hero--home{position:relative;flex:0 0 auto;height:clamp(190px,30dvh,260px);margin:0;overflow:hidden;border-radius:var(--r-hero);background:var(--nav);box-shadow:var(--shadow)}
.ec-hero--home>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.ec-hero--home figcaption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:8px 10px;background:linear-gradient(180deg,transparent 45%,rgba(5,13,22,.88) 100%);color:#fff;text-shadow:0 1px 3px #000}
.ec-hero--home .home-greeting{flex:none;padding:0;min-height:0;align-self:auto}
.ec-hero--home .home-greeting h1{font-size:13px;line-height:1.2;margin:0 0 3px}
.ec-hero--home .home-greeting p{display:none}
.ec-hero--home [data-countdown]{min-width:0;font-size:12px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ec-hero--home [data-countdown] p{margin:2px 0 0}
.ec-hero--home .home-days{justify-content:flex-start;gap:3px}
.ec-hero--home .home-days strong{font-size:30px}.ec-hero--home .home-days span{font-size:14px}
.ec-hero--home .home-days small{font-size:10px;color:#fff}
.ec-hero--home .home-clock{font-size:18px;text-align:left;color:#fff;letter-spacing:0}
.ec-hero--home .home-clock small{font-size:11px;color:inherit}
.ec-hero--home .home-departing,.ec-hero--home .home-aboard{font-size:11px}
.ec-hero--home [data-level=soon] .home-aboard{color:var(--amber)}
.ec-hero--home [data-level=urgent] .home-aboard{color:#FF9CB2}
.home-now-strip{display:flex;flex-direction:column;align-items:stretch;gap:4px;flex:0 0 auto;min-width:0;color:var(--fog);font-size:13px;white-space:normal}
.home-now-strip button{background:transparent;color:var(--fog);font-size:13px;min-height:44px;padding:0;border:0;white-space:normal}
.home-now-strip [data-local-now]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;min-width:0;max-width:100%;overflow:hidden;text-overflow:clip;text-align:left;line-height:1.5;word-break:normal}
.home-now-strip [data-use-location]{align-self:flex-start;flex:none;min-height:44px;padding:0 10px;border-radius:var(--r-pill);background:var(--surface-2);font-size:11px}
.home-now-strip .home-pills{display:block;min-width:0;margin:0;font-size:13px;white-space:normal;overflow-wrap:break-word}
.home-now-strip .home-pills:empty{display:none}
.home-now-strip .home-pills span{padding:0;background:transparent;color:var(--fog)}
.home-screen .home-actions.home-tiles{flex:0 0 auto;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr 1fr;height:auto;min-height:0;max-height:none;gap:6px}
.home-screen .home-actions>.home-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;gap:5px;min-width:0;min-height:72px;box-sizing:border-box;padding:0 2px;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-radius:var(--r-card);color:var(--ink);font-family:inherit;font-size:12px;font-weight:600;line-height:1.2;text-decoration:none}
.home-tile .jewel{flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--j1),var(--j2));color:#fff;box-shadow:var(--edge),0 3px 8px #0004}
.home-tile[data-jewel=blue]{--j1:#137DFF;--j2:#4ACBFF}.home-tile[data-jewel=amber]{--j1:#FF8A3D;--j2:#FFB84C}.home-tile[data-jewel=green]{--j1:#149C7E;--j2:#20C9A2}
.home-tile[data-jewel=coral]{--j1:#E0335D;--j2:#FF4C73}.home-tile[data-jewel=violet]{--j1:#5A3BB3;--j2:#7952D7}.home-tile[data-jewel=cyan]{--j1:#1E9CD0;--j2:#4ACBFF}.home-tile[data-jewel=grey]{--j1:#2A3F55;--j2:#3F5A75}
.home-screen .home-checklist{min-height:44px;padding:4px 10px}
.home-screen #home-news{min-height:0;background:var(--surface);border-color:var(--line)}
.home-screen .home-news-row{background:var(--surface);border-color:var(--line)}
.home-screen .home-news-row>a{color:var(--ink)}
.home-screen .feed-see-all{display:flex;align-items:center;min-height:44px}
@media(max-height:700px){
  .home-screen{gap:4px}
}
