:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#182230;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,a,input,select,textarea{font:inherit}button,a{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{margin-bottom:3px;font-size:24px;line-height:1.15}h2{margin-bottom:4px;font-size:18px;line-height:1.25}h3{margin:0 0 4px;font-size:15px;line-height:1.25}p{color:#667085;margin-bottom:0;line-height:1.45}.app-shell{width:min(1240px,100vw - 32px);margin:0 auto;padding:24px 0 48px}.student-shell{width:min(980px,100vw - 32px)}.service-shell{width:min(840px,100vw - 32px)}.topbar,.topbar-title,.topbar-actions,.list-header,.content-row,.dialog-header,.dialog-actions,.dialog-action-group,.section-title-row{align-items:center;gap:14px;display:flex}.topbar,.list-header,.dialog-header,.dialog-actions,.section-title-row{justify-content:space-between}.topbar{margin-bottom:18px}.topbar-title{min-width:0}.topbar-title p,.content-main p{color:#667085;margin:0;font-size:13px}.brand-mark,.message-icon,.tool-icon{color:#075985;background:#e0f2fe;border:1px solid #bae6fd;border-radius:8px;place-items:center;display:grid}.brand-mark{flex:none;width:42px;height:42px}.topbar-actions,.row-actions{flex-wrap:wrap;justify-content:flex-end}.button,.icon-button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;text-decoration:none;transition:background-color .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.button{white-space:nowrap;padding:0 14px;font-size:14px;font-weight:700}.button.compact{min-height:32px;padding:0 10px;font-size:13px}.button.primary{color:#fff;background:#0b63ce}.button.secondary{color:#344054;background:#fff;border-color:#cfd6e4}.button.danger{color:#fff;background:#b42318}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled,.icon-button:disabled{opacity:.56}.icon-button{color:#344054;background:#fff;border-color:#cfd6e4;width:38px}.icon-button.tiny{border-radius:6px;width:28px;min-height:28px}.stat-pill{background:#fff;border:1px solid #dbe2ea;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:10px;min-width:84px;min-height:38px;padding:6px 10px;display:grid}.stat-pill span{color:#667085;font-size:12px;font-weight:700}.stat-pill strong{color:#182230;font-size:18px;line-height:1}.stat-pill.active{background:#f0fdf4;border-color:#abefc6}.work-surface,.message-panel,.dialog{background:#fff;border:1px solid #dbe2ea;border-radius:8px;box-shadow:0 16px 34px #18243814}.work-surface{overflow:visible}.service-status-panel{padding:28px}.service-status-main{justify-items:start;gap:8px;display:grid}.service-status-main .message-icon{margin-bottom:6px}.service-status-main h2{margin:0;font-size:24px}.list-header{border-bottom:1px solid #e7ecf2;padding:16px}.search{color:#667085;background:#fff;border:1px solid #cfd6e4;border-radius:8px;align-items:center;gap:10px;width:min(360px,100%);padding:0 12px;display:flex}.search input{border:0;outline:0;width:100%;min-width:0;height:38px}.content-list{display:grid}.content-row{border-bottom:1px solid #e7ecf2;grid-template-columns:minmax(240px,1fr) auto minmax(250px,auto);gap:14px;padding:14px 16px;display:grid;position:relative}.content-row:last-child{border-bottom:0}.teacher-row{grid-template-columns:minmax(240px,1fr) minmax(250px,auto)}.content-main{align-items:center;gap:12px;min-width:0;display:flex}.content-main h3{overflow-wrap:anywhere}.row-meta,.row-actions{align-items:center;gap:10px;display:flex}.row-actions{justify-content:flex-end}.student-row{grid-template-columns:minmax(240px,1fr) auto auto}.status-dot{background:#98a2b3;border-radius:999px;flex:none;width:10px;height:10px}.status-dot.on{background:#12b76a}.status-pill{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.status-pill.enabled{color:#05603a;background:#ecfdf3}.status-pill.disabled{color:#475467;background:#f2f4f7}.muted-date{color:#667085;white-space:nowrap;font-size:12px}.password-action{position:relative}.password-popover{z-index:5;color:#182230;background:#fff;border:1px solid #cfd6e4;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-width:260px;margin-top:8px;padding:10px;display:flex;position:absolute;right:0;box-shadow:0 14px 28px #18243829}.password-popover.password-list{gap:10px;display:grid}.password-popover-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;display:grid}.password-popover-row strong{color:#667085;text-transform:uppercase;margin-bottom:2px;font-size:11px;display:block}.password-popover span,.password-popover-row span{overflow-wrap:anywhere;min-width:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.dialog-backdrop{z-index:20;background:#0f172a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.dialog{width:min(720px,100vw - 40px);max-width:100%;max-height:calc(100dvh - 40px);padding:22px;overflow:hidden auto}.dialog.large{width:min(940px,100vw - 40px)}.setup-dialog{width:min(760px,100vw - 40px)}.setup-check-dialog{width:min(680px,100vw - 40px)}.setup-check-intro{gap:14px;margin:18px 0;display:grid}.instruction-list{gap:10px;display:grid}.instruction-list div{background:#f8fafc;border:1px solid #e3e8ef;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:12px;display:grid}.instruction-list strong{color:#0b63ce;background:#e0f2fe;border-radius:999px;place-items:center;width:24px;height:24px;font-size:13px;display:grid}.instruction-list span{color:#475467;font-size:14px;line-height:1.45}.section-kicker{color:#0b63ce;letter-spacing:0;margin-bottom:5px;font-size:12px;font-weight:800;display:block}.settings-stack{gap:16px;margin:18px 0;display:grid}.settings-section{background:#f8fafc;border:1px solid #e3e8ef;border-radius:8px;gap:12px;min-width:0;padding:14px;display:grid}.toggle-row{background:#fff;border:1px solid #dbe2ea;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:12px;display:grid}.toggle-row.compact{padding:10px}.toggle-row input,.tool-enabled input{width:16px;min-width:16px}.toggle-row strong,.toggle-row small{display:block}.toggle-row small{color:#667085;margin-top:2px;font-size:12px;font-weight:600}input,select,textarea{color:#182230;background:#fff;border:1px solid #cfd6e4;border-radius:8px;width:100%;min-width:0;min-height:38px;padding:8px 10px}input:disabled,select:disabled{color:#667085;background:#eef2f6}.password-field{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.rule-list,.tool-list{gap:10px;min-width:0;display:grid}.rule-row,.tool-row{align-items:center;gap:10px;display:grid}.rule-row{grid-template-columns:minmax(150px,.75fr) minmax(180px,1.25fr) auto}.tool-row{grid-template-columns:auto minmax(110px,.8fr) minmax(180px,1.2fr) minmax(128px,.75fr) auto}.tool-row.with-regex{align-items:start}.tool-regex-field{grid-area:2/2/auto/5}.tool-remove-button{justify-self:start}.tool-row.with-regex .tool-remove-button{grid-area:1/5}.tool-enabled{align-items:center;gap:8px;min-width:0;display:flex}.tool-icon{color:#05603a;background:#ecfdf3;border-color:#abefc6;width:34px;height:34px}.empty-line{color:#667085;background:#fff;border:1px dashed #cfd6e4;border-radius:8px;padding:10px}.notice{border-radius:8px;align-items:center;gap:8px;margin:12px 0;padding:12px 14px;display:flex}.notice.error{color:#7a271a;background:#fff1f0;border:1px solid #fecdca}.setup-header{grid-template-columns:auto 1fr;align-items:center;gap:14px;display:grid}.setup-header h2{margin-bottom:4px}.stepper{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.step{color:#475467;background:#f2f4f7;border-radius:999px;align-items:center;gap:7px;min-height:30px;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.step-index{place-items:center;min-width:16px;display:inline-grid}.step.current{color:#0b63ce;background:#e0f2fe}.step.done{color:#05603a;background:#ecfdf3}.toast-region{z-index:30;gap:10px;width:min(420px,100vw - 40px);display:grid;position:fixed;bottom:20px;right:20px}.toast{color:#182230;background:#fff;border:1px solid #dbe2ea;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;display:grid;box-shadow:0 16px 34px #18243829}.toast.success{border-color:#abefc6}.toast.error{border-color:#fecdca}.toast button{color:#667085;background:0 0;border:0;place-items:center;width:28px;height:28px;display:grid}.empty-state{color:#667085;text-align:center;justify-items:center;gap:8px;padding:42px 20px;display:grid}.empty-state svg{color:#0b63ce}.empty-state strong{color:#182230}.message-shell{place-items:center;min-height:100vh;padding:28px;display:grid}.message-shell.wide{align-items:start}.message-panel{width:min(680px,100%);padding:32px}.message-panel p{max-width:58ch}.message-icon{width:48px;height:48px;margin-bottom:18px}.message-icon.success{color:#05603a;background:#ecfdf3;border-color:#abefc6}.message-icon.error{color:#b42318;background:#fff1f0;border-color:#fecdca}.message-actions{flex-wrap:wrap;align-items:center;gap:12px;width:100%;margin-top:18px;display:flex}.student-action-stack{justify-items:start;gap:12px;display:grid}.setup-check-panel{text-align:left;gap:0;display:grid}.check-list{gap:9px;margin-top:22px;display:grid}.check-row{background:#fbfcfe;border:1px solid #dbe2ea;border-radius:8px;grid-template-columns:28px 1fr;align-items:center;gap:12px;padding:13px 14px;display:grid}.check-row.pass{background:#f6fef9;border-color:#abefc6}.check-row.fail{background:#fff1f0;border-color:#fecdca}.check-status{background:#eef2f6;border:1px solid #d0d5dd;border-radius:999px;place-items:center;width:26px;height:26px;display:grid;position:relative}.check-status:before{content:"";background:#98a2b3;border-radius:999px;width:8px;height:8px;display:block}.check-row.pass .check-status{background:#12b76a;border-color:#12b76a}.check-row.pass .check-status:before{background:0 0;border-bottom:2px solid #fff;border-left:2px solid #fff;border-radius:0;width:10px;height:6px;position:absolute;top:8px;left:7px;transform:rotate(-45deg)}.check-row.fail .check-status{background:#d92d20;border-color:#d92d20}.check-row.fail .check-status:before,.check-row.fail .check-status:after{content:"";background:#fff;border-radius:999px;width:12px;height:2px;position:absolute;top:11px;left:6px}.check-row.fail .check-status:before{transform:rotate(45deg)}.check-row.fail .check-status:after{transform:rotate(-45deg)}.check-row strong,.check-row span{display:block}.check-row>div{min-width:0}.check-row strong{color:#182230;font-size:14px}.check-row span{color:#667085;margin-top:2px;font-size:13px;line-height:1.4}.countdown-action{width:100%}.countdown-status{background:#f8fafc;border:1px solid #dbe2ea;border-radius:8px;gap:12px;width:100%;padding:14px;display:grid}.countdown-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.countdown-status strong,.countdown-status span{display:block}.countdown-status strong{color:#182230;font-size:13px}.countdown-status span{color:#667085;margin-top:2px;font-size:12px;font-weight:700}.countdown-track{background:#e7ecf2;border-radius:999px;height:7px;overflow:hidden}.countdown-track span{border-radius:inherit;transform-origin:0;will-change:transform;background:#0b63ce;width:100%;height:100%;animation:linear forwards countdown-progress;display:block;transform:scaleX(0)}@keyframes countdown-progress{to{transform:scaleX(1)}}.countdown-button{flex:none}.backup-link{color:#475467;align-items:center;gap:7px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.backup-link:hover{color:#0b63ce;text-decoration:underline}@media (prefers-reduced-motion:reduce){.countdown-track span{animation:none;transform:scaleX(1)}}@media (width<=980px){.content-row,.student-row{grid-template-columns:1fr;align-items:stretch}.row-meta,.row-actions{justify-content:flex-start}.tool-row{grid-template-columns:auto minmax(0,1fr)}.tool-regex-field,.tool-row.with-regex .tool-remove-button{grid-area:auto}.tool-row>input,.tool-row>select{grid-column:1/-1}.tool-row .tool-remove-button{grid-area:1/2}}@media (width<=720px){.app-shell,.student-shell{width:min(100vw - 20px,100%);padding-top:14px}.topbar,.list-header,.dialog-header,.dialog-actions,.section-title-row{flex-direction:column;align-items:stretch}.topbar-actions,.row-actions,.dialog-action-group{justify-content:flex-start;width:100%}.row-actions .button{flex:140px}.dialog-actions .button,.dialog-action-group .button{flex:none;width:100%}.search{width:100%}.rule-row,.password-field{grid-template-columns:1fr}.countdown-row{flex-direction:column;align-items:stretch}.countdown-button{width:100%}.dialog-backdrop{padding:10px}.dialog{padding:16px}.message-shell{padding:18px}.setup-check-panel{padding:24px 20px}.setup-check-panel .message-actions .button{justify-content:center;width:100%}.check-row{gap:10px;padding:12px}}
