:root{color-scheme:light;--bg: #f4f5f9;--surface: #ffffff;--surface-2: #f8f9fc;--border: #e3e6ef;--text: #0f172a;--text-2: #475069;--muted: #7a8299;--nav: #0f1b3d;--nav-2: #18275a;--nav-text: #c7cff0;--accent: #4f46e5;--accent-soft: #eef0ff;--good: #0f8a5f;--good-soft: #e6f6ef;--warn: #b26b00;--warn-soft: #fff4e0;--bad: #c62f2f;--bad-soft: #fdecec;--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #6250d6;--s8: #e34948;--grid: #eceef4;--radius: 10px;font-family:Be Vietnam Pro,system-ui,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #0d1220;--surface: #151b2d;--surface-2: #1a2136;--border: #263049;--text: #eef1f8;--text-2: #b7bfd6;--muted: #8790aa;--nav: #0a0f1d;--nav-2: #141c35;--accent: #8b85ff;--accent-soft: #23264a;--good: #3cc490;--good-soft: #12301f;--warn: #f0b04a;--warn-soft: #33270f;--bad: #f07373;--bad-soft: #3a1717;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;--grid: #222a40}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--accent);text-decoration:none}h1{font-size:22px;font-weight:600;margin:0}h2{font-size:16px;font-weight:600;margin:0 0 12px}button,input,select{font:inherit;color:inherit}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.nav{background:var(--nav);color:var(--nav-text);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 20px;color:#fff;font-weight:600;font-size:17px;letter-spacing:.3px}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#4f46e5,#2a78d6);display:grid;place-items:center;font-size:13px}.nav a{color:var(--nav-text);padding:9px 12px;border-radius:8px;display:flex;align-items:center;gap:10px}.nav a:hover{background:var(--nav-2);color:#fff}.nav a.active{background:var(--nav-2);color:#fff;box-shadow:inset 3px 0 #8b85ff}.nav .badge{margin-left:auto;background:var(--bad);color:#fff;border-radius:99px;font-size:11px;padding:1px 7px}.nav-foot{margin-top:auto;font-size:12px;padding:12px 8px 0;border-top:1px solid var(--nav-2)}.nav-foot button{background:none;border:0;color:var(--nav-text);cursor:pointer;padding:6px 0}.main{padding:28px 32px 48px;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0;color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:16px}.stat .label{color:var(--text-2);font-size:13px}.stat .value{font-size:28px;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums}.stat .hint{color:var(--muted);font-size:12px;margin-top:4px}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.btn{border:1px solid var(--border);background:var(--surface);padding:8px 14px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--bad)}.btn.sm{padding:4px 10px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:default}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--text-2)}.input,select.input{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 10px;min-width:0}.input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}.pw{position:relative;display:flex}.pw .input{flex:1;padding-right:40px}.pw button{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;color:var(--muted);padding:6px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 9px;border-radius:99px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good);border-color:transparent}.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.pill.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.dot{width:9px;height:9px;border-radius:3px;display:inline-block}.muted{color:var(--muted)}.error{color:var(--bad);font-size:13px}.empty{color:var(--muted);padding:28px;text-align:center}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c1c73;display:grid;place-items:center;z-index:20;padding:16px}.modal{background:var(--surface);border-radius:14px;padding:24px;width:min(520px,100%);max-height:90vh;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal.wide{width:min(820px,100%)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.keybox{background:var(--surface-2);border:1px dashed var(--accent);border-radius:8px;padding:12px;word-break:break-all}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#18275a,#0a0f1d 60%);padding:16px}.login .card{width:min(380px,100%);display:flex;flex-direction:column;gap:14px;padding:28px}.tooltip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12.5px;box-shadow:0 6px 20px #00000014;min-width:160px}.tooltip .t-head{font-weight:600;margin-bottom:6px}.tooltip .t-row{display:flex;align-items:center;gap:8px;justify-content:space-between}.tooltip .t-row span:first-child{display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--text-2);margin-bottom:8px}.legend span{display:inline-flex;align-items:center;gap:6px}@media(max-width:860px){.shell{grid-template-columns:1fr}.nav{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:12px}.brand{padding:0 8px;width:100%}.nav-foot{display:none}.main{padding:18px 16px 40px}}@media(max-width:600px){.hide-sm{display:none}}.grade{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;font-weight:600;font-size:13px}.grade.A{background:var(--good-soft);color:var(--good)}.grade.B{background:var(--accent-soft);color:var(--accent)}.grade.C{background:var(--warn-soft);color:var(--warn)}.grade.new{background:var(--surface-2);color:var(--muted);font-size:11px;width:auto;padding:0 8px}.method{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.method h3{font-size:14px;margin:0 0 4px}.method p{margin:0;color:var(--text-2);line-height:1.55}.verdict{padding:12px 14px;border-radius:8px;background:var(--accent-soft);color:var(--text);line-height:1.5}textarea.input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;resize:vertical}.print-only{display:none}@media print{@page{size:A4;margin:14mm}:root{color-scheme:light;--bg: #fff;--surface: #fff;--surface-2: #f6f7fb;--border: #dfe3ec;--text: #0f172a;--text-2: #3d4558;--muted: #6b7388}body{background:#fff}.shell{display:block}.nav,.no-print{display:none!important}.print-only{display:block}.main{padding:0}.card{break-inside:avoid;box-shadow:none}.grid.stats{grid-template-columns:repeat(3,1fr)}.table-wrap{overflow:visible}table{font-size:10.5px}th,td{padding:6px 5px}th{white-space:normal}.stat .value{font-size:22px}}.modal>*{flex-shrink:0}
