:root{font-family:Inter,Segoe UI,sans-serif;color:#172033;background:#f5f7fb;--p:#5d2f91;--p2:#7d4db1;--line:#e3e7ef;--muted:#667085;--ok:#14805e}*{box-sizing:border-box}body{margin:0}button,.button{border:0;border-radius:10px;padding:11px 17px;background:var(--p);color:white;font-weight:700;cursor:pointer;font:inherit;text-decoration:none}button.secondary,.button.secondary{background:#fff;color:var(--p);border:1px solid #cab9dc}button.ghost{background:transparent;color:#ddd}.brand{font-size:21px;font-weight:900;letter-spacing:.4px}.brand span{color:#a47bd0}#app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{background:#21142e;color:white;padding:28px 20px;display:flex;flex-direction:column;gap:35px;position:sticky;top:0;height:100vh}nav{display:grid;gap:8px;flex:1}nav button,nav a{background:transparent;text-align:left;color:#d8cedf;text-decoration:none;padding:13px;border-radius:9px;border:0;font-weight:650}nav button.active,nav button:hover,nav a:hover{background:#3a2450;color:white}main{padding:30px 38px;min-width:0}main>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}h1,h2,p{margin-top:0}header p,.card p{color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metrics article,.card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 3px 12px #17203308}.metrics b{display:block;font-size:30px;color:var(--p)}.metrics span{color:var(--muted)}.actions,.toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.toolbar{margin-bottom:18px}.toolbar>input{min-width:320px}.toolbar label{margin:0}.toolbar label input,.toolbar select{margin-top:5px}.tablewrap{overflow:auto;padding:0}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line)}th{color:var(--muted);background:#fafbfc}td small{display:block;color:var(--muted)}input,select{width:100%;padding:11px;border:1px solid #cfd5df;border-radius:9px;background:white;font:inherit}label{display:grid;gap:6px;font-size:13px;font-weight:700}.center{min-height:100vh;display:grid;place-items:center}.login{width:min(420px,92vw);display:grid;gap:18px;padding:36px}.login small{text-align:center}.login .brand{color:#251633}.notice{padding:14px 18px;background:#eee7f7;color:#4c2675;border-radius:12px;margin-bottom:18px}.schedule{display:grid;gap:12px;margin-bottom:18px}.schedule article{display:grid;grid-template-columns:150px 100px repeat(5,1fr);align-items:end;gap:12px;background:white;padding:16px;border:1px solid var(--line);border-radius:13px}.schedule input[type=checkbox]{width:20px;height:20px}dialog{border:0;border-radius:18px;box-shadow:0 20px 70px #10182855;width:min(850px,94vw);padding:0}dialog::backdrop{background:#101828aa}dialog form,dialog>div,dialog>footer{padding:22px}dialog header,.badgeHead{display:flex;justify-content:space-between}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.wide{grid-column:1/-1}dialog footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}.icon{background:transparent;color:#444;font-size:25px;padding:2px 9px}.badge{width:360px;height:565px;margin:auto;border-radius:20px;background:linear-gradient(155deg,#261534,#673794);color:white;padding:26px;text-align:center;display:grid;justify-items:center;align-content:start;gap:10px}.badge .portrait{width:150px;height:165px;object-fit:cover;border-radius:15px;background:#ddd}.badge .qr{background:white;padding:8px}.badge h2{margin:0}.badge small{color:#ded4e7}.station{background:#f5f2f8}.station>header{height:76px;background:#241631;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.station time{font-size:25px;font-weight:800}.station main{text-align:center;max-width:1100px;margin:auto}.station main>p{color:var(--muted);font-size:20px}.scanCard{background:white;border-radius:24px;padding:35px;min-height:330px;display:grid;place-items:center;align-content:center;border:1px solid var(--line)}.scanIcon{font-size:100px;color:var(--p)}#scanForm{display:flex;gap:10px;margin:18px 0}#scanForm input{font-size:18px}.success{color:var(--ok)}.recent{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.recent article{background:white;border:1px solid var(--line);border-radius:12px;padding:13px}.avatar{width:105px;height:105px;object-fit:cover;border-radius:15px;background:#ddd}.pill{display:inline-block;padding:4px 9px;border-radius:20px;background:#e2f5ed;color:#08734f;font-size:12px;font-weight:800}#toast{position:fixed;right:25px;top:20px;z-index:20;background:#202938;color:white;padding:13px 18px;border-radius:10px;display:none}@media(max-width:800px){#app{grid-template-columns:1fr}aside{position:static;height:auto}nav{display:flex;overflow:auto}main{padding:20px}.metrics{grid-template-columns:1fr 1fr}.schedule article{grid-template-columns:1fr 1fr}.formgrid{grid-template-columns:1fr}.recent{grid-template-columns:1fr 1fr}}
