/* xopen unified design system (auto light/dark) */
:root{
  --bg:#f6f8fc;--bg-soft:#eef2fb;--card:#ffffff;--line:#d7def0;--text:#0f172a;--muted:#475569;
  --primary:#3b82f6;--primary-2:#7c3aed;--ok:#16a34a;--danger:#e11d48;
  --radius-sm:10px;--radius-md:14px;--radius-lg:18px;
  --shadow:0 12px 30px rgba(15,23,42,.08);
}
:root[data-theme="dark"]{
  --bg:#07090f;--bg-soft:#0d1320;--card:#101a2d;--line:#1d2840;--text:#eaf1ff;--muted:#9fb0cc;
  --primary:#4da3ff;--primary-2:#7c5cff;--ok:#32d1a0;--danger:#ff6b7a;
  --shadow:0 14px 34px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{background:
  radial-gradient(900px 520px at 92% -10%, color-mix(in oklab,var(--primary-2) 20%, transparent), transparent 60%),
  radial-gradient(850px 500px at -12% 18%, color-mix(in oklab,var(--primary) 20%, transparent), transparent 60%),
  var(--bg);
  color:var(--text);
}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;transition:background .25s,color .25s}
a{color:inherit}
.card,.tile,.stat-card,.map-card,.countries-list,.chart-card,.list-card,.metric-section,.hero-card,.container,.login-container{
  background:linear-gradient(180deg,color-mix(in oklab,var(--card) 92%, transparent),color-mix(in oklab,var(--bg-soft) 85%, transparent));
  border:1px solid var(--line)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow);
}
input,select,textarea,button{font-family:inherit}
input[type="text"],input[type="password"],input[type="file"],select,textarea{
  border:1px solid var(--line)!important;background:color-mix(in oklab,var(--bg-soft) 90%, transparent)!important;color:var(--text)!important;border-radius:var(--radius-md)!important
}
button,.btn{border-radius:12px!important}
.btn,.login-container button,#refresh-btn,.copy-btn,.format-select,.fmtbtn{
  background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;color:#fff!important;border:none!important
}
.btn.ghost,#logout-btn{background:color-mix(in oklab,var(--bg-soft) 95%, transparent)!important;color:var(--text)!important;border:1px solid var(--line)!important}
.muted,.sub,.k,.stat-label,.login-subtitle,.visit-row .location,.visit-row .time{color:var(--muted)!important}
.tag,.pill,.chip,.back-link,.device{border:1px solid var(--line)!important;background:color-mix(in oklab,var(--bg-soft) 92%, transparent)!important;color:var(--muted)!important}
.chip.active{background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;color:#fff!important;border-color:transparent!important}
table th,table td,.table-header,.visit-row{border-color:var(--line)!important}
#xopen-theme-toggle{position:fixed;right:16px;top:16px;z-index:99999;padding:9px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;box-shadow:var(--shadow);font-size:13px}


/* theme-aware brand logo */
.brand img{filter:none!important;opacity:.98}
:root[data-theme="dark"] .brand img{filter:brightness(0) invert(1)!important}


.top-panel{position:fixed;right:14px;top:14px;z-index:100000;display:flex;gap:8px;align-items:center}
.top-panel .panel-link,#xopen-theme-toggle{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:8px 11px;border-radius:12px;text-decoration:none;font-size:13px;line-height:1;display:inline-flex;align-items:center}
.top-panel #xopen-theme-toggle{position:static!important;box-shadow:none;padding:8px 10px}
