:root{--bg:#0b0c0e;--surface:#141619;--surface-2:#1b1e22;--border:#2a2e34;--border-strong:#3a4048;--text:#e8eaed;--text-2:#a8b0ba;--text-3:#6d757f;--accent:#e0245e;--accent-dim:#7d1434;--ok:#2f9e5f;--warn:#d99a1e;--danger:#d64545;--info:#3d7ddb;--radius:6px;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--text)}.shell{display:grid;grid-template-columns:216px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .brand{font-weight:700;letter-spacing:-.02em;padding:4px 8px 14px;font-size:15px}.sidebar .brand span{color:var(--accent)}.sidebar .scope{font-size:11px;color:var(--text-3);padding:0 8px 12px;text-transform:uppercase;letter-spacing:.06em}.navlink{padding:7px 8px;border-radius:var(--radius);color:var(--text-2);display:flex;justify-content:space-between;align-items:center;gap:8px}.navlink.active,.navlink:hover{background:var(--surface-2);color:var(--text)}.navlink.active{font-weight:600}.navlink .count{font:11px/1 var(--mono);background:var(--border);color:var(--text-2);padding:3px 6px;border-radius:10px}.main{padding:24px 28px 64px;max-width:1280px}.page-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;gap:16px}h1{font-size:20px;margin:0 0 2px;letter-spacing:-.01em}h2{font-size:15px;margin:28px 0 10px}h3{margin:0 0 6px;color:var(--text-2)}.sub,h3{font-size:13px}.sub{color:var(--text-3);margin:0}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-weight:600;padding:8px 10px}td,th{border-bottom:1px solid var(--border)}td{padding:9px 10px;vertical-align:middle}tr:hover td{background:var(--surface)}td.num,th.num{text-align:right;font-family:var(--mono);font-size:12px}.chip{display:inline-block;font:11px/1 var(--mono);padding:4px 7px;border-radius:4px;border:1px solid var(--border-strong);color:var(--text-2);white-space:nowrap}.chip.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.chip.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.chip.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.chip.info{color:var(--info);border-color:color-mix(in srgb,var(--info) 45%,transparent)}.chip.accent{color:var(--accent);border-color:var(--accent-dim)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.grid{display:grid;grid-gap:12px;gap:12px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.stat .value{font-size:24px;font-weight:700;font-family:var(--mono)}.stat .label{font-size:12px;color:var(--text-3);margin-top:2px}label{display:block;font-size:12px;color:var(--text-2);margin:12px 0 4px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{width:100%;background:var(--bg);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius);padding:8px 10px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-dim);border-color:var(--accent)}textarea{min-height:90px;resize:vertical}.hint{font-size:12px;color:var(--text-3);margin-top:4px}.btn,button{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius);padding:8px 14px;font:inherit;cursor:pointer}.btn:hover,button:hover:not(:disabled){border-color:var(--text-3)}button:disabled{opacity:.45;cursor:not-allowed}.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger)}.actions{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}.notice{border-radius:var(--radius);padding:10px 12px;font-size:13px;margin:12px 0;border:1px solid}.notice.err{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}.notice.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:color-mix(in srgb,var(--ok) 8%,transparent)}.notice.info{color:var(--text-2);border-color:var(--border-strong);background:var(--surface)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px}.check{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.check .mark{width:18px;font-family:var(--mono)}.check.pass .mark{color:var(--ok)}.check.fail .mark{color:var(--danger)}.check .detail{color:var(--text-3);font-size:12px;margin-left:auto}.upload-row{display:grid;grid-template-columns:60px 1fr 130px 90px 120px;grid-gap:10px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.progress{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .2s linear}.filename{font-family:var(--mono);font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:28px;text-align:center;color:var(--text-3)}.dropzone.over{border-color:var(--accent);color:var(--text)}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border)}.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}}