:root{
  --bg:#ffffff;
  --panel:#ffffff;
  --surface:#fbfdff;
  --muted:#6b7280;
  --text:#0f172a;
  --accent-a:#2563eb;
  --accent-b:#0ea5ff;
  --accent-grad:linear-gradient(135deg,var(--accent-a),var(--accent-b));
  --glass:rgba(255,255,255,0.6);
  --border:rgba(15,23,42,0.08);
  --shadow:0 10px 36px rgba(16,24,40,0.08);
  --radius:12px;
  --mono:"SFMono-Regular", Consolas, Menlo, monospace;
}
[data-theme="dark"], .dark, body.dark{
  --bg:#07070b;
  --panel:#0f1116;
  --surface:#0b0c11;
  --muted:#98a0b3;
  --text:#f6f7fb;
  --accent-a:#ff3cac;
  --accent-b:#2b86c5;
  --accent-grad:linear-gradient(135deg,var(--accent-b),#7b61ff,var(--accent-a));
  --glass:rgba(255,255,255,0.03);
  --border:rgba(255,255,255,0.04);
  --shadow:0 18px 48px rgba(2,6,23,0.6);
}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html,body{height:100%}
body{
  margin:0;
  min-height:100%;
  background:
    radial-gradient(800px 400px at 10% 10%, rgba(37,99,235,0.06), transparent 6%),
    radial-gradient(700px 300px at 92% 80%, rgba(14,165,255,0.04), transparent 6%),
    var(--bg);
  color:var(--text);
  font-family:Inter, Poppins, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  line-height:1.5;
  transition:background .35s ease,color .25s ease;
  padding-bottom:96px;
}
a{color:var(--accent-a);text-decoration:none}
a:hover{text-decoration:underline}
header{
  position:fixed;top:0;left:0;right:0;height:72px;display:flex;align-items:center;padding:12px 20px;
  gap:14px;background:linear-gradient(180deg,rgba(255,255,255,0.6),rgba(255,255,255,0.15));backdrop-filter:blur(6px);border-bottom:1px solid var(--border);z-index:1400;
}
[data-theme="dark"] header{background:linear-gradient(180deg,rgba(11,11,16,0.85),rgba(11,11,16,0.65));border-bottom:1px solid rgba(255,255,255,0.04)}
.logo{font-weight:800;font-size:1.05rem;display:flex;align-items:center;gap:8px}
.logo .site-expander{font-weight:500;font-size:.85rem;color:var(--muted);display:inline-block}
.controls{margin-left:auto;display:flex;align-items:center;gap:10px}
.hamburger{
  width:48px;height:48px;border-radius:10px;display:inline-grid;place-items:center;cursor:pointer;
  background:linear-gradient(180deg,rgba(255,255,255,0.6),rgba(255,255,255,0.3));border:1px solid var(--border);box-shadow:var(--shadow);font-size:20px;color:var(--text)
}
[data-theme="dark"] .hamburger{background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01))}
#darkModeToggle{width:44px;height:44px;border-radius:10px;border:1px solid var(--border);display:inline-grid;place-items:center;background:transparent;cursor:pointer;font-size:18px}
.menu-panel{
  position:fixed;top:0;right:-420px;bottom:0;width:420px;background:var(--panel);box-shadow: -12px 0 48px rgba(2,6,23,0.12);transition:right .28s cubic-bezier(.2,.9,.2,1);z-index:1500;padding:18px;overflow:auto;
  border-left:1px solid var(--border);
}
.menu-panel.open{right:0}
@media(max-width:820px){ .menu-panel{width:100%;right:-100%;} .menu-panel.open{right:0}}
.menu-panel .panel-top{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:12px}
.menu-panel .search{display:flex;gap:8px}
.menu-panel input[type="search"]{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);width:100%;font-weight:600}
.menu-panel .toc{margin-top:12px}
.menu-panel .toc h4{margin:8px 0;font-size:0.95rem;color:var(--muted);font-weight:700}
.menu-panel .toc a{display:block;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none}
.menu-panel .toc a:hover{background:linear-gradient(90deg,rgba(2,132,199,0.06),transparent)}
.menu-panel .guides{margin-top:18px}
.menu-panel .guides a{display:block;padding:8px 10px;border-radius:8px;color:var(--text);font-weight:700}
.menu-panel .close-btn{width:40px;height:40px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:18px}

main{
  max-width:980px;margin:104px auto 40px;padding:28px;
}
.title-filter-container{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.title-filter-container h1{font-size:1.8rem;margin:0;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
#filterBtn{background:var(--panel);border:1px solid var(--border);padding:8px 12px;border-radius:10px;cursor:pointer;font-weight:800;box-shadow:0 8px 24px rgba(2,6,23,0.04)}
#filterDropdown{position:absolute;top:56px;left:0;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px;min-width:220px;display:none;box-shadow:var(--shadow);z-index:900}
.filterOption{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:8px;background:transparent;color:var(--text);font-weight:700;cursor:pointer}
.filterOption:hover{background:linear-gradient(90deg,rgba(2,132,199,0.06),transparent)}
.filterOption.active{background:linear-gradient(90deg,rgba(2,132,199,0.1),rgba(2,132,199,0.04));box-shadow:inset 0 0 0 2px rgba(2,132,199,0.06)}

table{width:100%;border-collapse:collapse;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,0.6),rgba(255,255,255,0.4));border:1px solid var(--border);box-shadow:0 10px 36px rgba(2,6,23,0.04)}
[data-theme="dark"] table{background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01))}
table caption{text-align:left;padding:12px 18px;font-weight:900;color:#fff;background:var(--accent-grad);font-size:1rem}
th,td{padding:14px 16px;border-bottom:1px solid var(--border);color:var(--text);font-weight:600;text-align:left;vertical-align:middle}
tr:last-child td{border-bottom:none}
@media(max-width:720px){ table{display:block;overflow:auto;white-space:nowrap} }

.caution-box{border-radius:10px;padding:12px 16px;border:2px solid #f59e0b;background:linear-gradient(180deg,#fff8e1,#fffaf0);color:#8a6d1d;font-weight:700;margin:12px 0;max-width:900px}
[data-theme="dark"] .caution-box{background:linear-gradient(180deg,rgba(255,152,36,0.06),rgba(255,152,36,0.02));color:#ffd7a6;border-color:rgba(255,152,36,0.35)}

main h2{display:block;position:relative;padding:12px 14px;margin:20px 0 8px;font-size:1.15rem;font-weight:700;cursor:pointer;color:var(--text);border:2px solid var(--border);border-radius:10px;background:var(--panel);transition:background .16s ease,border .12s ease}
main h2:hover{background:var(--surface);border-color:var(--accent-b)}
main h2::after{content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);transition:transform .28s ease;opacity:.95;font-size:.9rem}
main h2.collapsed::after{transform:rotate(-90deg)}
.collapsible-content{overflow:hidden;transition:max-height .35s cubic-bezier(.2,.9,.2,1),opacity .25s ease;will-change:max-height;opacity:1;padding-left:6px}
.collapsible-content.hidden{opacity:0}
.collapsible-content ul,.collapsible-content ol{margin:10px 0 10px 24px;padding:0}
.collapsible-content li{margin:6px 0;line-height:1.4}

footer{position:relative;margin-top:36px;padding:28px 18px;text-align:center;border-top-left-radius:12px;border-top-right-radius:12px;background:linear-gradient(90deg,var(--accent-b),var(--accent-a));color:#fff;border:1px solid var(--border);box-shadow:0 8px 28px rgba(2,6,23,0.06)}
footer a{color:#fff;text-decoration:none;font-weight:800;margin:0 8px}
footer a:hover{text-decoration:underline}
footer .copyright{margin-top:10px;font-size:.9rem;opacity:.9}

@media(max-width:720px){
  .title-filter-container{flex-direction:column;align-items:stretch}
  .title-filter-container h1{font-size:1.4rem}
}
main>*{animation:contentFade .45s ease both}
@keyframes contentFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
:focus{outline:3px solid rgba(37,99,235,0.12);outline-offset:3px}
