:root{color-scheme:dark;--bg:#050914;--card:#141c2e;--text:#e8eefc;--muted:#9aa8c7;--accent:#f5c542;--border:#24304a}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
#globe{position:fixed;inset:0;touch-action:none}
#topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;padding-top:max(.6rem,env(safe-area-inset-top));z-index:10;pointer-events:none}
#topbar>*{pointer-events:auto}
#topbar h1{margin:0;font-size:1.05rem;letter-spacing:.02em;color:var(--accent);white-space:nowrap}
.home{color:var(--text);text-decoration:none;background:rgba(20,28,46,.85);border:1px solid var(--border);border-radius:.6rem;padding:.35rem .6rem}
.home:hover{border-color:var(--accent)}
#search-wrap{position:relative;margin-left:auto;width:min(18rem,55vw)}
#search{width:100%;padding:.55rem .8rem;border-radius:.6rem;border:1px solid var(--border);background:rgba(20,28,46,.9);color:var(--text);font-size:16px;outline:none}
#search:focus{border-color:var(--accent)}
#results{list-style:none;margin:.25rem 0 0;padding:.25rem;position:absolute;left:0;right:0;max-height:50vh;overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:.6rem;box-shadow:0 12px 30px rgba(0,0,0,.5)}
#results li{padding:.5rem .6rem;border-radius:.4rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}
#results li.active,#results li:hover{background:#1d2a45}
#results .dot{margin-left:auto;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}
#hint,#legend{position:fixed;left:.8rem;z-index:5;font-size:.78rem;color:var(--muted);background:rgba(10,16,32,.7);padding:.3rem .55rem;border-radius:.5rem;pointer-events:none}
#hint{bottom:2.6rem}
#legend{bottom:.8rem;bottom:max(.8rem,env(safe-area-inset-bottom))}
.swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:.2rem;background:rgba(245,197,66,.6);vertical-align:-1px;margin-right:.2rem}
#panel{position:fixed;z-index:20;top:0;right:0;bottom:0;width:min(25rem,100vw);background:rgba(20,28,46,.96);border-left:1px solid var(--border);padding:3.6rem 1.2rem 1.5rem;overflow-y:auto;transform:translateX(105%);transition:transform .3s ease;box-shadow:-12px 0 40px rgba(0,0,0,.45);backdrop-filter:blur(8px)}
#panel.open{transform:none}
#close{position:absolute;top:.6rem;right:.7rem;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--border);background:#0f1628;color:var(--text);font-size:1.5rem;line-height:1;cursor:pointer}
#close:hover{border-color:var(--accent)}
.panel-head{display:flex;align-items:center;gap:.8rem}
#flag{font-size:2.6rem;line-height:1}
#c-name{margin:0;font-size:1.4rem}
.badge{display:inline-block;margin-top:.25rem;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#1a1300;background:var(--accent);border-radius:.4rem;padding:.1rem .45rem}
.muted{color:var(--muted);font-size:.85rem}
h3{margin:1.2rem 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
#facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem .9rem;font-size:.92rem}
#facts dt{color:var(--muted)}
#facts dd{margin:0;word-break:break-word}
#headlines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
#headlines li{background:#0f1628;border:1px solid var(--border);border-radius:.6rem;padding:.65rem .75rem}
#headlines a{color:var(--text);font-weight:600;text-decoration:none;line-height:1.3}
#headlines a:hover{color:var(--accent);text-decoration:underline}
#headlines .meta{display:block;margin-top:.25rem;font-size:.78rem;color:var(--muted)}
#headlines p{margin:.35rem 0 0;font-size:.85rem;color:#c3cde6}
#headlines .empty{color:var(--muted);text-align:center;border-style:dashed}
#loading,#error{position:fixed;inset:0;z-index:50;display:grid;place-items:center;text-align:center;background:var(--bg);padding:1.5rem}
#loading[hidden],#error[hidden]{display:none}
#error a{color:var(--accent)}
#error p{color:var(--muted);max-width:26rem;line-height:1.5}
.spinner{width:2.5rem;height:2.5rem;margin:0 auto 1rem;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tip{font:600 13px system-ui,sans-serif;padding:.2rem .5rem;background:rgba(10,16,32,.9);border:1px solid #24304a;border-radius:.4rem;color:#e8eefc}
@media (max-width:640px){
  #topbar h1{display:none}
  #search-wrap{width:auto;flex:1}
  #panel{top:auto;left:0;right:0;width:100%;height:68vh;max-height:calc(100dvh - 4rem);border-left:0;border-top:1px solid var(--border);border-radius:1rem 1rem 0 0;transform:translateY(105%);padding-top:1.2rem;box-shadow:0 -12px 40px rgba(0,0,0,.5)}
  #panel.open{transform:none}
  #hint{display:none}
}
@media (prefers-reduced-motion:reduce){#panel{transition:none}}
.badge[hidden]{display:none}
