:root{--bg:#0b0d12;--bg-2:#0f1218;--panel:#161a22;--panel-2:#1d222c;--panel-3:#232936;--border:#2a3140;--border-2:#333b4d;--text:#eef1f6;--text-2:#c3cad6;--muted:#8a94a6;--faint:#5b6577;--good:#26c281;--good-bg:#10221b;--good-bd:#1c4a39;--defect:#ff5964;--defect-bg:#241316;--defect-bd:#5a2129;--warn:#ffbf47;--warn-bg:#241d0f;--warn-bd:#5a4620;--accent:#4c8dff;--accent-2:#6ea8ff;--accent-bg:#10203d;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-8:48px;--r-1:6px;--r-2:10px;--r-3:14px;--r-full:999px;--shadow-1:0 1px 2px #0006;--shadow-2:0 6px 24px #00000073;--ring:0 0 0 3px #4c8dff59;--dur:.18s}:root[data-theme=light]{--bg:#f4f6fa;--bg-2:#eef1f6;--panel:#fff;--panel-2:#f7f9fc;--panel-3:#eef2f8;--border:#d9dfea;--border-2:#c7cfdd;--text:#0f1521;--text-2:#33405a;--muted:#5a6784;--faint:#8a97b0;--good:#0f9d63;--good-bg:#e7f7ef;--good-bd:#b6e6cf;--defect:#d83a45;--defect-bg:#fdeaec;--defect-bd:#f3c2c7;--warn:#b7791f;--warn-bg:#fdf4e3;--warn-bd:#f0dcae;--accent:#2f6fe0;--accent-2:#2560c8;--accent-bg:#e6effc;--shadow-1:0 1px 2px #141e3c14;--shadow-2:0 8px 28px #141e3c1f}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;padding:0;font-size:15px;line-height:1.55}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:650}a{color:var(--accent-2);text-decoration:none}code,.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn{align-items:center;gap:var(--sp-2);border-radius:var(--r-1);background:var(--panel-3);color:var(--text);border:1px solid var(--border-2);cursor:pointer;font:inherit;transition:background var(--dur), border-color var(--dur), transform var(--dur);min-height:40px;padding:9px 14px;font-weight:550;line-height:1;display:inline-flex}.btn:hover{background:var(--panel-2);border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-2)}.btn.good{background:var(--good);border-color:var(--good);color:#06120d}.btn.danger{color:var(--defect);border-color:var(--defect-bd);background:0 0}.btn.danger:hover{background:var(--defect-bg)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--panel-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{min-height:32px;padding:6px 10px;font-size:13px}.badge{border-radius:var(--r-full);border:1px solid var(--border-2);background:var(--panel-3);color:var(--text-2);align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.badge.good,.badge.online,.badge.unique{color:var(--good);background:var(--good-bg);border-color:var(--good-bd)}.badge.defect,.badge.conflict{color:var(--defect);background:var(--defect-bg);border-color:var(--defect-bd)}.badge.warn,.badge.offline,.badge.auto_dup,.badge.silent{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-bd)}.badge.accepted{color:var(--good);background:var(--good-bg);border-color:var(--good-bd)}.badge.rejected{color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-1)}.card-pad{padding:var(--sp-5)}.stats{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-3);padding:var(--sp-4) var(--sp-5);position:relative;overflow:hidden}.stat:before{content:"";background:var(--accent);opacity:.7;width:3px;position:absolute;top:0;bottom:0;left:0}.stat.good:before{background:var(--good)}.stat.defect:before{background:var(--defect)}.stat.warn:before{background:var(--warn)}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.stat .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin-top:4px;font-size:34px;font-weight:700}.stat.good .value{color:var(--good)}.stat.defect .value{color:var(--defect)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-3);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th{text-align:left;background:var(--panel-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:10px 14px;font-size:12px;font-weight:600;position:sticky;top:0}table.data td{border-bottom:1px solid var(--border);color:var(--text-2);padding:10px 14px}table.data tr:last-child td{border-bottom:none}table.data tbody tr{transition:background var(--dur)}table.data tbody tr:hover{background:var(--panel-2)}table.data td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}label.field{color:var(--muted);margin-bottom:5px;font-size:13px;display:block}input,select{background:var(--bg-2);width:100%;min-height:40px;color:var(--text);border:1px solid var(--border-2);border-radius:var(--r-1);font:inherit;transition:border-color var(--dur), box-shadow var(--dur);padding:9px 12px}input:focus,select:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.filters{gap:var(--sp-3);flex-wrap:wrap;align-items:end;display:flex}.filters .field-group{flex-direction:column;min-width:130px;display:flex}.alert{gap:var(--sp-3);border-radius:var(--r-2);background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--warn);align-items:center;padding:12px 16px;font-weight:550;display:flex}.alert.err{background:var(--defect-bg);border-color:var(--defect-bd);color:var(--defect)}.empty{text-align:center;color:var(--faint);padding:var(--sp-8) var(--sp-4)}.row{align-items:center;gap:var(--sp-3);display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.spacer{flex:1}.hidden{display:none!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#root{min-height:100vh}.shell{grid-template-rows:100vh;grid-template-columns:250px 1fr;display:grid;overflow:hidden}.side{background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:16px 12px;display:flex}.side .brand{align-items:center;gap:10px;padding:8px 10px 18px;display:flex}.side .brand .logo{background:linear-gradient(140deg, var(--accent), #2a5fc0);border-radius:9px;flex:none;place-items:center;width:34px;height:34px;display:grid}.side .brand b{letter-spacing:-.01em;font-size:15px}.side .brand small{color:var(--muted);font-size:11px;display:block}.nav a{color:var(--text-2);cursor:pointer;transition:background var(--dur), color var(--dur);border-radius:8px;align-items:center;gap:11px;padding:10px 12px;font-size:14px;font-weight:550;display:flex}.nav a:hover{background:var(--panel-2);color:var(--text)}.nav a.active{background:var(--accent-bg);color:var(--accent-2)}.nav a svg{opacity:.85;flex:none;width:18px;height:18px}.nav a .count{background:var(--defect);color:#fff;border-radius:var(--r-full);margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.main{padding:22px 28px 60px;overflow-y:auto}.topbar{align-items:center;gap:14px;margin-bottom:22px;display:flex}.topbar h2{font-size:22px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.conflict-card{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:16px;display:grid}.conflict-side{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-2);padding:12px 14px}.vs{color:var(--faint);text-align:center;font-weight:700}.login-wrap{background:radial-gradient(1200px 600px at 50% -10%, var(--accent-bg), transparent 70%), var(--bg);place-items:center;min-height:100vh;display:grid}.toast{z-index:50;background:var(--panel-3);border:1px solid var(--border-2);box-shadow:var(--shadow-2);border-radius:10px;padding:12px 18px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@media (width<=820px){.shell{grid-template-columns:1fr}.side{display:none}}
