:root{
  --navy:#1a2744;
  --navy-l:#243352;
  --navy-ll:#2d3f62;
  --bg:#f5f7fa;
  --white:#fff;
  --card:#fff;
  --brd:#e5e9f0;
  --brd-l:#eef1f6;
  --tx:#1a2332;
  --tx2:#596578;
  --tx3:#94a3b8;
  --teal:#0d9488;
  --teal-d:rgba(13,148,136,.08);
  --blue:#2563eb;
  --blue-d:rgba(37,99,235,.08);
  --amber:#d97706;
  --amber-d:rgba(217,119,6,.08);
  --green:#059669;
  --green-d:rgba(5,150,105,.08);
  --red:#dc2626;
  --red-d:rgba(220,38,38,.08);
  --purple:#7c3aed;
  --purple-d:rgba(124,58,237,.08);
  --fn:'Manrope',sans-serif;
  --fd:'Source Serif 4',serif;
  --r:10px;
  --rs:6px;
  --tr:.2s ease;
  --sw:240px;
  --shadow-lg:0 20px 45px rgba(15,23,42,.12);
  --shadow-md:0 8px 24px rgba(15,23,42,.08);
  --panel:#ffffff;
  --topbar:#ffffff;
  --card-edge:rgba(148,163,184,.22);
  --card-shadow:0 10px 24px rgba(15,23,42,.06);
  --card-shadow-hover:0 14px 28px rgba(15,23,42,.09);
  --icon-surface-1:#ffffff;
  --icon-surface-2:#f3f6fb;
  --icon-edge:rgba(148,163,184,.32);
  --icon-shadow:0 8px 18px rgba(15,23,42,.12),0 0 0 1px rgba(255,255,255,.65) inset;
  --icon-shadow-hover:0 10px 20px rgba(15,23,42,.15),0 0 0 1px rgba(255,255,255,.78) inset;
}

:root[data-theme="dark"]{
  --navy:#0f172a;
  --navy-l:#18233b;
  --navy-ll:#22304e;
  --bg:#0b1220;
  --white:#111a2e;
  --card:#101a2f;
  --panel:#111b31;
  --topbar:#111a2e;
  --brd:#26344f;
  --brd-l:#1b2740;
  --tx:#e2e8f0;
  --tx2:#b5c2d8;
  --tx3:#8ea0bf;
  --teal-d:rgba(45,212,191,.16);
  --blue-d:rgba(96,165,250,.16);
  --amber-d:rgba(251,191,36,.16);
  --green-d:rgba(52,211,153,.16);
  --red-d:rgba(248,113,113,.16);
  --purple-d:rgba(167,139,250,.16);
  --shadow-lg:0 24px 60px rgba(2,8,23,.55);
  --shadow-md:0 10px 30px rgba(2,8,23,.35);
  --card-edge:rgba(148,163,184,.24);
  --card-shadow:0 14px 30px rgba(2,8,23,.3);
  --card-shadow-hover:0 18px 36px rgba(2,8,23,.38);
  --icon-surface-1:#1a2942;
  --icon-surface-2:#111d33;
  --icon-edge:rgba(148,163,184,.34);
  --icon-shadow:0 10px 22px rgba(2,8,23,.45),0 0 0 1px rgba(148,163,184,.1) inset;
  --icon-shadow-hover:0 14px 28px rgba(2,8,23,.5),0 0 0 1px rgba(148,163,184,.14) inset;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px}
body{font-family:var(--fn);background:var(--bg);color:var(--tx);min-height:100vh;display:flex}

.sb{width:var(--sw);min-height:100vh;background:var(--navy);display:flex;flex-direction:column;position:fixed;top:0;left:0;z-index:100}
.sb-br{padding:20px 18px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--navy-ll)}
.sb-br .mk{width:32px;height:32px;background:var(--teal);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:15px;flex-shrink:0}
.sb-br .wm{color:#e2e8f0;font-weight:700;font-size:.95rem;letter-spacing:-.3px}
.sb-br .wm span{color:var(--tx3);font-weight:400;font-size:.7rem;display:block;margin-top:1px}
.sb-nv{flex:1;padding:12px 10px;overflow-y:auto}
.sb-sec{margin-bottom:16px}
.sb-lbl{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:#5a6d8a;padding:0 8px 6px}
.sb-i{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:#94a3b8;font-size:.82rem;font-weight:500;cursor:pointer;transition:var(--tr)}
.sb-i:hover{background:var(--navy-l);color:#cbd5e1}
.sb-i.a{background:var(--navy-l);color:#f1f5f9;font-weight:600}
.sb-i .sb-ic{width:18px;height:18px;flex-shrink:0}
.sb-i .sb-txt{display:inline-flex;align-items:center;gap:6px}
.sb-i .sb-src{margin-left:auto}
.sb-i .sb-bg{margin-left:auto}
.sb-i .sb-src+.sb-bg{margin-left:6px}
.sb-bg{font-size:.58rem;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.3px}
.sb-bg.p1{background:rgba(220,38,38,.15);color:#f87171}
.sb-bg.p2{background:rgba(217,119,6,.15);color:#fbbf24}
.sb-bg.p3{background:rgba(5,150,105,.15);color:#6ee7b7}
.sb-src{font-size:.56rem;font-weight:600;padding:2px 5px;border-radius:3px;background:rgba(148,163,184,.12);color:#94a3b8;letter-spacing:.2px}
.sb-i.submodule{margin-left:14px;padding-left:16px;position:relative;font-size:.78rem;color:#8ca0bd}
.sb-i.submodule::before{content:'';position:absolute;left:8px;top:8px;bottom:8px;width:1px;background:rgba(148,163,184,.28)}
.sb-i.submodule:hover,.sb-i.submodule.a{color:#d4dcea}
.sb-ft{padding:14px 18px;border-top:1px solid var(--navy-ll)}
.sb-ft .dt{font-size:.68rem;color:var(--amber);background:var(--amber-d);padding:6px 10px;border-radius:6px;text-align:center;font-weight:600;display:block}

.mn{margin-left:var(--sw);flex:1;min-height:100vh;background:var(--bg)}
.tb{height:62px;background:var(--topbar);border-bottom:1px solid var(--brd);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 28px;position:sticky;top:0;z-index:50}
.bc{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.74rem;color:var(--tx2);letter-spacing:.15px}
.bc .bc-node{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:var(--brd-l);border:1px solid var(--brd);font-weight:600;color:var(--tx2)}
.bc .bc-node.active{background:var(--teal-d);border-color:rgba(13,148,136,.22);color:var(--teal)}
.bc .bc-link{text-decoration:none;cursor:pointer;transition:var(--tr)}
.bc .bc-link:hover{border-color:rgba(13,148,136,.3);color:var(--tx);background:rgba(13,148,136,.06)}
.bc .bc-link:focus-visible{outline:none;border-color:rgba(13,148,136,.45);box-shadow:0 0 0 2px rgba(13,148,136,.14)}
.bc .bc-sep{opacity:.45;font-weight:700}
.ct{padding:24px 28px 40px;max-width:1440px;background:var(--bg)}
.tb-actions{display:flex;align-items:center;gap:8px}

.btn{border:1px solid var(--brd);background:var(--white);color:var(--tx);font-size:.75rem;font-weight:600;padding:7px 12px;border-radius:7px;cursor:pointer;transition:var(--tr)}
.btn:hover{border-color:var(--teal);color:var(--teal)}
.btn.p{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.p:hover{background:#0f766e}
.settings-wrap{position:relative}
.settings-trigger{width:38px;height:38px;border-radius:12px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-color:var(--icon-edge);background:linear-gradient(145deg,var(--icon-surface-1),var(--icon-surface-2));box-shadow:var(--icon-shadow);color:var(--tx)}
.settings-trigger .shell-icon{width:18px;height:18px;stroke-width:1.85;display:block}
.settings-trigger:hover{border-color:rgba(13,148,136,.24);box-shadow:var(--icon-shadow-hover);transform:translateY(-1px);color:var(--tx)}
.settings-trigger:focus-visible{outline:none;border-color:rgba(13,148,136,.4);box-shadow:0 0 0 3px rgba(13,148,136,.14),var(--icon-shadow-hover)}
.settings-trigger:active{transform:translateY(0);box-shadow:var(--icon-shadow)}
.settings-panel{position:absolute;right:0;top:calc(100% + 10px);width:220px;background:var(--panel);border:1px solid var(--brd);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px;display:none}
.settings-wrap.open .settings-panel{display:block}
.settings-heading{font-size:.66rem;font-weight:700;letter-spacing:.45px;color:var(--tx3);text-transform:uppercase;padding:4px 6px 8px}
.theme-option{width:100%;border:1px solid transparent;background:transparent;color:var(--tx);display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;font-size:.8rem;cursor:pointer;transition:var(--tr)}
.theme-option:hover,.theme-option:focus-visible{outline:none;background:var(--teal-d);border-color:rgba(13,148,136,.25)}
.theme-option.active{background:var(--teal-d);color:var(--teal);font-weight:700}
.theme-option .check{opacity:0;transform:scale(.85);transition:var(--tr)}
.theme-option.active .check{opacity:1;transform:scale(1)}

.cd{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);padding:16px;box-shadow:var(--card-shadow);position:relative;overflow:hidden;isolation:isolate;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.cd:hover{box-shadow:var(--card-shadow-hover)}
a.cd:hover,.cd[onclick]:hover,.cd.clickable:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover);border-color:rgba(13,148,136,.22)}
.cd .lb{font-size:.64rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.7px;font-weight:600;margin-bottom:6px}
.cd .vl{font-family:var(--fd);font-size:1.45rem;font-weight:700;letter-spacing:-.5px}

.mn .panel,.mn .cx,.mn .nr,.mn .mc,.mn .kw,.mn .ekc,.mn .ic,.mn .wf-card,.mn .em-wrap,.mn .map-box,.mn .trend-panel,.settings-panel{border-color:var(--card-edge);box-shadow:var(--card-shadow);position:relative;isolation:isolate}

.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:.66rem;font-weight:700;letter-spacing:.4px;color:var(--tx3);text-transform:uppercase}
.field input,.field select,.field textarea{border:1px solid var(--brd);border-radius:7px;padding:8px 9px;font-family:var(--fn);font-size:.82rem;background:var(--white)}
.field textarea{min-height:84px;resize:vertical}

.tw{overflow:auto;background:var(--card)}
.tbl{width:100%;border-collapse:collapse;background:var(--card)}
.tbl thead,.tbl tbody,.tbl tr{background:var(--card)}
.tbl th,.tbl td{background:inherit}
.tbl th{text-align:left;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.45px;color:var(--tx3);padding:9px;border-bottom:2px solid var(--brd)}
.tbl td{padding:9px;font-size:.8rem;color:var(--tx2);border-bottom:1px solid var(--brd-l);vertical-align:top}

@media(prefers-reduced-motion:reduce){.cd,.cd:hover{transition:none;transform:none}}

.fg{display:inline-block;width:20px;height:14px;vertical-align:middle;margin-right:4px;border-radius:2px;object-fit:cover}

@media(max-width:768px){
  .sb{width:60px}
  .sb .wm,.sb-lbl,.sb-i span{display:none}
  .sb-i{justify-content:center}
  .mn{margin-left:60px}
  .ct{padding:16px}
  .tb{padding:0 16px}
}
