:root{--nav:#123c69;--accent:#7a4ea3;--bg:#f4f7fb;--text:#243244;--muted:#718096;--line:#e5eaf1}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef7fb,#f8effb)}.login-card{width:min(430px,92vw);background:#fff;padding:38px;border-radius:24px;box-shadow:0 18px 60px #19324d20;text-align:center}.login-logo{width:170px;max-height:110px;object-fit:contain}.login h1{margin:15px 0 5px}.login p,.pagehead p{color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;font-weight:600;text-align:left}input,select,textarea{width:100%;border:1px solid #d8e0e8;border-radius:10px;padding:11px 12px;font:inherit;background:#fff}textarea{min-height:80px;resize:vertical}button,.primary{border:0;border-radius:10px;padding:11px 16px;font-weight:700;cursor:pointer}.primary,.login button{background:var(--nav);color:#fff}.login form{display:grid;gap:16px;margin:25px 0}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:#fff;border-right:1px solid var(--line);padding:22px 14px;z-index:10}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px;border-bottom:1px solid var(--line)}.brand img{width:55px;height:45px;object-fit:contain}.brand b{font-size:15px}.nav{display:grid;gap:5px;margin-top:20px}.nav a{padding:11px 13px;border-radius:10px}.nav a:hover{background:#eef4fa;color:var(--nav)}.content{margin-left:250px;padding:30px;max-width:1500px}.pagehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.pagehead h1{margin:0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 4px 20px #22334408}.card span{color:var(--muted)}.card b{display:block;font-size:30px;margin-top:8px;color:var(--nav)}.panel{margin-top:18px}.panel h2{margin-top:0}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.wide{grid-column:1/-1}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.toolbar input{max-width:340px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase}.badge{padding:5px 9px;border-radius:999px;background:#eef4fa;font-size:12px}.danger{background:#fff0f0;color:#a12626;padding:6px 9px}.history{margin-top:20px}.visit{border-left:3px solid var(--accent);padding:12px 16px;margin:10px 0;background:#faf8fc}.empty{color:var(--muted);padding:20px;text-align:center}@media(max-width:900px){.sidebar{position:relative;width:100%;bottom:auto}.nav{grid-template-columns:repeat(3,1fr)}.content{margin-left:0;padding:18px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.cards,.grid{grid-template-columns:1fr}.nav{grid-template-columns:repeat(2,1fr)}.pagehead,.toolbar{align-items:stretch;flex-direction:column}.toolbar input{max-width:none}table{display:block;overflow-x:auto}}
.userbox{margin:8px 14px 18px;padding:12px;border-radius:12px;background:rgba(255,255,255,.1);display:flex;flex-direction:column;gap:3px}.userbox span{font-size:12px;opacity:.78}.demo-accounts{margin-top:18px;padding:12px;border-radius:12px;background:#f5f8fb;display:grid;gap:4px;text-align:left}.demo-accounts strong{margin-bottom:4px}.tablewrap{overflow:auto}

/* Milestone 3: persistent role-aware sidebar */
.nav-section{margin:0 0 14px}.nav-label{padding:5px 13px 6px;color:#8a97a6;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.nav a{display:block}.nav a.active{background:#e9f1f8;color:var(--nav);font-weight:800;box-shadow:inset 3px 0 0 var(--accent)}.logout-link{margin-top:8px;border-top:1px solid var(--line)}.sidebar{overflow-y:auto}.menu-toggle{display:none;position:fixed;top:12px;left:12px;z-index:30;width:42px;height:42px;border-radius:10px;background:var(--nav);color:#fff;font-size:22px;padding:0}.sidebar-scrim{display:none}.module-wrap{max-width:none!important;margin-left:250px!important;padding:30px!important}.module-wrap .module-head{margin-top:0}
@media(max-width:900px){.sidebar{position:fixed;left:-270px;top:0;bottom:0;width:250px;transition:left .2s ease;box-shadow:0 0 30px #0002}.menu-toggle{display:block}.content,.module-wrap{margin-left:0!important;padding:68px 18px 18px!important}.nav{display:block}.nav-section{margin-bottom:12px}.sidebar-scrim{position:fixed;inset:0;background:#0005;z-index:9}.menu-open .sidebar{left:0}.menu-open .sidebar-scrim{display:block}}
