:root{--ink:#17233b;--muted:#6b7890;--blue:#315fe9;--green:#16834d;--line:#e3e9f2;--paper:#fff}*{box-sizing:border-box}body{margin:0;background:#f4f7fb;color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}.shell{max-width:1100px;margin:auto;padding:20px}.topbar{display:flex;justify-content:space-between;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px 18px;box-shadow:0 5px 20px #20355008}.brand{display:flex;align-items:center;gap:12px}.brand strong,.brand small{display:block}.brand small{font-size:12px;color:var(--muted)}.brandmark{width:52px;height:52px;border-radius:16px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:27px;font-weight:800}.brandmark.small{width:38px;height:38px;border-radius:12px;font-size:20px}.userbar{display:flex;align-items:center;gap:16px;font-size:13px}.userbar small{color:var(--muted)}.userbar form{margin:0}.linkbtn{border:0;background:none;color:var(--blue);font-weight:700;cursor:pointer;font:inherit}.content{padding:20px 0}.footer{text-align:center;color:#8994a8;font-size:11px;padding:18px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 5px 20px #20355007}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stack{display:grid;gap:14px}.heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.heading h1,.heading h2{font-size:19px;margin:0;letter-spacing:-.3px}.muted{color:var(--muted)}.tiny{font-size:12px;color:var(--muted)}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;background:#edf2ff;color:#244bc5;padding:10px 14px;font-weight:750;text-decoration:none;cursor:pointer;font:inherit;font-size:13px}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 5px 13px #315fe927}.btn.green{background:#16834d;color:#fff}.btn.danger{background:#fff0f0;color:#ae2d37}.btn.full{width:100%;padding:13px}.btn:disabled{opacity:.6;cursor:default}.pill{border-radius:99px;padding:6px 10px;font-size:12px;font-weight:750;background:#e3f7eb;color:#137846}.pill.gray{background:#edf0f5;color:#69768b}.pill.amber{background:#fff2d7;color:#9b5e00}.alert{border:1px solid #bce6ca;background:#ecfaf1;border-radius:12px;padding:11px 14px;margin:14px 0;color:#137846}.alert.danger{border-color:#ffd0d0;background:#fff1f1;color:#a12630}.auth-bg{min-height:100vh;display:grid;place-items:center;padding:18px;background:linear-gradient(145deg,#eff4ff,#f8fbff)}.auth-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 18px 50px #263b620d}.auth-card h1{margin:16px 0 4px;font-size:23px}.auth-card .muted{margin:0 0 18px;font-size:13px}.auth-card .brandmark{margin:auto}form{display:grid;gap:12px}label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#43516a}input,select{width:100%;border:1px solid #d8e0ec;border-radius:10px;padding:11px 12px;font:inherit;font-size:14px;color:var(--ink);background:#fff}input:focus,select:focus{outline:3px solid #dbe5ff;border-color:#7e9afa}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #edf0f5;font-size:13px}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.student{display:flex;align-items:center;gap:11px}.avatar{width:37px;height:37px;border-radius:12px;background:#edf2ff;color:#315fe9;display:grid;place-items:center;font-weight:800}.waiting{background:#f2fff7}.waiting .avatar{background:#ddf6e7;color:#147646}.request-list{display:grid;gap:9px}.request{border:1px solid #b8e5c7;background:#f2fff7;border-radius:12px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.request strong{display:block}.request small{color:var(--muted)}.empty{text-align:center;padding:22px;color:var(--muted);border:1px dashed #d7deea;border-radius:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.section-title{margin:0 0 10px;font-size:15px}.help{font-size:12px;color:var(--muted);margin:5px 0}.guardian-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px;border:1px solid var(--line);border-radius:13px;margin:10px 0}.guardian-card h3{font-size:16px;margin:0}.guardian-card p{font-size:12px;color:var(--muted);margin:2px 0 0}.pickup-form{margin-top:16px}.pickup-form .btn{font-size:16px;padding:14px}.mobile-only{display:none}@media(max-width:760px){.shell{padding:12px}.topbar{padding:12px;align-items:flex-start}.userbar{display:grid;justify-items:end;gap:4px}.grid{grid-template-columns:1fr}.card{padding:16px}.form-row{grid-template-columns:1fr}.heading{align-items:flex-start}.wide-hide{display:none}.mobile-only{display:block}}
.btn.remind{background:#fff2d7;color:#8a5700;border:1px solid #f3d99f}.roster-state{display:grid;justify-items:start;gap:7px}.pill.departed{background:#dff6e8;color:#126b3e}.departure-history{font-size:12px;color:var(--muted)}.departure-history summary{cursor:pointer;color:#315fe9;font-weight:700}.departure-history ul{list-style:none;margin:7px 0 2px;padding:0;max-height:180px;overflow:auto}.departure-history li{display:flex;flex-wrap:wrap;gap:4px 10px;padding:5px 0;border-bottom:1px solid #edf0f5}.departure-history li strong{color:var(--ink)}
.report-tools{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin-top:10px}.report-tools label{min-width:170px}.report-tools input{padding:9px 10px}.departure-check{display:flex;justify-content:center}.departure-check label{display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.departure-check input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:#16834d}.departure-check input:disabled{opacity:1}.parent-report{margin:0 0 14px}.parent-report .help{margin-bottom:0}@media print{.topbar,.footer,.heading,.departure-check,.request-list,.form-row{display:none!important}.shell{max-width:none;padding:0}.content{padding:0}.card{box-shadow:none;border:0;padding:0}.grid{display:block}}
