:root{--blue:#2563eb;--blue-d:#1d4ed8;--blue-l:#e9f0ff;--blue-xl:#f4f8ff;--green:#0d9488;--red:#e11d48;--amber:#d97706;--gray:#475569;--muted:#64748b;--ink:#0f172a;--line:#dae3f2;--bg:#eef2f9;--panel:#fff;--surface:#fff;--surface-2:#f5f8fd;--surface-3:#eaf0fa;--shadow:0 1px 2px rgba(15,23,42,.05),0 2px 8px -2px rgba(37,99,235,.10);--shadow-md:0 10px 30px rgba(15,23,42,.13);--r:8px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--r-sm:8px;--r-md:12px;--r-lg:16px;--bd-w:1px;--ctl-h:29px;--btn-r:8px;--btn-pad-y:7px;--btn-pad-x:14px;--card-r:12px;--btn-color:#fff;--btn-bg:var(--blue);--btn-fs:12px;--btn-bd:1px;--tbl-pad-y:7px;--fs-xs:10px;--fs-sm:11px;--fs-md:12px;--fs-lg:13px;--fs-xl:15px;--ok:#16a34a;--warn:#d97706;--danger:#dc2626;--z-0:0;--z-1:1;--z-2:2;--z-3:3;--z-4:4;--z-5:5;--z-6:6;--z-7:7;--z-8:8;--z-9:9;--z-10:10;--z-sec:20;--z-sec2:30;--z-quick:40;--z-toolbar:45;--z-topbar:50;--z-menu:60;--z-usermenu:120;--z-modal:200;--z-hint:900;--z-toast:999;--z-drop:9998;--z-overlay:9999;--z-ctxmenu:99998;--z-pop:99999;--ico-size:18px;--ico-color:currentColor}
.icon-btn{width:32px;height:32px;border:1px solid var(--line);background:var(--panel);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.icon-btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.icon-btn:disabled{opacity:.35;cursor:not-allowed}
.btn{border:none;background:var(--blue);color:#fff;padding:var(--btn-pad-y) var(--btn-pad-x);
  border-radius:var(--btn-r);font-size:var(--btn-fs);min-height:var(--ctl-h)}
.btn:hover{background:var(--blue-d)}
.btn.ghost{background:var(--panel);color:var(--blue);border:var(--btn-bd) solid var(--blue)}
.btn.mini{padding:4px 10px;font-size:11px}
.btn.gray{background:#e2e8f0;color:var(--ink)}
.btn.danger{background:var(--red)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.panel{background:var(--panel);border:var(--bd-w) solid var(--line);border-radius:var(--card-r);box-shadow:var(--shadow)}
.card{padding:14px}
h3.sec{font-size:13px;font-weight:700;display:flex;align-items:center;gap:7px;margin-bottom:10px}
h3.sec::before{content:"";width:4px;height:14px;background:var(--blue);border-radius:2px}
input,select,textarea{border:var(--bd-w) solid var(--line);border-radius:var(--r-sm);padding:6px 10px;font-size:var(--fs-md);font-family:inherit;background:var(--panel);color:var(--ink)}
input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-l)}
table.tbl{width:100%;border-collapse:collapse;font-size:12px}
table.tbl th{background:var(--surface-2);text-align:left;padding:var(--tbl-pad-y) 10px;border-bottom:1px solid var(--line);color:var(--gray);font-weight:600;white-space:nowrap}
table.tbl td{padding:calc(var(--tbl-pad-y) - 1px) 10px;border-bottom:1px solid var(--line)}
table.tbl tr:hover td{background:var(--blue-xl)}
.tag{display:inline-block;padding:1px 8px;border-radius:20px;font-size:10px;background:var(--blue-l);color:var(--blue-d)}
.tag.red{background:#fee2e2;color:var(--red)}
.tag.green{background:#dcfce7;color:var(--green)}
.tag.amber{background:#fef3c7;color:var(--amber)}
.tag.gray{background:var(--surface-3);color:var(--gray)}
[data-theme="dark"]{--blue:#38bdf8;--blue-d:#0ea5e9;--blue-l:rgba(56,189,248,.14);--blue-xl:rgba(56,189,248,.07);--green:#34d399;--red:#fb7185;--amber:#fbbf24;--gray:#a9b7ce;--ink:#e9effc;--line:#1e2b42;--bg:#0a0e17;--panel:#111827;--surface:#111827;--surface-2:#0d1421;--surface-3:#182338;--muted:#8798b1;--shadow:0 1px 2px rgba(0,0,0,.5),0 2px 10px -2px rgba(56,189,248,.16);--shadow-md:0 12px 34px rgba(0,0,0,.55),0 0 0 1px rgba(56,189,248,.10)}
table.tbl{table-layout:fixed}
:root{--stat-bar:var(--blue);--stat-bar-w:3px;--stat-edge-w:1px}