:root{--bg: #f4f6f8;--panel: #ffffff;--ink: #0f1720;--muted: #607085;--accent: #11785f;--accent-soft: #d7efe8;--danger: #b93838;--line: #dde5eb}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Helvetica Neue,sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 10%,#d9f2ea 0,transparent 45%),radial-gradient(circle at 90% 0%,#fce8d9 0,transparent 40%),var(--bg)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 14px 40px #0f172014}.login-card h1{margin:0}.login-card p{margin-top:6px;color:var(--muted)}label{display:grid;gap:8px;margin-bottom:14px;font-size:14px}input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px}button{border:0;border-radius:8px;background:var(--accent);color:#fff;padding:10px 14px;cursor:pointer}button.danger{background:var(--danger)}.error{color:var(--danger);font-size:14px;margin-bottom:12px}.dashboard-shell{min-height:100vh;padding:18px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stats-grid article{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.stats-grid h2{margin:0;font-size:14px;color:var(--muted)}.stats-grid strong{display:block;font-size:30px;margin-top:4px}.content-grid{display:grid;gap:12px;grid-template-columns:1fr 1.3fr}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.subhead{color:var(--muted);font-size:13px}table{width:100%;border-collapse:collapse;margin-top:10px}th,td{font-size:13px;text-align:left;border-bottom:1px solid var(--line);padding:8px}tbody tr{cursor:pointer}tbody tr.selected{background:var(--accent-soft)}@media(max-width:900px){.content-grid{grid-template-columns:1fr}}
