:root{color-scheme:light;--ink: #111827;--muted: #667085;--line: #d7dde6;--panel: #ffffff;--page: #f5f7fb;--nav: #0f172a;--nav-soft: #1e293b;--accent: #2563eb;--accent-strong: #1d4ed8;--gold: #b7791f;--danger: #b42318;--shadow: 0 10px 28px rgba(16, 24, 40, .08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:var(--page);color:var(--ink)}body.theme-light{color-scheme:light}body.theme-dark{color-scheme:dark;--ink: #e5e7eb;--muted: #a8b3c7;--line: #334155;--panel: #111827;--page: #020617;--nav: #020617;--nav-soft: #1e293b;--accent: #60a5fa;--accent-strong: #93c5fd;--gold: #fbbf24;--danger: #fca5a5;--shadow: 0 18px 48px rgba(0, 0, 0, .35)}body.auth-locked{overflow:hidden}body.auth-locked .app-shell,body.is-authenticated .login-screen{display:none}body.checkin-route{overflow:auto}body.checkin-route .login-screen,body.checkin-route .app-shell{display:none}body.public-route{overflow:auto}body.public-route .login-screen,body.public-route .checkin-page,body.public-route .app-shell{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.checkin-page[hidden]{display:none!important}button,input,select,textarea{font:inherit}.student-selector-search{margin-bottom:2px}.student-selector-search::-webkit-search-cancel-button{cursor:pointer}label:has(>.student-search-results),.report-builder-panel:has(>.student-search-results){position:relative}.student-selector-select{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.student-search-results{position:absolute;z-index:40;width:min(100%,620px);max-height:280px;overflow-y:auto;margin-top:6px;padding:6px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 18px 38px #0f172a2e}.student-search-result{display:block;width:100%;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:#0f172a;text-align:left;cursor:pointer}.student-search-result:hover,.student-search-result:focus-visible,.student-search-result.selected{background:#eff6ff;outline:none}.student-search-result span{display:block;font-weight:800}.student-search-result small{display:block;margin-top:2px;color:#64748b;font-size:.82rem}.student-search-no-results{margin:0;padding:10px 12px;color:#64748b}.contract-search-field{min-width:min(360px,100%)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 50% 0%,rgba(37,99,235,.18),transparent 34%),linear-gradient(135deg,#020617,#0f172a 52%,#111827);color:#fff}.login-content{width:min(100%,430px);display:grid;justify-items:center;gap:22px}.login-logo{width:min(280px,72vw);border-radius:8px;background:#020617;border:1px solid rgba(148,163,184,.24);box-shadow:0 24px 70px #0206176b}.login-card{width:100%;display:grid;gap:18px;padding:28px;border:1px solid rgba(226,232,240,.12);border-radius:8px;background:#fffffff7;color:var(--ink);box-shadow:0 28px 90px #00000057}.login-card h1{font-size:2rem;line-height:1}.login-card p:not(.eyebrow):not(.login-error){margin-top:8px;color:var(--muted);line-height:1.5}.login-choice-card{gap:22px}.login-choice-actions{display:grid;gap:12px}.login-choice-actions .primary-button,.login-choice-actions .secondary-button,#backToLoginChoice{display:inline-flex;align-items:center;justify-content:center;min-height:52px;text-align:center;text-decoration:none}.public-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:.88rem;font-weight:800}.public-links a{color:#ffffffe0;text-decoration:none}.public-links a:hover{color:#fff;text-decoration:underline}.login-error{min-height:20px;color:var(--danger);font-weight:800;font-size:.9rem}.checkin-page{min-height:100vh;min-height:100svh;min-height:100dvh;display:grid;place-items:center;padding:clamp(18px,4vh,32px) 24px;background:radial-gradient(circle at 50% 0%,rgba(37,99,235,.2),transparent 34%),linear-gradient(135deg,#020617,#111827 58%,#0f172a);color:#fff;overflow:auto}.checkin-shell{width:min(100%,440px);display:grid;gap:clamp(16px,3vh,22px);align-content:center;justify-items:stretch;margin:auto}.checkin-brand{display:flex;align-items:center;justify-content:center;gap:14px;min-width:0}.checkin-brand img{display:block;flex:0 0 86px;width:86px;height:58px;max-width:86px;max-height:58px;object-fit:contain;border-radius:8px;background:#030712;border:1px solid rgba(148,163,184,.24);padding:6px;box-sizing:border-box}.checkin-brand>div{flex:0 1 auto;min-width:0;max-width:min(220px,calc(100% - 100px))}.checkin-brand strong,.checkin-brand span{display:block}.checkin-brand span{color:#cbd5e1;font-weight:700;overflow-wrap:anywhere}.checkin-card{display:grid;gap:clamp(14px,2.6vh,18px);padding:clamp(22px,4vh,28px);border-radius:8px;background:#fffffffa;color:var(--ink);box-shadow:0 28px 90px #00000057}.checkin-card h1{margin:0;font-size:clamp(1.65rem,4vw,2rem);line-height:1.05}.checkin-card p:not(.eyebrow):not(.checkin-message){margin-top:8px;color:var(--muted);line-height:1.5}.checkin-message{min-height:22px;margin:0;font-weight:800}.checkin-message[data-type=success]{color:#067647}.checkin-message[data-type=error]{color:var(--danger)}.checkin-public-links a{color:#cbd5e1}.checkin-public-links a:hover{color:#fff}.public-page{min-height:100vh;padding:32px;background:var(--page)}.public-page-shell{width:min(100%,920px);margin:0 auto;display:grid;gap:24px}.public-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}.public-page-brand,.public-page-nav{display:flex;align-items:center;gap:14px}.public-page-brand{color:var(--ink);text-decoration:none;font-weight:900}.public-page-brand img{width:44px;height:44px;object-fit:contain;border-radius:8px;background:#020617}.public-page-nav{flex-wrap:wrap;justify-content:flex-end;font-size:.92rem;font-weight:800}.public-page-nav a{color:var(--muted);text-decoration:none}.public-page-nav a:hover,.public-page-nav a[aria-current=page]{color:var(--accent-strong);text-decoration:underline}.public-page-content{display:grid;gap:20px;padding:36px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.public-page-content h1{margin:0;font-size:clamp(2rem,5vw,3.3rem);line-height:1.05}.public-page-content h2{margin:0 0 8px;font-size:1.05rem}.public-page-content p{margin:0;color:#344054;line-height:1.65}.public-page-content section{display:grid;gap:8px}.public-updated{font-weight:800}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#fff;padding:28px 20px;display:flex;flex-direction:column;gap:32px}.brand{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:12px}.brand-logo{width:92px;height:62px;object-fit:contain;display:block;border-radius:8px;background:#030712;padding:6px;border:1px solid rgba(148,163,184,.22)}.brand p,.brand strong{margin:0}.brand p{color:#93a4bb;font-size:.84rem;font-weight:800}.brand strong{display:block;line-height:1.15;font-size:.96rem}.nav-list{display:grid;gap:8px}.nav-list a{min-height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:8px;color:#cbd5e1;text-decoration:none;font-weight:700}.nav-label{min-width:0}.nav-count-badge{margin-left:auto;min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0 7px;background:#ef4444;color:#fff;font-size:.72rem;line-height:1}.nav-count-badge[data-count="0"]{background:#94a3b83d;color:#cbd5e1}.nav-list a.active,.nav-list a:hover{background:var(--nav-soft);color:#fff}.staff-profile-card{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px solid rgba(203,213,225,.18);border-radius:8px;background:#0f172a38}.staff-profile-card img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid rgba(96,165,250,.55);background:#1d4ed8}.staff-profile-card strong,.staff-profile-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-profile-card strong{font-size:.92rem}.staff-profile-card span{color:#94a3b8;font-size:.78rem;font-weight:700}.notification-card{display:grid;gap:8px;margin-top:12px}.notification-toggle,.notification-subscribe{width:100%;min-height:40px;border:1px solid rgba(203,213,225,.18);border-radius:8px;background:#0f172a3d;color:#e2e8f0;cursor:pointer;font-weight:850}.notification-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px}.notification-toggle strong{min-width:24px;min-height:24px;display:inline-grid;place-items:center;border-radius:999px;background:#2563eb;color:#fff;font-size:.75rem}.notification-toggle strong[data-count="0"]{background:#94a3b83d;color:#cbd5e1}.notification-subscribe{color:#bfdbfe;font-size:.75rem}.notification-subscribe[data-state=enabled]{border-color:#22c55e52;background:#1665343d;color:#bbf7d0}.notification-subscribe[data-state=blocked],.notification-subscribe[data-state=setup]{border-color:#fbbf2459;background:#78350f2e;color:#fde68a}.logout-button{width:100%;min-height:44px;margin-top:auto;border:1px solid rgba(203,213,225,.22);border-radius:8px;background:#0f172a2e;color:#e2e8f0;cursor:pointer;font-weight:800}.logout-button:hover{background:var(--nav-soft);color:#fff}.app-shell[aria-hidden=true]{pointer-events:none}.dashboard{padding:32px;display:grid;gap:24px;align-content:start}.database-status{margin:20px 32px 0;padding:14px 16px;border:1px solid #fecaca;border-radius:8px;background:#fff1f2;color:#991b1b;font-weight:800;line-height:1.4}.view-section{display:none}.view-section.active-view{display:grid}.topbar,.panel-title{display:flex;justify-content:space-between;gap:18px;align-items:center}.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.refresh-control{display:inline-flex;align-items:center;gap:8px}.refresh-button{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;font-size:1.08rem;font-weight:900;line-height:1;transition:border-color .2s ease,color .2s ease,transform .2s ease}.refresh-button:hover{border-color:var(--accent);color:var(--accent-strong)}.refresh-button:disabled{cursor:wait;opacity:.65}.refresh-button.is-refreshing{transform:rotate(180deg)}.last-updated{color:var(--muted);font-size:.78rem;font-weight:800;white-space:nowrap}.cloud-sync-status{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.78rem;font-weight:900;white-space:nowrap}.cloud-sync-status[data-state=synced]{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.cloud-sync-status[data-state=saving],.cloud-sync-status[data-state=loading]{border-color:#fde68a;background:#fffbeb;color:#92400e}.cloud-sync-status[data-state=error]{border-color:#fecaca;background:#fff1f2;color:#991b1b}.notification-panel{overflow:hidden}.communication-center-panel{overflow:visible}.communication-form{display:grid;gap:14px;padding:18px}.communication-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.communication-form label{display:grid;gap:6px;color:var(--ink);font-size:.82rem;font-weight:900}.communication-form input,.communication-form select,.communication-form textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;min-height:42px;padding:10px 12px}.communication-form textarea{resize:vertical}.communication-student-picker select{min-height:160px}.communication-student-picker small{color:var(--muted);font-size:.75rem}.communication-student-picker.is-disabled{opacity:.72}.communication-confirmation-field{align-items:center;display:flex!important;gap:10px!important}.communication-confirmation-field input{width:auto;min-height:auto}.communication-status{min-height:20px;margin:0;color:var(--muted);font-size:.82rem;font-weight:900}.communication-status[data-type=success]{color:#047857}.communication-status[data-type=error]{color:#b91c1c}.notification-list{display:grid;gap:10px;padding:18px}.notification-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.notification-item[data-unread=true]{border-color:#bfdbfe;background:#eff6ff}.notification-item h3{margin:0 0 4px;color:var(--ink);font-size:.98rem}.notification-item p{margin:0;color:var(--muted)}.notification-item small{display:block;margin-top:6px;color:#64748b;font-size:.75rem;font-weight:800}.notification-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.notification-status{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:.72rem;font-weight:900;text-transform:uppercase}.notification-status[data-status=sent],.notification-status[data-status=confirmed]{background:#dcfce7;color:#166534}.notification-status[data-status=acknowledged],.notification-status[data-status=read]{background:#e0f2fe;color:#075985}.notification-status[data-status=pending]{background:#fef3c7;color:#92400e}.notification-status[data-status=failed],.notification-status[data-status=canceled],.notification-status[data-status=cancelled],.notification-status[data-status=ambiguous]{background:#fee2e2;color:#991b1b}.eyebrow{color:var(--accent-strong);font-weight:800;letter-spacing:0;margin:0 0 6px;text-transform:uppercase;font-size:.78rem}h1,h2,p{margin:0}h1{font-size:clamp(2rem,4vw,2.8rem);line-height:1.05}h2{font-size:1.05rem}.primary-button,.secondary-button,.icon-button,.edit-button,.register-button{border:0;border-radius:8px;font-weight:800;min-height:44px;cursor:pointer}.primary-button{background:var(--accent);color:#fff;padding:0 18px;box-shadow:0 8px 18px #2563eb38}.primary-button:hover{background:var(--accent-strong)}.secondary-button{background:#eef2f6;color:var(--ink);padding:0 16px}.icon-button{width:40px;background:#eef2f6;color:var(--ink);font-size:1.4rem;line-height:1}.edit-button{min-height:34px;padding:0 12px;background:#eff6ff;color:var(--accent-strong);white-space:nowrap}.edit-button:hover{background:#dbeafe}.danger-button{min-height:34px;padding:0 12px;border:0;border-radius:8px;background:#fff1f2;color:var(--danger);font-weight:800;cursor:pointer;white-space:nowrap}.danger-button:hover{background:#ffe4e6}.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.statistics-list{display:grid;gap:14px;padding:18px}.stat-breakdown-card{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.stat-breakdown-header{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;background:#f8fafc;border-bottom:1px solid var(--line)}.stat-breakdown-header h3{margin:0;font-size:1rem}.stat-breakdown-card ul{display:grid;gap:0;margin:0;padding:0;list-style:none}.stat-breakdown-card li{display:flex;justify-content:space-between;gap:16px;padding:10px 16px;border-bottom:1px solid var(--line)}.stat-breakdown-card li:last-child{border-bottom:0}.register-cell{display:grid;gap:8px;min-width:150px}.register-button{min-height:30px;padding:0 10px;background:#eef2f6;color:var(--ink);white-space:nowrap}.register-button:hover{background:#dbe4ef}.metrics{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px}.compact-metrics{grid-template-columns:repeat(4,minmax(180px,1fr))}.metric-card,.toolbar,.table-panel{background:var(--panel);border:1px solid rgba(215,221,230,.95);border-radius:8px;box-shadow:var(--shadow)}.metric-card{padding:18px;display:grid;gap:5px}.metric-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.financial-visibility-button{min-width:44px;min-height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;color:var(--accent-strong);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.financial-visibility-button:hover,.financial-visibility-button:focus-visible,.financial-summary-toggle:hover,.financial-summary-toggle:focus-visible{border-color:#1d4ed87a;outline:none}.sensitive-financial-card.financial-restricted strong{color:var(--muted);font-size:1rem}.financial-summary-toggle{white-space:nowrap}.appointment-metric-card{width:100%;border:1px solid rgba(215,221,230,.95);color:var(--ink);font:inherit;text-align:left;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.appointment-metric-card:hover,.appointment-metric-card:focus-visible{border-color:#1d4ed87a;box-shadow:0 12px 28px #1d4ed81f;outline:none;transform:translateY(-1px)}.metric-card-action{margin-top:5px;color:var(--accent-strong)!important;font-size:.78rem!important;text-transform:none!important}.metric-card span,.metric-card small,.panel-title p,label span{color:var(--muted)}.metric-card span,label span{font-size:.76rem;font-weight:800;text-transform:uppercase}.metric-card strong{font-size:1.7rem}.metric-card small{font-size:.86rem}.metric-card-filter{gap:12px}.inline-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inline-filter-grid label{display:grid;gap:6px}.inline-filter-grid input,.filter-card input,.filter-card select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:#fff}.filter-card{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.staff-hours-form{padding:18px;border-top:1px solid var(--line)}.dmv-attempt-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.metric-split{display:flex;gap:24px;align-items:flex-end}.metric-split>div{display:grid;gap:2px}.metric-split strong{line-height:1}.metric-split small{font-size:.78rem;font-weight:800}.toolbar{padding:16px;display:grid;grid-template-columns:minmax(240px,1fr) 190px 220px 220px;gap:14px;align-items:end}.graduated-toolbar{grid-template-columns:minmax(240px,1.35fr) repeat(3,minmax(160px,.8fr))}label{display:grid;gap:7px}input,select,textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);background:#fff;outline:none}textarea{min-height:92px;padding:10px 12px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #167e6626}.table-panel{overflow:hidden}.panel-title{padding:18px 20px;border-bottom:1px solid var(--line)}.table-wrap{overflow-x:auto}table{width:100%;min-width:1450px;border-collapse:collapse}th,td{padding:15px 12px;text-align:left;border-bottom:1px solid #edf1f5;vertical-align:middle}th{color:#596476;background:#f8fafc;font-size:.76rem;text-transform:uppercase;letter-spacing:0}td{font-size:.9rem}tr:last-child td{border-bottom:0}.student-cell{display:grid;grid-template-columns:38px 1fr;gap:9px;align-items:center;font-weight:800}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e5f3ef;color:var(--accent-strong);font-weight:900;overflow:hidden;border:1px solid rgba(29,78,216,.16)}.student-photo-avatar{display:block;object-fit:cover;object-position:22% 50%;background:#dfe7ef}.pill{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 10px;font-weight:800;font-size:.8rem;background:#eff6ff;color:var(--accent-strong);white-space:nowrap}.pill.gold{background:#fff3df;color:#8b5c12}.pill.success-pill{background:#ecfdf3;color:#067647}.pill.warning-pill{background:#fff3df;color:#8b5c12}.balance{font-weight:800}.balance.high{color:var(--danger)}.muted-status{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;padding:0 10px;background:#eef2f6;color:var(--muted);font-weight:800}.muted-status.dmv-needed{background:#fee4e2;color:var(--danger)}.dmv-appointment{display:grid;gap:2px}.dmv-appointment strong{font-size:.92rem}.dmv-appointment span{color:var(--muted);font-size:.82rem;font-weight:800}.completion-date{font-weight:800;border-radius:8px}.table-subtext{color:var(--muted);font-size:.8rem;font-weight:800}.phone-action-button{display:inline-flex;align-items:center;min-height:32px;border:1px solid #bfdbfe;border-radius:8px;padding:0 10px;background:#eff6ff;color:var(--accent-strong);font:inherit;font-weight:900;cursor:pointer;white-space:nowrap}.phone-action-button:hover,.phone-action-button:focus-visible{border-color:var(--accent);background:#dbeafe;outline:none}.schedule-week-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.schedule-week-controls strong{color:var(--ink);min-width:210px;text-align:center}.schedule-entry-form{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.schedule-entry-form label{display:grid;gap:6px}.schedule-entry-form label span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.schedule-checkbox-field{align-content:end}.schedule-checkbox-field input{width:18px;height:18px}.schedule-checkbox-field strong{color:var(--ink);font-size:.9rem}.schedule-form-actions{display:flex;align-items:end;gap:10px}.schedule-form-actions button{min-height:42px}.schedule-board{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px;padding:18px;border-bottom:1px solid var(--line);background:#f8fafc}.schedule-day-card{display:grid;align-content:start;gap:10px;min-height:220px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.schedule-day-card header{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;background:#e0f2fe;color:#0f172a;font-weight:900}.schedule-day-card header span{text-transform:uppercase}.schedule-day-entries{display:grid;gap:8px;padding:10px}.schedule-entry-card{display:grid;gap:6px;padding:10px;border-left:4px solid var(--accent);border-radius:8px;background:#eff6ff}.schedule-entry-card[data-schedule-type=driving][data-transmission=manual]{border-left-color:#1d4ed8;background:#dbeafe}.schedule-entry-card[data-schedule-type=dmv_route]{border-left-color:#facc15;background:#fef9c3}.schedule-entry-card[data-schedule-type=dmv_test]{border-left-color:#f97316;background:#ffedd5}.schedule-entry-card[data-schedule-type=skills]{border-left-color:#14b8a6;background:#ccfbf1}.schedule-entry-card[data-schedule-type=pre_trip]{border-left-color:#6366f1;background:#eef2ff}.schedule-entry-card>div:first-child{display:flex;justify-content:space-between;gap:8px;color:var(--ink);font-weight:900}.schedule-entry-card p{margin:0;font-weight:900}.schedule-entry-card small{color:var(--muted);font-weight:800}.schedule-confirmation-badge{width:fit-content;border-radius:999px;padding:4px 10px;background:#fef3c7;color:#92400e;font-size:.76rem;font-weight:900}.schedule-confirmation-badge[data-status=confirmed]{background:#dcfce7;color:#166534}.schedule-confirmation-badge[data-status=cancelled]{background:#fee2e2;color:#991b1b}.schedule-entry-meta{display:grid;gap:2px}.schedule-entry-meta a{width:fit-content}.schedule-entry-actions{display:flex;justify-content:flex-end;gap:8px}.weekly-whatsapp-dialog{max-width:min(980px,94vw)}.weekly-whatsapp-preview{display:grid;gap:12px;max-height:60vh;overflow:auto;padding-right:4px}.weekly-whatsapp-send-mode{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.weekly-whatsapp-send-mode label,.weekly-whatsapp-recipient-check{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--ink);font-weight:900;padding:10px 12px}.weekly-whatsapp-recipient-check{margin-bottom:8px;padding:6px 10px}.weekly-whatsapp-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#f8fafc}.weekly-whatsapp-card header{display:flex;justify-content:space-between;gap:12px;align-items:start}.weekly-whatsapp-card h3,.weekly-whatsapp-card p{margin:0}.weekly-whatsapp-card pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;color:var(--ink);font:800 .84rem/1.45 inherit}.weekly-whatsapp-items{display:grid;gap:6px;margin:0;padding-left:18px;color:var(--muted);font-weight:800}.weekly-whatsapp-status{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:7px 10px;border-radius:999px;background:#e0f2fe;color:#075985;font-size:.78rem;font-weight:900;text-transform:uppercase}.weekly-whatsapp-status[data-status=ready]{background:#dcfae6;color:#067647}.weekly-whatsapp-status[data-status=already_sent],.weekly-whatsapp-status[data-status=skipped]{background:#fef3c7;color:#92400e}.weekly-whatsapp-status[data-status=missing_phone],.weekly-whatsapp-status[data-status=invalid_phone]{background:#fee2e2;color:#991b1b}.schedule-list-title{border-top:0}.completion-date.safe{color:#067647;background:#dcfae6}.completion-date.warning{color:#8a5a00;background:#fff4d6}.completion-date.danger{color:#fff;background:var(--danger)}.progress-cell{display:grid;grid-template-columns:minmax(80px,1fr) 42px;gap:8px;align-items:center}.progress-track{height:9px;border-radius:999px;background:#e4eaf0;overflow:hidden}.progress-fill{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .18s ease}.empty-state{text-align:center;color:var(--muted);padding:34px}.tools-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}.tools-tabs,.tool-panel{background:var(--panel);border:1px solid rgba(216,222,232,.85);border-radius:8px;box-shadow:var(--shadow)}.tools-tabs{padding:10px;display:grid;gap:8px}.tool-tab{min-height:46px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-weight:800;text-align:left;padding:0 12px;cursor:pointer}.tool-tab.active,.tool-tab:hover{background:#eff6ff;color:var(--accent-strong)}.tool-panel{overflow:hidden}.upload-zone{margin:18px;min-height:150px;border:2px dashed #bfd2dc;border-radius:8px;display:grid;place-items:center;gap:6px;text-align:center;background:#f8fbfc;cursor:pointer}.upload-zone:hover{border-color:var(--accent);background:#f8fbff}.upload-zone strong{color:var(--accent-strong);font-size:1.15rem}.upload-zone small{color:var(--muted)}.upload-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.resource-grid{padding:0 18px 18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.resource-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.resource-preview{width:100%;height:180px;display:block;border:0;background:#eef2f6;object-fit:cover}.resource-body{padding:14px;display:grid;gap:8px}.resource-body h3{margin:0;font-size:1rem;overflow-wrap:anywhere}.resource-body p{color:var(--muted);font-size:.88rem}.resource-actions{display:flex;gap:8px;align-items:center}.resource-link{min-height:34px;display:inline-flex;align-items:center;text-decoration:none}.jarvis-pretrip-test{display:grid;gap:16px;margin-top:20px;padding:18px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff}.jarvis-pretrip-test .panel-title p:not(.eyebrow){margin:6px 0 0;color:#475467;font-weight:800}.jarvis-pretrip-form{display:grid;gap:14px}.jarvis-pretrip-form label{display:grid;gap:6px;color:#344054;font-weight:900}.jarvis-pretrip-form select,.jarvis-pretrip-form textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#101828;font:inherit;font-weight:800}.jarvis-pretrip-form select{min-height:46px;padding:0 12px}.jarvis-pretrip-form textarea{min-height:170px;padding:12px;resize:vertical;line-height:1.5}.jarvis-pretrip-actions{display:flex;gap:10px;flex-wrap:wrap}.jarvis-pretrip-status{margin:0;padding:12px;border-radius:8px;background:#fff;color:#1d4ed8;font-weight:900}.jarvis-pretrip-status[data-type=success]{color:#047857}.jarvis-pretrip-status[data-type=error]{color:#be123c}.jarvis-pretrip-result-card{display:grid;gap:14px;padding:16px;border:1px solid #dbe3ee;border-left:5px solid #f59e0b;border-radius:8px;background:#fff}.jarvis-pretrip-result-card[data-result-status=approved_for_practice]{border-left-color:#10b981}.jarvis-pretrip-score{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.jarvis-pretrip-score>div{display:grid;gap:4px}.jarvis-pretrip-score strong{color:#101828;font-size:2.4rem;line-height:1}.jarvis-pretrip-score span,.jarvis-pretrip-result-card p,.jarvis-pretrip-result-card small{margin:0;color:#667085;font-weight:800;line-height:1.45}.jarvis-pretrip-result-group{border:1px solid #e5edf6;border-radius:8px;overflow:hidden}.jarvis-pretrip-result-group summary{cursor:pointer;padding:12px;background:#f8fafc;color:#101828;font-weight:900}.jarvis-pretrip-result-group>div{display:grid;gap:8px;padding:10px}.jarvis-pretrip-result-group article{display:grid;gap:4px;padding:10px;border:1px solid #eef2f7;border-radius:8px}.jarvis-pretrip-result-group article strong{color:#101828}.air-brakes-review-test{display:grid;gap:16px;margin-top:20px;padding:18px;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed}.air-brakes-review-test .panel-title p:not(.eyebrow){margin:6px 0 0;color:#475467;font-weight:800}.air-brakes-review-warning,.air-brakes-review-guidance,.air-brakes-camera-card,.air-brakes-review-controls,.air-brakes-review-report-card{border:1px solid rgba(251,146,60,.35);border-radius:8px;background:#fff}.air-brakes-review-warning{display:grid;gap:4px;padding:12px;color:#9a3412;font-weight:900}.air-brakes-review-warning span{color:#667085;font-weight:800}.air-brakes-review-guidance{display:grid;gap:8px;padding:14px}.air-brakes-review-guidance h3,.air-brakes-review-guidance p,.air-brakes-review-guidance ul{margin:0}.air-brakes-review-guidance h3{color:#101828;font-size:1rem}.air-brakes-review-guidance p,.air-brakes-review-guidance li{color:#667085;font-weight:800;line-height:1.45}.air-brakes-review-guidance ul{padding-left:20px}.air-brakes-review-grid{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(240px,.7fr);gap:14px;align-items:start}.air-brakes-camera-card{min-height:260px;overflow:hidden}.air-brakes-camera-card video{display:block;width:100%;max-height:520px;background:#101828;object-fit:contain}.air-brakes-camera-card .empty-state{margin:0;min-height:260px;display:grid;place-items:center;color:#667085;font-weight:900;text-align:center}.air-brakes-review-controls{display:grid;gap:10px;padding:14px}.air-brakes-review-status{margin:0;padding:12px;border-radius:8px;background:#fff7ed;color:#9a3412;font-weight:900;line-height:1.4}.air-brakes-review-status[data-type=success]{color:#047857}.air-brakes-review-status[data-type=error]{color:#be123c}.air-brakes-review-student-picker{display:grid;gap:6px;max-width:520px;color:#344054;font-weight:900}.air-brakes-review-student-picker select{min-height:44px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#101828;font:inherit;font-weight:800;padding:0 12px}.air-brakes-review-transcript{display:grid;gap:8px;color:#344054;font-weight:900}.air-brakes-review-transcript textarea{width:100%;min-height:110px;border:1px solid #fed7aa;border-radius:8px;background:#fff;color:#101828;font:inherit;font-weight:800;line-height:1.45;padding:12px;resize:vertical}.air-brakes-review-form{display:grid;gap:14px}.air-brakes-review-fields{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.air-brakes-review-form label{display:grid;gap:6px;color:#344054;font-weight:900}.air-brakes-review-form small{color:#667085;font-weight:800;line-height:1.35}.air-brakes-review-form small[data-type=seen],.air-brakes-review-form small[data-type=no]{color:#047857}.air-brakes-review-form small[data-type=not_seen],.air-brakes-review-form small[data-type=yes]{color:#b45309}.air-brakes-review-form small[data-type=unclear]{color:#7c2d12}.air-brakes-ai-readout{display:inline-flex;width:fit-content;border-radius:999px;background:#eef2ff;color:#344054;padding:6px 10px;font-size:.88rem}.air-brakes-ai-readout[data-type=seen],.air-brakes-ai-readout[data-type=no]{background:#dcfce7;color:#047857}.air-brakes-ai-readout[data-type=not_seen],.air-brakes-ai-readout[data-type=yes],.air-brakes-ai-readout[data-type=unclear]{background:#ffedd5;color:#9a3412}.air-brakes-instructor-label{color:#475467;font-size:.85rem;font-weight:900;text-transform:uppercase}.air-brakes-review-form select,.air-brakes-review-form textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#101828;font:inherit;font-weight:800}.air-brakes-review-form select{min-height:44px;padding:0 12px}.air-brakes-review-form textarea{min-height:110px;padding:12px;resize:vertical;line-height:1.5}.air-brakes-review-report-card{display:grid;gap:14px;padding:16px;border-left:5px solid #f97316}.air-brakes-review-report-card p{margin:0;color:#667085;font-weight:800;line-height:1.45}.air-brakes-review-report-list{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.air-brakes-review-report-list article,.air-brakes-review-notes{display:grid;gap:4px;padding:12px;border:1px solid #eef2f7;border-radius:8px;background:#fff}.air-brakes-review-report-list article[data-review-value=seen],.air-brakes-review-report-list article[data-review-value=no]{border-color:#10b98173;background:#ecfdf3}.air-brakes-review-report-list article[data-review-value=not_seen],.air-brakes-review-report-list article[data-review-value=yes],.air-brakes-review-report-list article[data-review-value=needs_instructor_review]{border-color:#fb923c80;background:#fff7ed}.air-brakes-review-report-list strong,.air-brakes-review-notes strong{color:#101828}.air-brakes-review-report-list span,.air-brakes-review-report-list small,.air-brakes-review-report-list p,.air-brakes-review-notes p{margin:0;color:#667085;font-weight:900;line-height:1.4}.air-brakes-review-history,.air-brakes-history-list,.student-air-brakes-history-list{display:grid;gap:10px}.air-brakes-history-record,.student-air-brakes-history-record{border:1px solid #e5edf6;border-radius:8px;background:#fff;overflow:hidden}.air-brakes-history-record summary,.student-air-brakes-history-record summary{display:flex;gap:10px;justify-content:space-between;align-items:center;cursor:pointer;padding:12px;color:#101828;font-weight:900;list-style:none}.air-brakes-history-record summary::-webkit-details-marker,.student-air-brakes-history-record summary::-webkit-details-marker{display:none}.air-brakes-history-record[open] summary,.student-air-brakes-history-record[open] summary{border-bottom:1px solid #e5edf6}.air-brakes-history-record>div,.student-air-brakes-history-record>div{margin:12px}.student-air-brakes-guidance,.student-air-brakes-summary,.student-air-brakes-camera-card{margin-top:12px}.student-air-brakes-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.student-air-brakes-item{display:grid;gap:6px;border:1px solid #e5edf6;border-radius:8px;background:#fff;padding:12px}.student-air-brakes-item[data-review-value=seen],.student-air-brakes-item[data-review-value=no]{border-color:#10b98173;background:#ecfdf3}.student-air-brakes-item[data-review-value=not_seen],.student-air-brakes-item[data-review-value=yes],.student-air-brakes-item[data-review-value=unclear]{border-color:#fb923c80;background:#fff7ed}.student-air-brakes-item strong{color:#101828}.student-air-brakes-item span,.student-air-brakes-item small,.student-air-brakes-item p{margin:0;color:#667085;font-weight:900}.payments-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start}.payment-form{display:grid;gap:14px;padding:18px;background:var(--panel);border:1px solid rgba(215,221,230,.95);border-radius:8px;box-shadow:var(--shadow)}.payment-form h2{font-size:1.12rem}.payment-history{min-width:0}.payment-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payments-table{min-width:720px}.reports-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start}.report-builder-panel{display:grid;gap:14px;padding:18px;background:var(--panel);border:1px solid rgba(215,221,230,.95);border-radius:8px;box-shadow:var(--shadow)}.report-builder-panel h2{font-size:1.12rem}.report-builder-panel .primary-button{margin-top:4px}.report-preview-panel{min-width:0}.report-preview{display:grid;gap:16px;padding:18px}.report-preview-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.report-preview-header h3{font-size:1.2rem}.report-preview-header p,.report-preview-detail span,.report-preview-detail small{color:var(--muted)}.report-preview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.report-preview-metric{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.report-preview-metric span,.report-preview-detail span{font-size:.68rem;font-weight:850;text-transform:uppercase}.report-preview-metric strong{font-size:1.05rem}.report-preview-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.report-preview-detail{display:grid;gap:3px}.report-preview-detail strong{font-size:.9rem}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.settings-card{display:grid;gap:8px;background:var(--panel);border:1px solid rgba(215,221,230,.95);border-radius:8px;box-shadow:var(--shadow);padding:18px}.settings-card-wide{grid-column:1 / -1}.settings-card span{color:var(--accent-strong);font-size:.76rem;font-weight:800;text-transform:uppercase}.settings-card p{color:var(--muted);line-height:1.5}.profile-settings-card{align-content:start}.profile-form{display:grid;gap:16px;margin-top:8px}.profile-editor{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px}.profile-editor img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#dbeafe}.profile-photo-control{display:grid;gap:8px}.student-profile-photo-editor{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.student-profile-photo-editor img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#dbeafe}.profile-form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.staff-management-card[data-locked=true]{opacity:.84}.staff-permission-warning{padding:12px;border:1px solid #fde68a;border-radius:8px;background:#fffbeb;color:#92400e;font-weight:800}.staff-form{display:grid;gap:16px;margin-top:8px}.permissions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.permission-check,.switch-row{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.permission-check input,.switch-row input{width:18px;min-height:18px;accent-color:var(--accent)}.staff-actions{display:flex;gap:10px;flex-wrap:wrap}.staff-row-actions,.status-badge-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.compact-button{min-height:34px;padding:0 12px;border-radius:8px;font-size:.86rem}.temporary-password-notice{display:grid;gap:8px;padding:14px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e3a8a}.temporary-password-notice strong,.temporary-password-notice span{display:block}.temporary-password-notice code{width:fit-content;padding:8px 10px;border-radius:8px;background:#dbeafe;color:#0f172a;font-weight:900;letter-spacing:0}.staff-table{min-width:920px}.staff-user-cell{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px}.staff-user-cell img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#dbeafe}.staff-user-cell strong,.staff-user-cell span{display:block}.staff-user-cell span{color:var(--muted);font-size:.82rem}.status-pill{display:inline-flex;min-height:28px;align-items:center;padding:0 10px;border-radius:999px;font-size:.78rem;font-weight:900}.status-pill[data-active=true]{background:#dcfce7;color:#166534}.status-pill[data-active=false]{background:#fee2e2;color:#991b1b}.status-pill[data-status=protected]{background:#fef3c7;color:#92400e}.workflow-settings{display:grid;gap:16px;margin-top:8px}.workflow-section{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#f8fafc}.workflow-section h3{margin:0;font-size:1rem}.settings-placeholder{min-height:48px;display:flex;align-items:center;border-radius:8px;padding:0 12px;background:#eef2f6;color:var(--muted);font-weight:700}.saved-location-form{gap:14px}.saved-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.saved-location-grid label{display:grid;grid-template-columns:minmax(0,1fr)}.saved-location-grid input{text-align:left}.saved-location-active{align-self:end}.saved-location-actions,.saved-location-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.saved-location-list{display:grid;gap:10px;margin-top:8px}.saved-location-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.saved-location-row[data-location-active=false]{opacity:.66;background:#f8fafc}.saved-location-row strong,.saved-location-row span,.saved-location-row a,.saved-location-row small{display:block}.saved-location-row strong{color:var(--text);font-size:.98rem}.saved-location-row span,.saved-location-row small{color:var(--muted);font-size:.86rem;text-transform:none}.saved-location-row a{width:fit-content;color:var(--accent-strong);font-size:.86rem;font-weight:800;text-decoration:none}.settings-form{display:grid;gap:10px;margin-top:8px}.settings-form label{grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:12px}.settings-form input{text-align:right}.training-setting-row{display:grid;grid-template-columns:minmax(160px,1fr) 92px 44px;align-items:center;gap:10px}.training-setting-row .training-item-name{text-align:left}.training-setting-row .training-item-weight{text-align:right}.training-add-button{width:fit-content;min-height:40px}.settings-form small{color:var(--muted);font-weight:800}.settings-form-scroll{max-height:520px;overflow:auto;padding-right:6px}.settings-form-scroll #preTripWeightsList,.settings-form-scroll #skillsWeightsList,.settings-form-scroll #drivingWeightsList,.settings-form-scroll #manualDrivingWeightsList{display:grid;gap:10px}.theme-setting-control,.language-setting-control{display:grid;gap:8px}body.theme-dark .login-card,body.theme-dark .checkin-card,body.theme-dark .public-page-content,body.theme-dark .metric-card,body.theme-dark .toolbar,body.theme-dark .table-panel,body.theme-dark .settings-card,body.theme-dark .student-dialog,body.theme-dark .assistant-dialog,body.theme-dark .contract-dialog,body.theme-dark .contract-documents-dialog,body.theme-dark .checklist-dialog,body.theme-dark .contact-dialog,body.theme-dark .appointments-dialog,body.theme-dark .weekly-whatsapp-dialog,body.theme-dark .graduation-dialog,body.theme-dark .dmv-result-dialog,body.theme-dark .payment-receipt-dialog,body.theme-dark .profile-settings-card,body.theme-dark .tools-tabs,body.theme-dark .tool-panel,body.theme-dark .resource-card,body.theme-dark .workflow-section,body.theme-dark .saved-location-row,body.theme-dark .document-row,body.theme-dark .training-setting-row,body.theme-dark .attendance-row,body.theme-dark .report-preview,body.theme-dark .report-builder,body.theme-dark .notification-card,body.theme-dark .staff-statistics-panel,body.theme-dark .statistics-card,body.theme-dark .stat-card{background:var(--panel);color:var(--ink);border-color:var(--line)}body.theme-dark .student-profile-photo-editor{background:#0f172a;border-color:var(--line)}body.theme-dark input,body.theme-dark select,body.theme-dark textarea{background:#0f172a;color:var(--ink);border-color:var(--line)}body.theme-dark input::placeholder,body.theme-dark textarea::placeholder{color:#64748b}body.theme-dark input:disabled,body.theme-dark select:disabled,body.theme-dark textarea:disabled{background:#111827;color:#64748b}body.theme-dark thead,body.theme-dark th,body.theme-dark .table-panel header,body.theme-dark .panel-title,body.theme-dark .schedule-board,body.theme-dark .schedule-day-card,body.theme-dark .schedule-day-header,body.theme-dark .timeline,body.theme-dark .weekly-whatsapp-preview,body.theme-dark .assistant-readonly-note,body.theme-dark .assistant-message,body.theme-dark .document-card,body.theme-dark .settings-form,body.theme-dark .settings-placeholder,body.theme-dark .checklist-row,body.theme-dark .upload-zone,body.theme-dark .saved-location-row[data-location-active=false],body.theme-dark .payment-history-card,body.theme-dark .attendance-editor,body.theme-dark .statistics-breakdown,body.theme-dark .dmv-list-panel{background:#0f172a;color:var(--ink);border-color:var(--line)}body.theme-dark td,body.theme-dark th,body.theme-dark .schedule-entry-form,body.theme-dark .schedule-board,body.theme-dark .panel-title,body.theme-dark .student-dialog footer,body.theme-dark .assistant-header,body.theme-dark .assistant-footer,body.theme-dark .contract-dialog footer,body.theme-dark .checklist-dialog footer{border-color:var(--line)}body.theme-dark tbody tr:nth-child(2n),body.theme-dark .appointments-table tbody tr:nth-child(2n),body.theme-dark .payments-table tbody tr:nth-child(2n){background:#0b1220}body.theme-dark .secondary-button,body.theme-dark .ghost-button,body.theme-dark .icon-button,body.theme-dark .resource-action,body.theme-dark .phone-action-button,body.theme-dark .assistant-control-button,body.theme-dark .register-button,body.theme-dark .edit-button{background:#1e293b;color:#f1f5f9;border:1px solid #334155;box-shadow:inset 0 0 0 1px #94a3b81f}body.theme-dark .secondary-button:hover,body.theme-dark .ghost-button:hover,body.theme-dark .icon-button:hover,body.theme-dark .resource-action:hover,body.theme-dark .phone-action-button:hover,body.theme-dark .assistant-control-button:hover,body.theme-dark .register-button:hover,body.theme-dark .edit-button:hover{background:#24324a;border-color:#475569}body.theme-dark .secondary-button:disabled,body.theme-dark .ghost-button:disabled,body.theme-dark .icon-button:disabled,body.theme-dark .resource-action:disabled,body.theme-dark .register-button:disabled,body.theme-dark .edit-button:disabled{background:#1e293b;color:#e2e8f0;border-color:#334155;opacity:1}body.theme-dark .permission-check,body.theme-dark .switch-row{background:#1e293b;color:#f1f5f9;border-color:#334155}body.theme-dark .permission-check span,body.theme-dark .switch-row span{color:#f1f5f9;font-weight:900}body.theme-dark .permission-check input,body.theme-dark .switch-row input{accent-color:#60a5fa}body.theme-dark .tool-tab.active,body.theme-dark .tool-tab:hover,body.theme-dark .nav-list a.active,body.theme-dark .nav-list a:hover{background:#1e293b;color:#bfdbfe}body.theme-dark .empty-state,body.theme-dark .table-subtext,body.theme-dark .public-page-content p,body.theme-dark .settings-card p,body.theme-dark .metric-card small,body.theme-dark .panel-title p,body.theme-dark .assistant-readonly-note,body.theme-dark .saved-location-row span,body.theme-dark .resource-card p{color:var(--muted)}body.theme-dark .progress-track{background:#1e293b}body.theme-dark .progress-fill{background:var(--accent)}body.theme-dark .cloud-sync-status,body.theme-dark .sync-status[data-status=success]{background:#22c55e24;color:#bbf7d0;border-color:#22c55e47}body.theme-dark .sync-status[data-status=loading],body.theme-dark .status-pill,body.theme-dark .student-status-badge{border-color:#94a3b847}body.theme-dark .error-banner,body.theme-dark .app-error,body.theme-dark .login-error-box{background:#7f1d1d38;color:#fecaca;border-color:#f8717159}body.theme-dark .completion-good{background:#22c55e2e;color:#bbf7d0}body.theme-dark .completion-warning{background:#f59e0b33;color:#fde68a}body.theme-dark .completion-danger{background:#ef44442e;color:#fecaca}body.theme-dark .schedule-entry.practice-automatic{background:#172554;color:#dbeafe;border-color:#3b82f6}body.theme-dark .schedule-entry.practice-manual{background:#1e3a8a;color:#dbeafe;border-color:#60a5fa}body.theme-dark .schedule-entry.dmv-route{background:#422006;color:#fde68a;border-color:#f59e0b}body.theme-dark .schedule-entry.dmv-test{background:#431407;color:#fed7aa;border-color:#fb923c}@media (max-width: 680px){.saved-location-grid,.saved-location-row{grid-template-columns:minmax(0,1fr)}.training-setting-row{grid-template-columns:minmax(0,1fr) 82px 40px}}.student-dialog{width:min(720px,calc(100vw - 32px));border:0;border-radius:8px;padding:0;box-shadow:0 26px 80px #12233247}.student-dialog::backdrop{background:#12233285}.student-dialog form{display:grid;gap:20px;padding:24px}.contact-dialog{width:min(440px,calc(100vw - 32px))}.appointments-dialog{width:min(980px,calc(100vw - 32px))}.appointments-dialog-content{display:grid;gap:20px;padding:24px}.appointments-dialog-content .dialog-header p{margin:6px 0 0;color:var(--muted)}.appointments-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}.appointments-table{min-width:760px}.appointments-table th,.appointments-table td{white-space:nowrap}.appointments-table tbody tr:nth-child(2n){background:#f8fafc}.contact-dialog-content{display:grid;gap:20px;padding:24px}.contact-phone-display{margin:6px 0 0;color:var(--muted);font-weight:800}.contact-actions{display:grid;gap:10px}.contact-action-card{display:grid;gap:4px;min-height:72px;align-content:center;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#f8fafc;color:var(--ink);text-decoration:none}.contact-action-card:hover,.contact-action-card:focus-visible{border-color:var(--accent);background:#eff6ff;outline:none}.contact-action-card strong{font-size:1rem}.contact-action-card span{color:var(--muted);font-size:.86rem;font-weight:800}.contact-action-disabled{opacity:.62}.assistant-launcher{position:fixed;z-index:25;right:24px;bottom:24px;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 16px 0 10px;border:1px solid rgba(191,219,254,.42);border-radius:8px;background:var(--nav);color:#fff;box-shadow:0 16px 36px #0f172a38;cursor:pointer;font-weight:800}.assistant-launcher:hover{background:var(--nav-soft)}.assistant-launcher-mark{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:var(--accent);color:#fff;font-size:.72rem}.assistant-dialog{width:min(480px,calc(100vw - 32px));height:min(700px,calc(100dvh - 48px));max-height:calc(100vh - 48px);padding:0;border:0;border-radius:8px;background:var(--panel);box-shadow:0 30px 90px #0f172a57}.assistant-dialog::backdrop{background:#0f172a8a}.assistant-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100%}.assistant-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--line);background:var(--nav);color:#fff}.assistant-header h2{margin-top:4px;font-size:1.28rem}.assistant-header p:not(.eyebrow){margin-top:8px;color:#cbd5e1;font-size:.88rem;line-height:1.45}.assistant-readonly-note{display:grid;gap:3px;padding:12px 16px;border-bottom:1px solid var(--line);background:#eff6ff;color:var(--accent-strong);font-size:.82rem}.assistant-readonly-note span{color:#475467;line-height:1.35}.assistant-messages{display:flex;flex-direction:column;gap:12px;padding:16px;overflow-y:auto;background:#f8fafc}.assistant-message{display:grid;gap:5px;width:min(88%,390px);padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:.92rem;line-height:1.5;white-space:pre-wrap}.assistant-message strong{color:var(--accent-strong);font-size:.72rem;letter-spacing:0;text-transform:uppercase}.assistant-message-user{align-self:flex-end;border-color:#bfdbfe;background:#eff6ff}.assistant-message-error{border-color:#fecaca;background:#fff1f2;color:var(--danger)}.assistant-message-loading{color:var(--muted)}.assistant-form{display:grid;gap:10px;padding:14px;border-top:1px solid var(--line);background:#fff}.assistant-form textarea{width:100%;min-height:70px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:11px 12px;color:var(--ink);font:inherit;line-height:1.4}.assistant-form textarea:focus{border-color:var(--accent);outline:2px solid rgba(37,99,235,.16)}.assistant-form-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.assistant-form-actions button{min-height:40px}.assistant-form-spacer{flex:1}.assistant-microphone{display:inline-flex;align-items:center;gap:7px}.assistant-microphone span:first-child{color:var(--danger);font-size:.72rem}.assistant-microphone.is-recording{border-color:#fca5a5;background:#fff1f2;color:var(--danger)}.assistant-microphone.is-recording span:first-child{color:var(--danger)}.assistant-voice-status{min-height:18px;color:var(--muted);font-size:.78rem;line-height:1.35}.assistant-speech-status,.assistant-wake-status{min-height:18px;color:var(--muted);font-size:.76rem;line-height:1.35}.assistant-wake-status[data-state=listening],.assistant-wake-status[data-state=activated]{color:var(--accent-strong);font-weight:800}.assistant-wake-status[data-state=error]{color:var(--danger)}.assistant-speech-status[data-state=speaking]{color:var(--accent-strong);font-weight:800}.assistant-speech-status[data-state=error]{color:var(--danger)}.assistant-voice-status[data-state=listening]{color:var(--danger);font-weight:800}.assistant-voice-status[data-state=error]{color:var(--danger)}.dialog-header,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:16px}.dialog-actions{justify-content:flex-end}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid-wide{grid-column:1 / -1}.contract-dialog{width:min(980px,calc(100vw - 32px))}.contract-documents-dialog{width:min(680px,calc(100vw - 32px))}.document-upload-note{margin:0;color:var(--muted)}.document-upload-grid{display:grid;gap:12px}.document-upload-grid label{padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.document-upload-grid input[type=file]{padding:10px;background:#fff}.contract-document-list{display:grid;gap:10px;margin-top:14px}.contract-document-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.contract-document-card h3{margin:6px 0 4px;font-size:.98rem;overflow-wrap:anywhere}.contract-document-card p{margin:0;color:var(--muted);font-weight:700}.contract-document-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.attendance-section{display:grid;gap:12px;padding-top:6px;border-top:1px solid var(--line)}.attendance-list{display:grid;gap:10px}.attendance-editor{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.attendance-editor label{display:grid;gap:6px}.attendance-editor label span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.attendance-editor-actions{display:flex;grid-column:1 / -1;justify-content:flex-end;gap:8px}.attendance-editor-actions button{min-height:38px}.attendance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.attendance-row strong,.attendance-row span{display:block}.attendance-row div>span{color:var(--muted);font-weight:700}.attendance-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pending-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);gap:18px;align-items:start}.pending-panel{min-height:260px}.pending-list{display:grid;gap:10px;padding:14px}.pending-card{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.pending-card-clickable{cursor:pointer}.pending-card-clickable:hover,.pending-card-clickable:focus-visible{border-color:#2563eb73;box-shadow:0 8px 18px #0f172a14;outline:none}.pending-card-header{display:flex;justify-content:space-between;gap:12px;align-items:start}.pending-card h3{margin:0;font-size:1rem}.pending-card p{margin:0;color:var(--muted);font-weight:700}.pending-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pending-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding-top:4px}.pending-actions button{min-height:34px;padding:0 12px;font-size:.78rem}.pending-chip{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 10px;background:#fff1f2;color:#b91c1c;font-size:.78rem;font-weight:900}.pending-chip.warning{background:#fef3c7;color:#92400e}.pending-chip.neutral{background:#e0f2fe;color:#075985}.pending-chip.archived{background:#e2e8f0;color:#475569}#pendingArchivedToggle{margin-top:8px;width:fit-content}@media (max-width: 980px){.pending-layout{grid-template-columns:1fr}}.contract-form-section{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.contract-form-section h3{margin:0;color:var(--ink);font-size:1rem}.sms-consent-panel{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.sms-consent-check{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;color:var(--ink)}.sms-consent-check input{width:18px;height:18px;margin-top:3px;accent-color:var(--accent)}.sms-consent-check span{font-size:.9rem;font-weight:700;line-height:1.45}.contract-validation-message{margin:0;color:var(--danger);font-size:.88rem;font-weight:800}.compact-panel-title{padding:0;border:0}.schedule-editor,.schedule-rows{display:grid;gap:10px}.schedule-row{display:grid;grid-template-columns:150px 120px minmax(0,1fr) 42px;gap:8px;align-items:center}.signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.signature-grid>div{display:grid;gap:10px}.signature-pad-wrap{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.signature-pad-wrap canvas{display:block;width:100%;height:180px;touch-action:none;cursor:crosshair}.checklist-dialog{width:min(760px,calc(100vw - 32px))}.checklist-summary{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fbfc}.checklist-summary strong{color:var(--accent-strong)}.checklist-items{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:2px}.checklist-item{display:grid;grid-template-columns:28px minmax(0,1fr) 40px;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.checklist-done{width:20px;min-height:20px;accent-color:var(--accent)}.checklist-text{min-height:38px}.checklist-item-body{display:grid;gap:9px;min-width:0}.checklist-completion-meta{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr);gap:10px;padding-top:2px}.checklist-completion-meta.has-score{grid-template-columns:minmax(0,150px) minmax(0,1fr) minmax(0,110px)}.checklist-completion-meta.is-hidden{display:none}.checklist-completion-meta label{display:grid;gap:5px}.checklist-completion-meta span{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase}.checklist-completion-meta input{min-height:36px}.checklist-completion-meta input[readonly]{color:var(--muted);background:var(--soft)}.driving-register-meta{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.driving-register-meta label{display:grid;gap:6px}.driving-register-meta input{min-height:40px}.driving-register-meta small{color:var(--muted);font-weight:800}.driving-score-item{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.driving-score-item span,.driving-history-row span,.driving-history-row strong{min-width:0}.driving-score-input{text-align:right}.driving-history{display:grid;gap:8px;max-height:180px;overflow:auto}.driving-history h3{margin:0;font-size:1rem}.driving-history-row{display:grid;grid-template-columns:96px minmax(0,1fr) 72px auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.driving-history-row.editing{border-color:var(--accent);background:#eff6ff}.driving-history-row span:last-child{text-align:right;font-weight:900;color:var(--accent-strong)}.driving-history-actions{display:flex;gap:8px;justify-content:flex-end}.driving-history-actions button{min-height:36px;padding:0 12px}.compact-empty-state{padding:12px}@media (max-width: 980px){.login-screen{padding:28px}.app-shell{grid-template-columns:1fr}.sidebar{position:static;padding:18px}.nav-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.nav-list a{justify-content:center}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{grid-template-columns:1fr 1fr}.search-field{grid-column:1 / -1}.tools-layout,.payments-layout,.reports-layout{grid-template-columns:1fr}.report-preview-metrics,.schedule-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-board{grid-template-columns:repeat(2,minmax(220px,1fr))}.signature-grid,.settings-grid,.profile-editor{grid-template-columns:1fr}.profile-form-actions{align-items:stretch;flex-direction:column}.permissions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tools-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-tab{text-align:center}}@media (max-width: 640px){.login-screen{padding:24px 18px;overflow:auto}.checkin-page{padding:20px 16px}.checkin-brand img{flex-basis:76px;width:76px;height:52px;max-width:76px;max-height:52px}.checkin-card{padding:22px}.checkin-brand{align-items:center;justify-content:center}.login-card{padding:22px}.public-page{padding:20px}.public-page-header{align-items:flex-start;flex-direction:column}.public-page-nav{justify-content:flex-start}.public-page-content{padding:24px}.dashboard{padding:20px}.topbar{align-items:stretch;flex-direction:column}.topbar-actions{flex-direction:column;align-items:stretch}.primary-button{width:100%}.metrics,.toolbar,.nav-list,.schedule-entry-form,.schedule-board{grid-template-columns:1fr}.schedule-week-controls{align-items:stretch;flex-direction:column}.schedule-week-controls strong{min-width:0}.nav-list a{justify-content:flex-start}.brand{grid-template-columns:86px 1fr}.brand-logo{width:86px;height:58px}.form-grid{grid-template-columns:1fr}.form-grid-wide{grid-column:auto}.schedule-row{grid-template-columns:1fr}.permissions-grid,.staff-actions{grid-template-columns:1fr;flex-direction:column}.tools-tabs,.resource-grid{grid-template-columns:1fr}.report-preview-header{flex-direction:column}.report-preview-details{grid-template-columns:1fr}.attendance-row{align-items:flex-start;flex-direction:column}.attendance-editor{grid-template-columns:1fr}.attendance-row-actions{justify-content:flex-start}.checklist-completion-meta,.checklist-completion-meta.has-score{grid-template-columns:1fr}.assistant-launcher{right:16px;bottom:16px}.assistant-dialog{width:calc(100vw - 20px);height:min(720px,calc(100dvh - 20px));max-height:calc(100vh - 20px)}}.student-portal-route{background:#f4f7fb}.student-portal-page{min-height:100dvh;background:#f4f7fb;color:#111827}.student-portal-shell{width:min(100%,760px);min-height:100dvh;margin:0 auto;padding:18px}.student-portal-centered{display:grid;place-items:center}.student-portal-card{border:1px solid #dbe3ee;border-radius:8px;background:#fff;box-shadow:0 10px 28px #0f172a14;padding:18px}.student-portal-auth-card{display:grid;gap:16px;width:min(100%,420px)}.student-portal-auth-card h1,.student-portal-header h1,.student-portal-section h2{margin:0}.student-portal-auth-card p,.student-portal-header p,.student-portal-card small,.student-portal-card span,.student-portal-message-card p{color:#667085}.student-portal-auth-card label{display:grid;gap:6px;font-weight:800}.student-portal-auth-card input{width:100%;min-height:52px;border:1px solid #cbd5e1;border-radius:8px;padding:0 14px;font:inherit;font-size:1rem}.student-portal-logo{width:132px;height:auto}.student-portal-pin-hidden{display:none!important}.student-portal-message{min-height:20px;margin:0;font-weight:800}.student-portal-message.error{color:#b42318}.student-portal-message.success{color:#027a48}.student-portal-primary{min-height:52px;font-size:1rem}.student-portal-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.student-portal-header-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:10px;flex-wrap:wrap}.student-portal-language{display:grid;gap:5px;min-width:136px;color:#344054;font-size:.76rem;font-weight:900}.student-portal-language select{width:100%;min-height:42px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#111827;cursor:pointer;font:inherit;font-size:.88rem;font-weight:900;padding:0 10px}.student-portal-alerts,.student-portal-logout{min-height:42px;white-space:nowrap}.student-portal-alerts[data-state=enabled]{background:#dcfce7;color:#166534}.student-portal-alerts[data-state=blocked],.student-portal-alerts[data-state=setup]{background:#fef3c7;color:#92400e}.student-portal-notification-message{margin:-4px 0 14px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-weight:900;line-height:1.45;padding:10px 12px}.student-portal-notification-message[data-type=success]{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.student-portal-notification-message[data-type=error]{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.student-portal-nav{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0 -4px 18px;padding:8px 4px;background:#f4f7fb}.student-portal-nav button,.student-portal-section-heading button{border:0;border-radius:8px;background:#e8eef6;color:#344054;cursor:pointer;font:inherit;font-size:.78rem;font-weight:900;min-height:42px;padding:8px}.student-portal-nav button.active{background:#0f172a;color:#fff}.student-portal-content{display:grid;gap:18px}.student-portal-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.student-portal-summary-card,.student-portal-grid .student-portal-card,.student-portal-progress-item,.student-portal-payment{display:grid;gap:8px}.student-portal-card strong{color:#111827;font-size:1.25rem}.student-portal-section{display:grid;gap:12px}.student-portal-section-note{margin:6px 0 0;color:#667085;font-weight:800;line-height:1.45}.student-portal-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-portal-section-heading button{padding:8px 12px}.student-portal-list{display:grid;gap:12px}.student-portal-progress-track{overflow:hidden;height:10px;border-radius:999px;background:#e6edf5}.student-portal-progress-track span{display:block;height:100%;border-radius:inherit;background:#2563eb}.student-portal-progress-item>div:first-child,.student-portal-payment,.student-portal-appointment{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.student-portal-training-details{display:grid;gap:8px;margin-top:4px}.student-portal-training-item,.student-portal-driving-evaluation{display:grid;gap:4px;padding:10px;border-radius:8px;background:#f8fafc;border:1px solid #e5edf6}.student-portal-training-item>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-portal-training-item strong,.student-portal-training-evaluations>strong{font-size:.95rem;color:#111827}.student-portal-training-item span,.student-portal-training-item p,.student-portal-driving-evaluation p,.student-portal-training-empty{margin:0;color:#667085;font-size:.88rem;font-weight:800;line-height:1.4}.student-portal-training-item[data-completed=true]>div>span{color:#047857}.student-portal-training-item[data-completed=false]>div>span{color:#92400e}.student-portal-training-evaluations{display:grid;gap:8px;margin-top:4px}.student-portal-driving-evaluation p{display:flex;flex-wrap:wrap;gap:8px}.student-portal-driving-evaluation ul{display:grid;gap:4px;margin:4px 0 0;padding:0;list-style:none}.student-portal-driving-evaluation li{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#475467;font-size:.88rem;font-weight:800}.student-portal-jarvis{gap:16px}.student-portal-jarvis-panel{display:grid;gap:14px}.student-portal-jarvis-panel label{display:grid;gap:6px;font-weight:900;color:#344054}.student-portal-jarvis-panel select{width:100%;min-height:48px;padding:0 12px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;color:#101828;font:inherit;font-weight:900}.student-portal-jarvis-actions{display:flex;gap:10px;flex-wrap:wrap}.student-portal-jarvis-actions button{min-height:46px}.student-portal-jarvis-status{margin:0;padding:12px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-weight:900}.student-portal-jarvis-status[data-type=success]{background:#ecfdf3;color:#047857}.student-portal-jarvis-status[data-type=error]{background:#fff1f2;color:#be123c}.student-portal-jarvis-result{display:grid;gap:14px;border-left:5px solid #f59e0b}.student-portal-jarvis-result[data-result-status=approved_for_practice]{border-left-color:#10b981}.student-portal-jarvis-score{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.student-portal-jarvis-score>div{display:grid;gap:2px}.student-portal-jarvis-score span,.student-portal-jarvis-result p,.student-portal-jarvis-result small,.student-portal-jarvis-attempt p,.student-portal-jarvis-attempt small{margin:0;color:#667085;font-weight:800;line-height:1.45}.student-portal-jarvis-score strong{color:#101828;font-size:2rem}.student-portal-jarvis-group{border:1px solid #e5edf6;border-radius:8px;overflow:hidden}.student-portal-jarvis-group summary{cursor:pointer;padding:12px;background:#f8fafc;color:#101828;font-weight:900}.student-portal-jarvis-group>div{display:grid;gap:8px;padding:10px}.student-portal-jarvis-group article{display:grid;gap:4px;padding:10px;border-radius:8px;background:#fff;border:1px solid #eef2f7}.student-portal-jarvis-group article strong{color:#101828}.student-portal-jarvis-attempt{display:grid;gap:6px}.student-portal-jarvis-attempt>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.student-portal-appointment>div{display:grid;gap:4px}.student-portal-appointment>div:last-child{text-align:right}.student-portal-status{justify-self:end;border-radius:999px;background:#e8eef6;color:#344054!important;font-weight:900;padding:4px 10px;text-transform:capitalize}.student-portal-empty{border:1px dashed #cbd5e1;border-radius:8px;background:#fff;color:#667085;font-weight:800;padding:18px;text-align:center}.student-portal-message-card{display:grid;gap:6px}.student-portal-message-card[data-unread=true]{border-color:#bfdbfe;background:#eff6ff}.student-portal-message-card[data-important=true]{border-left:4px solid #f59e0b}.student-portal-message-card details{display:grid;gap:10px}.student-portal-message-summary{display:grid;gap:6px}.student-portal-message-card summary{cursor:pointer;width:fit-content;display:grid;gap:6px;list-style:none;color:#0f172a;font-weight:900}.student-portal-message-card summary::-webkit-details-marker{display:none}.student-portal-message-card p{margin:0}.student-portal-message-body{display:block;margin-top:8px;color:#667085;font-size:1rem;line-height:1.65;overflow-wrap:anywhere;white-space:normal}.student-portal-message-body a{color:#1d4ed8;font-weight:900;text-decoration:underline}.student-portal-important-note{display:inline-flex;margin-top:10px;color:#92400e!important;font-weight:900}.student-portal-message-actions{display:flex;flex-wrap:wrap;gap:8px}.student-portal-message-actions button{border:0;border-radius:8px;background:#0f172a;color:#fff;cursor:pointer;font:inherit;font-size:.8rem;font-weight:900;min-height:38px;padding:8px 12px}.student-portal-message-actions button:nth-child(n+2){background:#e8eef6;color:#344054}.student-portal-document-layout,.student-portal-document-panel,.student-portal-document-list{display:grid;gap:12px}.student-portal-document-panel h3{margin:0}.student-portal-document-row{display:grid;gap:10px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;padding:12px}.student-portal-document-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-portal-document-row strong,.student-portal-document-row small{overflow-wrap:anywhere}.student-portal-file-control{display:grid;gap:6px}.student-portal-file-control input{min-height:44px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:10px;font:inherit}.student-portal-document-message{min-height:18px;margin:0;color:#667085;font-weight:900}.student-portal-document-message[data-type=success]{color:#027a48}.student-portal-document-message[data-type=error]{color:#b42318}.student-portal-document-upload{min-height:44px}.student-portal-document-uploaded{background:#f8fafc}.student-portal-additional-document{display:grid;gap:10px;border-top:1px solid #dbe3ee;padding-top:12px}@media (max-width: 720px){.air-brakes-review-grid,.air-brakes-review-fields,.air-brakes-review-report-list,.student-air-brakes-grid,.air-brakes-review-controls,.communication-grid,.notification-item{grid-template-columns:1fr}.student-portal-shell{padding:14px}.student-portal-header{display:grid}.student-portal-header-actions{justify-content:flex-start}.student-portal-grid{grid-template-columns:1fr}.student-portal-nav{overflow-x:auto;grid-template-columns:repeat(7,minmax(96px,1fr));scrollbar-width:none}.student-portal-nav::-webkit-scrollbar{display:none}.student-portal-appointment{display:grid}.student-portal-appointment>div:last-child{text-align:left}.student-portal-status{justify-self:start}}
