:root{--ink:#1f2329;--muted:#6b7280;--line:#ebecef;--paper:#f6f7f9;--surface:#fff;--accent:#ff7a00;--accent-dark:#e85d04;--danger:#b42318;--radius:.5rem;font-family:"Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:#eaf0ec}.login-card{width:min(26rem,calc(100% - 2rem));padding:2rem;background:var(--surface);border:1px solid var(--line);border-radius:.75rem}.brand-mark,.brand span{display:grid;place-items:center;background:var(--accent);color:white;font-weight:800}.brand-mark{width:3rem;height:3rem;border-radius:.5rem}.login-card h1{margin:1.25rem 0 .25rem}.login-card p{color:var(--muted);margin:0 0 1.5rem}.login-card label,.login-card input{display:block;width:100%}.login-card label{font-size:.875rem;font-weight:700;margin:.875rem 0 .375rem}.login-card input,select,textarea{border:1px solid #c9d2cc;border-radius:var(--radius);padding:.75rem;background:white}.login-card button,.primary{border:0;background:var(--accent);color:white;border-radius:var(--radius);padding:.75rem 1rem;font-weight:700}.login-card button{width:100%;margin-top:1.25rem}.login-card button:hover,.primary:hover{background:var(--accent-dark)}.error{color:var(--danger);min-height:1.25rem;margin-top:.75rem;font-size:.875rem}.app{min-height:100vh;display:grid;grid-template-columns:15rem 1fr}aside{position:sticky;top:0;height:100vh;background:#13251c;color:white;padding:1.5rem 1rem;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:.75rem;padding:0 .5rem 1.5rem;border-bottom:1px solid #304238}.brand span{width:2.25rem;height:2.25rem;border-radius:.375rem}.brand strong{font-size:1.125rem}nav{display:grid;gap:.375rem;margin-top:1.5rem}.nav,.logout{border:0;color:#cbd7d0;background:transparent;text-align:left;padding:.75rem;border-radius:.375rem}.nav:hover,.nav.active{background:#284438;color:white}.logout{margin-top:auto}.workspace{padding:2rem;min-width:0}.workspace header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.workspace header small,.dialog-head small{color:var(--accent);font-weight:800;letter-spacing:.12em}.workspace h1{font-size:1.75rem;margin:.25rem 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.metric,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.metric{padding:1.25rem}.metric span{display:block;color:var(--muted);font-size:.875rem}.metric strong{display:block;font-size:2rem;margin-top:.5rem}.panel{padding:1.25rem}.panel h2{margin-top:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:45rem}th,td{text-align:left;padding:.875rem;border-bottom:1px solid var(--line);font-size:.875rem}th{color:var(--muted);font-weight:700}.tag{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:#e7f2eb;color:var(--accent-dark)}.link{border:0;background:transparent;color:var(--accent);padding:.25rem}.link.danger{color:var(--danger)}.submission{padding:1rem 0;border-bottom:1px solid var(--line)}dialog{width:min(42rem,calc(100% - 2rem));border:0;border-radius:.75rem;padding:0;box-shadow:0 1.5rem 4rem #13251c33}dialog::backdrop{background:#13251c99}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:1.5rem}.dialog-head h2{margin:.25rem 0}.dialog-head button{border:0;background:transparent;font-size:1.75rem}.actions{display:flex;justify-content:flex-end;gap:.75rem}.secondary{border:1px solid var(--line);background:white;border-radius:var(--radius);padding:.75rem 1rem}#toast{position:fixed;right:1rem;bottom:1rem;background:#13251c;color:white;padding:.75rem 1rem;border-radius:.375rem;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}@media(max-width:800px){.app{grid-template-columns:1fr}aside{position:static;height:auto}.brand{border:0}nav{display:flex;margin-top:1rem;overflow:auto}.logout{display:none}.workspace{padding:1rem}.metrics{grid-template-columns:1fr 1fr}.workspace header{align-items:end}}@media(max-width:420px){.metrics{grid-template-columns:1fr}.workspace header{display:grid;gap:1rem}.workspace header .primary{width:100%}}
