:root{
  --bg:#07111f;--panel:#0d1c2d;--panel2:#11263b;--text:#f3f7fb;--muted:#9fb1c4;
  --accent:#79c7ff;--border:rgba(255,255,255,.09);--shadow:0 14px 40px rgba(0,0,0,.25);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:linear-gradient(#06101d,#091828);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
body{padding-bottom:88px}
button,input{font:inherit}
button{cursor:pointer}
.app-shell{max-width:900px;margin:auto}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 18px 12px;position:sticky;top:0;z-index:10;background:rgba(7,17,31,.88);backdrop-filter:blur(14px)}
.eyebrow{font-size:.72rem;letter-spacing:.17em;color:var(--accent);margin:0 0 4px}
h1{font-size:2rem;margin:0}.byline{margin:4px 0 0;color:var(--muted);font-size:.86rem}
.icon-btn{border:1px solid var(--border);background:var(--panel);color:var(--text);width:44px;height:44px;border-radius:14px}
main{padding:8px 16px 24px}
.view{display:none}.view.active{display:block}
.hero-card,.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:22px;padding:18px;margin:12px 0;box-shadow:var(--shadow)}
.hero-card{display:flex;gap:16px;align-items:flex-end;justify-content:space-between}
.hero-card h2,.card h2{margin:.45rem 0}.pill{display:inline-block;background:rgba(121,199,255,.12);color:var(--accent);padding:6px 10px;border-radius:999px;font-size:.8rem}
.primary{border:0;border-radius:14px;background:var(--accent);color:#032038;padding:11px 15px;font-weight:700}
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.card h3{margin-top:0}.moon{font-size:3.2rem;line-height:1;margin:.4rem 0}
.metric-row,.card-head,.coords{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--border)}
.metric-row:last-child{border-bottom:0}.muted,small{color:var(--muted)}
.highlight{padding:12px 0;border-bottom:1px solid var(--border)}.highlight:last-child{border-bottom:0}
.highlight strong{display:block}.highlight span{color:var(--muted);font-size:.9rem}
label{display:block;margin:12px 0;color:var(--muted);font-size:.9rem}
input{width:100%;margin-top:6px;background:#07111f;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:11px}
.checklist{padding-left:1.2rem;line-height:1.7}
details{border-top:1px solid var(--border);padding:12px 0}summary{font-weight:700;cursor:pointer}
.event-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:14px;margin:10px 0}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:rgba(5,13,23,.95);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom))}
.bottom-nav button{width:min(18vw,130px);border:0;background:transparent;color:var(--muted);padding:6px 4px;font-size:.74rem}
.bottom-nav button span{display:block;font-size:1.1rem}.bottom-nav button.active{color:var(--accent)}
body.red-mode{--bg:#120000;--panel:#220000;--panel2:#2c0000;--text:#ffb3b3;--muted:#d77a7a;--accent:#ff5050;--border:rgba(255,80,80,.18)}
body.red-mode,body.red-mode html{background:#120000}
@media(max-width:620px){.grid.two{grid-template-columns:1fr}.hero-card{align-items:flex-start;flex-direction:column}.coords{flex-direction:column}}

.aurora-score{font-size:3.2rem;font-weight:800;line-height:1;margin:.55rem 0}
.aurora-hero{background:linear-gradient(160deg,var(--panel2),var(--panel))}
.object-row{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.object-row:last-child{border-bottom:0}
.object-row span{color:var(--muted);font-size:.9rem}
.object-row strong:nth-child(2),.object-row span:nth-child(3){text-align:right}
@media(max-width:480px){.object-row{grid-template-columns:1.2fr .8fr}.object-row span:nth-child(3){grid-column:1/-1;text-align:left}}

.heading-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:10px 0 14px}
.heading-manual{margin:0;min-width:150px}
.heading-manual input{margin-top:4px}
.plan-row{display:grid;grid-template-columns:72px 1.2fr .9fr;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border)}
.plan-row:last-child{border-bottom:0}
.plan-time{font-weight:800;color:var(--accent)}
.plan-target strong{display:block}
.plan-target span,.plan-dir span{color:var(--muted);font-size:.88rem}
.plan-dir{text-align:right}
.ship-dir{font-weight:800}
@media(max-width:560px){.plan-row{grid-template-columns:64px 1fr}.plan-dir{grid-column:2;text-align:left}}

.itin-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:15px;margin:10px 0}
.itin-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.itin-head h4{margin:0}
.itin-meta{color:var(--muted);font-size:.9rem;margin:.25rem 0 .75rem}
.itin-brief{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.itin-chip{background:rgba(255,255,255,.035);border:1px solid var(--border);border-radius:12px;padding:10px}
.itin-chip strong{display:block}
.itin-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
@media(max-width:560px){.itin-brief{grid-template-columns:1fr}}

.place-search-row{display:flex;gap:8px;align-items:center}
.place-search-row input{flex:1}
.lookup-btn{width:auto;min-width:58px;padding:0 12px;margin-top:6px}
.place-results{margin:8px 0}
.place-result{display:block;width:100%;text-align:left;background:rgba(255,255,255,.035);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:10px;margin:6px 0}
.place-result small{display:block;margin-top:3px}
.map-attribution{font-size:.76rem;color:var(--muted)}

.header-actions{display:flex;gap:8px;align-items:center}
.install-top-btn{border:1px solid var(--border);background:var(--panel);color:var(--accent);height:44px;padding:0 14px;border-radius:14px;font-weight:800}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:100;display:flex;align-items:center;justify-content:center;padding:18px}
.modal-backdrop.hidden,.hidden{display:none!important}
.install-modal{position:relative;width:min(520px,100%);max-height:90vh;overflow:auto;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:24px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:var(--muted);font-size:2rem;line-height:1}
.install-logo{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:rgba(121,199,255,.12);color:var(--accent);font-size:1.7rem}
.install-panel{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}
.install-panel h3{margin:0 0 8px}
.install-steps{padding-left:1.3rem;line-height:1.75}
.install-benefits{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;color:var(--muted);font-size:.9rem}
.wide{width:100%}
@media(max-width:480px){.install-benefits{grid-template-columns:1fr}.install-top-btn{padding:0 10px}}

.install-landing{padding:20px 16px 8px}
.install-landing-inner{max-width:900px;margin:0 auto;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:24px;padding:24px;display:flex;justify-content:space-between;gap:24px;align-items:center}
.install-landing h1{font-size:clamp(2rem,7vw,4rem);margin:.15rem 0}
.eyebrow{font-size:.75rem;letter-spacing:.18em;color:var(--accent);font-weight:800}
.tagline{font-size:1.2rem;margin:0;color:var(--text)}
.byline{margin:.25rem 0 1rem;color:var(--muted)}
.landing-copy{max-width:620px;color:var(--muted)}
.landing-actions{display:flex;flex-direction:column;gap:10px;min-width:180px}
@media(max-width:700px){.install-landing-inner{display:block}.landing-actions{margin-top:18px}.landing-actions button{width:100%}}

.sky-chart-card{overflow:hidden}
.chart-wrap{position:relative;width:min(100%,760px);margin:12px auto}
#starChart{display:block;width:100%;height:auto;aspect-ratio:1/1;border-radius:50%;background:#01050b;touch-action:none}
.chart-key{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-top:10px}
.chart-note{text-align:center;font-size:.82rem}
.sky-chart-card.fullscreen-chart{position:fixed;inset:0;z-index:120;background:#01050b;border-radius:0;padding:10px;overflow:auto}
.sky-chart-card.fullscreen-chart .chart-wrap{width:min(92vh,96vw);max-width:none}
.sky-chart-card.fullscreen-chart #starChart{width:100%}
.sky-chart-card.fullscreen-chart .chart-note,.sky-chart-card.fullscreen-chart .chart-key{color:#b9c6d6}

.chart-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:560px){.chart-actions{width:100%;justify-content:flex-start}}

.install-status-box{margin-top:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);font-size:.88rem}
.install-ready{box-shadow:0 0 0 2px rgba(121,199,255,.18) inset}

.version-badge{
  display:inline-block;
  margin-top:.35rem;
  padding:.28rem .55rem;
  border:1px solid rgba(120,190,255,.28);
  border-radius:999px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.04em;
  color:#8fd0ff;
  background:rgba(70,145,210,.08);
}
.update-banner{
  position:sticky;
  top:0;
  z-index:50;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid rgba(120,190,255,.28);
  border-radius:14px;
  background:rgba(8,24,38,.96);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
.update-banner[hidden]{display:none}
.update-banner span{font-size:.92rem}
.update-banner button{white-space:nowrap}

.moon-card{text-align:center}
.moon-graphic-wrap{width:min(260px,82vw);margin:12px auto 8px;filter:drop-shadow(0 0 22px rgba(210,225,245,.14))}
#moonGraphic{display:block;width:100%;height:auto;aspect-ratio:1/1}
.moon-phase-name{font-size:1.18rem;font-weight:800;margin:.25rem 0}
.moon-card .metric-row{text-align:left}


/* ===== AstroCruise 11.2 — Stars at Sea dashboard ===== */
:root{
  --gold:#e7b64a;
  --gold2:#ffcf63;
  --ocean:#061426;
  --glass:rgba(8,31,53,.78);
  --glass2:rgba(7,23,41,.88);
  --line:rgba(154,203,239,.28);
}
html,body{
  background:
    radial-gradient(circle at 18% 8%,rgba(55,143,230,.14),transparent 22%),
    radial-gradient(circle at 78% 12%,rgba(124,83,218,.15),transparent 22%),
    linear-gradient(180deg,#020815 0%,#061526 44%,#07111d 100%);
}
body{
  position:relative;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:-2;
  background-image:
    radial-gradient(circle at 7% 8%,rgba(255,255,255,.95) 0 1px,transparent 1.6px),
    radial-gradient(circle at 19% 14%,rgba(255,255,255,.8) 0 1px,transparent 1.7px),
    radial-gradient(circle at 31% 6%,rgba(125,205,255,.9) 0 1px,transparent 1.5px),
    radial-gradient(circle at 44% 18%,rgba(255,255,255,.8) 0 1px,transparent 1.5px),
    radial-gradient(circle at 59% 9%,rgba(255,255,255,.95) 0 1px,transparent 1.7px),
    radial-gradient(circle at 73% 16%,rgba(108,186,255,.9) 0 1px,transparent 1.5px),
    radial-gradient(circle at 87% 7%,rgba(255,255,255,.8) 0 1px,transparent 1.5px),
    radial-gradient(circle at 94% 23%,rgba(255,255,255,.9) 0 1px,transparent 1.6px);
  background-size:190px 150px,240px 190px,260px 220px,220px 170px,300px 210px,250px 185px,200px 165px,280px 230px;
  opacity:.72;
}
body::after{
  content:"";
  position:fixed;left:0;right:0;bottom:0;height:42vh;pointer-events:none;z-index:-1;
  background:
    linear-gradient(176deg,transparent 0 46%,rgba(20,73,102,.18) 47%,rgba(5,25,43,.88) 60%,rgba(3,13,24,.98) 100%),
    radial-gradient(ellipse at 82% 90%,rgba(255,174,67,.16),transparent 26%);
}
.app-shell{max-width:1180px}
main{padding:8px 18px 36px}
.topbar.astro-header{
  position:relative;top:auto;
  background:transparent;
  backdrop-filter:none;
  padding:24px 24px 10px;
  align-items:center;
  gap:18px;
}
.brand-lockup{display:flex;align-items:center;min-width:0}
.brand-mark{
  font-size:3.9rem;line-height:.8;color:var(--gold2);
  text-shadow:0 0 22px rgba(255,194,72,.3);
  transform:rotate(8deg);margin-right:8px
}
.brand-name{font-size:clamp(2.2rem,6vw,4.4rem);font-weight:850;letter-spacing:-.055em;line-height:.86;white-space:nowrap}
.brand-name span{color:#fff}.brand-name strong{color:var(--gold);font-weight:850}
.brand-subtitle{letter-spacing:.42em;font-weight:750;font-size:clamp(.7rem,1.7vw,1.05rem);text-align:center;margin-top:12px;color:#f6f8fb}
.host-lockup{margin-left:auto;min-width:240px}
.host-lockup>span{display:block;font-size:.76rem;color:#dce7f2}
.host-lockup>strong{display:block;border-bottom:1px solid rgba(231,182,74,.55);padding-bottom:7px}
.host-lockup small{font-weight:500;color:#d7e0ea}
.host-lockup em{display:block;color:var(--gold);font-family:cursive;font-size:1.15rem;margin-top:8px}
.header-actions{align-self:flex-start}
.version-badge{border-color:rgba(231,182,74,.55);color:var(--gold2);background:rgba(40,27,8,.35)}
.install-top-btn,.icon-btn{background:rgba(8,29,48,.72);border-color:var(--line)}
.install-top-btn{color:#8fd2ff}
.install-landing{display:none}

.dashboard-hero{margin-top:8px}
.dashboard-panels{display:grid;grid-template-columns:1.12fr .88fr;gap:18px}
.dash-panel{
  background:linear-gradient(180deg,rgba(9,37,63,.78),rgba(5,24,42,.86));
  border:1px solid rgba(145,198,238,.42);
  border-radius:22px;
  box-shadow:0 18px 45px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.04);
  backdrop-filter:blur(10px);
  padding:22px 24px;
}
.dash-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.dash-title-row h2,.moon-panel h2{margin:0;font-size:1.45rem}
.dash-pin{color:#62bfff;text-shadow:0 0 14px rgba(98,191,255,.5)}
.text-action{border:0;background:transparent;color:#66c1ff;font-weight:700;font-size:1rem}
.dash-place{font-size:1.25rem;font-weight:750;margin-top:22px}
.dash-coords{font-size:1.12rem;color:#e7edf4;margin-top:6px}
.dash-panel hr{border:0;border-top:1px solid rgba(149,203,240,.28);margin:18px 0}
.dash-label{font-weight:700;color:#dce7f0}
.dash-time{font-size:1.22rem;font-weight:800;margin-top:6px}
.sun-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sun-times>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}
.sun-icon{color:#ffd15c;font-size:1.65rem}
.sun-times strong{font-size:1rem}
.moon-panel{text-align:center}
.moon-panel .moon-graphic-wrap{width:min(280px,70vw);margin:7px auto 0}
.moon-panel .moon-phase-name{font-size:1.35rem;margin:.15rem 0 .25rem}
.moon-stat{font-size:1.03rem;margin:3px 0;color:#f0f4f8}
.moon-detail-row{display:flex;justify-content:center;gap:28px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(145,198,238,.22);font-size:.85rem;color:#aebdca}
.moon-detail-row strong{color:#f5f7fa}
.compat-fields,.sr-status{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}

.dashboard-tiles{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:16px;margin-top:20px}
.feature-tile,.mini-tile{
  color:white;border-radius:20px;border:1px solid rgba(255,255,255,.22);
  min-height:190px;padding:18px 14px;text-align:center;
  box-shadow:0 14px 30px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
}
.feature-tile{grid-column:span 5}
.mini-tile{grid-column:span 4;min-height:110px}
.feature-tile .tile-icon{font-size:3rem;line-height:1;margin-bottom:14px}
.feature-tile strong{font-size:1.22rem}
.feature-tile small{color:#d9e4ef;font-size:.94rem;margin-top:7px}
.mini-tile span{font-size:1.7rem;margin-bottom:8px}
.mini-tile strong{font-size:1rem}
.tile-blue{background:linear-gradient(160deg,#0d5c9d,#073c74)}
.tile-indigo{background:linear-gradient(160deg,#3531a3,#241875)}
.tile-green{background:linear-gradient(160deg,#078051,#035c3d)}
.tile-red{background:linear-gradient(160deg,#a51e32,#741323)}
.tile-blue2{background:linear-gradient(160deg,#087bc1,#07558f)}
.tile-slate{background:linear-gradient(160deg,#415b72,#283d51)}
.tile-teal{background:linear-gradient(160deg,#197f8b,#0c5962)}
.tile-gold{background:linear-gradient(160deg,#93661f,#69440d)}
.tile-violet{background:linear-gradient(160deg,#514a9a,#352e72)}
.feature-tile:active,.mini-tile:active{transform:translateY(1px)}
.dashboard-motto{text-align:center;color:var(--gold);letter-spacing:.28em;font-size:.72rem;font-weight:700;margin:28px 0 18px}
.dashboard-motto span{margin:0 10px;color:#d6c18b}

.detail-card,.card,.hero-card{
  background:linear-gradient(180deg,rgba(11,37,61,.86),rgba(7,25,42,.9));
  border-color:rgba(142,192,228,.18);
}
.detail-card{scroll-margin-top:18px}
.bottom-nav{
  background:rgba(3,14,25,.92);
  border-top:1px solid rgba(145,198,238,.16)
}
.bottom-nav button.active{color:#6fc6ff}
body.red-mode .brand-name strong,
body.red-mode .brand-mark,
body.red-mode .dashboard-motto,
body.red-mode .host-lockup em{color:#ff5b5b}
body.red-mode .dash-panel,
body.red-mode .detail-card,
body.red-mode .card{filter:saturate(.35);background:linear-gradient(180deg,#280808,#170303)}

@media(max-width:820px){
  .topbar.astro-header{flex-wrap:wrap}
  .host-lockup{order:3;width:100%;margin-left:68px}
  .dashboard-panels{grid-template-columns:1fr 1fr}
  .feature-tile{grid-column:span 10;min-height:150px}
  .mini-tile{grid-column:span 4}
}
@media(max-width:620px){
  .topbar.astro-header{padding:18px 16px 8px;gap:8px}
  .brand-mark{font-size:2.9rem}
  .brand-name{font-size:clamp(2.1rem,12vw,3.1rem)}
  .brand-subtitle{letter-spacing:.3em;font-size:.65rem}
  .host-lockup{margin-left:52px;min-width:0}
  .host-lockup em{font-size:1rem}
  .header-actions{margin-left:auto}
  .version-badge{display:inline-block;font-size:.66rem;padding:.2rem .42rem}
  .install-top-btn{display:none}
  .dashboard-panels{grid-template-columns:1fr}
  .dash-panel{padding:18px}
  .moon-panel .moon-graphic-wrap{width:min(240px,68vw)}
  .dashboard-tiles{grid-template-columns:repeat(10,minmax(0,1fr));gap:10px}
  .feature-tile{grid-column:span 5;min-height:136px;padding:14px 8px}
  .feature-tile .tile-icon{font-size:2.4rem;margin-bottom:9px}
  .feature-tile strong{font-size:1rem}
  .feature-tile small{font-size:.78rem}
  .mini-tile{grid-column:span 2;min-height:86px;padding:9px 4px;border-radius:16px}
  .mini-tile span{font-size:1.35rem;margin-bottom:5px}
  .mini-tile strong{font-size:.72rem}
  .dashboard-motto{letter-spacing:.14em;font-size:.56rem}
  .sun-times{grid-template-columns:1fr}
}


/* AstroCruise 11.4 Aurora Forecast Centre */
.aurora-action-card{overflow:hidden;position:relative}
.aurora-action-card:before{content:"";position:absolute;inset:-40% 45% auto -10%;height:220px;background:radial-gradient(circle,rgba(121,199,255,.13),transparent 66%);pointer-events:none}
.aurora-action-grid{display:grid;grid-template-columns:minmax(190px,.75fr) 1.4fr;gap:20px;align-items:center;position:relative}
.aurora-kicker{font-size:.72rem;letter-spacing:.14em;color:var(--accent);font-weight:800}
.aurora-score{font-size:4.5rem;font-weight:900;line-height:.95;margin:.45rem 0 .35rem}
.aurora-score-note{font-size:.75rem;color:var(--muted);max-width:260px}
.aurora-advice-wrap{border-left:1px solid var(--border);padding-left:20px}
.aurora-advice{font-size:1.4rem;font-weight:900;letter-spacing:.03em;color:var(--accent);margin-bottom:8px}
.aurora-rating{font-size:1rem;line-height:1.55;margin:0;color:var(--text)}
.aurora-outlook{font-size:1.05rem;line-height:1.6;font-weight:650;padding:8px 0}
body.red-mode .aurora-action-card:before{background:radial-gradient(circle,rgba(255,80,80,.12),transparent 66%)}
@media(max-width:620px){.aurora-action-grid{grid-template-columns:1fr}.aurora-advice-wrap{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:16px}.aurora-score{font-size:4rem}}


/* AstroCruise 11.5 — specific deck advice */
.deck-advice-card{border-width:2px;transition:border-color .2s ease,background .2s ease}
.deck-advice-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}
.deck-advice-head h3{font-size:1.55rem;margin:.2rem 0 0}
.deck-advice-badge{font-weight:900;letter-spacing:.08em;font-size:.78rem;padding:8px 12px;border:1px solid var(--border);border-radius:999px;white-space:nowrap}
.deck-advice-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;align-items:start}
.deck-advice-main p{font-size:1.02rem;line-height:1.6;margin:.25rem 0 .65rem}
.deck-recheck{font-weight:800;color:var(--accent)}
.deck-advice-card[data-level="go"]{border-color:rgba(107,230,164,.55);background:linear-gradient(145deg,rgba(68,181,122,.12),var(--panel))}
.deck-advice-card[data-level="check"]{border-color:rgba(121,199,255,.55)}
.deck-advice-card[data-level="standby"]{border-color:rgba(245,194,91,.45)}
.deck-advice-card[data-level="wait"],.deck-advice-card[data-level="low"]{border-color:var(--border)}
body.red-mode .deck-recheck{color:#ff8b8b}
@media(max-width:620px){.deck-advice-grid{grid-template-columns:1fr}.deck-advice-head h3{font-size:1.35rem}.deck-advice-head{align-items:center}}


/* ===== AstroCruise 11.6 — responsive realistic Moon centre ===== */
.moon-detail-view{padding-bottom:18px}
.moon-page-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin:2px 0 18px}
.moon-page-head h2{font-size:clamp(1.8rem,4vw,2.7rem);margin:0;text-align:center}
.moon-page-head p{margin:.25rem 0 0;text-align:center;color:var(--muted)}
.moon-back{font-size:1rem}
.moon-ship-position{border:1px solid rgba(87,184,255,.55);border-radius:16px;padding:10px 14px;min-width:190px}
.moon-ship-position span{display:block;color:#58c1ff;font-size:.8rem;font-weight:800}.moon-ship-position strong{display:block;margin-top:3px}
.moon-feature-grid{display:grid;grid-template-columns:minmax(300px,1.15fr) minmax(300px,1fr) minmax(250px,.72fr);gap:18px;align-items:stretch}
.moon-hero-visual{min-height:470px;display:grid;place-items:center;overflow:hidden;border-radius:22px;background:radial-gradient(circle at 48% 48%,rgba(70,132,194,.08),transparent 54%)}
#moonDetailGraphic{width:min(100%,560px);height:auto;aspect-ratio:1;display:block}
.moon-data-card,.moon-tonight-card{margin:0;padding:22px}.moon-data-card h2,.moon-tonight-card h2{font-size:clamp(1.55rem,3vw,2.25rem);margin:0 0 4px}
.moon-detail-illum{font-size:clamp(1.25rem,2.5vw,1.7rem);color:#55c5ff;font-weight:800;padding-bottom:14px;border-bottom:1px solid var(--border)}
.moon-data-list{display:grid;gap:0;margin-top:6px}.moon-data-list>div{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px 0;border-bottom:1px solid rgba(145,198,238,.10)}.moon-data-list span{color:#b8c9d8}.moon-data-list strong{text-align:right;max-width:190px}
.moon-tonight-status{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:center}.moon-tonight-status canvas{width:74px;height:74px}.moon-tonight-status p{margin:0;line-height:1.45}
.moon-tonight-card hr{border:0;border-top:1px solid var(--border);margin:15px 0}.moon-advice-block span{display:block;color:#7fc8ff;font-weight:800;font-size:.85rem}.moon-advice-block strong{display:block;font-size:1.03rem;margin-top:5px}.moon-advice-block small{display:block;color:var(--muted);margin-top:4px}.moon-times-note{font-style:italic;font-size:.8rem;line-height:1.4;margin-top:18px}
.moon-month-card{margin-top:18px;overflow:hidden}.moon-phase-strip{display:grid;grid-template-columns:repeat(6,minmax(118px,1fr));gap:12px;overflow-x:auto;padding:8px 2px 4px;scroll-snap-type:x proximity}.moon-phase-item{min-width:118px;text-align:center;padding:8px;border:1px solid transparent;border-radius:16px;scroll-snap-align:start}.moon-phase-item.today{border-color:#24b8ff;background:rgba(20,145,220,.08);box-shadow:inset 0 0 0 1px rgba(36,184,255,.18)}.moon-phase-item canvas{width:100%;height:auto;display:block;aspect-ratio:1}.moon-phase-item strong,.moon-phase-item span{display:block}.moon-phase-item strong{font-size:.9rem}.moon-phase-item span{color:var(--muted);font-size:.82rem;margin-top:3px}.moon-phase-item.today strong,.moon-phase-item.today span{color:#52c8ff}
.realistic-preview{filter:drop-shadow(0 0 28px rgba(176,211,245,.16))}
@media(max-width:1020px){.moon-feature-grid{grid-template-columns:1.1fr 1fr}.moon-tonight-card{grid-column:1/-1}.moon-hero-visual{min-height:390px}.moon-phase-strip{grid-template-columns:repeat(6,140px)}}
@media(max-width:680px){.moon-page-head{grid-template-columns:auto 1fr}.moon-page-head>div:nth-child(2){padding-right:48px}.moon-page-head h2,.moon-page-head p{text-align:center}.moon-ship-position{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;min-width:0}.moon-feature-grid{grid-template-columns:1fr;gap:12px}.moon-hero-visual{min-height:auto;margin:-6px 0 -14px}.moon-data-card,.moon-tonight-card{padding:17px}.moon-data-list>div{padding:9px 0}.moon-tonight-card{grid-column:auto}.moon-month-card{padding:16px}.moon-phase-strip{grid-template-columns:repeat(6,112px);gap:7px}.moon-page-head{margin-bottom:10px}.bottom-nav button{font-size:.64rem;padding-left:2px;padding-right:2px}}
@media(max-width:420px){.moon-hero-visual #moonDetailGraphic{width:112%;max-width:none}.moon-page-head h2{font-size:1.7rem}.moon-data-list>div{grid-template-columns:1fr}.moon-data-list strong{text-align:left;max-width:none}.moon-ship-position{font-size:.82rem}.moon-phase-strip{grid-template-columns:repeat(6,104px)}}

/* ===== AstroCruise 11.22 — iPhone / iPad compatibility pass ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(78px + env(safe-area-inset-top));}
body{padding-bottom:calc(88px + env(safe-area-inset-bottom));overscroll-behavior-y:none;}
button,[role="button"],summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
button{min-height:44px;}
.topbar{padding-top:calc(22px + env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));}
main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
.install-landing{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
.bottom-nav{padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));z-index:90;}
.bottom-nav button{min-height:50px;}
.modal-backdrop{padding-top:max(18px,env(safe-area-inset-top));padding-right:max(18px,env(safe-area-inset-right));padding-bottom:max(18px,env(safe-area-inset-bottom));padding-left:max(18px,env(safe-area-inset-left));}
.install-modal{max-height:calc(100dvh - max(36px,env(safe-area-inset-top)) - max(36px,env(safe-area-inset-bottom)));-webkit-overflow-scrolling:touch;}
.moon-phase-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;}.moon-phase-strip::-webkit-scrollbar{display:none;}
.sky-chart-card.fullscreen-chart{height:100dvh;padding-top:max(10px,env(safe-area-inset-top));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom));padding-left:max(10px,env(safe-area-inset-left));}
.ios-device.standalone-mode body{min-height:100dvh;}
@media(max-width:680px){input,select,textarea{font-size:16px;} .primary,.icon-btn,.text-action{min-height:44px;} }
@supports not (height:100dvh){.sky-chart-card.fullscreen-chart{height:100vh}.install-modal{max-height:90vh}}


/* ===== AstroCruise 11.22 — responsive star-chart controls ===== */
.chart-actions .icon-btn{
  width:auto;
  min-width:max-content;
  height:auto;
  min-height:44px;
  padding:0 14px;
  white-space:nowrap;
  line-height:1.2;
  flex:0 0 auto;
}
@media(max-width:560px){
  .sky-chart-card .card-head{align-items:flex-start;flex-wrap:wrap;}
  .sky-chart-card .chart-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(92px,.55fr);
    width:100%;
    gap:8px;
  }
  .sky-chart-card .chart-actions .icon-btn{
    width:100%;
    min-width:0;
    padding:0 10px;
    font-size:.9rem;
  }
}
@media(max-width:350px){
  .sky-chart-card .chart-actions{grid-template-columns:1fr;}
}

/* v11.22 automatic ship tracking */
.tracking-strip{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.55rem;font-size:.82rem;color:var(--muted,#b9cad9)}
.tracking-dot{width:.62rem;height:.62rem;border-radius:50%;background:#73808d;box-shadow:0 0 0 3px rgba(115,128,141,.12)}
.tracking-dot.live{background:#48d17a;box-shadow:0 0 0 3px rgba(72,209,122,.14)}
.tracking-dot.wait{background:#f0bf52}
#shipSpeed{margin-left:auto;font-weight:700;color:#dff4ff}
.heading-help{font-size:.8rem;margin-top:.5rem}
@media(max-width:520px){#shipSpeed{margin-left:0;width:100%}.tracking-strip{align-items:flex-start}}

/* v11.22 Ship Tracking panel */
.ship-tracking-card{margin-top:1rem;padding:1rem;border-radius:18px;background:rgba(7,30,56,.76);border:1px solid rgba(98,205,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.ship-tracking-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.ship-tracking-head h3{margin:.08rem 0 0;font-size:1.1rem}
.ship-tracking-card .eyebrow{margin:0;color:#78d8ff;font-size:.72rem;font-weight:800;letter-spacing:.14em}
.ship-tracking-badge{padding:.28rem .58rem;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.08em;background:#263846;color:#c9d4dc}
.ship-tracking-badge.live{background:rgba(57,204,117,.16);color:#7ff0a7;border:1px solid rgba(57,204,117,.35)}
.ship-tracking-badge.wait{background:rgba(238,185,70,.14);color:#ffd47a;border:1px solid rgba(238,185,70,.3)}
.ship-tracking-badge.off{background:rgba(140,153,164,.12);color:#bdc8cf;border:1px solid rgba(140,153,164,.22)}
.ship-tracking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.ship-tracking-grid>div{padding:.75rem .8rem;border-radius:13px;background:rgba(255,255,255,.045)}
.ship-tracking-grid span{display:block;font-size:.72rem;color:var(--muted,#aebfcd);margin-bottom:.25rem}
.ship-tracking-grid strong{display:block;font-size:.93rem;color:#eef8ff;word-break:break-word}
@media(max-width:560px){.ship-tracking-grid{grid-template-columns:1fr}.ship-tracking-card{padding:.9rem}}

/* v11.22 layout correction: Ship Tracking directly beneath Your Location */
.dashboard-panels > .ship-tracking-card{
  grid-column:1 / -1;
  width:100%;
  margin-top:0;
}

/* v11.22 passenger-friendly aurora summary */
.aurora-simple-card{margin-top:14px}
.aurora-simple-grid{gap:10px}
.aurora-simple-item{border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px;background:rgba(255,255,255,.025)}
.aurora-simple-item span{font-size:.82rem;opacity:.78}
.aurora-simple-item strong{font-size:1.08rem}
.aurora-simple-item small{opacity:.72;line-height:1.35}

/* v11.22 passenger-first NOW / TONIGHT / DETAILS */
.aurora-now-card{border-width:2px}
.aurora-now-head{display:flex;justify-content:space-between;gap:16px;align-items:center}
.aurora-now-head h2{margin:.2rem 0 .4rem;font-size:clamp(1.5rem,5vw,2.4rem)}
.aurora-now-badge{min-width:86px;text-align:center;border-radius:999px;padding:10px 14px;font-weight:800;letter-spacing:.04em;border:1px solid var(--line)}
.aurora-now-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.aurora-now-grid>div{border:1px solid var(--line);border-radius:12px;padding:11px;display:flex;flex-direction:column;gap:4px}
.aurora-now-grid span{font-size:.78rem;opacity:.72}.aurora-now-grid strong{font-size:.98rem}
.aurora-tonight-window{font-size:clamp(1.25rem,4vw,1.8rem);font-weight:800;margin:.5rem 0}
.aurora-details-toggle summary{cursor:pointer;display:flex;gap:10px;align-items:center;list-style:none}
.aurora-details-toggle summary::-webkit-details-marker{display:none}
.aurora-details-toggle summary span{opacity:.72;font-weight:400}
.aurora-details-explain{padding-top:10px}

@media(max-width:620px){.aurora-now-head{align-items:flex-start;flex-direction:column}.aurora-now-grid{grid-template-columns:1fr}.aurora-now-badge{min-width:0}}

/* v11.22 colour coding for passenger aurora status */
.aurora-now-badge{
  color:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;
}
.status-low{
  background:#5f6875;
  border-color:#7b8490;
}
.status-possible{
  background:#c9a227;
  border-color:#e0bd4a;
  color:#111;
}
.status-good{
  background:#d97706;
  border-color:#f59e0b;
}
.status-verygood{
  background:#c92a2a;
  border-color:#ef4444;
}
.status-go{
  background:#7e22ce;
  border-color:#a855f7;
  box-shadow:0 0 18px rgba(168,85,247,.38);
}

#auroraNowCard[data-status="low"]{
  border-color:#7b8490;
}
#auroraNowCard[data-status="possible"]{
  border-color:#c9a227;
}
#auroraNowCard[data-status="good"]{
  border-color:#d97706;
}
#auroraNowCard[data-status="verygood"]{
  border-color:#c92a2a;
}
#auroraNowCard[data-status="go"]{
  border-color:#a855f7;
  box-shadow:0 0 24px rgba(168,85,247,.15);
}

/* v11.22 simplified Aurora page */
.aurora-likelihood-card{border-width:2px}
.aurora-likelihood-main{display:flex;align-items:center;gap:20px;margin-top:8px}
.aurora-likelihood-badge{
  min-width:150px;min-height:150px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:18px;font-size:1.25rem;font-weight:900;letter-spacing:.04em;
  border:3px solid rgba(255,255,255,.22);color:#fff;
  box-shadow:0 8px 28px rgba(0,0,0,.25)
}
.aurora-likelihood-copy h2{margin:.1rem 0 .45rem;font-size:clamp(1.6rem,5vw,2.7rem)}
.aurora-likelihood-copy p{font-size:1.05rem;line-height:1.5}
.aurora-action-simple{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:4px}
.aurora-action-simple span{font-size:.8rem;opacity:.7}.aurora-action-simple strong{font-size:1.15rem}
.aurora-colour-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}
.aurora-scale-item{border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px;text-align:center;border:1px solid rgba(255,255,255,.14)}
.aurora-scale-item span{font-size:.78rem;line-height:1.25}
.scale-low{background:#5f6875;color:#fff}.scale-possible{background:#c9a227;color:#111}
.scale-good{background:#d97706;color:#fff}.scale-verygood{background:#c92a2a;color:#fff}.scale-go{background:#7e22ce;color:#fff}
.glendale-card{text-align:center}.glendale-link{display:inline-block;text-decoration:none;margin:8px 0 10px}
.status-low{background:#5f6875;border-color:#7b8490}.status-possible{background:#c9a227;border-color:#e0bd4a;color:#111}
.status-good{background:#d97706;border-color:#f59e0b}.status-verygood{background:#c92a2a;border-color:#ef4444}
.status-go{background:#7e22ce;border-color:#a855f7;box-shadow:0 0 28px rgba(168,85,247,.4)}
@media(max-width:700px){
  .aurora-likelihood-main{flex-direction:column;align-items:flex-start}
  .aurora-likelihood-badge{min-width:125px;min-height:125px}
  .aurora-colour-scale{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){.aurora-colour-scale{grid-template-columns:1fr}}

/* v11.22 astronomical twilight display */
.twilight-times{
  margin-top:10px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.twilight-times>div{
  border:1px solid var(--line);
  border-radius:10px;
  padding:9px 10px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.twilight-times span{
  font-size:.74rem;
  opacity:.72;
}
.twilight-times strong{
  font-size:.95rem;
}
@media(max-width:520px){
  .twilight-times{grid-template-columns:1fr}
}
