:root{
  --bg:#0f0e13; --panel:#17151c; --card:#1d1a23; --line:#2b2733; --chipbg:#262230;
  --text:#f4f1e8; --muted:#a8a294; --accent:#d4af37; --good:#66c79a; --bad:#e2725b;
  --glow:#d4af371f; --accent-text:#201604;
}
:root[data-theme="light"]{
  --bg:#f7f2e9; --panel:#fffdf6; --card:#fffaf0; --line:#e6ddc9; --chipbg:#efe7d6;
  --text:#2e281e; --muted:#7a7160; --accent:#a17c1f; --good:#1d7a4f; --bad:#b3402e;
  --glow:#d4af3722; --accent-text:#fffaf0;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;font-family:"Segoe UI",Tahoma,system-ui,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent)}
.hero{position:relative;padding:26px 16px 6px;text-align:center;background:radial-gradient(1100px 380px at 50% -220px,var(--glow),transparent),var(--bg)}
h1{margin:0;font-size:1.8rem}
.hero p{color:var(--muted);margin:.4rem 0 1rem}
.controls{position:absolute;top:14px;inset-inline-end:16px;display:flex;gap:8px}
.ctrl{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:6px 14px;cursor:pointer;font-family:inherit;font-size:.9rem}
.stats{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 18px;min-width:104px}
.stat span{display:block;font-size:1.12rem;font-weight:700;color:var(--accent)}
.stat label{font-size:.72rem;color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 0}
.tab{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:8px 20px;cursor:pointer;font-size:.95rem;font-family:inherit}
.tab.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:700}
main{max-width:1200px;margin:0 auto;padding:14px 16px 40px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px;position:sticky;top:0;background:var(--bg);padding:10px 0;z-index:5}
#q,#qfm,#eibi-q{flex:1 1 240px}
input,select,button.btn,a.btn{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:9px 12px;font-size:.95rem;font-family:inherit;text-decoration:none}
input:focus,select:focus{outline:1px solid var(--accent)}
label.check{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:.85rem;white-space:nowrap}
.count{color:var(--muted);font-size:.85rem;margin-inline-start:auto}
.hint{color:var(--muted);font-size:.82rem;margin:.2rem 0 14px}
.quick-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.qchip{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 16px;cursor:pointer;font-size:.85rem;font-family:inherit}
.qchip.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.card.off{opacity:.55}
.card-head{display:flex;gap:8px;align-items:flex-start}
.card h3{margin:0;font-size:.95rem;line-height:1.4;flex:1;word-break:break-word;font-weight:600}
.fav{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:0 2px;flex:none;line-height:1.4}
.dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:7px}
.dot.on{background:var(--good);box-shadow:0 0 8px var(--good)}
.dot.off{background:var(--bad)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:.72rem;background:var(--chipbg);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.chip.gps{color:var(--accent)}
.chip.tag{color:#fbbf24}
.chip.official{color:var(--good);border-color:var(--good)}
.meta{display:flex;gap:14px;color:var(--muted);font-size:.82rem;flex-wrap:wrap}
.meta.antenna{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.snr{color:var(--good);font-weight:700}
.open{margin-top:auto;align-self:flex-start;text-decoration:none;background:var(--accent);color:var(--accent-text);font-weight:700;border-radius:9px;padding:7px 16px;font-size:.88rem;border:none;cursor:pointer;font-family:inherit}
.more-wrap{grid-column:1/-1;text-align:center;padding:10px}
.space-panel,.eibi-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.space-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.space-head strong{color:var(--accent);font-size:.95rem}
.space-upd{color:var(--muted);font-size:.72rem}
.space-values{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.space-cond{color:var(--muted);font-size:.85rem}
.eibi-panel .hint{margin:0 0 8px}
.eibi-list{max-height:280px;overflow:auto;display:flex;flex-direction:column}
.eibi-row{display:flex;gap:12px;padding:6px 2px;border-bottom:1px solid var(--line);font-size:.85rem;align-items:baseline}
.eibi-time{color:var(--accent);min-width:128px;font-weight:600}
.eibi-name{color:var(--muted)}
.player{position:fixed;bottom:0;right:0;left:0;background:var(--panel);border-top:1px solid var(--line);padding:10px 16px;display:flex;gap:12px;align-items:center;z-index:20}
.player-body{flex:1}
#audio{width:100%;max-width:560px}
#player-close{background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:8px;width:34px;height:34px;cursor:pointer}
.modal{position:fixed;inset:0;background:rgba(2,8,20,.92);z-index:30;display:flex;flex-direction:column;padding:10px;gap:8px}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px}
.modal-head strong{color:var(--accent);font-size:1rem}
.modal-actions{display:flex;gap:8px;align-items:center}
#sdr-frame{flex:1;width:100%;border:1px solid var(--line);border-radius:10px;background:#000}
.empty{color:var(--muted);text-align:center;padding:40px 12px;grid-column:1/-1}
.toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);background:var(--chipbg);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 20px;font-size:.9rem;z-index:40;box-shadow:0 6px 22px rgba(0,0,0,.35)}
footer{color:var(--muted);text-align:center;font-size:.8rem;padding:18px;border-top:1px solid var(--line);margin-top:20px}
.btn.ghost{background:transparent;color:var(--muted)}
.visitor-box{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:10px}
.visitor-title{font-weight:600}
.visitor-metric{display:flex;align-items:center;gap:9px;justify-content:center}
.visitor-metric>div{color:var(--accent);font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:32px}
.visitor-from{color:var(--accent);font-weight:600}
.src-line{margin:.25rem 0}
/* player external-open link (HLS stations) */
#player-ext { flex: none; font-size: 13px; text-decoration: none; }

.filter-field{display:flex;flex:1 1 190px;min-width:0;gap:6px;flex-direction:column}
.filter-field input,.filter-field select{width:100%;min-width:0}
#fm-country-search,#fm-language-search,#fm-tag-search{font-size:.86rem;padding:7px 10px}
.visitor-box{min-height:44px;flex-direction:column;gap:6px}
.visitor-note{font-size:.72rem;color:var(--muted)}
#visitor-counter{display:inline-flex;align-items:center;justify-content:center;min-width:100px;min-height:32px;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}

/* Radio Atlas search UX */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fm-toolbar{display:flex;flex-direction:column;gap:12px;margin:0 0 14px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.fm-search-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:8px;align-items:center}
.fm-search-row #qfm{width:100%;min-width:0;min-height:44px;background:var(--card);border-color:var(--line)}
.fm-search-row .btn{min-height:44px;white-space:nowrap;cursor:pointer}
.fm-search-row .btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:700}
.fm-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fm-filter-grid .filter-field{display:grid;grid-template-columns:1fr;gap:6px;min-width:0}
.fm-filter-grid .filter-field label{font-size:.78rem;color:var(--muted);font-weight:650}
.fm-filter-grid .filter-field input,.fm-filter-grid .filter-field select{width:100%;min-width:0;min-height:40px;background:var(--card)}
.fm-results-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.fm-results-row .count{margin:0;font-weight:700;color:var(--accent)}
.fm-search-note{font-size:.75rem;color:var(--muted)}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:720px){
  .fm-search-row{grid-template-columns:1fr 1fr}
  .fm-search-row #qfm{grid-column:1/-1}
  .fm-search-row .btn{width:100%}
  .fm-filter-grid{grid-template-columns:1fr}
  .fm-toolbar{padding:10px;border-radius:12px}
  .fm-search-note{width:100%}
}
@media(min-width:721px) and (max-width:980px){
  .fm-search-row{grid-template-columns:minmax(180px,1fr) auto}
  .fm-search-row #fm-clear-btn,.fm-search-row #fm-random-btn{grid-column:2}
  .fm-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* stream health badges + kiwi ws audio + visitor badge fallback */
.chip.ok{color:var(--good);border-color:var(--good)}
.chip.dead{color:var(--bad);border-color:var(--bad)}
.open.kiwi-ws{margin-top:8px;background:var(--panel);color:var(--accent);border:1px solid var(--accent);font-weight:600}
.kiwi-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:2px 6px}
.kiwi-status{color:var(--accent);font-size:.9rem;font-weight:600}
#kiwi-audio{width:calc(100% - 24px);margin:0 12px 12px}
#visitor-counter img{display:inline-block;vertical-align:middle}
#visitor-counter,#visitor-online{min-height:28px}

/* Egypt tab (ma-* classes are shared with the Arabic tab) */
.ma-group{margin:20px 0 10px;font-size:1.05rem;font-weight:700;color:var(--accent)}
#eg-count{color:var(--accent);font-weight:700;margin:0 0 10px}
.ma-hint{margin:0 0 12px}

.eibi-panel h2{font-size:1rem;margin:0}

/* band condition alerts */
#space-alert-btn{font-size:.9rem;padding:4px 10px}
#space-alert-btn.active{border-color:var(--accent);color:var(--accent)}

/* station sharing */
.share{background:none;border:none;cursor:pointer;font-size:.95rem;padding:0 2px;flex:none;line-height:1.4}
.report{background:none;border:none;cursor:pointer;font-size:.95rem;padding:0 2px;flex:none;line-height:1.4;opacity:.85}
.report:hover{opacity:1}

/* WSPR observed propagation + WebSDR/OpenWebRX panels */
.wspr-panel h2{font-size:1rem;margin:0}
.wspr-bands{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.chip.wspr-band{font-size:.8rem}
.wsdr-panel{margin-top:22px}
.wsdr-panel h2{font-size:1rem;margin:0}


/* ================= Receiver world map ================= */
#map-layers{margin:.4rem 0 .8rem;flex-wrap:wrap;gap:.4rem}
#map-layers button{cursor:pointer}
#map-layers button.map-layer{opacity:.55}
#map-layers button.map-layer.active{opacity:1}
.map-wrap{overflow-x:auto;border:1px solid var(--border,#2a3a52);border-radius:12px;background:#0f0e13}
.map-wrap svg{display:block;min-width:560px;width:100%;height:auto}
.map-sea{fill:#0d1830}
.map-land{fill:#22344e;stroke:#31435e;stroke-width:.4}
.map-dot{fill:#4ade80;cursor:pointer}
.map-dot-websdr{fill:#60a5fa}
.map-dot-owrx{fill:#fbbf24}
.map-dot-satnogs{fill:#c084fc}
.map-dot-aircraft{fill:#f87171}
.map-dot:hover{stroke:#fff;stroke-width:1}
[data-theme="light"] .map-wrap{background:#d8e4f2}
[data-theme="light"] .map-sea{fill:#c3d5ec}
[data-theme="light"] .map-land{fill:#9fb3cf;stroke:#7d92b3}
[data-theme="light"] .map-dot:hover{stroke:#111}

/* Mobile: 7 tabs wrap into rows; map touch targets bigger */
@media(max-width:720px){
  .tabs{gap:6px;margin:10px 0 0}
  .tab{padding:7px 12px;font-size:.85rem}
  .map-wrap svg{min-width:480px}
  .map-dot{r:3}
}

.map-night{fill:rgba(4,9,24,.45);pointer-events:none}
.map-sun{fill:#ffd54d;stroke:#c9971c;stroke-width:.4;pointer-events:none}
#map-clock{opacity:.75}
#map-aircraft-count{opacity:.75}
[data-theme="light"] .map-night{fill:rgba(60,80,130,.22)}

/* ================= Luxury redesign pass (ink + champagne gold) ================= */
html{scrollbar-color:#3a3345 transparent}
body{font-family:'Cairo','Segoe UI',Tahoma,system-ui,sans-serif;letter-spacing:.2px;-webkit-font-smoothing:antialiased}
::selection{background:rgba(212,175,55,.35)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#3a3345;border-radius:999px}
::-webkit-scrollbar-track{background:transparent}
:root[data-theme="light"] ::-webkit-scrollbar-thumb{background:#d9cfb8}
h1{letter-spacing:.4px;font-weight:800}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  h1{background:linear-gradient(120deg,#f7e8b8,#d4af37 58%,#a8842c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .stat span{background:linear-gradient(120deg,#f0d98c,#d4af37);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  :root[data-theme="light"] h1{background:linear-gradient(120deg,#8a6a1c,#a17c1f 58%,#6e5312);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
}
.hero{background:radial-gradient(900px 340px at 50% -190px,rgba(212,175,55,.16),transparent 70%),var(--bg);border-bottom:1px solid rgba(212,175,55,.14);padding-bottom:14px}
.hero p{letter-spacing:.4px}
.ctrl{transition:border-color .2s,color .2s}
.ctrl:hover{border-color:var(--accent);color:var(--accent)}
.stat{border-radius:14px;border-color:rgba(212,175,55,.18);background:linear-gradient(165deg,rgba(212,175,55,.05),transparent 55%),var(--panel);box-shadow:0 10px 26px rgba(0,0,0,.35)}
.stat label{letter-spacing:.5px}
:root[data-theme="light"] .stat{box-shadow:0 8px 20px rgba(90,70,20,.12)}
.tabs{gap:7px}
.tab{background:transparent;border-color:transparent;color:var(--muted);font-weight:600;transition:color .18s,background .18s,box-shadow .18s}
.tab:hover{color:var(--text);background:rgba(212,175,55,.09)}
.tab.active{background:linear-gradient(120deg,#e7c663,#c49a2e);color:#1c1405;border-color:transparent;box-shadow:0 6px 20px rgba(212,175,55,.28)}
:root[data-theme="light"] .tab.active{color:#fffaf0;box-shadow:0 6px 18px rgba(161,124,31,.30)}
.toolbar{background:var(--bg);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(212,175,55,.10)}
input,select,button.btn,a.btn{border-radius:12px;background:var(--card);transition:border-color .18s,box-shadow .18s}
input:hover,select:hover{border-color:#4a4157}
:root[data-theme="light"] input:hover,:root[data-theme="light"] select:hover{border-color:#cfc2a4}
.qchip{transition:color .18s,background .18s,border-color .18s}
.qchip:hover{color:var(--text);border-color:rgba(212,175,55,.4)}
.qchip.active{background:linear-gradient(120deg,#e7c663,#c49a2e);color:#1c1405;border-color:transparent}
.chip{border-color:transparent;background:var(--chipbg)}
.chip.gps{border-color:rgba(212,175,55,.35)}
.chip.official{border-color:rgba(102,199,154,.45)}
.grid{gap:14px}
.card{border-radius:16px;border-color:rgba(212,175,55,.10);background:linear-gradient(170deg,rgba(255,255,255,.02),transparent 45%),var(--card);transition:transform .18s,box-shadow .18s,border-color .18s}
.card:hover{transform:translateY(-2px);border-color:rgba(212,175,55,.35);box-shadow:0 14px 34px rgba(0,0,0,.42)}
:root[data-theme="light"] .card{border-color:rgba(161,124,31,.14)}
:root[data-theme="light"] .card:hover{border-color:rgba(161,124,31,.4);box-shadow:0 14px 30px rgba(90,70,20,.16)}
.open{background:linear-gradient(120deg,#e7c663,#c49a2e);box-shadow:0 4px 16px rgba(212,175,55,.25);transition:box-shadow .18s,transform .18s}
.open:hover{box-shadow:0 8px 22px rgba(212,175,55,.4);transform:translateY(-1px)}
.space-panel,.eibi-panel,.fm-toolbar{border-radius:16px;border-color:rgba(212,175,55,.14);box-shadow:0 8px 26px rgba(0,0,0,.30)}
:root[data-theme="light"] .space-panel,:root[data-theme="light"] .eibi-panel,:root[data-theme="light"] .fm-toolbar{box-shadow:0 8px 22px rgba(90,70,20,.10)}
.player{background:var(--panel);background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(212,175,55,.22);box-shadow:0 -10px 34px rgba(0,0,0,.45)}
.modal{background:rgba(12,10,16,.94)}
.toast{background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:rgba(212,175,55,.35);box-shadow:0 12px 34px rgba(0,0,0,.5);border-radius:12px}
footer{border-top:1px solid rgba(212,175,55,.14);letter-spacing:.3px}
.eibi-row{border-bottom-color:rgba(212,175,55,.08)}
.map-wrap{border-color:rgba(212,175,55,.18);box-shadow:inset 0 0 60px rgba(0,0,0,.5)}
.map-sea{fill:#131019}
.map-land{fill:#292235;stroke:#3b3249}
[data-theme="light"] .map-wrap{background:#ece4d3}
[data-theme="light"] .map-sea{fill:#e7dfcd}
[data-theme="light"] .map-land{fill:#d6cbaf;stroke:#bfb091}
.player .btn.ghost:hover,#player-close:hover{color:var(--accent);border-color:rgba(212,175,55,.4)}

/* ================= Player UX pack: history, sleep/alarm, palette, EQ ================= */
.history-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.history-label{color:var(--muted);font-size:.8rem;font-weight:700}
.history-chip{cursor:pointer;font-family:inherit;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .18s,border-color .18s}
.history-chip:hover{color:var(--accent);border-color:rgba(212,175,55,.45)}
#player-vis{flex:none;border-radius:8px;background:rgba(0,0,0,.25);opacity:.9}
.player-tool{flex:none;background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:6px 10px;cursor:pointer;font-family:inherit;font-size:.85rem;min-width:44px;text-align:center;transition:color .18s,border-color .18s,box-shadow .18s}
.player-tool:hover{color:var(--accent);border-color:rgba(212,175,55,.4)}
.player-tool.active{color:var(--accent);border-color:var(--accent);box-shadow:0 0 12px rgba(212,175,55,.25)}
.modal-box{align-items:center;justify-content:center}
.box-card{background:var(--panel);border:1px solid rgba(212,175,55,.25);border-radius:16px;padding:16px;max-width:460px;width:min(92vw,460px);display:flex;flex-direction:column;gap:10px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.box-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.box-head strong{color:var(--accent);font-size:1rem}
.box-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.alarm-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.alarm-row input[type="time"]{font-size:1.1rem}
.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:700}
#palette-q{width:100%}
.pal-list{max-height:46vh;overflow:auto;display:flex;flex-direction:column;gap:4px}
.pal-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:9px 12px;cursor:pointer;font-family:inherit;font-size:.9rem;text-align:start;width:100%}
.pal-item:hover{border-color:rgba(212,175,55,.45);color:var(--accent)}
.pal-kind{flex:none;font-size:.72rem;color:var(--accent);background:var(--chipbg);border-radius:999px;padding:2px 8px}
.pal-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-sub{color:var(--muted);font-size:.75rem;max-width:35%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-hint{text-align:center;margin:0}
@media(max-width:720px){
  #player-vis{display:none}
  .player-tool{padding:5px 8px;font-size:.78rem;min-width:38px}
}

/* Featured home row (most famous stations) */
.featured-title{font-size:1rem;margin:14px 0 8px;color:var(--accent)}
.featured-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:4px}


/* Professional player pass */
#vol-slider{width:90px;accent-color:var(--accent);cursor:pointer;padding:0;border:1px solid var(--line);background:var(--card)}
.player-status{font-size:.75rem;color:var(--muted)}
.player-status.dead{color:var(--bad)}
.player-meta{font-size:.8rem;color:var(--muted)}
@media(max-width:720px){
  #vol-slider{width:64px}
}
