@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css");:root{--blue:#2563eb;--blue-strong:#1d4ed8;--blue-soft:#eff6ff;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--paper:#f8fafc;--white:#ffffff;--green:#10b981;--amber:#f59e0b;--red:#ef4444;--radius:18px;--shadow:0 14px 44px rgba(15,23,42,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Pretendard,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a,button{color:inherit}a{text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}.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}.brand,.brand-logo-frame{display:inline-flex;align-items:center}.brand-logo-frame{justify-content:center;flex:0 0 auto;border-radius:8px}.brand-logo-frame.on-dark{padding:4px 6px;border:1px solid rgba(255,255,255,.7);background:white;box-shadow:0 7px 18px rgba(15,23,42,.22)}.brand-logo-image{display:block;width:166px;height:auto}.brand-logo-frame.compact .brand-logo-image{width:144px}.kicker,.page-eyebrow{margin:0 0 10px;color:var(--blue);font-size:13px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.kicker.warning{color:#d97706}.kicker.success{color:#059669}.prototype-badge{padding:7px 11px;border:1px solid #bfdbfe;border-radius:999px;color:var(--blue-strong);background:var(--blue-soft);font-size:12px;font-weight:800;white-space:nowrap}.prototype-home{min-height:100vh;padding:0 max(24px,calc((100vw - 1180px) / 2));overflow:hidden;background:radial-gradient(circle at 78% 16%,#dbeafe 0,transparent 28%),linear-gradient(180deg,#fff,#f8fafc 74%)}.prototype-home>header{height:76px;display:flex;align-items:center;justify-content:space-between}.home-hero{min-height:480px;display:grid;grid-template-columns:1.3fr .7fr;align-items:center;gap:70px;padding:60px 0 44px}.home-hero h1{margin:0;max-width:760px;font-size:clamp(42px,5.4vw,72px);line-height:1.08;letter-spacing:-.055em}.home-hero>div>p:not(.kicker){max-width:660px;margin:25px 0 0;color:#475569;font-size:19px;line-height:1.72}.home-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.home-pills span{display:flex;gap:7px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.8);color:#334155;font-size:13px;font-weight:700}.home-orbit{position:relative;width:310px;height:310px;justify-self:center;border:1px dashed #93c5fd;border-radius:50%;animation:float 5s ease-in-out infinite}.home-orbit:before{content:"";position:absolute;inset:45px;border:1px dashed #cbd5e1;border-radius:50%}.orbit-center{inset:50%;place-items:center;width:92px;height:92px;margin:-46px;border-radius:30px;color:white;background:linear-gradient(145deg,#2563eb,#4f46e5);font-size:34px;font-weight:900;box-shadow:0 25px 55px rgba(37,99,235,.28)}.orbit-center,.orbit-item{position:absolute;display:grid}.orbit-item{place-items:center;width:58px;height:58px;border:1px solid #dbeafe;border-radius:20px;background:white;box-shadow:var(--shadow);font-size:27px;font-style:normal}.orbit-item.i1{top:-12px;left:125px}.orbit-item.i2{right:-6px;top:120px}.orbit-item.i3{bottom:-7px;left:125px}.orbit-item.i4{left:-10px;top:120px}@keyframes float{50%{transform:translateY(-9px)}}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:48px}.role-card{position:relative;display:flex;flex-direction:column;min-height:360px;padding:30px;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:white;transition:transform .2s,border-color .2s,box-shadow .2s}.role-card:hover{transform:translateY(-5px);border-color:#93c5fd;box-shadow:var(--shadow)}.role-card:after{content:"";position:absolute;right:-45px;top:-45px;width:150px;height:150px;border-radius:50%;background:#eff6ff}.role-icon{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;margin-bottom:28px;border-radius:16px;color:var(--blue);background:#eff6ff}.role-card.school .role-icon{color:#059669;background:#ecfdf5}.role-card.ops .role-icon{color:#7c3aed;background:#f5f3ff}.role-card small{color:var(--muted);font-weight:700}.role-card h2{margin:7px 0 12px;font-size:25px;letter-spacing:-.03em}.role-card p{margin:0;color:var(--muted);line-height:1.6}.role-card ul{margin:20px 0 26px;padding:0;list-style:none}.role-card li{margin:9px 0;color:#334155;font-size:14px}.role-card li:before{content:"✓";margin-right:8px;color:var(--blue);font-weight:900}.role-card strong:last-child{display:flex;align-items:center;gap:8px;margin-top:auto;color:var(--blue)}.prototype-home>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 40px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.prototype-home>footer strong{color:var(--ink)}.prototype-home>footer a{color:var(--blue);font-weight:800}.student-shell{min-height:100vh;background:radial-gradient(circle at 16% 14%,#dbeafe 0,transparent 22%),radial-gradient(circle at 86% 26%,#ede9fe 0,transparent 22%),#f8fafc}.student-header{justify-content:space-between;max-width:1120px;height:72px;margin:0 auto;padding:0 24px}.secure-chip,.student-header{display:flex;align-items:center}.secure-chip{gap:5px;padding:7px 10px;border:1px solid #dbeafe;border-radius:999px;color:#1e40af;background:rgba(255,255,255,.75);font-size:12px;font-weight:800}.student-stage{width:min(100% - 32px,1040px);margin:0 auto;padding:42px 0 72px}.event-eyebrow{margin-bottom:18px;text-align:center;color:var(--muted);font-size:13px;font-weight:800}.stepper{display:flex;justify-content:center;gap:clamp(28px,7vw,76px);margin:0 auto 30px}.step{position:relative;display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:2px solid #cbd5e1;border-radius:50%;color:#94a3b8;background:white;font-size:12px;font-weight:800}.step:not(:last-child):after{content:"";position:absolute;left:32px;width:calc(clamp(28px, 7vw, 76px) + 2px);height:2px;background:#e2e8f0}.step.active{border-color:var(--blue);color:white;background:var(--blue)}.step.active:not(:last-child):after{background:#93c5fd}.step small{position:absolute;top:40px;width:76px;color:#64748b;text-align:center;font-size:11px;white-space:nowrap}.step.active small{color:#1e40af}.student-card{width:min(100%,620px);margin:50px auto 0;padding:clamp(28px,5vw,52px);border:1px solid rgba(226,232,240,.85);border-radius:28px;background:rgba(255,255,255,.95);box-shadow:0 25px 70px rgba(15,23,42,.1)}.selection-heading h1,.student-card h1{margin:0;font-size:clamp(30px,5vw,44px);line-height:1.15;letter-spacing:-.045em}.hero-emoji{display:inline-grid;place-items:center;width:62px;height:62px;margin-bottom:24px;border-radius:20px;color:var(--blue);background:#eff6ff;font-size:34px}.lead{margin:16px 0 26px;color:#64748b;line-height:1.65}.notice{display:flex;gap:12px;padding:16px;border-radius:14px;color:#1e3a8a;background:#eff6ff;font-size:14px;line-height:1.45}.notice svg{flex:0 0 auto;margin-top:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0 18px}.field-label,.form-grid label{display:grid;align-content:start;gap:8px;color:#334155;font-size:13px;font-weight:800}.form-grid label.full{grid-column:1/-1}.field-label input,.field-label select,.field-label textarea,.form-grid input,.form-grid select{width:100%;min-height:48px;padding:0 14px;border:1px solid #cbd5e1;border-radius:11px;color:var(--ink);background:white}.form-grid select:disabled{color:#334155;background:#f1f5f9;opacity:1}.locked-field{display:flex;align-items:center;gap:4px;color:#64748b;font-size:10px;font-weight:700}.roster-picker{margin:0 0 18px}.roster-picker-label{margin:0 0 10px;color:#334155;font-size:13px;font-weight:800}.roster-picker-note{margin:0;padding:14px 16px;border-radius:12px;color:#475569;background:#f8fafc;font-size:14px;line-height:1.5}.roster-picker-note.error{color:#b91c1c;background:#fef2f2}.roster-picker-note.error .secondary-button{margin-top:10px}.roster-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:340px;overflow-y:auto;padding:4px}.roster-name{display:grid;justify-items:center;gap:2px;min-height:62px;padding:10px 8px;border:1px solid #cbd5e1;border-radius:12px;background:white;cursor:pointer;transition:border-color .12s,background .12s}.roster-name:hover{border-color:var(--blue);background:#f8fbff}.roster-name strong{color:var(--ink);font-size:15px;letter-spacing:-.02em;overflow-wrap:anywhere}.roster-name small{color:#94a3b8;font-size:11px;font-weight:700}.roster-name.picked{border-color:var(--blue);border-width:2px;padding:9px 7px;background:var(--blue-soft)}.roster-name.picked strong{color:var(--blue)}.roster-name.picked small{color:#3b82f6}.roster-name:focus-visible{outline:3px solid #dbeafe;outline-offset:1px}.field-label textarea{min-height:100px;padding-top:12px;resize:vertical}.field-label input:focus,.field-label select:focus,.field-label textarea:focus,.form-grid input:focus,.form-grid select:focus{border-color:var(--blue);outline:3px solid #dbeafe}.button,.primary-button,.secondary-button,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:0;border-radius:11px;cursor:pointer;font-weight:800;transition:transform .15s,background .15s,opacity .15s}.primary-button{width:100%;min-height:52px;color:white;background:var(--blue)}.button.primary:hover,.primary-button:hover{background:var(--blue-strong)}.button:active,.primary-button:active{transform:translateY(1px)}.button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.45}.secondary-button{width:100%;border:1px solid var(--line);background:white}.text-button{padding:0 10px;color:#475569;background:transparent}.text-button.centered{display:flex;margin:12px auto 0}.demo-hint{margin:13px 0 0;color:#94a3b8;text-align:center;font-size:12px}.selection-view{margin-top:55px}.selection-heading{max-width:680px;margin-bottom:30px}.selection-heading>p:last-child{color:var(--muted)}.program-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.program-card{position:relative;display:grid;grid-template-columns:64px 1fr auto;gap:15px;min-height:158px;padding:20px;text-align:left;border:1px solid var(--line);border-radius:18px;background:white;cursor:pointer;transition:border-color .18s,transform .18s,box-shadow .18s}.program-card:hover:not(:disabled){transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 30px rgba(37,99,235,.1)}.program-card.selected{border:2px solid var(--blue);background:#f8fbff}.program-card:disabled{cursor:not-allowed;opacity:.52}.program-emoji{display:grid;place-items:center;width:58px;height:58px;border-radius:17px;background:#f1f5f9;font-size:29px}.program-copy{display:flex;flex-direction:column;gap:4px}.program-copy small{color:var(--blue);font-size:11px;font-weight:800}.program-copy strong{font-size:18px}.program-copy>span{color:var(--muted);font-size:13px;line-height:1.45}.program-copy em{display:flex;align-items:center;gap:4px;margin-top:auto;color:#475569;font-size:12px;font-style:normal}.seat-chip{align-self:start;padding:6px 8px;border-radius:999px;color:#047857;background:#ecfdf5;font-size:10px;font-weight:800;white-space:nowrap}.seat-chip.low{color:#b45309;background:#fffbeb}.selected-check{position:absolute;right:-8px;top:-8px;display:grid;place-items:center;width:27px;height:27px;border:3px solid white;border-radius:50%;color:white;background:var(--blue)}.sticky-actions{position:sticky;bottom:18px;z-index:3;display:flex;justify-content:flex-end;gap:10px;width:min(100%,560px);margin:28px 0 0 auto;padding:12px;border:1px solid rgba(226,232,240,.8);border-radius:15px;background:rgba(255,255,255,.92);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sticky-actions .primary-button{width:auto;min-width:190px}.status-card{text-align:center}.status-card .lead{max-width:470px;margin-left:auto;margin-right:auto}.identity-ticket{display:flex;align-items:center;gap:12px;margin:25px 0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;text-align:left}.identity-ticket span{color:var(--muted);font-size:13px}.identity-ticket strong{margin-right:auto}.identity-ticket em{padding:6px 9px;border-radius:999px;color:#b45309;background:#fffbeb;font-size:11px;font-style:normal;font-weight:800}.done-card .identity-ticket em{color:#047857;background:#ecfdf5}.success-orbit{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 25px;border-radius:50%;color:white;background:var(--green);box-shadow:0 0 0 12px #d1fae5}.schedule-list{display:grid;gap:12px;margin:26px 0}.schedule-list>div{display:flex;align-items:center;gap:15px;padding:17px;border:1px solid var(--line);border-radius:15px;text-align:left}.schedule-list>div>span{display:grid;place-items:center;flex:0 0 auto;width:35px;height:35px;border-radius:11px;color:var(--blue);background:var(--blue-soft);font-weight:900}.schedule-list p{display:grid;gap:4px;margin:0}.schedule-list small{color:var(--blue);font-weight:800}.schedule-list strong{font-size:16px}.schedule-list em{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:12px;font-style:normal}.confirm-warning{margin:18px 0;padding:13px;border-radius:11px;color:#92400e;background:#fffbeb;font-size:13px}.student-footer{padding:22px;color:#94a3b8;text-align:center;font-size:11px}.login-shell{min-height:100vh;display:grid;grid-template-columns:44% 56%;background:white}.login-aside{min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(34px,5vw,72px);color:white;background:radial-gradient(circle at 20% 80%,rgba(96,165,250,.35),transparent 32%),linear-gradient(145deg,#1d4ed8,#1e3a8a)}.login-aside>div{max-width:520px}.login-aside h1{margin:12px 0 22px;font-size:clamp(34px,4vw,56px);line-height:1.14;letter-spacing:-.045em}.login-aside p:not(.kicker){color:#dbeafe;line-height:1.7}.login-aside>small{color:#93c5fd}.login-illustration{display:grid;place-items:center;width:92px;height:92px;margin-bottom:28px;border:1px solid rgba(255,255,255,.22);border-radius:29px;background:rgba(255,255,255,.12)}.login-main{display:grid;place-items:center;padding:30px}.login-card{width:min(100%,460px);padding:36px 0}.login-icon{display:grid;place-items:center;width:50px;height:50px;margin-bottom:25px;border-radius:15px;color:var(--blue);background:var(--blue-soft)}.login-card h1{margin:0;font-size:36px;letter-spacing:-.04em}.login-card>p:not(.page-eyebrow){margin:12px 0 30px;color:var(--muted)}.login-method,.login-method form{display:grid;gap:14px}.login-method-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.login-method-heading strong{font-size:15px}.login-method-heading span,.login-safety-note{color:var(--muted);font-size:11px}.login-safety-note{margin:0;line-height:1.5}.login-divider{display:flex;align-items:center;gap:12px;margin:25px 0;color:#94a3b8;font-size:11px;font-weight:700}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.password-field{display:flex;align-items:center;height:52px;padding:0 14px;border:1px solid #cbd5e1;border-radius:12px}.password-field:focus-within{border-color:var(--blue);outline:3px solid #dbeafe}.password-field svg{color:#94a3b8}.password-field input{flex:1 1;height:100%;padding:0 10px;border:0;outline:0}.login-button{margin-top:2px}.secondary-button:disabled{cursor:not-allowed;opacity:.45}.demo-notice{display:grid;gap:5px;margin:20px 0;padding:14px;border-radius:11px;color:#475569;background:#f1f5f9;font-size:12px;line-height:1.5}.login-card>a{color:var(--blue);font-size:13px;font-weight:800}.admin-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:#f4f7fb}.admin-sidebar{position:sticky;top:0;z-index:20;min-height:100vh;display:flex;flex-direction:column;padding:20px 14px 16px;color:#cbd5e1;background:#0f172a}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px}.sidebar-brand .brand-mark{width:35px;height:35px}.sidebar-brand div{display:grid;gap:2px}.sidebar-brand strong{color:white;letter-spacing:-.02em}.sidebar-brand small{color:#64748b;font-size:10px}.mobile-close{display:none;margin-left:auto;border:0;color:white;background:transparent}.org-switch{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;margin-bottom:20px;padding:11px;border:1px solid #334155;border-radius:12px;background:#1e293b}.org-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:white;background:var(--blue);font-size:13px;font-weight:900}.org-switch div{display:grid;gap:2px}.org-switch small{color:#64748b;font-size:9px}.org-switch strong{overflow:hidden;color:#e2e8f0;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-sidebar nav{display:grid;gap:4px}.admin-sidebar nav button{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;height:43px;padding:0 12px;border:0;border-radius:9px;color:#94a3b8;background:transparent;text-align:left;cursor:pointer;font-size:13px;font-weight:700}.admin-sidebar nav button:hover{color:white;background:#1e293b}.admin-sidebar nav button.active{color:white;background:var(--blue)}.admin-sidebar nav em{min-width:20px;padding:3px 6px;border-radius:999px;color:white;background:#ef4444;text-align:center;font-size:9px;font-style:normal}.sidebar-help{display:flex;align-items:center;gap:9px;margin-top:auto;padding:12px;border:1px solid #334155;border-radius:11px;background:#1e293b}.sidebar-help>span{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;color:#bfdbfe;background:#1e40af;font-weight:900}.sidebar-help div{display:grid;gap:2px}.sidebar-help strong{color:#e2e8f0;font-size:11px}.sidebar-help small{color:#64748b;font-size:9px}.sidebar-user{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;margin-top:12px;padding:12px 5px 0;border-top:1px solid #1e293b}.sidebar-user>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#1e3a8a;background:#dbeafe;font-size:11px;font-weight:900}.sidebar-user div{display:grid;gap:2px}.sidebar-user strong{color:#e2e8f0;font-size:11px}.sidebar-user small{color:#64748b;font-size:9px}.sidebar-user button{border:0;color:#64748b;background:transparent}.sidebar-backdrop{display:none}.sidebar-brand{align-items:flex-start}.sidebar-brand-copy{display:grid;gap:6px;min-width:0}.sidebar-brand .brand-logo-frame{display:inline-flex;justify-self:start}.sidebar-brand-copy small{padding-left:2px}.admin-workspace{min-width:0}.admin-topbar{position:sticky;top:0;z-index:10;display:none;align-items:center;justify-content:space-between;gap:14px;height:64px;padding:0 30px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.menu-trigger{display:none;border:0;background:transparent}.admin-topbar .prototype-badge{margin-left:auto}.icon-button{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:9px;background:white;cursor:pointer}.icon-button i{position:absolute;right:7px;top:7px;width:6px;height:6px;border:1px solid white;border-radius:50%;background:var(--red)}.admin-content{max-width:1480px;margin:0 auto;padding:34px 32px 70px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:26px}.page-header h1{margin:0 0 8px;font-size:30px;letter-spacing:-.04em}.page-header>div>p:last-child{margin:0;color:var(--muted);font-size:13px}.header-actions{gap:9px}.header-actions,.live-chip{display:flex;align-items:center}.live-chip{gap:6px;padding:8px 10px;border-radius:999px;color:#047857;background:#ecfdf5;font-size:11px;font-weight:800}.live-chip i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #d1fae5}.button{min-height:40px;font-size:12px}.button.primary{color:white;background:var(--blue)}.button.secondary{border:1px solid var(--line);background:white}.button.ghost{color:#475569;background:#f1f5f9}.button.danger{color:white;background:var(--red)}.button.danger-outline{border:1px solid #fecaca;color:#b91c1c;background:white}.button.full{width:100%}.event-selector{display:flex;align-items:flex-start;gap:14px;margin:-8px 0 24px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:white}.event-selector>span{padding-top:9px;color:var(--muted);font-size:11px;font-weight:800}.event-selector>div{display:flex;flex-wrap:wrap;gap:8px}.event-selector a{display:grid;gap:2px;min-width:180px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#f8fafc}.event-selector a.active{border-color:#93c5fd;color:var(--blue-strong);background:var(--blue-soft)}.event-selector strong{font-size:12px}.event-selector small{color:var(--muted);font-size:10px}.panel{border:1px solid var(--line);border-radius:15px;background:white;box-shadow:0 3px 12px rgba(15,23,42,.03)}.panel-title{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #edf2f7}.panel-title h2{margin:0 0 5px;font-size:16px;letter-spacing:-.02em}.panel-title p{margin:0;color:var(--muted);font-size:11px}.panel-title>button:not(.icon-button){border:0;color:var(--blue);background:transparent;font-size:11px;font-weight:800}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.metric-grid.ops{grid-template-columns:repeat(3,1fr)}.metric-card{position:relative;min-height:130px;display:flex;align-items:center;gap:13px;padding:20px;border:1px solid var(--line);border-radius:14px;background:white}.metric-card.primary{color:white;border:0;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.metric-icon{display:grid;place-items:center;flex:0 0 auto;width:43px;height:43px;border-radius:13px;color:var(--blue);background:#eff6ff}.metric-card.primary .metric-icon{color:white;background:rgba(255,255,255,.18)}.metric-icon.green{color:#059669;background:#ecfdf5}.metric-icon.amber{color:#d97706;background:#fffbeb}.metric-icon.red{color:#dc2626;background:#fef2f2}.metric-card>div:nth-child(2){display:grid;gap:3px}.metric-card span{color:#64748b;font-size:11px;font-weight:700}.metric-card.primary small,.metric-card.primary span{color:#bfdbfe}.metric-card strong{font-size:25px;letter-spacing:-.03em}.metric-card.ops strong{font-size:20px}.metric-card small{color:#94a3b8;font-size:10px}.metric-card>em{position:absolute;right:15px;top:15px;padding:5px 7px;border-radius:999px;color:#dbeafe;background:rgba(255,255,255,.14);font-size:9px;font-style:normal;font-weight:800}.metric-card>button{position:absolute;right:13px;bottom:13px;display:flex;align-items:center;border:0;color:var(--blue);background:transparent;font-size:10px;font-weight:800}.green-text{color:#047857!important;background:#ecfdf5!important}.red-text{color:#b91c1c!important;background:#fef2f2!important}.admin-grid{display:grid;gap:16px;margin-bottom:16px}.admin-grid.two-thirds{grid-template-columns:1.6fr 1fr}.admin-grid.half{grid-template-columns:repeat(2,1fr)}.class-bars{padding:8px 20px 18px}.class-bars button{width:100%;display:grid;grid-template-columns:38px 1fr 56px;align-items:center;gap:10px;min-height:36px;border:0;background:transparent;cursor:pointer}.class-bars button>span{font-size:11px;font-weight:800}.class-bars button>div{height:7px;overflow:hidden;border-radius:99px;background:#eef2f7}.class-bars button i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#60a5fa,#2563eb)}.class-bars button strong{text-align:right;font-size:11px}.class-bars button.class-bar-complete i{background:linear-gradient(90deg,#34d399,#059669)}.class-bars button.class-bar-partial i{background:linear-gradient(90deg,#fbbf24,#d97706)}.class-bars button.class-bar-empty i{background:#cbd5e1}.class-bars button.class-bar-empty strong{color:#94a3b8}.class-bars button small{color:#94a3b8;font-weight:500}.activity-panel{padding-bottom:10px}.activity{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:10px;padding:13px 18px}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--blue)}.activity-dot.d1{background:var(--amber)}.activity-dot.d2{background:var(--red)}.activity-dot.d3{background:var(--green)}.activity div{display:grid;gap:2px}.activity strong{font-size:11px}.activity small,.activity time{color:#94a3b8;font-size:9px}.segmented{display:flex;padding:3px;border-radius:8px;background:#f1f5f9}.segmented button{padding:6px 10px;border:0;border-radius:6px;color:#64748b;background:transparent;font-size:10px}.segmented button.active{color:var(--blue);background:white;box-shadow:0 2px 6px rgba(15,23,42,.08)}.table-head,.table-row{display:grid;align-items:center;gap:12px}.capacity-table .table-head,.capacity-table .table-row{grid-template-columns:1.6fr 1fr 1.2fr .6fr .7fr}.table-head{min-height:40px;padding:0 20px;color:#94a3b8;background:#f8fafc;font-size:9px;font-weight:800;text-transform:uppercase}.table-row{min-height:58px;padding:8px 20px;border-top:1px solid #f1f5f9;color:#475569;font-size:11px}.program-cell{display:flex;align-items:center;gap:10px}.program-cell>b{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#f1f5f9;font-size:17px}.program-cell strong{color:var(--ink)}.program-cell>span{display:grid;gap:2px}.program-cell small{color:#94a3b8;font-size:9px}.mini-progress{display:inline-block;width:62px;height:6px;margin-right:7px;overflow:hidden;border-radius:99px;background:#e2e8f0;vertical-align:middle}.mini-progress b{display:block;height:100%;border-radius:99px;background:var(--blue)}.status{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:5px 8px;border-radius:999px;font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}.status.green{color:#047857;background:#ecfdf5}.status.amber{color:#b45309;background:#fffbeb}.status.blue{color:#1d4ed8;background:#eff6ff}.status.red{color:#b91c1c;background:#fef2f2}.event-hero{display:grid;grid-template-columns:75px 1fr auto;align-items:center;gap:22px;padding:24px}.event-date{display:grid;place-items:center;width:70px;height:78px;border-radius:15px;color:var(--blue);background:var(--blue-soft)}.event-date strong{font-size:29px;line-height:1}.event-date span{font-size:10px;font-weight:800}.event-info h2{margin:8px 0 5px;font-size:20px}.event-info>p{margin:0 0 12px;color:var(--muted);font-size:12px}.event-info>div{display:flex;gap:14px}.event-info>div span{display:flex;align-items:center;gap:5px;color:#475569;font-size:10px}.event-actions{display:flex;gap:8px}.empty-state{display:grid;place-items:center;margin-top:16px;padding:50px 20px;text-align:center}.empty-state>svg{padding:12px;width:50px;height:50px;border-radius:15px;color:#64748b;background:#f1f5f9}.empty-state h2{margin:13px 0 5px;font-size:16px}.empty-state p{margin:0 0 17px;color:var(--muted);font-size:11px}.form-panel{overflow:visible}.form-section{display:grid;grid-template-columns:38px 1fr;gap:18px;padding:25px;border-bottom:1px solid var(--line)}.form-section>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:var(--blue);background:var(--blue-soft);font-size:10px;font-weight:900}.form-section h2{margin:5px 0 8px;font-size:16px}.form-section-help{margin:0 0 16px;color:var(--muted);font-size:12px;line-height:1.55}.form-section:not(:has(.form-section-help)) h2{margin-bottom:18px}.form-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.date-hour-field{position:relative;display:grid;align-content:start;gap:8px}.date-hour-field .field-label-text{color:#334155;font-size:13px;font-weight:800}.date-hour-trigger{width:100%;min-height:48px;padding:0 14px;border:1px solid #cbd5e1;border-radius:11px;color:var(--ink);background:white;text-align:left;font-size:14px;font-weight:700}.date-hour-trigger:disabled{color:#64748b;background:#f1f5f9}.date-hour-field.open .date-hour-trigger{border-color:var(--blue);outline:3px solid #dbeafe}.date-hour-popover{position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:min(100vw - 32px,360px);padding:14px;border:1px solid var(--line);border-radius:16px;background:white;box-shadow:0 18px 40px rgba(15,23,42,.14)}.date-hour-month{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;margin-bottom:10px}.date-hour-month strong{text-align:center;font-size:14px}.date-hour-nav{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:#f8fafc}.date-hour-grid,.date-hour-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.date-hour-weekdays span{color:#94a3b8;text-align:center;font-size:11px;font-weight:800}.date-hour-day{min-height:36px;border:0;border-radius:10px;background:transparent;font-size:13px;font-weight:700}.date-hour-day.today{color:var(--blue);background:#eff6ff}.date-hour-day.selected{color:white;background:var(--blue)}.date-hour-hours{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.date-hour-hours button{min-height:36px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;font-size:12px;font-weight:800}.date-hour-hours button.selected{border-color:var(--blue);color:white;background:var(--blue)}.choice-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.choice-cards label{position:relative;display:grid;gap:4px;padding:17px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.choice-cards label.selected{border:2px solid var(--blue);background:#f8fbff}.choice-cards input,.identity-choice input{position:absolute;opacity:0}.choice-cards strong{font-size:17px}.choice-cards small{color:var(--muted);font-size:10px}.choice-cards svg{position:absolute;right:12px;top:12px;color:var(--blue)}.block-preview{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px;border-radius:11px;background:#f8fafc}.block-preview>strong{color:#475569;font-size:10px}.block-preview span{display:flex;align-items:center;gap:6px;font-size:11px}.block-preview b{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;color:var(--blue);background:#dbeafe}.identity-choice{position:relative;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;margin-top:10px;padding:17px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.identity-choice.selected{border:2px solid var(--blue);background:#f8fbff}.identity-choice>svg{color:var(--blue)}.identity-choice span{display:grid;gap:4px}.identity-choice small{color:var(--muted);font-size:10px;font-weight:500}.bottom-action,.form-footer{display:flex;justify-content:flex-end;padding:18px 24px}.bottom-action{padding-right:0}.block-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.block-tabs button{display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:white;text-align:left}.block-tabs button.active{border:2px solid var(--blue)}.block-tabs b{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;color:var(--blue);background:var(--blue-soft)}.block-tabs span{display:grid;gap:2px;font-size:12px;font-weight:800}.block-tabs small{color:var(--muted);font-size:9px;font-weight:500}.block-tabs svg{color:var(--green)}.program-editor .table-head,.program-editor .table-row{grid-template-columns:1.5fr 1.2fr .55fr .4fr 35px}.capacity-input,.inline-input{display:flex;align-items:center;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px}.inline-input svg{color:#94a3b8}.capacity-input input,.inline-input input{min-width:0;width:100%;padding:0 7px;border:0;outline:0;background:transparent;font-size:10px}.capacity-input small{color:var(--muted)}.toggle{display:flex;align-items:center;width:34px;height:19px;padding:2px;border-radius:99px;background:#cbd5e1}.toggle i{width:15px;height:15px;border-radius:50%;background:white}.toggle.on{justify-content:flex-end;background:var(--blue)}.publish-grid{grid-template-columns:1.55fr .75fr;align-items:start}.checklist{padding:5px 20px}.check-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}.check-row:last-child{border:0}.check-row>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:#059669;background:#ecfdf5}.check-row.warning>span{color:#d97706;background:#fffbeb}.check-row div{display:grid;gap:4px}.check-row strong{font-size:12px}.check-row small{color:var(--muted);font-size:10px}.check-row button{border:0;color:var(--blue);background:transparent;font-size:10px;font-weight:800}.publish-summary{padding:25px}.summary-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:var(--blue);background:var(--blue-soft)}.publish-summary h2{margin:15px 0 6px}.publish-summary>p{margin:0 0 20px;color:var(--muted);font-size:11px;line-height:1.5}.publish-summary>div{display:grid;gap:5px;margin-bottom:15px}.publish-summary>div span{color:var(--muted);font-size:9px}.publish-summary>div strong{overflow-wrap:anywhere;font-size:11px}.qr-layout{grid-template-columns:.8fr 1.2fr}.qr-card{display:grid;place-items:center;padding:28px;text-align:center}.fake-qr{width:190px;height:190px;display:grid;grid-template-columns:repeat(9,1fr);gap:2px;margin-bottom:20px;padding:12px;border:1px solid var(--line)}.fake-qr,.fake-qr i{background:white}.fake-qr i.dark{background:var(--ink)}.qr-card h2{margin:10px 0 5px}.qr-card>p{margin:0 0 16px;color:var(--muted);font-size:11px}.copy-field{width:100%;display:flex;align-items:center;min-height:42px;padding-left:12px;border:1px solid var(--line);border-radius:9px;color:#475569;background:#f8fafc;font-size:10px}.copy-field span{flex:1 1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.copy-field button{align-self:stretch;border:0;border-left:1px solid var(--line);color:var(--blue);background:white;font-size:10px;font-weight:800}.qr-class-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:18px}.qr-class-list button{display:grid;grid-template-columns:1fr auto;gap:3px;padding:13px;border:1px solid var(--line);border-radius:10px;background:white;text-align:left}.qr-class-list span{font-size:12px;font-weight:800}.qr-class-list small{color:var(--muted);font-size:9px}.qr-class-list svg{grid-column:2;grid-row:1/3;align-self:center;color:var(--blue)}.student-search{display:flex;align-items:center;gap:10px;margin-bottom:15px;padding:13px}.student-search>svg{color:#94a3b8}.student-search input{flex:1 1;min-width:0;border:0;outline:0}.student-record{overflow:hidden}.student-profile{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;padding:22px;border-bottom:1px solid var(--line)}.student-profile>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:#1e40af;background:#dbeafe;font-weight:900}.student-profile p,.student-profile small{color:var(--muted);font-size:9px}.student-profile h2{margin:3px 0;font-size:17px}.student-profile p{margin:0}.student-schedule{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;padding:22px}.student-schedule>div{display:flex;gap:12px;padding:15px;border:1px solid var(--line);border-radius:11px}.student-schedule>div>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--blue);background:var(--blue-soft);font-weight:900}.student-schedule p{display:grid;gap:3px;margin:0}.student-schedule small{color:var(--blue);font-size:9px;font-weight:800}.student-schedule strong{font-size:12px}.student-schedule em{display:flex;align-items:center;gap:3px;color:var(--muted);font-size:9px;font-style:normal}.record-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 22px;border-top:1px solid var(--line);background:#f8fafc}.audit-note{display:flex;gap:12px;margin-top:14px;padding:16px;border:1px solid #fde68a;border-radius:12px;color:#92400e;background:#fffbeb}.audit-note div{display:grid;gap:4px}.audit-note strong{font-size:11px}.audit-note p{margin:0;font-size:10px}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.62)}.modal{position:relative;width:min(100%,450px);padding:28px;border-radius:18px;background:white;box-shadow:0 30px 90px rgba(15,23,42,.3)}.modal-close{position:absolute;right:16px;top:16px;border:0;background:transparent}.modal-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px}.modal-icon.warning{color:#d97706;background:#fffbeb}.modal h2{margin:16px 0 7px;font-size:20px}.modal>p{margin:0 0 17px;color:var(--muted);font-size:11px;line-height:1.5}.student-summary{display:grid;gap:4px;margin-bottom:17px;padding:13px;border-radius:10px;background:#f8fafc}.student-summary small,.student-summary span{color:var(--muted);font-size:9px}.student-summary strong{font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.toast{position:fixed;right:25px;bottom:25px;z-index:60;display:flex;align-items:center;gap:9px;padding:13px 15px;border:1px solid #a7f3d0;border-radius:11px;color:#047857;background:white;box-shadow:var(--shadow);font-size:11px;font-weight:800}.school-table .table-head,.school-table .table-row{grid-template-columns:1.4fr .7fr 1.1fr .7fr .9fr 35px}.school-cell{display:flex;align-items:center;gap:9px}.school-cell b{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:#1e40af;background:#dbeafe}.signal{font-size:10px;font-weight:700}.signal.amber{color:#b45309}.signal.green{color:#047857}.signal.blue{color:#1d4ed8}.principles,.timeline{padding:10px 20px 18px}.principles>div,.timeline>div{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #f1f5f9}.principles>div:last-child,.timeline>div:last-child{border:0}.principles span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;color:var(--blue);background:var(--blue-soft);font-size:9px;font-weight:900}.principles p,.timeline p{display:grid;gap:3px;margin:0}.principles strong,.timeline strong{font-size:11px}.principles small,.timeline small{color:var(--muted);font-size:9px}.timeline time{width:44px;color:var(--blue);font-size:10px;font-weight:800}.card-list{display:grid;gap:0;padding:5px 20px}.card-list article{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:13px;padding:18px 0;border-bottom:1px solid var(--line)}.card-list article:last-child{border:0}.card-list h2{margin:0 0 4px;font-size:14px}.card-list p,.card-list small{margin:0;color:var(--muted);font-size:10px}.catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.catalog-grid article{display:flex;gap:13px;padding:18px}.catalog-grid article>span{display:grid;place-items:center;flex:0 0 auto;width:45px;height:45px;border-radius:13px;background:#f1f5f9;font-size:22px}.catalog-grid small{color:var(--blue);font-size:9px;font-weight:800}.catalog-grid h2{margin:3px 0 6px;font-size:13px}.catalog-grid p{margin:0 0 10px;color:var(--muted);font-size:9px;line-height:1.45}.catalog-grid em{color:#475569;font-size:9px;font-style:normal;font-weight:700}.support-list{padding:5px 20px}.support-list article{display:grid;grid-template-columns:75px 1fr auto;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.support-list h2{margin:0 0 5px;font-size:13px}.support-list p,.support-list small{margin:0;color:var(--muted);font-size:10px}@media (max-width:1050px){.home-hero{grid-template-columns:1fr}.home-orbit{display:none}.role-grid{grid-template-columns:1fr}.role-card{min-height:300px}.admin-shell{grid-template-columns:210px minmax(0,1fr)}.catalog-grid,.metric-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:780px){.prototype-home{padding:0 18px}.home-hero{min-height:auto;padding:70px 0 40px}.home-hero h1{font-size:40px}.prototype-home>footer{align-items:flex-start;flex-direction:column}.student-stage{width:min(100% - 22px,1040px);padding-top:24px}.student-card{margin-top:47px;padding:27px 20px;border-radius:20px}.program-grid{grid-template-columns:1fr}.program-card{grid-template-columns:54px 1fr;min-height:150px;padding:16px}.program-emoji{width:50px;height:50px}.seat-chip{grid-column:2;width:fit-content}.sticky-actions{bottom:8px;width:100%}.sticky-actions .primary-button{min-width:0;flex:1 1}.login-shell{grid-template-columns:1fr}.login-aside{display:none}.login-main{min-height:100vh;padding:22px}.login-card h1{font-size:31px}.admin-shell{display:block}.admin-sidebar{position:fixed;left:-270px;width:250px;transition:left .2s;box-shadow:15px 0 40px rgba(15,23,42,.25)}.admin-sidebar.open{left:0}.menu-trigger,.mobile-close{display:inline-grid;place-items:center}.sidebar-backdrop{position:fixed;inset:0;z-index:15;display:block;border:0;background:rgba(15,23,42,.5)}.admin-topbar{display:flex;padding:0 14px}.admin-topbar .prototype-badge{display:none}.admin-content{padding:24px 14px 60px}.page-header{align-items:stretch;flex-direction:column}.page-header h1{font-size:27px}.header-actions{justify-content:space-between}.admin-grid.half,.admin-grid.two-thirds,.metric-grid,.metric-grid.ops,.publish-grid,.qr-layout{grid-template-columns:1fr}.metric-card{min-height:115px}.capacity-table,.program-editor,.school-table{overflow-x:auto}.capacity-table .table-head,.capacity-table .table-row{min-width:700px}.school-table .table-head,.school-table .table-row{min-width:850px}.program-editor .table-head,.program-editor .table-row{min-width:750px}.event-hero{grid-template-columns:65px 1fr}.event-actions{grid-column:1/-1}.choice-cards,.form-columns,.form-section{grid-template-columns:1fr}.block-preview{align-items:flex-start;flex-direction:column}.block-tabs,.catalog-grid,.qr-class-list,.student-schedule,.support-list article{grid-template-columns:1fr}}@media (max-width:430px){.student-header{height:62px;padding:0 14px}.student-header .brand-logo-image{width:126px}.step small{display:none}.stepper{margin-bottom:10px}.selection-heading h1,.student-card h1{font-size:30px}.form-grid{grid-template-columns:1fr}.form-grid label.full{grid-column:auto}.program-card{grid-template-columns:48px 1fr}.program-copy strong{font-size:16px}.identity-ticket{align-items:flex-start;flex-direction:column}.identity-ticket em{align-self:flex-end;margin-top:-35px}.sticky-actions{padding:8px}.sticky-actions .text-button{font-size:0}.sticky-actions .text-button svg{width:20px}.home-hero h1{font-size:34px}.role-card{padding:24px}.metric-grid{grid-template-columns:1fr}.student-profile{grid-template-columns:42px 1fr}.student-profile>em{grid-column:2}.record-actions{flex-direction:column}.record-actions .button{width:100%}}@media print{.done-card>button,.stepper,.student-footer,.student-header{display:none!important}.student-shell{background:white}.student-stage{padding:0}.student-card{box-shadow:none;border:1px solid #cbd5e1}}.admin-sidebar{align-self:start;height:100dvh;max-height:100dvh}.admin-sidebar nav{flex:1 1;min-height:0;overflow-y:auto;align-content:start}.admin-sidebar .nav-group{display:grid;align-content:start;gap:4px}.admin-sidebar .nav-group+.nav-group{margin-top:8px;padding-top:10px;border-top:1px solid #1e293b}.admin-sidebar .nav-group-label{margin:0 12px 2px;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.04em}.admin-sidebar nav a{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;height:43px;padding:0 12px;border-radius:9px;color:#94a3b8;text-align:left;cursor:pointer;font-size:13px;font-weight:700}.admin-sidebar nav a:hover{color:white;background:#1e293b}.admin-sidebar nav a.active{color:white;background:var(--blue)}.sidebar-user form{margin:0}.school-metric-grid{grid-template-columns:repeat(3,1fr)}.attendance-export-panel{margin-bottom:16px;overflow:hidden}.attendance-export-panel>.panel-title>svg{flex:0 0 auto;color:#475569}.attendance-export-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:18px}.attendance-export-grid article{display:grid;align-content:start;gap:14px;padding:18px;border:1px solid #d7dce3;border-radius:12px;background:linear-gradient(180deg,#fff,#fafafa)}.attendance-export-grid article strong{color:#172033;font-size:14px}.attendance-export-grid article p{margin:6px 0 0;color:var(--muted);font-size:10px;line-height:1.55}.attendance-export-sample{padding:10px;overflow:hidden;border:1px solid #d7dce3;border-radius:8px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.06)}.attendance-export-sample-head{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.attendance-export-sample-badge{flex:0 0 auto;padding:2px 6px;border-radius:999px;color:#1e40af;background:#dbeafe;font-size:8px;font-weight:800;letter-spacing:.02em}.attendance-export-sample-title{margin:0 0 2px;color:#172033;font-size:11px;font-weight:800;line-height:1.3}.attendance-export-sample-meta{margin:0;color:#64748b;font-size:8px;font-weight:700}.attendance-export-sample table{width:100%;border-collapse:collapse;table-layout:fixed}.attendance-export-sample td,.attendance-export-sample th{padding:4px 3px;border:1px solid #d7dce3;font-size:7.5px;line-height:1.25;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendance-export-sample th{color:#fff;background:#172033;font-weight:800}.attendance-export-sample td{color:#334155;background:#fff}.attendance-export-sample-blank{background:#f8fafc!important}.attendance-export-sample-left{text-align:left!important;padding-left:5px!important}.attendance-export-sample.course td:first-child,.attendance-export-sample.course th:first-child{width:11%}.attendance-export-sample.course td:nth-child(5),.attendance-export-sample.course td:nth-child(6),.attendance-export-sample.course th:nth-child(5),.attendance-export-sample.course th:nth-child(6){width:16%}.attendance-export-sample.class td:first-child,.attendance-export-sample.class th:first-child{width:10%}.attendance-export-sample.class td:nth-child(4),.attendance-export-sample.class td:nth-child(5),.attendance-export-sample.class th:nth-child(4),.attendance-export-sample.class th:nth-child(5){width:28%}.attendance-export-grid article>small{color:#92400e;font-size:10px;font-weight:800}.attendance-export-actions{display:flex;flex-wrap:wrap;gap:8px}.attendance-export-actions .button{min-height:38px}.attendance-export-notice{margin:18px;padding:13px 14px;border:1px solid #d7dce3;border-radius:9px;color:#475569;background:#f8fafc;font-size:11px;font-weight:800}.attendance-export-notice.warning{border-color:#fed7aa;color:#9a3412;background:#fff7ed}.class-status-panel{overflow:hidden;margin-bottom:16px}.class-status-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:14px 16px;border-bottom:1px solid #edf2f7}.class-status-tabs button{min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:8px;color:#475569;background:white;cursor:pointer;font-size:12px;font-weight:800}.class-status-tabs button.active{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.class-status-table-wrap{max-height:min(70vh,720px);overflow:auto}.class-status-table{width:100%;min-width:720px;border-collapse:collapse}.class-status-table thead th{position:sticky;top:0;z-index:1;padding:10px 12px;border-bottom:1px solid var(--line);color:#64748b;background:#f8fafc;font-size:11px;font-weight:800;text-align:left;white-space:nowrap}.class-status-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:13px}.class-status-row-green{background:#f0fdf4}.class-status-row-amber{background:#fffbeb}.class-status-row-red{background:#fef2f2}.class-status-row-blue{background:#eff6ff}.public-class-status-stage{width:min(100% - 32px,1100px)}.public-class-status-stage>h1{margin:0;font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}.public-class-status-note{margin:0 0 16px}.public-class-status-note.warning{color:#92400e;background:#fffbeb}.class-target-panel{margin-top:16px}.class-target-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:18px}.class-target-row{position:relative;display:grid;grid-template-columns:1fr 110px auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px}.class-target-row>strong{font-size:12px}.class-target-row>label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.class-target-row input{width:72px;min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px}.class-target-row>small{grid-column:1/-1}.school-program-editor .table-head,.school-program-editor .table-row{grid-template-columns:1.2fr 1.6fr .5fr .45fr .45fr}.school-program-editor .table-row{position:relative;min-height:98px}.offering-details{display:grid;gap:6px}.toggle-label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800}.toggle-label input{width:18px;height:18px;accent-color:var(--blue)}.row-message{position:absolute;left:20px;bottom:2px}.action-error,.action-success{margin:0;font-size:11px;font-weight:700}.action-success{color:#047857}.action-error{color:#b91c1c}.viewer-notice{margin:16px 0 0;padding:11px;border-radius:9px;color:#475569;background:#f1f5f9;font-size:11px;font-weight:800}.qr-common{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:24px}.qr-common>div{display:grid;gap:6px}.qr-common h2,.qr-common p{margin:0}.qr-common p{color:var(--muted);font-size:11px}.student-notice-panel{margin-bottom:16px}.student-notice-panel>p{margin:0;padding:20px;color:#334155;font-size:12px;line-height:1.7;white-space:pre-wrap}.qr-class-item{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:white}.qr-class-item>span{font-size:12px;font-weight:800}.qr-class-item>small{color:var(--muted);font-size:9px}.qr-class-item .access-link-form{grid-column:2;grid-row:1/3;align-self:center}.access-link-form{display:grid;gap:8px}.access-link-buttons{display:flex;flex-wrap:wrap;gap:8px}.access-link-form form{margin:0}.stale-link-note{color:#b45309;font-size:10px;font-weight:700}.template-save-form{display:flex;align-items:center;gap:8px}.generated-link{display:grid;gap:4px;max-width:480px;padding:10px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff}.generated-link a{display:flex;align-items:center;gap:5px;overflow-wrap:anywhere;color:#1d4ed8;font-size:10px;font-weight:800}.generated-link small{color:#64748b;font-size:9px}.student-record-list{display:grid;gap:14px}.manual-modal{max-height:calc(100vh - 40px);overflow-y:auto}.modal-icon:not(.warning){color:var(--blue);background:var(--blue-soft)}.school-empty-state{display:grid;min-height:100vh;place-items:center;padding:24px;background:var(--page)}.school-empty-card{width:min(100%,520px);padding:36px;border:1px solid var(--line);border-radius:20px;background:white;box-shadow:var(--shadow)}.school-empty-card h1{margin:10px 0}.school-empty-card>p:not(.eyebrow){color:var(--muted);line-height:1.6}.school-empty-account{margin:24px 0 12px;font-size:12px}.ops-school-grid{display:grid;gap:16px}.ops-school-card{padding:22px}.ops-school-title{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:13px}.ops-school-title h2,.ops-school-title p{margin:0}.ops-school-title h2{font-size:16px}.ops-school-title p{margin-top:4px;color:var(--muted);font-size:10px}.ops-school-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.ops-school-actions details{flex:1 1 280px}.ops-action-details{position:relative}.ops-action-details>summary,.ops-school-actions summary{list-style:none;cursor:pointer}.ops-action-details>summary::-webkit-details-marker,.ops-school-actions summary::-webkit-details-marker{display:none}.ops-inline-form{display:grid;gap:11px;margin-top:10px;padding:16px;border:1px solid var(--line);border-radius:12px;background:white;box-shadow:var(--shadow)}.ops-inline-form label{display:grid;gap:6px;color:#334155;font-size:10px;font-weight:800}.ops-inline-form input,.ops-inline-form select{width:100%;min-height:42px;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;background:white}.generated-links{display:grid;gap:5px;max-height:180px;overflow-y:auto;padding:10px;border-radius:9px;background:#eff6ff}.generated-links code{overflow-wrap:anywhere;color:#1e40af;font-size:9px}.ops-event-table .table-head,.ops-event-table .table-row{grid-template-columns:1.2fr 1.5fr .75fr .45fr .65fr .55fr}.catalog-toggle{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.catalog-toggle label{display:flex;align-items:center;gap:6px;color:#334155;font-size:10px;font-weight:800}.catalog-toggle input{width:17px;height:17px;accent-color:var(--blue)}.support-request-form{display:grid;gap:16px;max-width:720px;padding:24px}.notice-print-workspace{grid-column:1/-1;display:grid;grid-template-columns:minmax(240px,.7fr) minmax(320px,1fr);gap:18px;width:min(100%,980px);margin-top:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.notice-template-editor{display:grid;align-content:start;gap:10px}.notice-template-editor textarea{min-height:270px}.notice-template-editor>small{color:var(--muted);font-size:9px;line-height:1.5}.notice-download-actions{display:flex;flex-wrap:wrap;gap:8px}.notice-a4{aspect-ratio:210/297;display:grid;grid-template-rows:auto 1fr auto;min-width:0;padding:7%;color:#0f172a;background:white;box-shadow:0 16px 45px rgba(15,23,42,.12)}.notice-a4 header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:2px solid #1d4ed8}.notice-a4 header strong{font-size:clamp(14px,1.8vw,22px)}.notice-a4 header span{color:#475569;font-size:10px;font-weight:800}.notice-a4-body{display:grid;align-content:center;justify-items:center;gap:18px;padding:6% 0}.notice-copy{justify-self:stretch;white-space:pre-wrap;color:#334155;font-size:clamp(9px,1.05vw,13px);line-height:1.7}.notice-a4-body img{width:min(48%,320px);height:auto}.notice-a4-body code{max-width:100%;overflow-wrap:anywhere;color:#1d4ed8;font-size:9px}.notice-a4 footer{padding-top:10px;border-top:1px solid var(--line);color:#64748b;font-size:8px}@media (max-width:780px){.attendance-export-grid,.class-target-grid,.school-metric-grid{grid-template-columns:1fr}.school-program-editor .table-head,.school-program-editor .table-row{min-width:860px}.qr-common{align-items:stretch;flex-direction:column}.qr-class-item{grid-template-columns:1fr}.qr-class-item .access-link-form{grid-column:1;grid-row:auto}.notice-print-workspace{grid-template-columns:1fr}.notice-a4{width:min(100%,560px);justify-self:center}.ops-school-title{grid-template-columns:40px 1fr}.ops-school-title>em{grid-column:2;width:fit-content}}@media (max-width:430px){.class-target-row{grid-template-columns:1fr auto}.class-target-row .button{grid-column:1/-1}}.roster-panel{margin-bottom:16px}.roster-panel>.panel-title>svg{flex:0 0 auto;color:#475569}.roster-body{display:grid;gap:14px;padding:16px 18px 4px}.roster-body:last-child{padding-bottom:18px}.roster-empty-note{display:flex;align-items:flex-start;gap:9px;margin:0;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;color:#1e3a8a;background:var(--blue-soft);font-size:12.5px;font-weight:600;line-height:1.6}.roster-empty-note svg{flex:0 0 auto;margin-top:2px;color:var(--blue)}.roster-summary{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid #a7f3d0;border-radius:12px;background:#ecfdf5}.roster-summary-icon{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:11px;color:#047857;background:#d1fae5}.roster-summary-text{display:grid;gap:2px;flex:1 1;min-width:0}.roster-summary-text strong{font-size:14px;letter-spacing:-.02em}.roster-summary-text small{color:#047857;font-size:11px;font-weight:700}.roster-summary .button{flex:0 0 auto}.roster-steps{display:grid;gap:14px;margin:0;padding:0;list-style:none}.roster-step{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;align-items:start}.roster-step-no{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;color:var(--white);background:var(--blue);font-size:12px;font-weight:900}.roster-step-body{display:grid;gap:8px;min-width:0}.roster-step-body>strong{font-size:13.5px;letter-spacing:-.02em}.roster-step-body>p{margin:-3px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.roster-step-body>.button{justify-self:start}.roster-template-sample{display:grid;justify-items:start;width:max-content;max-width:100%;margin:2px 0 0;padding:10px;overflow:hidden;border:1px solid #d7dce3;border-radius:10px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.06)}.roster-template-sample-head{display:flex;align-items:center;gap:7px;margin-bottom:8px}.roster-template-sample-badge{flex:0 0 auto;padding:3px 7px;border-radius:999px;color:#1e40af;background:#dbeafe;font-size:10px;font-weight:800;letter-spacing:.02em}.roster-template-sample-title{margin:0;color:#172033;font-size:12.5px;font-weight:800;line-height:1.3}.roster-template-sample table{width:max-content;border-collapse:collapse;table-layout:fixed}.roster-template-sample td,.roster-template-sample th{padding:7px 0;border:1px solid #d7dce3;font-size:13px;line-height:1.3;text-align:center;white-space:nowrap}.roster-template-sample th{color:#fff;background:#1d4ed8;font-weight:800}.roster-template-sample td{color:#334155;background:#fff}.roster-template-sample td:first-child,.roster-template-sample td:nth-child(2),.roster-template-sample td:nth-child(3),.roster-template-sample th:first-child,.roster-template-sample th:nth-child(2),.roster-template-sample th:nth-child(3){width:52px}.roster-template-sample td:nth-child(4),.roster-template-sample th:nth-child(4){width:88px}.roster-template-sample-name{text-align:center}.roster-drop-field{position:relative;display:grid}.roster-drop{display:flex;align-items:center;gap:13px;min-height:92px;padding:15px;border:2px dashed #bfdbfe;border-radius:14px;background:#f8fbff;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.roster-drop:hover{border-color:var(--blue);background:var(--blue-soft)}.roster-drop-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:14px;color:var(--blue);background:#dbeafe}.roster-drop-text{display:grid;gap:3px;min-width:0}.roster-drop-text strong{font-size:13.5px;letter-spacing:-.02em;overflow-wrap:anywhere}.roster-drop-text small{color:var(--muted);font-size:11.5px;line-height:1.5}.roster-drop.is-dragging{border-style:solid;border-color:var(--blue);background:var(--blue-soft);transform:scale(1.006)}.roster-drop.is-filled{border-style:solid;border-color:#a7f3d0;background:#f0fdf4}.roster-drop.is-filled .roster-drop-icon{color:#047857;background:#d1fae5}.roster-file-input:focus-visible+.roster-drop{border-color:var(--blue);outline:3px solid rgba(37,99,235,.28);outline-offset:2px}.roster-file-error{display:flex;align-items:flex-start;gap:7px;margin:0;color:#b91c1c;font-size:11.5px;font-weight:700;line-height:1.5}.roster-file-error svg{flex:0 0 auto;margin-top:1px}.roster-form-actions{display:flex;flex-wrap:wrap;gap:8px}.roster-form-status{margin:0;color:var(--muted);font-size:11.5px;font-weight:700}.roster-panel .error-list{display:grid;gap:10px;padding:13px 14px;border:1px solid #fecaca;border-radius:12px;background:#fef2f2}.roster-panel .error-list>.error-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.roster-panel .error-list-head strong{display:flex;align-items:center;gap:7px;color:#b91c1c;font-size:12.5px}.roster-panel .error-list ul{display:grid;gap:5px;margin:0;padding-left:18px;color:#7f1d1d;font-size:11.5px;line-height:1.55}.roster-panel .error-list>small{color:#b91c1c;font-size:11px;font-weight:700}.roster-print{display:grid;gap:12px;padding:2px 18px 18px}.roster-print-head{display:none}.roster-missing-title{margin:0;font-size:14px;letter-spacing:-.02em}.roster-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.roster-numbers>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.roster-numbers span{color:var(--muted);font-size:10px;font-weight:800}.roster-numbers strong{font-size:22px;letter-spacing:-.03em}.roster-numbers .error{border-color:#fecaca;background:#fef2f2}.roster-numbers .error span,.roster-numbers .error strong{color:#b91c1c}.missing-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.missing-list li{display:grid;gap:4px;padding:11px 13px;border:1px solid #fde68a;border-left:4px solid var(--amber);border-radius:4px 12px 12px 4px;background:#fffbeb;page-break-inside:avoid;break-inside:avoid}.missing-list strong{font-size:12.5px;letter-spacing:-.02em}.missing-list span{color:#334155;font-size:11.5px;line-height:1.65}.roster-print>.button{justify-self:start}.roster-complete{display:flex;align-items:center;gap:9px;margin:0;padding:13px 14px;border:1px solid #a7f3d0;border-radius:12px;color:#047857;background:#ecfdf5;font-size:12.5px;font-weight:700}.roster-complete svg{flex:0 0 auto}@media (max-width:780px){.roster-body{padding:14px 14px 4px}.roster-print{padding:2px 14px 16px}.roster-summary{flex-wrap:wrap}.roster-summary .button{width:100%}.roster-drop{align-items:flex-start;gap:10px}.roster-drop,.roster-form-actions{flex-direction:column}.roster-form-actions .button{width:100%}.roster-numbers>div{padding:11px 10px}.roster-print>.button{width:100%}.roster-body .button,.roster-print>.button{min-height:44px}}@media (prefers-reduced-motion:reduce){.roster-drop{transition:none}.roster-drop.is-dragging{transform:none}}.support-history{margin-bottom:16px}.support-history-list{display:grid;gap:12px;padding:18px}.support-history-list article{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px}.support-history-list h3{margin:0 0 4px;font-size:13px}.support-history-list p{margin:0 0 6px;color:#334155;font-size:12px;line-height:1.6;white-space:pre-wrap}.support-reply{display:grid;gap:4px;margin-top:8px!important;padding:10px;border-left:3px solid var(--blue);border-radius:0 8px 8px 0;background:#eff6ff}.support-reply strong{font-size:11px;color:#1d4ed8}.support-history-list small,.support-reply small{color:var(--muted);font-size:10px}.support-pending{color:var(--muted)!important;font-size:11px!important}.support-reply-form{display:grid;gap:8px;margin-top:10px}.audit-note.warning{border-color:#f59e0b;background:#fffbeb}.audit-note .button{margin-top:8px}.close-registration-panel{margin-bottom:16px}.close-registration-confirm{display:grid;gap:10px;padding:0 18px 14px}.batch-print-panel{margin-bottom:16px}.batch-print-form{display:grid;gap:10px;padding:0 18px 14px;justify-items:start}@media print{body:has(.roster-print) :not(.roster-print):not(.roster-print *){visibility:hidden!important}body:has(.roster-print) .roster-print,body:has(.roster-print) .roster-print *{visibility:visible!important}body:has(.roster-print) .roster-print{position:absolute;top:0;left:0;width:100%;padding:12mm}.roster-print-head{display:grid;gap:3px;padding-bottom:9px;border-bottom:1px solid #cbd5e1}.roster-print-head strong{font-size:14px}.roster-print-head span{color:#475569;font-size:10px}.no-print{display:none!important}body:has(.notice-a4) *{visibility:hidden!important}body:has(.printing) .printing .notice-a4,body:has(.printing) .printing .notice-a4 *{visibility:visible!important}body:has(.notice-a4):not(:has(.printing)) .notice-a4,body:has(.notice-a4):not(:has(.printing)) .notice-a4 *{visibility:visible!important}.notice-print-workspace .notice-a4{position:fixed;inset:0;width:210mm;height:297mm;margin:0;padding:16mm;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.guide-steps{display:grid;gap:14px;margin-bottom:18px}.guide-step{display:grid;gap:12px}.guide-step-head{display:flex;align-items:flex-start;gap:12px}.guide-step-number{display:grid;flex-shrink:0;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--white);background:var(--blue);font-size:15px;font-weight:900}.guide-step-head h2{margin:0 0 4px;font-size:17px;letter-spacing:-.02em}.guide-step-head p{margin:0;color:var(--muted);font-size:13px}.guide-step-bullets{display:grid;gap:6px;margin:0;padding-left:20px;color:#334155;font-size:13.5px;line-height:1.6}.guide-warning{display:flex;gap:9px;align-items:flex-start;margin:0;padding:11px 13px;border:1px solid #fde68a;border-radius:12px;color:#92400e;background:#fffbeb;font-size:13px;line-height:1.55;font-weight:600}.guide-warning svg{flex-shrink:0;margin-top:2px}.guide-screenshot{width:100%;height:auto;border:1px solid var(--line);border-radius:12px}.guide-goto{justify-self:start;align-self:start}.guide-troubleshooting-list{display:grid;gap:8px}.guide-trouble{border:1px solid var(--line);border-radius:12px;background:var(--white)}.guide-trouble summary{padding:12px 14px;border-radius:12px;cursor:pointer;font-size:13.5px;font-weight:700}.guide-trouble summary:hover{background:var(--paper)}.guide-trouble[open] summary{border-bottom:1px solid var(--line);border-bottom-left-radius:0;border-bottom-right-radius:0}.guide-trouble ol{display:grid;gap:6px;margin:12px 0;padding:0 14px 0 34px;color:#334155;font-size:13px;line-height:1.6}.guide-trouble .guide-goto{margin:0 14px 12px}.guide-more-help{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.guide-more-help h2{margin:0 0 3px;font-size:15.5px}.guide-more-help p{margin:0;color:var(--muted);font-size:13px}.guide-more-help div{flex:1 1;min-width:200px}button.sidebar-help-button{width:100%;border:1px solid #334155;text-align:left;cursor:pointer;font:inherit;color:inherit}button.sidebar-help-button:hover{background:#273449}@media (max-width:780px){.guide-tour-button{display:none}}.operations-sheet{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:0 8px 28px rgba(15,23,42,.05)}.operations-sheet-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 24px 18px;border-bottom:1px solid var(--line)}.operations-sheet-header .eyebrow{margin:0 0 5px;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.05em}.operations-sheet-header h2{margin:0;font-size:23px;letter-spacing:-.035em}.operations-sheet-header p:last-child{margin:7px 0 0;color:var(--muted);font-size:12px}.operations-summary{display:flex;align-items:center;gap:8px;white-space:nowrap}.operations-summary span,.operations-summary strong{padding:8px 11px;border-radius:999px;font-size:11px;font-weight:850}.operations-summary strong{color:#047857;background:#ecfdf5}.operations-summary span{color:#b45309;background:#fffbeb}.operations-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) repeat(3,112px) auto;align-items:end;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:#f8fafc}.operations-toolbar label{display:grid;gap:5px;color:#475569;font-size:10px;font-weight:850}.operations-toolbar input,.operations-toolbar select{width:100%;min-height:40px;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;color:var(--ink);background:var(--white)}.operations-toolbar input:focus,.operations-toolbar select:focus{border-color:var(--blue);outline:3px solid #dbeafe}.operations-toolbar input:disabled,.operations-toolbar select:disabled{cursor:not-allowed;color:#64748b;background:#eef2f7;opacity:1}.operations-result-count{align-self:center;min-width:76px;color:#334155;text-align:right;font-size:11px}.operations-filter-lock-note{grid-column:1/-1;margin:0;color:#92400e;font-size:10px;font-weight:750}.operations-switch-alert{display:flex;align-items:center;gap:8px;margin:12px 16px 0;padding:11px 12px;border:1px solid #fde68a;border-radius:10px;color:#92400e;background:#fffbeb;font-size:11px}.operations-switch-alert>span{flex:1 1}.operations-switch-alert .button{min-height:34px;padding:0 11px;font-size:10px}.operations-table-scroll{max-height:min(780px,calc(100dvh - 240px));min-height:min(528px,calc(100dvh - 240px));overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.operations-table{width:100%;min-width:1020px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:11px}.operations-table caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.operations-table td,.operations-table th{height:54px;padding:9px 10px;border-right:1px solid #edf0f4;border-bottom:1px solid #e6eaf0;vertical-align:middle;background:var(--white)}.operations-table thead th{position:sticky;top:0;z-index:3;height:42px;color:#475569;background:#f1f5f9;text-align:left;font-size:10px;font-weight:900;letter-spacing:.015em;white-space:nowrap}.operations-table tbody tr:hover>*{background:#f8fbff}.operations-table .operations-sticky{position:sticky;z-index:2}.operations-table thead .operations-sticky{z-index:5;background:#e9eef5}.operations-col-grade{left:0;width:58px;text-align:center!important}.operations-col-class{left:58px;width:58px;text-align:center!important}.operations-col-number{left:116px;width:62px;text-align:center!important}.operations-col-name{left:178px;width:126px;box-shadow:4px 0 8px rgba(15,23,42,.04)}.operations-table th:not(.operations-sticky):not(.operations-col-actions){width:196px}.operations-table th:nth-child(5){width:98px!important}.operations-col-actions{width:205px}.operations-status{display:inline-flex;padding:6px 8px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}.operations-status.confirmed{color:#047857;background:#ecfdf5}.operations-status.missing{color:#b45309;background:#fffbeb}.operations-status.outside_roster{color:#6d28d9;background:#f5f3ff}.operations-program{display:block;overflow:hidden;color:#1e293b;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.operations-empty{color:#94a3b8}.operations-table select{width:100%;min-height:36px;padding:0 28px 0 9px;border:1px solid #94a3b8;border-radius:8px;color:var(--ink);background:var(--white);font-size:10px}.operations-table select[aria-invalid=true]{border-color:#dc2626;outline:2px solid #fee2e2}.operations-row-editing:hover>*,.operations-row-editing>*{background:#fffbeb!important}.operations-row-editing>.operations-sticky{background:#fff7d6!important}.operations-row-error:hover>*,.operations-row-error>*{background:#fef2f2!important}.operations-row-error>.operations-sticky{background:#feecec!important}.operations-cell-error{box-shadow:inset 0 0 0 2px #fca5a5}.operations-actions{position:relative}.operations-edit-actions,.operations-row-actions{display:flex;align-items:center;gap:6px}.operations-actions .button{min-height:34px;padding:0 10px;border-radius:8px;font-size:9px;white-space:nowrap}.operations-more{position:relative}.operations-more>summary{display:inline-flex;align-items:center;min-height:34px;padding:0 9px;border:1px solid #cbd5e1;border-radius:8px;background:var(--white);cursor:pointer;list-style:none;font-size:9px;font-weight:850;white-space:nowrap}.operations-more>summary::-webkit-details-marker{display:none}.operations-more[open]>summary{border-color:#93c5fd;color:var(--blue-strong);background:var(--blue-soft)}.operations-more>div{position:absolute;right:0;top:calc(100% + 5px);z-index:12;display:grid;min-width:164px;padding:5px;border:1px solid var(--line);border-radius:9px;background:var(--white);box-shadow:0 12px 28px rgba(15,23,42,.16)}.operations-more button{padding:8px 9px;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer;font-size:9px;font-weight:750}.operations-more button:hover{background:#f1f5f9}.operations-more button:last-child{color:#b91c1c}.operations-readonly{color:#94a3b8;font-size:10px;font-weight:750}.operations-feedback{margin:6px 0 0;font-size:9px;font-weight:750;line-height:1.35}.operations-feedback.success{color:#047857}.operations-feedback.error{color:#b91c1c}.operations-no-results{height:160px!important;color:var(--muted);text-align:center}@media (max-width:1180px){.operations-toolbar{grid-template-columns:minmax(200px,1fr) repeat(3,100px)}.operations-result-count{grid-column:1/-1;text-align:left}}@media (prefers-reduced-motion:reduce){.operations-sheet *{scroll-behavior:auto;transition:none!important}}.driver-popover.dreamplex-tour{max-width:340px;padding:18px;border-radius:15px;color:var(--ink);background:var(--white);box-shadow:var(--shadow);font-family:inherit}.driver-popover.dreamplex-tour .driver-popover-title{font-size:15px;font-weight:800;letter-spacing:-.02em}.driver-popover.dreamplex-tour .driver-popover-description{margin-top:6px;color:#334155;font-size:13px;line-height:1.6}.driver-popover.dreamplex-tour .driver-popover-progress-text{color:var(--muted);font-size:11px;font-weight:700}.driver-popover.dreamplex-tour button.driver-popover-next-btn{border:0;border-radius:9px;padding:7px 14px;color:var(--white);background:var(--blue);text-shadow:none;font-size:12.5px;font-weight:800}.driver-popover.dreamplex-tour button.driver-popover-next-btn:hover{background:var(--blue-strong)}.driver-popover.dreamplex-tour button.driver-popover-prev-btn{border:1px solid var(--line);border-radius:9px;padding:7px 14px;color:var(--ink);background:var(--white);text-shadow:none;font-size:12.5px;font-weight:700}.driver-popover.dreamplex-tour .driver-popover-close-btn{color:var(--muted)}.driver-popover.dreamplex-tour.dreamplex-tour-warning{border:2px solid var(--amber)}.driver-popover.dreamplex-tour.dreamplex-tour-warning .driver-popover-title{color:#92400e}