:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box}body{color:#111827;background:#080b12;margin:0;font-family:Inter,Arial,Microsoft YaHei,sans-serif}button,input,select{font-family:inherit}.authPage{background:radial-gradient(circle at 0 0,#2563eb59,#0000 32%),linear-gradient(135deg,#060812,#111827 55%,#0f172a);justify-content:center;align-items:center;min-height:100vh;padding:36px 18px;display:flex}.authShell{grid-template-columns:1.2fr .8fr;align-items:center;gap:28px;width:100%;max-width:1050px;display:grid}.brandBlock{color:#fff;padding:36px}.logo,.sideLogo{color:#fff;letter-spacing:1px;background:linear-gradient(135deg,#2563eb,#60a5fa);border-radius:18px;justify-content:center;align-items:center;width:58px;height:58px;font-weight:900;display:flex;box-shadow:0 16px 40px #2563eb59}.brandBlock h1{letter-spacing:-1.5px;margin:24px 0 10px;font-size:54px}.brandBlock p{color:#cbd5e1;font-size:20px}.brandBullets{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.brandBullets span{color:#e5e7eb;background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;padding:10px 14px}.authCard{background:#fffffff5;border-radius:24px;padding:30px;box-shadow:0 24px 70px #00000059}.authCard h2{margin:0 0 8px;font-size:28px}.muted{color:#6b7280}.tabs{background:#f3f4f6;border-radius:14px;grid-template-columns:1fr 1fr;margin:20px 0;padding:4px;display:grid}.tabs button{background:0 0;margin:0}.tabs button.active{color:#fff;background:#111827}label{color:#374151;margin:12px 0 6px;font-size:14px;display:block}input,select{background:#fff;border:1px solid #d1d5db;border-radius:12px;outline:none;width:100%;padding:12px 13px}input:focus,select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}button{color:#111827;cursor:pointer;background:#e5e7eb;border:0;border-radius:12px;margin:8px 8px 0 0;padding:11px 15px;font-weight:700}button:hover{filter:brightness(.97)}button.primary{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8)}button.big{padding:14px 22px}button:disabled{opacity:.6;cursor:not-allowed}.msg{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;margin-top:14px;padding:12px}.dashboard{background:#f3f4f6;grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#080b12;height:100vh;padding:26px;position:sticky;top:0}.sidebar h2{margin:18px 0 4px}.sidebar p{color:#94a3b8;margin-top:0}.sidebar nav{gap:10px;margin-top:32px;display:grid}.sidebar nav a{color:#cbd5e1;border-radius:12px;padding:12px 14px;text-decoration:none}.sidebar nav a:hover{color:#fff;background:#ffffff14}.main{padding:28px}.topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.topbar h1{margin:0;font-size:30px}.topbar p{color:#6b7280;margin:6px 0 0}.statsGrid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px;display:grid}.statCard,.card{background:#fff;border:1px solid #e5e7eb;border-radius:22px;box-shadow:0 12px 35px #0f172a0f}.statCard{padding:20px}.statCard span{color:#6b7280}.statCard b{margin-top:10px;font-size:34px;display:block}.card{margin-bottom:20px;padding:24px}.sectionTitle{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.sectionTitle h2{margin:0 0 6px}.sectionTitle p{color:#6b7280;margin:0}.formGrid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.uploadBox{grid-template-columns:1fr auto;align-items:end;gap:12px;margin-top:18px;display:grid}.resultGrid{grid-template-columns:repeat(6,1fr);gap:12px;margin-top:18px;display:grid}.resultGrid div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px}.resultGrid span{color:#6b7280;font-size:13px}.resultGrid b{margin-top:6px;font-size:24px;display:block}.tableWrap{overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%}th,td{text-align:left;border-bottom:1px solid #e5e7eb;padding:13px 12px;font-size:14px}th{color:#6b7280;background:#f9fafb}.badge{color:#166534;background:#dcfce7;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.downloadBtns{gap:6px;display:flex}.downloadBtns button{margin:0;padding:7px 10px;font-size:12px}@media (width<=980px){.authShell{grid-template-columns:1fr}.brandBlock h1{font-size:38px}.dashboard{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(4,auto);overflow-x:auto}.statsGrid,.formGrid,.resultGrid{grid-template-columns:1fr 1fr}.uploadBox{grid-template-columns:1fr}}@media (width<=640px){.main{padding:16px}.statsGrid,.formGrid,.resultGrid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}}
