/* LAIS Sky — shared site look (batch 1: front door entry.html, Where-to-go hub, Live Map) — Oct 31 2026.
   Display only. Every rule is scoped to <html data-theme="sky">, which only lais-sky-site.js sets, and only while
   Sky was turned on with the AI page's Sky button. With Sky off this file matches nothing, so Maroon / Classic /
   Enterprise look exactly as before. Same palette + font as the AI page's Sky (lais-ai-sky.css).
   Prefix note: :not(#_sky) adds ID weight so these rules win over the long Classic selectors
   (html:not(maroon):not(enterprise):not(gate)…) that Sky would otherwise inherit. No element has id "_sky".
   Contrast (WCAG): ink #E3E3E3 on card #101113 = 15.0:1 · ink-2 #C4C7C5 on card-2 = 10.6:1 ·
   ink-3 #A9ADB1 on card-2 = 6.3:1 (lowest text) · blue #A8C7FA on card = 10.9:1 · on-blue #062E6F on blue = 8.0:1 ·
   yellow #FDD663 on card = 13.4:1 · green #81C995 on card = 9.9:1. All AA (4.5:1) or better. */
@font-face { font-family: "Sky Google Sans"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("/public/fonts/google-sans/google-sans-latin-opsz-normal.woff2") format("woff2-variations"),
       url("/public/fonts/google-sans/google-sans-latin-opsz-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ---------- tokens ---------- */
html[data-theme="sky"] {
  --sk-bg:#222932; --sk-bg-top:#3E4A5A; --sk-bg-mid:#2B333E;
  --sk-card:#101113; --sk-card-2:#18191C; --sk-card-3:#202226;
  --sk-line:#2C2E33; --sk-hair:rgba(255,255,255,.07); --sk-outline:#9AA0A6; --sk-outline-soft:#7A7D7F;
  --sk-ink:#E3E3E3; --sk-ink-2:#C4C7C5; --sk-ink-3:#A9ADB1;
  --sk-blue:#A8C7FA; --sk-blue-hi:#C2D7FB; --sk-on-blue:#062E6F; --sk-blue-tonal:rgba(168,199,250,.14);
  --sk-yellow:#FDD663; --sk-green:#81C995; --sk-cyan:#8AB4F8; --sk-red:#F28B82;
  --sk-sans:"Sky Google Sans","Google Sans","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  --sk-tile: rgba(24,25,28,.92);
  --sk-tile-line: rgba(154,160,166,.38);
  /* legacy tokens the pages read */
  --fg: var(--sk-ink); --muted: var(--sk-ink-2); --line: var(--sk-line);
  --card: var(--sk-card); --accent: var(--sk-blue); --accent2: var(--sk-cyan);
  --glow: var(--sk-blue); --ok: var(--sk-green); --gold: var(--sk-yellow); --gold-dim: rgba(253,214,99,.16);
  background-color: var(--sk-bg) !important;
  color-scheme: dark;
}
html[data-theme="sky"]:not(#_sky) body {
  background: linear-gradient(180deg, var(--sk-bg-top) 0, var(--sk-bg-mid) 320px, var(--sk-bg) 720px, var(--sk-bg) 100%) !important;
  background-color: var(--sk-bg) !important;
  background-attachment: scroll !important;
  color: var(--sk-ink) !important;
  font-family: var(--sk-sans) !important;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
html[data-theme="sky"]:not(#_sky) body::before,
html[data-theme="sky"]:not(#_sky) body::after { background: none !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body :is(h1,h2,h3,h4,strong,button,input,select,textarea,.eyebrow,.sub,.btn,.pill):not(.lais-theme-host *) {
  font-family: var(--sk-sans) !important; text-shadow: none !important;
}
html[data-theme="sky"]:not(#_sky) body :is(h1,h2,h3) { color: var(--sk-ink) !important; -webkit-text-fill-color: currentColor !important; background-image: none !important; letter-spacing: -.01em; }
html[data-theme="sky"]:not(#_sky) body .eyebrow { color: var(--sk-ink-2) !important; letter-spacing: .08em !important; }
html[data-theme="sky"]:not(#_sky) body .sub { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body ::selection { background: var(--sk-blue); color: var(--sk-on-blue); }
html[data-theme="sky"]:not(#_sky) body :focus-visible { outline: 2px solid var(--sk-blue) !important; outline-offset: 2px; }
html[data-theme="sky"]:not(#_sky) body a { color: var(--sk-blue); }

/* ================= front door — entry.html ================= */
html[data-theme="sky"]:not(#_sky) body > .card {
  background: var(--sk-card) !important; border: 1px solid var(--sk-line) !important;
  border-radius: 28px !important; box-shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 28px rgba(0,0,0,.28) !important;
  padding: 30px 24px 24px !important;
}
html[data-theme="sky"]:not(#_sky) body > .card a.choice {
  background: var(--sk-card-2) !important; border: 1px solid var(--sk-tile-line) !important; border-radius: 20px !important;
}
html[data-theme="sky"]:not(#_sky) body > .card a.choice:hover { background: var(--sk-card-3) !important; border-color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body > .card a.choice strong { color: var(--sk-ink) !important; font-weight: 600; }
html[data-theme="sky"]:not(#_sky) body > .card a.choice span { color: var(--sk-ink-2) !important; opacity: 1 !important; }
html[data-theme="sky"]:not(#_sky) body > .card .back { color: var(--sk-blue) !important; }

/* ================= Where-to-go hub (index.html #hub) ================= */
html[data-theme="sky"]:not(#_sky) body .hub .login-map-watermark { opacity: .22 !important; filter: grayscale(1) brightness(1.15) !important; }
html[data-theme="sky"]:not(#_sky) body .hub .login-map-img { filter: grayscale(1) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-card {
  background: var(--sk-card) !important; border: 1px solid var(--sk-line) !important; border-radius: 28px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 28px rgba(0,0,0,.28) !important;
}
html.lais-hub-orbit[data-theme="sky"]:not(#_sky) body .hub-card { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body .hub-hero::before,
html[data-theme="sky"]:not(#_sky) body .hub-hero::after { background: none !important; box-shadow: none !important; border: 0 !important; }
html[data-theme="sky"]:not(#_sky) body .hub-card h1 { font-weight: 500 !important; font-size: clamp(26px, 3.2vw, 36px) !important; }

/* tiles — every destination */
html[data-theme="sky"]:not(#_sky) body .hub-grid > :is(a.hub-choice, button.hub-choice, .hub-group),
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > :is(.hub-orbit-outer,.hub-orbit-inner,.hub-orbit-tool) {
  background: var(--sk-tile) !important; border: 1px solid var(--sk-tile-line) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.3), 0 4px 14px rgba(0,0,0,.22) !important;
  color: var(--sk-ink) !important; filter: none !important; border-radius: 20px !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid > :is(a.hub-choice, button.hub-choice)::before,
html[data-theme="sky"]:not(#_sky) body .hub-grid > :is(a.hub-choice, button.hub-choice)::after { background: none !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid > :is(a.hub-choice, button.hub-choice, .hub-group):hover {
  background: rgba(32,34,38,.96) !important; border-color: var(--sk-blue) !important;
  box-shadow: 0 0 0 1px var(--sk-blue), 0 6px 18px rgba(0,0,0,.3) !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid :is(.hub-choice strong,.hub-group-title) { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid :is(.hub-choice > span:not([class*="badge"]),.hub-group-title > span:not([class*="badge"]),.hub-sub small,small) { color: var(--sk-ink-2) !important; opacity: 1 !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid a.hub-sub {
  background: var(--sk-card-2) !important; border: 1px solid var(--sk-line) !important; color: var(--sk-ink) !important; border-radius: 14px !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid a.hub-sub:hover { border-color: var(--sk-blue) !important; background: var(--sk-card-3) !important; }
/* coming-soon — quieter, still readable */
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-soon {
  background: rgba(16,17,19,.6) !important; border: 1px dashed rgba(154,160,166,.35) !important; box-shadow: none !important; opacity: 1 !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-soon :is(strong) { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-soon :is(span,small,.hub-soon-badge) { color: var(--sk-ink-3) !important; background: transparent !important; border-color: transparent !important; }
/* Command Center — the one primary tile: Sky blue */
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-primary,
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > .hub-orbit-center {
  background: var(--sk-card) !important; border: 1.5px solid var(--sk-blue) !important;
  box-shadow: 0 0 0 4px rgba(168,199,250,.12), 0 10px 30px rgba(0,0,0,.4) !important; border-radius: 28px !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-primary strong { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-primary > span:not([class*="badge"]) { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid .hub-primary-badge {
  background: var(--sk-blue) !important; color: var(--sk-on-blue) !important; border: 1px solid var(--sk-blue) !important;
}
/* "Open now" chips */
html[data-theme="sky"]:not(#_sky) body .hub-grid :is(.hub-open-badge,.hub-live-badge,[class*="open-now"]) {
  background: rgba(129,201,149,.14) !important; color: var(--sk-green) !important; border-color: rgba(129,201,149,.5) !important;
}
/* AI/SI + Feedback docks, Lock */
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > .hub-orbit-tool { border-radius: 999px !important; background: var(--sk-card-2) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > .hub-orbit-tool:hover { border-color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid :is(.hub-orbit-tool,.hub-choice) :is(.hub-pin-badge,.hub-soon-badge,[class*="pin"]) {
  background: var(--sk-blue-tonal) !important; color: var(--sk-blue) !important; border-color: rgba(168,199,250,.4) !important;
}
html[data-theme="sky"]:not(#_sky) body :is(#hubLockBtn,.hub-actions button.hdr-ctl-lock,.hub-grid.hub-orbit-active > .hub-orbit-tool-lock) {
  background: transparent !important; color: var(--sk-blue) !important; border: 1px solid var(--sk-outline) !important;
  box-shadow: none !important; border-radius: 999px !important; font-family: var(--sk-sans) !important;
}
html[data-theme="sky"]:not(#_sky) body :is(#hubLockBtn,.hub-actions button.hdr-ctl-lock):hover { background: var(--sk-blue-tonal) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-actions .back:not(.hdr-ctl-lock) { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-lock-hint { color: var(--sk-ink-3) !important; }
/* rings — quiet hairlines, no glow */
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-stage { background: radial-gradient(circle at 50% 46%, rgba(168,199,250,.05) 0%, transparent 58%) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-ring { border-color: rgba(154,160,166,.28) !important; box-shadow: none !important; background: none !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-ring-outer { border-color: rgba(154,160,166,.34) !important; box-shadow: 0 0 0 1px rgba(255,255,255,.03) inset !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-ring-inner { border-color: rgba(154,160,166,.22) !important; }
html[data-theme="sky"]:not(#_sky) body :is(.hub-orbit-btn) { background: var(--sk-card-2) !important; color: var(--sk-ink) !important; border-color: var(--sk-outline-soft) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-orbit-hint { color: var(--sk-ink-3) !important; }
/* AI PIN sheet on the hub */
html[data-theme="sky"]:not(#_sky) body .hub-ai-pin-gate { background: rgba(10,11,13,.72) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-ai-pin-card { background: var(--sk-card) !important; border: 1px solid var(--sk-line) !important; border-radius: 28px !important; box-shadow: 0 12px 40px rgba(0,0,0,.5) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-ai-pin-sub { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-ai-pin-err { color: var(--sk-red) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-ai-pin-row input { background: var(--sk-card-2) !important; border: 1px solid var(--sk-outline-soft) !important; color: var(--sk-ink) !important; border-radius: 16px !important; }
html[data-theme="sky"]:not(#_sky) body .hub-ai-pin-row input:focus { border-color: var(--sk-blue) !important; box-shadow: 0 0 0 3px rgba(168,199,250,.25) !important; }

/* ================= shared buttons (hub + map) ================= */
html[data-theme="sky"]:not(#_sky) body .btn:not(.btn-ghost):not(.hdr-ctl-lock) {
  background: var(--sk-blue) !important; color: var(--sk-on-blue) !important; border: 1px solid var(--sk-blue) !important;
  box-shadow: none !important; border-radius: 999px !important; text-shadow: none !important;
}
html[data-theme="sky"]:not(#_sky) body .btn:not(.btn-ghost):not(.hdr-ctl-lock):hover { background: var(--sk-blue-hi) !important; }
html[data-theme="sky"]:not(#_sky) body .btn.btn-ghost {
  background: transparent !important; color: var(--sk-blue) !important; border: 1px solid var(--sk-outline) !important; box-shadow: none !important; border-radius: 999px !important;
}
html[data-theme="sky"]:not(#_sky) body .btn.btn-ghost:hover { background: var(--sk-blue-tonal) !important; }

/* ================= Live Map — Productivity Map (index.html #app) ================= */
/* one font, no glows, no purple */
html[data-theme="sky"]:not(#_sky) body #app,
html[data-theme="sky"]:not(#_sky) body #app *:not(.lang-glyph) { font-family: var(--sk-sans) !important; text-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app {
  --hb-primary:#8AB4F8; --hb-soft:#C2D7FB; --hb-axis:#C4C7C5; --hb-accent:#81C995; --hb-gold:#FDD663;
}
html[data-theme="sky"]:not(#_sky) body #app .top { background: transparent !important; }
html[data-theme="sky"]:not(#_sky) body #app .top::before,
html[data-theme="sky"]:not(#_sky) body #app .top::after { opacity: 0 !important; }
html[data-theme="sky"]:not(#_sky) body #app .top h1 { font-weight: 500 !important; }
html[data-theme="sky"]:not(#_sky) body #app .lais-mission-rule { background: linear-gradient(90deg, var(--sk-blue), rgba(168,199,250,0)) !important; }
html[data-theme="sky"]:not(#_sky) body #app .lais-mission-motto { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .lais-mission-line { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body #app .target-pill { background: var(--sk-yellow) !important; color: #3A2E00 !important; box-shadow: none !important; }

/* surfaces: outer cards (28) and inner tiles (16-20) */
html[data-theme="sky"]:not(#_sky) body #app :is(.hud-clock,.nav-panel,.lang-ticker,.today-report,.month-story,.map-shell,.panel,.today-facility-panel,.heartbeat-panel,.heatwave-soon) {
  background: var(--sk-card) !important; background-image: none !important;
  border: 1px solid var(--sk-line) !important; box-shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 22px rgba(0,0,0,.24) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html[data-theme="sky"]:not(#_sky) body #app :is(.hud-clock,.nav-panel,.lang-ticker,.today-report,.month-story,.map-shell,.panel) { border-radius: 28px !important; }
html[data-theme="sky"]:not(#_sky) body #app .month-story :is(.heartbeat-panel,.heatwave-soon,.panel,.map-shell),
html[data-theme="sky"]:not(#_sky) body #app .today-report .today-facility-panel {
  background: var(--sk-card-2) !important; box-shadow: none !important; border-radius: 20px !important;
}
html[data-theme="sky"]:not(#_sky) body #app :is(.hud-clock,.nav-panel,.lang-ticker,.today-report,.month-story,.map-shell,.panel,.heartbeat-panel,.heatwave-soon)::before,
html[data-theme="sky"]:not(#_sky) body #app :is(.hud-clock,.nav-panel,.lang-ticker,.today-report,.month-story,.map-shell,.panel,.heartbeat-panel,.heatwave-soon)::after { background: none !important; box-shadow: none !important; border-color: transparent !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.today-campus,.ewt-card,.rank-row,.metric,.fac-rank-row,.y-loc-row,.y-loc,.story-split-note) {
  background: var(--sk-card-2) !important; background-image: none !important;
  border: 1px solid var(--sk-line) !important; box-shadow: none !important; border-radius: 16px !important;
}
html[data-theme="sky"]:not(#_sky) body #app :is(.today-campus,.y-loc-row):hover { border-color: var(--sk-outline-soft) !important; background: var(--sk-card-3) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.rank-row.active,.fac-rank-row.is-top) { background: var(--sk-card-3) !important; border-color: var(--sk-blue) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.foot,.hw-legend,.hud-zone + .hud-zone) { border-color: var(--sk-line) !important; }
html[data-theme="sky"]:not(#_sky) body #app .nav-coming { border-color: var(--sk-line) !important; }

/* text */
html[data-theme="sky"]:not(#_sky) body #app :is(.eyebrow,.k,.hud-zone-label,.hud-zone-code,.map-label,.lang-ticker-label,.campus-name,.hb-title,.year,.chip-mon,.chip-unit,.hud-weekday,.hud-date) { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.sub,.foot,.muted,.chip-status,.soon,.ewt-time,.loc-nums,.y-loc-sub,small) { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.n,.v,.y-count,.hud-time,.score,.chip-val,strong,b) { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app .hud-time { font-weight: 500 !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.loc-nums,.ewt-time) { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .y-count { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.today-campus .n, .today-campus [id$="Nums"]) { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app a:not(.btn):not(.blade):not(.today-campus) { color: var(--sk-blue) !important; }
/* goal colours: at/above goal = Sky yellow, below goal = plain ink (no alarm colour), none = muted */
html[data-theme="sky"]:not(#_sky) body #app .pct-gold { color: var(--sk-yellow) !important; }
html[data-theme="sky"]:not(#_sky) body #app .pct-miss { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app .pct-none { color: var(--sk-ink-3) !important; }
/* live dots + sync pill */
html[data-theme="sky"]:not(#_sky) body #app :is(.live-dot,.dot) { background: var(--sk-green) !important; box-shadow: none !important; color: var(--sk-green) !important; }
html[data-theme="sky"]:not(#_sky) body #app .sync-pill { background: var(--sk-card-2) !important; border: 1px solid var(--sk-outline-soft) !important; color: var(--sk-ink-2) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .sync-pill.ok { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app .sync-pill.issue { color: var(--sk-red) !important; border-color: rgba(242,139,130,.55) !important; }
html[data-theme="sky"]:not(#_sky) body #app .sync-pill.issue .dot { background: var(--sk-red) !important; }
html[data-theme="sky"]:not(#_sky) body #app .sync-pill.updating .dot { background: var(--sk-blue) !important; }

/* buttons in the map header + campus chooser */
html[data-theme="sky"]:not(#_sky) body #app .top-actions .btn,
html[data-theme="sky"]:not(#_sky) body #app .top-actions .btn.btn-campus {
  background: var(--sk-card-2) !important; background-image: none !important; color: var(--sk-ink) !important;
  border: 1px solid var(--sk-outline-soft) !important; box-shadow: none !important; border-radius: 999px !important;
}
html[data-theme="sky"]:not(#_sky) body #app .top-actions .btn:hover { border-color: var(--sk-blue) !important; background: var(--sk-card-3) !important; }
html[data-theme="sky"]:not(#_sky) body #app .top-actions .btn.btn-campus :is(.btn-state,.soon) { color: var(--sk-ink-3) !important; }
html[data-theme="sky"]:not(#_sky) body #app .top-actions .btn.btn-campus .btn-label { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(#lockBtn,#lockBtnMobile,#lockBtn2) { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .btn.btn-ghost[style*="background"] { background: var(--sk-blue) !important; color: var(--sk-on-blue) !important; border-color: var(--sk-blue) !important; }

/* blades (desktop map tools) — dark pills with a Google-colour edge */
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade {
  background: var(--sk-card-2) !important; background-image: none !important; border: 1px solid var(--sk-outline-soft) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.35) !important; filter: none !important;
}
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade .blade-word { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade .blade-edge { opacity: 1 !important; width: 4px !important; background: var(--sk-outline) !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade--glossary .blade-edge { background: #4285F4 !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade--stoplight .blade-edge { background: #EA4335 !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade--stories .blade-edge { background: #FBBC04 !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade--hub .blade-edge { background: #34A853 !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-blades .blade:hover { border-color: var(--sk-blue) !important; background: var(--sk-card-3) !important; }

/* language ticker */
html[data-theme="sky"]:not(#_sky) body #app .lang-ticker-label { background: var(--sk-card-2) !important; border: 1px solid var(--sk-outline-soft) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .lang-chip { background: var(--sk-card-2) !important; border: 1px solid var(--sk-line) !important; color: var(--sk-ink) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .lang-glyph { background: var(--sk-blue-tonal) !important; border: 1px solid rgba(168,199,250,.35) !important; color: var(--sk-blue) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .lang-sep { background: var(--sk-outline-soft) !important; box-shadow: none !important; }

/* small toggles / chips */
html[data-theme="sky"]:not(#_sky) body #app :is(.hb-view-btn,.map-view-btn) {
  background: transparent !important; background-image: none !important; color: var(--sk-ink-2) !important;
  border: 1px solid var(--sk-outline-soft) !important; box-shadow: none !important;
}
html[data-theme="sky"]:not(#_sky) body #app :is(.hb-view-btn,.map-view-btn).active,
html[data-theme="sky"]:not(#_sky) body #app :is(.hb-view-btn,.map-view-btn)[aria-pressed="true"] {
  background: var(--sk-blue) !important; color: var(--sk-on-blue) !important; border-color: var(--sk-blue) !important;
}
html[data-theme="sky"]:not(#_sky) body #app :is(.hw-badge,.fac-rank-tag) {
  background: var(--sk-blue-tonal) !important; color: var(--sk-blue) !important; border: 1px solid rgba(168,199,250,.4) !important; box-shadow: none !important;
}
html[data-theme="sky"]:not(#_sky) body #app .fac-rank-n { background: var(--sk-card-3) !important; background-image: none !important; color: var(--sk-ink) !important; box-shadow: none !important; border: 1px solid var(--sk-outline-soft) !important; }
html[data-theme="sky"]:not(#_sky) body #app .fac-rank-row.is-top .fac-rank-n { background: var(--sk-blue) !important; color: var(--sk-on-blue) !important; border-color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .fac-rank-fill { background: var(--sk-cyan) !important; background-image: none !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .target-bar .fill { background: var(--sk-cyan) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .target-bar .fill.hit { background: var(--sk-yellow) !important; }
html[data-theme="sky"]:not(#_sky) body #app .target-bar .mark { background: var(--sk-yellow) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .hw-legend-bar { background: linear-gradient(90deg, rgba(138,180,248,.12), #8AB4F8 70%, #FDD663) !important; }

/* month chips (Jan–Dec) */
html[data-theme="sky"]:not(#_sky) body #app .chip { background: var(--sk-card-2) !important; background-image: none !important; border-color: var(--sk-line) !important; box-shadow: none !important; color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip::after,
html[data-theme="sky"]:not(#_sky) body #app .chip::before { background: var(--sk-outline-soft) !important; background-image: none !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.ready::after { background: var(--sk-yellow) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.updating { border-color: var(--sk-outline-soft) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.updating::after { background: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.active { background: var(--sk-card-3) !important; border: 1.5px solid var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.active :is(.chip-mon,.chip-val,.chip-unit,.chip-status) { color: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.active .chip-val { color: var(--sk-blue) !important; }

/* the map drawing (SVG) */
html[data-theme="sky"]:not(#_sky) body #app .map-shell { background: var(--sk-card) !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-shell::before { opacity: .35 !important; filter: grayscale(1) !important; }
html[data-theme="sky"]:not(#_sky) body #app .zone {
  fill: rgba(138,180,248,.10) !important; stroke: rgba(168,199,250,.55) !important; filter: none !important;
}
html[data-theme="sky"]:not(#_sky) body #app .zone.has-activity { fill: rgba(138,180,248,.24) !important; stroke: var(--sk-blue) !important; filter: none !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.zone:hover,.zone.active) { fill: rgba(138,180,248,.32) !important; stroke: var(--sk-blue-hi) !important; filter: none !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.zone-title) { fill: var(--sk-ink) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.zone-metric) { fill: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body #app .zone-num { fill: var(--sk-ink) !important; filter: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .zone-num.pct-gold { fill: var(--sk-yellow) !important; }
html[data-theme="sky"]:not(#_sky) body #app .zone-num.pct-none { fill: var(--sk-ink-3) !important; opacity: 1 !important; }
html[data-theme="sky"]:not(#_sky) body #app .road { stroke: rgba(154,160,166,.28) !important; }
html[data-theme="sky"]:not(#_sky) body #app svg text { text-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app #zoneLabels .zone-link-text { fill: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app #zoneLabels a.zone-link:hover .zone-link-text { fill: var(--sk-blue-hi) !important; }
html[data-theme="sky"]:not(#_sky) body #app .swatch { background: rgba(138,180,248,.24) !important; border-color: var(--sk-blue) !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .swatch.live { background: var(--sk-green) !important; border-color: var(--sk-green) !important; }

/* feedback link at the foot of each page */
html[data-theme="sky"]:not(#_sky) body .lais-feedback-link { color: var(--sk-blue) !important; }
/* smaller labels the first pass missed (found by the colour scan) */
html[data-theme="sky"]:not(#_sky) body #app :is(.score-unit,.u,.side-month-label,.map-legend,.map-legend span,.hw-legend-end,.fac-rank-time,.swatch) { color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body #app .campus-go { color: var(--sk-blue) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chev { border-color: var(--sk-ink-2) !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-layer circle { fill: rgba(154,160,166,.35) !important; stroke: rgba(154,160,166,.55) !important; filter: none !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-layer text:not([class*="zone"]) { fill: var(--sk-ink-3) !important; }
html[data-theme="sky"]:not(#_sky) body .hub .login-map-watermark::before,
html[data-theme="sky"]:not(#_sky) body .hub .login-map-watermark::after { background: none !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-group a.hub-sub,
html[data-theme="sky"]:not(#_sky) body .hub-grid a.hub-sub.hub-orbit-inner { box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body #app svg text { stroke: var(--sk-card) !important; }
html[data-theme="sky"]:not(#_sky) body #app .hwx-cell.on-light .hwx-num { color: var(--sk-on-blue) !important; }
html[data-theme="sky"]:not(#_sky) body .nav-panel .nav-tools-mobile { background: var(--sk-card-2) !important; border-color: var(--sk-line) !important; box-shadow: none !important; }
/* contrast pass: keep "dimmed" states readable (>= 4.5:1) in Sky */
html[data-theme="sky"]:not(#_sky) body #app .hwx-cell.on-light .hwx-num { color: var(--sk-card) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.past { opacity: 1 !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.past :is(.chip-mon,.chip-status) { color: var(--sk-ink-3) !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-view-btn { opacity: 1 !important; }
html[data-theme="sky"]:not(#_sky) body #app .map-view-btn .soon-tag { opacity: 1 !important; color: var(--sk-ink-3) !important; }
html[data-theme="sky"]:not(#_sky) body #app .soon { opacity: 1 !important; color: var(--sk-ink-3) !important; }
html[data-theme="sky"]:not(#_sky) body :is(.foot,.lais-feedback-link) { opacity: 1 !important; }
html[data-theme="sky"]:not(#_sky) body .lais-feedback-link { color: var(--sk-blue-hi) !important; }
/* the heatmap JS reads --hb-primary from <html> to pick white or dark numbers per cell */
html[data-theme="sky"]:not(#_sky) { --hb-primary:#8AB4F8; --hb-soft:#C2D7FB; --hb-axis:#C4C7C5; --hb-accent:#81C995; --hb-gold:#FDD663; }
html[data-theme="sky"]:not(#_sky) body #app .hwx-cell.on-dark .hwx-num { color: #fff !important; }

/* ================= phone: one black per button (Nov 1 2026, Jeremy: "the black buttons don't need a second black") =================
   On phones the black buttons sat on a black panel (and on the Live Map, inside a second black tray), so every button showed
   two or three blacks stacked. Phone widths only: the panels that hold buttons drop their black fill, border and shadow, so each
   button is the only black surface on the Sky blue-grey. Desktop is untouched. Sky-only (scoped to data-theme="sky"). */
@media (max-width: 959px) {
  /* Live Map: Lock / Glossary / Stoplight / Stories tray + campus buttons panel */
  html[data-theme="sky"]:not(#_sky) body #app .nav-panel {
    background: transparent !important; background-image: none !important;
    border-color: transparent !important; box-shadow: none !important;
  }
  /* the tray stays sticky, so it keeps a see-through Sky glass (not black) to stay readable while scrolling */
  html[data-theme="sky"]:not(#_sky) body #app .nav-panel .nav-tools-mobile {
    background: rgba(43,51,62,.78) !important; background-image: none !important;
    border-color: transparent !important; box-shadow: none !important;
  }
}
@media (max-width: 640px) {
  /* Where-to-go hub: tiles sit straight on Sky (no black card behind them) */
  html[data-theme="sky"]:not(#_sky) body .hub-card {
    background: transparent !important; border-color: transparent !important; box-shadow: none !important;
    padding-left: 4px !important; padding-right: 4px !important;
  }
  /* Front door (entry.html): case-log choices sit straight on Sky */
  html[data-theme="sky"]:not(#_sky) body > .card {
    background: transparent !important; border-color: transparent !important; box-shadow: none !important;
    padding: 12px 4px 16px !important;
  }
}

/* ================= Weather refresh (Nov 2 2026, Jeremy t1929u "More idea for sky theme") =================
   Inspired by a weather-app phone screen: deep indigo at the top fading to periwinkle, a faint blurred city
   skyline behind the hero (original drawing: /public/img/sky-skyline.svg; v4 Nov 2 2026 t1940u/t1941u: crisp layered vector,
   no blur filters), a big thin white headline with a small
   sun icon + label above and soft white lines below, near-black cards with 28px corners and small white line icons,
   sunny-yellow accents and a mint pill for the main action. Sky-only: every rule is scoped to data-theme="sky",
   so Maroon / Classic / Enterprise and the dusk PIN door (data-theme="gate") are untouched.
   Contrast (WCAG AA): white on lowest page colour #323A8B = 9.9:1 (was #3F49AE 7.6:1) · hero text #E6E8FF on #2A3085 = 9.2:1 ·
   white on card #0E0F13 = 19:1 · ink-2 #C4C7C5 on card = 11:1 · sun #FFC107 on card = 11.8:1 ·
   on-mint #0A3A31 on mint #A6DCCF = 8.3:1. Text that sits straight on the gradient is white or #E6E8FF only. */
html[data-theme="sky"] {
  --sk-bg:#323A8B; --sk-bg-top:#1B1E5A; --sk-bg-mid:#2A3085; --sk-bg-low:#2E3685; /* Nov 2 2026 (Jeremy call 8:41 PM): page blue 20% darker, same hue — was #3F49AE / #3A44A6 */
  --sk-card:#0E0F13; --sk-card-2:#18191E; --sk-card-3:#222329;
  --sk-line:rgba(255,255,255,.07); --sk-tile: rgba(10,11,14,.94); --sk-tile-line: rgba(255,255,255,.06);
  --sk-sun:#FFC107; --sk-yellow:#FDD663;
  --sk-mint:#A6DCCF; --sk-mint-hi:#BDE7DD; --sk-on-mint:#0A3A31;
  --sk-hero:#FFFFFF; --sk-hero-2:#E6E8FF;
  --sk-glass: rgba(27,30,90,.84);
}
html[data-theme="sky"]:not(#_sky) {
  /* Nov 2 2026 (Jeremy call 8:41 PM): no buildings — skyline layer removed; colours only (sky-skyline.svg kept on disk, unreferenced) */
  background:
    linear-gradient(180deg, var(--sk-bg-top) 0, var(--sk-bg-mid) 380px, var(--sk-bg-low) 900px, var(--sk-bg) 1400px, var(--sk-bg) 100%) !important;
  background-color: var(--sk-bg) !important;
}
/* the gradient lives on <html>; the body is see-through so it shows */
html[data-theme="sky"]:not(#_sky) body { background: transparent !important; background-image: none !important; }
/* Sky keeps the faint map pictures hidden (colours only) */
html[data-theme="sky"]:not(#_sky) body .hub .login-map-watermark { opacity: 0 !important; }
html[data-theme="sky"]:not(#_sky) body #app::before { opacity: .03 !important; }

/* ---------- hero: small sun + label, big thin white headline, two soft lines ---------- */
html[data-theme="sky"]:not(#_sky) body :is(.hub-card .eyebrow, body > .card > .eyebrow, #app .top-brand .eyebrow) {
  color: var(--sk-hero-2) !important; letter-spacing: .06em !important; font-weight: 500 !important;
}
html[data-theme="sky"]:not(#_sky) body :is(.hub-card .eyebrow, body > .card > .eyebrow, #app .top-brand .eyebrow)::before {
  content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 8px; vertical-align: -4px;
  background: var(--sk-sun); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon fill='%23000' points='12.00,1.60 13.29,2.23 14.41,3.02 15.77,2.90 17.20,2.99 18.00,4.19 18.58,5.42 19.81,6.00 21.01,6.80 21.10,8.23 20.98,9.59 21.77,10.71 22.40,12.00 21.77,13.29 20.98,14.41 21.10,15.77 21.01,17.20 19.81,18.00 18.58,18.58 18.00,19.81 17.20,21.01 15.77,21.10 14.41,20.98 13.29,21.77 12.00,22.40 10.71,21.77 9.59,20.98 8.23,21.10 6.80,21.01 6.00,19.81 5.42,18.58 4.19,18.00 2.99,17.20 2.90,15.77 3.02,14.41 2.23,13.29 1.60,12.00 2.23,10.71 3.02,9.59 2.90,8.23 2.99,6.80 4.19,6.00 5.42,5.42 6.00,4.19 6.80,2.99 8.23,2.90 9.59,3.02 10.71,2.23'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon fill='%23000' points='12.00,1.60 13.29,2.23 14.41,3.02 15.77,2.90 17.20,2.99 18.00,4.19 18.58,5.42 19.81,6.00 21.01,6.80 21.10,8.23 20.98,9.59 21.77,10.71 22.40,12.00 21.77,13.29 20.98,14.41 21.10,15.77 21.01,17.20 19.81,18.00 18.58,18.58 18.00,19.81 17.20,21.01 15.77,21.10 14.41,20.98 13.29,21.77 12.00,22.40 10.71,21.77 9.59,20.98 8.23,21.10 6.80,21.01 6.00,19.81 5.42,18.58 4.19,18.00 2.99,17.20 2.90,15.77 3.02,14.41 2.23,13.29 1.60,12.00 2.23,10.71 3.02,9.59 2.90,8.23 2.99,6.80 4.19,6.00 5.42,5.42 6.00,4.19 6.80,2.99 8.23,2.90 9.59,3.02 10.71,2.23'/%3E%3C/svg%3E") center / contain no-repeat;
}
html[data-theme="sky"]:not(#_sky) body :is(.hub-card h1, body > .card > h1, #app .top-brand h1) {
  color: var(--sk-hero) !important; font-weight: 400 !important; letter-spacing: -.025em !important; line-height: 1.06 !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-card h1 { font-size: clamp(38px, 4.6vw, 60px) !important; margin: 14px 0 14px !important; }
html[data-theme="sky"]:not(#_sky) body > .card > h1 { font-size: clamp(38px, 4.2vw, 50px) !important; margin: 14px 0 14px !important; }
html[data-theme="sky"]:not(#_sky) body #app .top-brand h1 { font-size: clamp(40px, 4.4vw, 56px) !important; margin: 10px 0 10px !important; }
html[data-theme="sky"]:not(#_sky) body #app .top-brand .sub { font-size: 16px !important; }
html[data-theme="sky"]:not(#_sky) body :is(.hub-card .sub, body > .card > .sub, #app .top-brand .sub, #app .top-brand .lais-mission-line) {
  color: var(--sk-hero-2) !important; font-size: 17px !important; line-height: 1.5 !important;
}
html[data-theme="sky"]:not(#_sky) body #app .top-brand .lais-mission-motto { color: var(--sk-sun) !important; }
html[data-theme="sky"]:not(#_sky) body #app .lais-mission-rule { background: linear-gradient(90deg, var(--sk-sun), rgba(255,193,7,0)) !important; }
html[data-theme="sky"]:not(#_sky) body #app .target-pill { background: var(--sk-sun) !important; color: #2B2100 !important; }
@media (max-width: 640px) {
  /* phone: hub + front door hero centred like the weather screen */
  html[data-theme="sky"]:not(#_sky) body :is(.hub-card .hub-hero, body > .card) > :is(.eyebrow, h1, .sub) { text-align: center !important; }
  html[data-theme="sky"]:not(#_sky) body :is(.hub-card .hub-hero, body > .card) > .sub { margin-bottom: 30px !important; }
  html[data-theme="sky"]:not(#_sky) body .hub-card .hub-hero { padding-top: 24px !important; }
  html[data-theme="sky"]:not(#_sky) body > .card { padding-top: 40px !important; }
}

/* front door: the case-log cards sit straight on the sky at every width, and "Send feedback" goes under the
   list instead of squeezing the list to the left */
html[data-theme="sky"]:not(#_sky) body:has(> .card) { flex-direction: column !important; align-items: center !important; }
html[data-theme="sky"]:not(#_sky) body > .card { width: min(560px, 100%) !important; background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
html[data-theme="sky"]:not(#_sky) body:has(> .card) > .lais-feedback-link { margin: 4px auto 24px !important; }

/* ---------- cards: near-black, 28px corners, no outline glow ---------- */
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > :is(a.hub-choice, button.hub-choice, .hub-group),
html[data-theme="sky"]:not(#_sky) body > .card a.choice {
  background: var(--sk-tile) !important; border: 1px solid var(--sk-tile-line) !important; border-radius: 28px !important;
  box-shadow: 0 6px 24px rgba(8,10,40,.28) !important; padding: 20px 22px !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-choice-soon,
html[data-theme="sky"]:not(#_sky) body > .card a.choice:is([href*="wisconsin"],[href*="illinois"],[href*="georgia"]) {
  background: rgba(10,11,14,.62) !important; border: 1px dashed rgba(255,255,255,.2) !important; box-shadow: none !important;
}
html[data-theme="sky"]:not(#_sky) body :is(.hub-grid > :is(a.hub-choice, button.hub-choice, .hub-group), body > .card a.choice):hover {
  background: rgba(24,25,30,.97) !important; border-color: var(--sk-sun) !important; box-shadow: 0 0 0 1px var(--sk-sun), 0 8px 24px rgba(8,10,40,.3) !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid > .hub-choice-primary,
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > .hub-orbit-center {
  background: var(--sk-card) !important; border: 1.5px solid rgba(255,193,7,.75) !important;
  box-shadow: 0 0 0 4px rgba(255,193,7,.10), 0 10px 30px rgba(8,10,40,.4) !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > :is(.hub-orbit-outer,.hub-orbit-inner,.hub-orbit-tool) {
  background: var(--sk-tile) !important; border-color: var(--sk-tile-line) !important; box-shadow: 0 4px 16px rgba(8,10,40,.3) !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active > .hub-choice-soon { background: rgba(10,11,14,.72) !important; border: 1px dashed rgba(255,255,255,.22) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid .hub-primary-badge {
  background: var(--sk-mint) !important; color: var(--sk-on-mint) !important; border-color: var(--sk-mint) !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-ring { border-color: rgba(230,232,255,.22) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-ring-outer { border-color: rgba(230,232,255,.28) !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid.hub-orbit-active .hub-orbit-stage { background: radial-gradient(circle at 50% 46%, rgba(255,193,7,.06) 0%, transparent 55%) !important; }

/* ---------- small line icons beside card titles (white; yellow on the main card; grey on coming soon) ---------- */
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-choice > strong::before,
html[data-theme="sky"]:not(#_sky) body > .card a.choice > strong::before {
  content: ""; display: inline-block; width: 20px; height: 20px; margin-right: 12px; vertical-align: -4px; flex: none;
  background: #FFFFFF; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-choice-primary > strong::before {
  background: var(--sk-sun); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l6-6 4 4 7-7'/%3E%3Cpath d='M15 8h5v5'/%3E%3Cpath d='M19 2.5l.6 1.4 1.4.6-1.4.6-.6 1.4-.6-1.4-1.4-.6 1.4-.6z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l6-6 4 4 7-7'/%3E%3Cpath d='M15 8h5v5'/%3E%3Cpath d='M19 2.5l.6 1.4 1.4.6-1.4.6-.6 1.4-.6-1.4-1.4-.6 1.4-.6z'/%3E%3C/svg%3E");
}
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-orbit-tool-ai > strong::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z'/%3E%3Cpath d='M19 15l.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z'/%3E%3Cpath d='M19 15l.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7z'/%3E%3C/svg%3E"); }
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-choice-feedback > strong::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v9a1.5 1.5 0 0 1-1.5 1.5H9l-5 4z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v9a1.5 1.5 0 0 1-1.5 1.5H9l-5 4z'/%3E%3C/svg%3E"); }
html[data-theme="sky"]:not(#_sky) body > .card a.choice > strong::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5.5' y='4.5' width='13' height='16.5' rx='2.5'/%3E%3Cpath d='M9 4.5V3h6v1.5M9 10h6M9 14h6M9 18h3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5.5' y='4.5' width='13' height='16.5' rx='2.5'/%3E%3Cpath d='M9 4.5V3h6v1.5M9 10h6M9 14h6M9 18h3'/%3E%3C/svg%3E"); }
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-choice-soon:not(.hub-orbit-tool-ai) > strong::before,
html[data-theme="sky"]:not(#_sky) body > .card a.choice:is([href*="wisconsin"],[href*="illinois"],[href*="georgia"]) > strong::before {
  background: var(--sk-ink-3); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
/* line the sub-text up under the title text (past the icon) */
html[data-theme="sky"]:not(#_sky) body .hub-grid:not(.hub-orbit-active) > .hub-choice > span:not([class*="badge"]),
html[data-theme="sky"]:not(#_sky) body > .card a.choice > span { padding-left: 32px !important; }
html[data-theme="sky"]:not(#_sky) body .hub-grid :is(.hub-choice strong,.hub-group-title),
html[data-theme="sky"]:not(#_sky) body > .card a.choice strong { color: #FFFFFF !important; }

/* ---------- buttons: main action = mint pill; outline pills read white on the gradient ---------- */
html[data-theme="sky"]:not(#_sky) body > .card .back,
html[data-theme="sky"]:not(#_sky) body #app :is(.gw-hub-btn, #todayRefreshBtn) {
  background: var(--sk-mint) !important; color: var(--sk-on-mint) !important; border: 1px solid var(--sk-mint) !important;
  border-radius: 999px !important; box-shadow: none !important; font-weight: 600 !important; text-decoration: none !important;
}
html[data-theme="sky"]:not(#_sky) body > .card .back { padding: 12px 22px !important; margin-top: 22px !important; }
html[data-theme="sky"]:not(#_sky) body > .card .back:hover,
html[data-theme="sky"]:not(#_sky) body #app :is(.gw-hub-btn, #todayRefreshBtn):hover { background: var(--sk-mint-hi) !important; border-color: var(--sk-mint-hi) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.gw-hub-btn, #todayRefreshBtn) :is(span, .btn-label) { color: var(--sk-on-mint) !important; }
html[data-theme="sky"]:not(#_sky) body :is(#hubLockBtn,.hub-actions button.hdr-ctl-lock,.hub-grid.hub-orbit-active > .hub-orbit-tool-lock) {
  color: #FFFFFF !important; border-color: rgba(230,232,255,.6) !important; background: rgba(10,11,14,.25) !important;
}
html[data-theme="sky"]:not(#_sky) body .hub-actions .back:not(.hdr-ctl-lock),
html[data-theme="sky"]:not(#_sky) body .hub-lock-hint { color: var(--sk-hero-2) !important; }
html[data-theme="sky"]:not(#_sky) body .lais-feedback-link { color: #FFFFFF !important; }
html[data-theme="sky"]:not(#_sky) body .hub-orbit-hint { color: var(--sk-hero-2) !important; }

/* ---------- Live Map ---------- */
html[data-theme="sky"]:not(#_sky) body #app :is(.hud-clock,.nav-panel,.lang-ticker,.today-report,.month-story,.map-shell,.panel) {
  box-shadow: 0 6px 24px rgba(8,10,40,.3) !important;
}
html[data-theme="sky"]:not(#_sky) body #app .hud-weekday::before {
  content: ""; display: inline-block; width: 1.35em; height: 1.35em; margin-right: .45em; vertical-align: -.3em;
  background: var(--sk-sun); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon fill='%23000' points='12.00,1.60 13.29,2.23 14.41,3.02 15.77,2.90 17.20,2.99 18.00,4.19 18.58,5.42 19.81,6.00 21.01,6.80 21.10,8.23 20.98,9.59 21.77,10.71 22.40,12.00 21.77,13.29 20.98,14.41 21.10,15.77 21.01,17.20 19.81,18.00 18.58,18.58 18.00,19.81 17.20,21.01 15.77,21.10 14.41,20.98 13.29,21.77 12.00,22.40 10.71,21.77 9.59,20.98 8.23,21.10 6.80,21.01 6.00,19.81 5.42,18.58 4.19,18.00 2.99,17.20 2.90,15.77 3.02,14.41 2.23,13.29 1.60,12.00 2.23,10.71 3.02,9.59 2.90,8.23 2.99,6.80 4.19,6.00 5.42,5.42 6.00,4.19 6.80,2.99 8.23,2.90 9.59,3.02 10.71,2.23'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon fill='%23000' points='12.00,1.60 13.29,2.23 14.41,3.02 15.77,2.90 17.20,2.99 18.00,4.19 18.58,5.42 19.81,6.00 21.01,6.80 21.10,8.23 20.98,9.59 21.77,10.71 22.40,12.00 21.77,13.29 20.98,14.41 21.10,15.77 21.01,17.20 19.81,18.00 18.58,18.58 18.00,19.81 17.20,21.01 15.77,21.10 14.41,20.98 13.29,21.77 12.00,22.40 10.71,21.77 9.59,20.98 8.23,21.10 6.80,21.01 6.00,19.81 5.42,18.58 4.19,18.00 2.99,17.20 2.90,15.77 3.02,14.41 2.23,13.29 1.60,12.00 2.23,10.71 3.02,9.59 2.90,8.23 2.99,6.80 4.19,6.00 5.42,5.42 6.00,4.19 6.80,2.99 8.23,2.90 9.59,3.02 10.71,2.23'/%3E%3C/svg%3E") center / contain no-repeat;
}
html[data-theme="sky"]:not(#_sky) body #app .hud-time { font-weight: 400 !important; color: #FFFFFF !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.y-count, .today-campus .n, .today-campus [id$="Nums"]) { color: #FFFFFF !important; }
html[data-theme="sky"]:not(#_sky) body #app .sync-pill { background: rgba(10,11,14,.55) !important; border-color: rgba(230,232,255,.35) !important; color: #FFFFFF !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.active { border-color: var(--sk-sun) !important; }
html[data-theme="sky"]:not(#_sky) body #app .chip.active .chip-val { color: var(--sk-yellow) !important; }
html[data-theme="sky"]:not(#_sky) body #app :is(.hb-view-btn,.map-view-btn).active,
html[data-theme="sky"]:not(#_sky) body #app :is(.hb-view-btn,.map-view-btn)[aria-pressed="true"] {
  background: var(--sk-mint) !important; color: var(--sk-on-mint) !important; border-color: var(--sk-mint) !important;
}
html[data-theme="sky"]:not(#_sky) body #app :is(.rank-row.active,.fac-rank-row.is-top) { border-color: var(--sk-sun) !important; }
@media (max-width: 959px) {
  /* phone tray stays see-through, now in Sky indigo (still one black per button) */
  html[data-theme="sky"]:not(#_sky) body #app .nav-panel .nav-tools-mobile { background: var(--sk-glass) !important; border-radius: 24px !important; }
}

/* ================= theme switcher in Sky (Nov 2 2026, v4 — Sky is now an option in the switcher) =================
   The bottom-right "Choose your theme" control, when Sky is on: near-black pill, white text, mint check.
   Sky-only; Maroon / Classic / Enterprise keep lais-theme.js's own switcher look. */
html[data-theme="sky"]:not(#_sky) .lais-theme-host { font-family: var(--sk-sans) !important; }
html[data-theme="sky"]:not(#_sky) .lais-theme-btn {
  background: #0E0F13 !important; color: #FFFFFF !important; border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 999px !important; box-shadow: 0 6px 20px rgba(8,10,40,.45) !important;
}
html[data-theme="sky"]:not(#_sky) .lais-theme-btn svg { color: var(--sk-sun) !important; }
html[data-theme="sky"]:not(#_sky) .lais-theme-btn:hover { background: #18191E !important; border-color: var(--sk-sun) !important; }
html[data-theme="sky"]:not(#_sky) .lais-theme-pop {
  background: #0E0F13 !important; color: #FFFFFF !important; border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 24px !important; box-shadow: 0 16px 48px rgba(8,10,40,.6) !important;
}
html[data-theme="sky"]:not(#_sky) .lais-theme-title { color: #C4C7C5 !important; }
html[data-theme="sky"]:not(#_sky) .lais-theme-opt {
  background: transparent !important; color: #FFFFFF !important; border: 1px solid rgba(255,255,255,.34) !important; border-radius: 999px !important;
}
html[data-theme="sky"]:not(#_sky) .lais-theme-opt:hover { background: #18191E !important; }
html[data-theme="sky"]:not(#_sky) .lais-theme-opt[aria-checked="true"] { background: var(--sk-mint) !important; color: var(--sk-on-mint) !important; border-color: var(--sk-mint) !important; }
html[data-theme="sky"]:not(#_sky) :is(.lais-theme-btn, .lais-theme-opt):focus-visible { outline: 2px solid var(--sk-mint) !important; outline-offset: 2px !important; }
