:root,[data-theme="light"]{
  --bg:#f5f6f9;--surface:#fff;--surface-2:#eef0f5;--surface-3:#e4e7ee;
  --border:#dce0e8;--border-2:#c8cdd8;--text:#1a1d2e;--text-2:#4a5072;--text-3:#8890aa;
  --accent:#2b5ae0;--accent-soft:rgba(43,90,224,.09);--green:#0f8a3e;--green-soft:rgba(15,138,62,.09);
  --orange:#c06a08;--orange-soft:rgba(192,106,8,.1);--red:#c42020;--red-soft:rgba(196,32,32,.09);
  --purple:#6d28d9;--purple-soft:rgba(109,40,217,.09);--cyan:#0e7490;--cyan-soft:rgba(14,116,144,.09);
  --shadow:0 1px 3px rgba(0,0,0,.05);--shadow-lg:0 14px 40px rgba(23,30,60,.12);--radius:12px;
}
[data-theme="dark"]{
  --bg:#0e1018;--surface:#181b26;--surface-2:#222634;--surface-3:#2c3046;
  --border:#2e3348;--border-2:#3d4260;--text:#e2e5f0;--text-2:#a4acc6;--text-3:#6f7899;
  --accent:#7895ff;--accent-soft:rgba(120,149,255,.12);--green:#4ade80;--green-soft:rgba(74,222,128,.1);
  --orange:#fb923c;--orange-soft:rgba(251,146,60,.1);--red:#f87171;--red-soft:rgba(248,113,113,.1);
  --purple:#b197fc;--purple-soft:rgba(177,151,252,.1);--cyan:#22d3ee;--cyan-soft:rgba(34,211,238,.1);
  --shadow:0 1px 3px rgba(0,0,0,.2);--shadow-lg:0 16px 45px rgba(0,0,0,.38);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Noto Sans SC",sans-serif;background:var(--bg);color:var(--text);line-height:1.65}
button,input,select{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;z-index:20}
.brand{padding:2px 8px 18px;border-bottom:1px solid var(--border)}.brand strong{display:block;color:var(--accent);font-size:18px;letter-spacing:-.02em}.brand span{display:block;color:var(--text-3);font-size:11px;margin-top:3px}
.site-nav{display:grid;gap:5px;padding:16px 0}.site-nav a{color:var(--text-2);text-decoration:none;padding:9px 11px;border-radius:8px;font-size:13px;display:flex;align-items:center;gap:9px}.site-nav a:hover{background:var(--surface-2);color:var(--text)}.site-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:700}
.nav-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.65}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding:14px 8px 0;color:var(--text-3);font-size:11px}.sidebar-foot b{display:block;color:var(--text-2);font-size:12px}
.main{min-width:0}.topbar{height:66px;position:sticky;top:0;z-index:15;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;gap:12px}.topbar h1{font-size:16px;margin:0}.topbar .sub{font-size:12px;color:var(--text-3)}
.top-actions{margin-left:auto;display:flex;gap:8px}.icon-btn,.btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:8px;cursor:pointer;padding:8px 12px;transition:.15s}.icon-btn{width:38px;height:38px;padding:0}.btn:hover,.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.load-more-wrap{display:flex;justify-content:center;padding:18px 0 4px}
.mobile-menu{display:none}.content{padding:22px 24px 48px;max-width:1600px;margin:0 auto}.hero{background:linear-gradient(120deg,var(--surface),var(--accent-soft));border:1px solid var(--border);border-radius:16px;padding:22px 24px;margin-bottom:18px;display:flex;gap:24px;align-items:flex-end}.hero h2{font-size:24px;line-height:1.25;margin:0 0 6px}.hero p{margin:0;color:var(--text-2);font-size:13px;max-width:760px}.hero-stats{margin-left:auto;display:flex;gap:20px;flex-shrink:0}.hero-stat strong{display:block;font-size:24px;color:var(--accent);line-height:1}.hero-stat span{font-size:10px;color:var(--text-3)}
.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;gap:9px;align-items:center;margin-bottom:16px;box-shadow:var(--shadow);flex-wrap:wrap}.search{min-width:260px;flex:1}.field{height:38px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);padding:0 11px;outline:none}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select.field{min-width:142px}.result-count{font-size:12px;color:var(--text-3);white-space:nowrap}
.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;margin-bottom:18px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.stat-card strong{display:block;font-size:24px;line-height:1.2;color:var(--accent)}.stat-card span{font-size:11px;color:var(--text-3)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:17px;box-shadow:var(--shadow);transition:.15s}.card.clickable{cursor:pointer}.card.clickable:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:var(--shadow-lg)}
.term-head{display:flex;gap:10px;align-items:flex-start}.term-title{font-size:17px;font-weight:800;color:var(--accent);line-height:1.3}.term-en{font-size:12px;color:var(--text-2);margin-top:2px}.pill-row{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.pill{font-size:10px;color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:2px 7px}.pill.type{color:var(--purple);background:var(--purple-soft)}.pill.seed{color:var(--orange);background:var(--orange-soft)}.pill.literature{color:var(--green);background:var(--green-soft)}
.definition{font-size:13px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.muted{color:var(--text-3)}.empty{padding:64px 20px;text-align:center;color:var(--text-3);border:1px dashed var(--border-2);border-radius:var(--radius)}
.drawer-scrim{position:fixed;inset:0;background:rgba(10,14,24,.42);z-index:39;opacity:0;pointer-events:none;transition:.18s}.drawer-scrim.open{opacity:1;pointer-events:auto}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(660px,92vw);z-index:40;background:var(--bg);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);transform:translateX(102%);transition:.22s;overflow:auto}.drawer.open{transform:none}.drawer-head{position:sticky;top:0;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:17px 20px;display:flex;align-items:flex-start;gap:12px;z-index:2}.drawer-head h2{font-size:22px;margin:0}.drawer-body{padding:18px 20px 40px}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.section h3{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin:0 0 8px}.bilingual{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote{border-left:3px solid var(--accent);background:var(--accent-soft);padding:9px 11px;border-radius:0 7px 7px 0;font-size:12px;margin:8px 0}.quote cite{display:block;color:var(--text-3);font-style:normal;margin-top:4px}
.tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:9px}.tab{border:0;background:transparent;color:var(--text-2);border-radius:7px;padding:6px 10px;font-size:12px;cursor:pointer}.tab.active{background:var(--surface);color:var(--accent);font-weight:700;box-shadow:var(--shadow)}
.table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}table{border-collapse:collapse;width:100%;min-width:950px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 11px;vertical-align:top;font-size:12px}th{position:sticky;top:0;background:var(--surface-2);color:var(--text-3);font-size:10px;text-transform:uppercase;letter-spacing:.04em}tr:hover td{background:var(--accent-soft)}
.rule-card{padding:16px}.causal-line{display:grid;grid-template-columns:minmax(120px,1fr) 132px minmax(120px,1fr);gap:10px;align-items:center}.causal-node{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:10px 11px;min-height:62px}.causal-node strong{display:block;font-size:13px}.causal-node span{font-size:10px;color:var(--text-3)}
.signal{height:42px;position:relative;display:flex;align-items:center;justify-content:center;color:var(--accent);overflow:hidden}.signal::before{content:"";position:absolute;left:5px;right:5px;top:20px;height:2px;background:linear-gradient(90deg,transparent,currentColor 18%,currentColor 82%,transparent)}.signal::after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);position:absolute;right:7px;top:16px}.signal .motion{position:absolute;left:7px;top:16px;width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor;animation:flow 1.8s linear infinite}.signal .glyph{font-size:20px;font-weight:900;background:var(--surface);padding:0 8px;z-index:1}.signal.down{color:var(--red)}.signal.flat{color:var(--text-3)}.signal.complex{color:var(--purple)}@keyframes flow{0%{transform:translateX(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(108px);opacity:0}}
.rule-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.rule-copy{font-size:12px;color:var(--text-2);margin-top:10px}.chain-stack{display:grid;gap:12px}.chain-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px}
.graph-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;min-height:calc(100vh - 190px)}.graph-stage{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-height:620px}.graph-stage canvas{width:100%;height:100%;display:block}.graph-hint{position:absolute;left:14px;bottom:12px;background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--border);border-radius:7px;padding:5px 9px;color:var(--text-3);font-size:10px}.side-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px;overflow:auto}.side-panel h3{font-size:13px;margin:0 0 10px}.relation-item{border-top:1px solid var(--border);padding:10px 0;font-size:12px}.relation-item:first-of-type{border-top:0}.relation-item b{color:var(--accent)}
.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:13px}.source-card .book-index{font-size:10px;color:var(--accent);font-weight:800;letter-spacing:.1em}.source-card h3{font-size:17px;line-height:1.35;margin:6px 0}.source-card .source-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.source-card .source-stat{background:var(--surface-2);border-radius:7px;padding:8px}.source-card .source-stat strong{display:block;font-size:15px}.source-card .source-stat span{font-size:9px;color:var(--text-3)}
.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0 22px}.pipe-step{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px}.pipe-step:not(:last-child)::after{content:"→";position:absolute;right:-15px;top:50%;transform:translateY(-50%);color:var(--accent);z-index:2}.pipe-step b{display:block;font-size:12px}.pipe-step span{font-size:10px;color:var(--text-3)}
@media(max-width:960px){.shell{display:block}.sidebar{position:fixed;left:0;transform:translateX(-103%);transition:.18s;width:280px;box-shadow:var(--shadow-lg)}body.menu-open .sidebar{transform:none}.mobile-menu{display:inline-grid;place-items:center}.content{padding:16px}.hero{align-items:flex-start;flex-direction:column}.hero-stats{margin-left:0}.graph-layout{grid-template-columns:1fr}.side-panel{max-height:380px}.stat-grid{grid-template-columns:repeat(2,1fr)}.pipeline{grid-template-columns:1fr}.pipe-step:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-17px}.bilingual{grid-template-columns:1fr}}
@media(max-width:600px){.topbar{padding:0 12px}.topbar .sub{display:none}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.card-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.field,select.field{width:100%}.causal-line{grid-template-columns:1fr}.signal{transform:rotate(90deg);width:130px;margin:auto}.source-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
