:root,
:root[data-theme="lime"]{
  --bg:#06110f;
  --panel:#0a1b18;
  --panel2:#0d2420;
  --line:#1d3c34;
  --text:#eff8f3;
  --muted:#91aaa2;
  --lime:#b8f35b;
  --mint:#52d6a1;
  --surface-row:#071613;
  --surface-header:#102820;
  --surface-deep:#061411;
  --tag-bg:#173129;
  --tag-text:#b6cbc4;
  --accent-border:#315148;
  --accent-border-strong:#41685d;
  --accent-border-soft:#29483f;
  --accent-panel:#0c281f;
  --accent-panel-1:#0b211b;
  --accent-panel-2:#0b221d;
  --accent-panel-3:#0b201b;
  --surface-deep-alt:#081b17;
  --surface-row-alt-1:#071713;
  --surface-row-alt-2:#071814;
  --accent-border-soft-1:#294b42;
  --accent-border-soft-2:#29453d;
  --accent-ink:#10200d;
  --accent-ink-muted:#34452d;
  --accent-gradient-end:#78df88;
  --header-bg:rgba(6,17,15,.88);
  --location-start:rgba(14,39,34,.95);
  --location-end:rgba(8,27,23,.95);
  --control-bg:#17352e;
  --control-border:#2b5046;
  --control-hover:#214a3f;
  --active-card:#14342c;
  --callsign-start:#0c251f;
  --callsign-end:#091814;
  --radar-centre:#0d2821;
  --radar-edge:#071713;
  --radar-grid:#284a40;
  --radar-ring:#23463c;
  --accent-label-ink:#31521a;
  --accent-eyebrow-ink:#34511a;
  --coverage-border:rgba(121,255,185,.18);
  --coverage-border-strong:rgba(121,255,185,.2);
  --coverage-field-bg:rgba(4,22,18,.38);
  --coverage-panel-bg:rgba(4,22,18,.5);
  --coverage-detail-bg:#071814;
  --coverage-map-bg:#071512;
  --coverage-control-accent:#a8ff3e;
  --coverage-heading:#f3fff9;
  --coverage-summary:#88a79b;
  --coverage-state:#9ab6ab;
  --coverage-label:#d7eee5;
  --coverage-detail-text:#a9c1b7;
  --accent-glow-02:rgba(184,243,91,.02);
  --accent-glow-025:rgba(184,243,91,.025);
  --accent-glow-08:rgba(184,243,91,.08);
  --accent-glow-10:rgba(184,243,91,.1);
  --accent-glow-12:rgba(184,243,91,.12);
  --accent-glow-16:rgba(184,243,91,.16);
  --accent-glow-42:rgba(184,243,91,.42);
  --accent-glow-45:rgba(184,243,91,.45);
  --accent-glow-55:rgba(184,243,91,.55);
  --status-excellent:#e7ff8a;
  --status-good:#b8f35b;
  --status-fair:#f4bc56;
  --status-poor:#ee6b63;
  --status-live:#7cebb9;
  --status-historical:#e79a88;
}

:root[data-theme="night-red"]{
  --bg:#10090a;
  --panel:#190d10;
  --panel2:#211216;
  --line:#45262d;
  --text:#fff2f3;
  --muted:#b9a0a4;
  --lime:#ff7078;
  --mint:#efa0a6;
  --surface-row:#160b0e;
  --surface-header:#2c151a;
  --surface-deep:#0d0709;
  --tag-bg:#34191f;
  --tag-text:#dec4c8;
  --accent-border:#5c3039;
  --accent-border-strong:#7a4049;
  --accent-border-soft:#47252c;
  --accent-panel:#2b1218;
  --accent-panel-1:#261116;
  --accent-panel-2:#291217;
  --accent-panel-3:#231015;
  --surface-deep-alt:#13090c;
  --surface-row-alt-1:#180b0e;
  --surface-row-alt-2:#190c0f;
  --accent-border-soft-1:#4c2930;
  --accent-border-soft-2:#48262c;
  --accent-ink:#240708;
  --accent-ink-muted:#5b2c32;
  --accent-gradient-end:#d94f5a;
  --header-bg:rgba(16,9,10,.9);
  --location-start:rgba(46,19,23,.96);
  --location-end:rgba(25,12,15,.96);
  --control-bg:#3a1c22;
  --control-border:#63333c;
  --control-hover:#51252d;
  --active-card:#3a1b22;
  --callsign-start:#32151b;
  --callsign-end:#1b0b0e;
  --radar-centre:#36171d;
  --radar-edge:#170b0e;
  --radar-grid:#5b3038;
  --radar-ring:#512a31;
  --accent-label-ink:#61292f;
  --accent-eyebrow-ink:#642b31;
  --coverage-border:rgba(255,112,120,.18);
  --coverage-border-strong:rgba(255,112,120,.24);
  --coverage-field-bg:rgba(34,10,14,.38);
  --coverage-panel-bg:rgba(34,10,14,.5);
  --coverage-detail-bg:#190b0e;
  --coverage-map-bg:#150a0c;
  --coverage-control-accent:#ff7078;
  --coverage-heading:#fff3f4;
  --coverage-summary:#b99fa3;
  --coverage-state:#c3a7ab;
  --coverage-label:#f1d9dc;
  --coverage-detail-text:#d0b3b7;
  --accent-glow-02:rgba(255,112,120,.02);
  --accent-glow-025:rgba(255,112,120,.025);
  --accent-glow-08:rgba(255,112,120,.08);
  --accent-glow-10:rgba(255,112,120,.1);
  --accent-glow-12:rgba(255,112,120,.12);
  --accent-glow-16:rgba(255,112,120,.16);
  --accent-glow-42:rgba(255,112,120,.42);
  --accent-glow-45:rgba(255,112,120,.45);
  --accent-glow-55:rgba(255,112,120,.55);
}

:root[data-theme="amber"]{
  --bg:#100d07;
  --panel:#1a150b;
  --panel2:#241c0e;
  --line:#4b3b20;
  --text:#fff8e9;
  --muted:#b8aa8e;
  --lime:#f3bd55;
  --mint:#e5ca8a;
  --surface-row:#171107;
  --surface-header:#2d2411;
  --surface-deep:#0e0b06;
  --tag-bg:#352910;
  --tag-text:#dfd0ae;
  --accent-border:#604b26;
  --accent-border-strong:#806331;
  --accent-border-soft:#4a3a20;
  --accent-panel:#2d220e;
  --accent-panel-1:#28200f;
  --accent-panel-2:#2b210f;
  --accent-panel-3:#261d0d;
  --surface-deep-alt:#151006;
  --surface-row-alt-1:#191307;
  --surface-row-alt-2:#1a1408;
  --accent-border-soft-1:#4d3d21;
  --accent-border-soft-2:#49391e;
  --accent-ink:#241a06;
  --accent-ink-muted:#5d481c;
  --accent-gradient-end:#d99a35;
  --header-bg:rgba(16,13,7,.9);
  --location-start:rgba(48,37,15,.96);
  --location-end:rgba(26,20,9,.96);
  --control-bg:#3d2f13;
  --control-border:#675027;
  --control-hover:#55401a;
  --active-card:#3a2c12;
  --callsign-start:#33270f;
  --callsign-end:#1c1508;
  --radar-centre:#392b12;
  --radar-edge:#181207;
  --radar-grid:#5f4a26;
  --radar-ring:#523f20;
  --accent-label-ink:#5d430d;
  --accent-eyebrow-ink:#60460f;
  --coverage-border:rgba(243,189,85,.18);
  --coverage-border-strong:rgba(243,189,85,.24);
  --coverage-field-bg:rgba(34,26,7,.38);
  --coverage-panel-bg:rgba(34,26,7,.5);
  --coverage-detail-bg:#191307;
  --coverage-map-bg:#151006;
  --coverage-control-accent:#f3bd55;
  --coverage-heading:#fff8e9;
  --coverage-summary:#b8aa8e;
  --coverage-state:#c6b794;
  --coverage-label:#f1e3c1;
  --coverage-detail-text:#d3c3a1;
  --accent-glow-02:rgba(243,189,85,.02);
  --accent-glow-025:rgba(243,189,85,.025);
  --accent-glow-08:rgba(243,189,85,.08);
  --accent-glow-10:rgba(243,189,85,.1);
  --accent-glow-12:rgba(243,189,85,.12);
  --accent-glow-16:rgba(243,189,85,.16);
  --accent-glow-42:rgba(243,189,85,.42);
  --accent-glow-45:rgba(243,189,85,.45);
  --accent-glow-55:rgba(243,189,85,.55);
}

:root[data-theme="cool-blue"]{
  --bg:#071014;
  --panel:#0a1920;
  --panel2:#0d222c;
  --line:#1e3e4d;
  --text:#effaff;
  --muted:#91aab5;
  --lime:#67d9ff;
  --mint:#82bfff;
  --surface-row:#07151b;
  --surface-header:#102a35;
  --surface-deep:#061117;
  --tag-bg:#17323e;
  --tag-text:#bfd2da;
  --accent-border:#31566a;
  --accent-border-strong:#41718a;
  --accent-border-soft:#294857;
  --accent-panel:#0c2631;
  --accent-panel-1:#0b222b;
  --accent-panel-2:#0b252f;
  --accent-panel-3:#0b2029;
  --surface-deep-alt:#081821;
  --surface-row-alt-1:#071820;
  --surface-row-alt-2:#071a22;
  --accent-border-soft-1:#294c5c;
  --accent-border-soft-2:#294856;
  --accent-ink:#071c25;
  --accent-ink-muted:#294e5e;
  --accent-gradient-end:#4aa8e5;
  --header-bg:rgba(7,16,20,.9);
  --location-start:rgba(14,40,52,.96);
  --location-end:rgba(8,25,33,.96);
  --control-bg:#173845;
  --control-border:#2b5669;
  --control-hover:#214e60;
  --active-card:#143644;
  --callsign-start:#0c2935;
  --callsign-end:#091b23;
  --radar-centre:#0d2b37;
  --radar-edge:#07161d;
  --radar-grid:#294f60;
  --radar-ring:#234959;
  --accent-label-ink:#174a60;
  --accent-eyebrow-ink:#194d64;
  --coverage-border:rgba(103,217,255,.18);
  --coverage-border-strong:rgba(103,217,255,.24);
  --coverage-field-bg:rgba(4,22,30,.38);
  --coverage-panel-bg:rgba(4,22,30,.5);
  --coverage-detail-bg:#071a22;
  --coverage-map-bg:#07161d;
  --coverage-control-accent:#67d9ff;
  --coverage-heading:#effaff;
  --coverage-summary:#91aab5;
  --coverage-state:#9eb9c5;
  --coverage-label:#d7eef6;
  --coverage-detail-text:#aac4cf;
  --accent-glow-02:rgba(103,217,255,.02);
  --accent-glow-025:rgba(103,217,255,.025);
  --accent-glow-08:rgba(103,217,255,.08);
  --accent-glow-10:rgba(103,217,255,.1);
  --accent-glow-12:rgba(103,217,255,.12);
  --accent-glow-16:rgba(103,217,255,.16);
  --accent-glow-42:rgba(103,217,255,.42);
  --accent-glow-45:rgba(103,217,255,.45);
  --accent-glow-55:rgba(103,217,255,.55);
}

html{color-scheme:dark}
body,header,.signalhunt-brand img{transition:background-color .16s ease,color .16s ease,border-color .16s ease,filter .16s ease}
header{background:var(--header-bg)}
.location-card{background:linear-gradient(135deg,var(--location-start),var(--location-end))}
.location-row button{background:var(--control-bg);border-color:var(--control-border)}
.location-row button:hover{background:var(--control-hover)}
.band-card.active{background:linear-gradient(160deg,var(--active-card),var(--panel))}
.callsign-lookup{background:linear-gradient(110deg,var(--callsign-start),var(--callsign-end) 70%)}
.radar{background:radial-gradient(circle,var(--radar-centre) 0,var(--radar-edge) 68%)}
.radar:before,.radar:after{background:var(--radar-grid)}
.radar-ring{border-color:var(--radar-ring)}
.radar-sweep{background:conic-gradient(from 20deg,transparent 0 80%,var(--accent-glow-16) 94%,var(--accent-glow-42))}
.core-now{background:linear-gradient(118deg,var(--lime),var(--accent-gradient-end))!important;color:var(--accent-ink)}
.core-now .eyebrow{color:var(--accent-label-ink)}
.watch-panel .eyebrow{color:var(--accent-eyebrow-ink)}
.watch-panel p:not(.eyebrow){color:var(--accent-ink-muted)}
:root[data-theme="night-red"] .signalhunt-brand img{filter:hue-rotate(276deg) saturate(.92) brightness(1.04)}
:root[data-theme="amber"] .signalhunt-brand img{filter:hue-rotate(320deg) saturate(.9) brightness(1.02)}
:root[data-theme="cool-blue"] .signalhunt-brand img{filter:hue-rotate(93deg) saturate(.9) brightness(1.06)}

.dot.excellent{background:var(--status-excellent);box-shadow:0 0 8px rgba(231,255,138,.75)}
.dot.good{background:var(--status-good)}
.dot.fair{background:var(--status-fair)}
.dot.poor{background:var(--status-poor)}
.status-exact{border-color:rgba(184,243,91,.55);background:rgba(184,243,91,.12);color:var(--status-good)}
.status-approximate{border-color:#41685d;background:#10281f;color:#52d6a1}
.status-historical{border-color:#7b4a42;background:rgba(123,74,66,.18);color:var(--status-historical)}
.status-live{border-color:rgba(82,214,161,.65);background:rgba(82,214,161,.14);color:var(--status-live)}
.status-cached{border-color:#40534d;background:#14201d;color:#a8bab4}
.status-band-only{border-color:rgba(244,188,86,.55);background:rgba(244,188,86,.12);color:var(--status-fair)}
.coverage-kind.amateur{background:#a8ff3e}.coverage-kind.aircraft{background:#62d7ff}.coverage-kind.maritime{background:#ffbd59}
.log-map-fields{border-color:var(--coverage-border);background:var(--coverage-field-bg)}
.coverage-panel{border-color:var(--coverage-border-strong);background:var(--coverage-panel-bg)}
.coverage-detail{border-color:var(--coverage-border);background:var(--coverage-detail-bg)}
.log-map-fields summary{color:var(--text)}
.coverage-panel>summary b{color:var(--coverage-heading)}
.log-map-fields summary span,.coverage-panel>summary small{color:var(--coverage-summary)}
.log-map-fields>p,.coverage-state,.coverage-map-fallback{color:var(--coverage-state)}
.coverage-detail p{color:var(--coverage-detail-text)}
.coverage-panel>summary>span:last-child,.coverage-layers input{color:var(--coverage-control-accent);accent-color:var(--coverage-control-accent)}
.coverage-layers label{border-color:var(--coverage-border-strong);color:var(--coverage-label)}
.coverage-map{background:var(--coverage-map-bg)}
.log-entry.is-focused{outline-color:var(--coverage-control-accent)}

.signalhunt-brand{appearance:none;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;border-radius:9px}
.signalhunt-brand:hover{filter:brightness(1.08)}
.signalhunt-brand:focus-visible{outline:2px solid var(--lime);outline-offset:4px}

.settings-sheet{width:min(430px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid var(--accent-border-strong);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 24px 80px rgba(0,0,0,.5);overflow:auto}
.settings-sheet::backdrop{background:rgba(0,0,0,.68);backdrop-filter:blur(4px)}
.settings-shell{padding:22px}
.settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.settings-head .eyebrow{margin-bottom:5px}.settings-head h2{margin:0;font-size:1.45rem;letter-spacing:-.035em}
.settings-close{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border:1px solid var(--accent-border);border-radius:10px;background:var(--surface-row);color:var(--text);font-size:1.2rem;cursor:pointer}
.settings-close:hover,.settings-close:focus-visible{border-color:var(--lime);color:var(--lime)}
.settings-close:focus-visible,.theme-choice:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.theme-fieldset{margin:0;padding:0;border:0}.theme-fieldset legend{margin-bottom:10px;color:var(--mint);font:800 .68rem ui-monospace,monospace;letter-spacing:.11em}
.theme-options{display:grid;gap:8px}.theme-choice{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:50px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-row);color:var(--text);text-align:left;cursor:pointer}
.theme-choice:hover{border-color:var(--accent-border-strong)}.theme-choice[aria-pressed="true"]{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime);background:var(--accent-panel)}
.theme-swatch{width:18px;height:18px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 3px color-mix(in srgb,var(--swatch) 18%,transparent)}
.theme-choice strong{font-size:.86rem}.theme-choice small{color:var(--muted);font-size:.66rem}.theme-check{color:var(--lime);font-weight:900;opacity:0}.theme-choice[aria-pressed="true"] .theme-check{opacity:1}

@media(max-width:600px){.settings-sheet{width:100%;max-width:none;max-height:min(78dvh,620px);margin:auto 0 0;border-width:1px 0 0;border-radius:20px 20px 0 0}.settings-shell{padding:19px 16px max(20px,env(safe-area-inset-bottom))}.theme-choice{min-height:52px}}
@media(prefers-reduced-motion:reduce){body,header,.signalhunt-brand img{transition:none}}
