:root{--bg: #f4f7f5;--ink: #14231c;--brand: #1f7a5a;--brand-dark: #0f3d2e;--accent: #f4b942;--card: #ffffff;--muted: #5d7268;--danger: #b42318;--line: #d7e3dc;font-family:Segoe UI,system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#e7f3ec,var(--bg) 45%)}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--brand);text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:.65rem 1rem;background:var(--brand);color:#fff}button.secondary{background:#dfece6;color:var(--brand-dark)}button.danger{background:var(--danger)}input,select{width:100%;padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;background:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card,.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.4rem;box-shadow:0 10px 30px #0f3d2e0f}.login-card{width:min(420px,100%)}.login-card h1{margin:0 0 .35rem;color:var(--brand-dark)}.muted{color:var(--muted)}.stack{display:grid;gap:.8rem}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--brand-dark),#164d3a);color:#fff;padding:1.4rem 1rem}.sidebar h2{margin:0 0 1rem;letter-spacing:-.03em}.sidebar nav{display:grid;gap:.35rem}.sidebar a{color:#e8f5ef;padding:.7rem .8rem;border-radius:10px}.sidebar a.active,.sidebar a:hover{background:#ffffff1f}.content{padding:1.4rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat strong{display:block;font-size:1.6rem;margin-top:.3rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem .4rem;border-bottom:1px solid var(--line);font-size:.95rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;background:#e7f3ec;color:var(--brand-dark);font-size:.8rem}.error{color:var(--danger)}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:2}}
