@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;1,600&display=swap";.summary-page{padding:9vh 0}.summary-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:40px}.summary-heading h1{font-size:clamp(54px,7vw,88px);line-height:.95;letter-spacing:-.08em;margin:0}.summary-heading h1 em{font-family:Playfair Display,Georgia,serif;font-weight:600}.summary-heading .lede{margin-bottom:0}.summary-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);margin-bottom:20px}.summary-metrics>div{display:flex;align-items:center;gap:15px;padding:28px 18px 28px 0;border-right:1px solid var(--line)}.summary-metrics>div+div{padding-left:25px}.summary-metrics strong{font-size:42px;letter-spacing:-.08em}.summary-metrics small{font:12px DM Mono,monospace}.summary-metrics span{font:10px DM Mono,monospace;line-height:1.5;color:var(--muted)}.summary-table{border:1px solid var(--line);padding:25px}.summary-table .student-list{margin-top:18px}.sound-toggle{margin-top:25px;border:1px solid #575750;background:transparent;color:#d7d5cd;padding:11px 14px;font-size:11px;cursor:pointer}.ended-screen{padding-top:18vh}.ended-screen .live-intro{max-width:430px;line-height:1.7}:root{font-family:Manrope,sans-serif;color:#191918;background:#f1efe9;font-synthesis:none;--ink:#191918;--muted:#77766f;--line:#d9d6ce;--lime:#c9f469;--paper:#f8f7f2;--red:#df6b52}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input{font:inherit}.app-shell{min-height:100vh;max-width:1440px;margin:auto;padding:0 5.5vw;background:var(--paper)}.topbar,.live-header{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:800;font-size:19px;letter-spacing:-.5px}.brand-mark{display:grid;place-items:center;width:29px;height:29px;background:var(--ink);color:var(--lime);font-family:Georgia,serif;font-style:italic;font-size:21px}.brand-dot{color:#b7d85c}.topbar-status,.secure-label{font:11px DM Mono,monospace;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.topbar-status i,.secure-label i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#8cb83b}.landing{padding:13vh 0 8vh;max-width:670px}.eyebrow,.page-kicker,.student-badge,.live-kicker,.panel-label{font:11px DM Mono,monospace;letter-spacing:.12em;color:var(--muted)}.eyebrow{margin-bottom:33px}.page-kicker{margin-bottom:22px}.page-kicker span{color:#b8b5ab}.landing h1,.setup-page h1,.student-entry h1,.scanner-page h1{margin:0;font-size:clamp(52px,7vw,96px);line-height:.98;letter-spacing:-.075em}.landing h1 em,.setup-page h1 em,.student-entry h1 em,.scanner-page h1 em{font-family:Playfair Display,Georgia,serif;font-weight:600;letter-spacing:-.06em}.lede{max-width:480px;color:var(--muted);font-size:16px;line-height:1.7;margin:32px 0}.landing-actions{display:flex;gap:10px;margin-top:40px}.button{border:0;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:space-between;align-items:center;gap:25px;padding:16px 19px;font-weight:700;font-size:13px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:#fff}.button-light{background:#e8e5dc;color:var(--ink)}.button-danger{background:#f1d5ce;color:#8b392b;padding:12px 15px}.landing-note{display:flex;align-items:center;gap:11px;margin-top:86px;color:var(--muted);font:11px DM Mono,monospace}.note-line{width:34px;height:1px;background:var(--ink)}.landing-aside{position:absolute;right:9vw;top:27vh;width:270px}.landing-aside p{font-size:13px;line-height:1.7;color:var(--muted);margin-top:22px}.signal-card{background:var(--ink);color:#fff;padding:22px}.signal-top{display:flex;justify-content:space-between;color:#8e8e87;font:10px DM Mono,monospace}.signal-pulse{width:8px;height:8px;border-radius:50%;background:var(--lime)}.signal-grid{display:flex;align-items:center;gap:13px;margin:46px 0 28px}.signal-grid strong{font-size:66px;letter-spacing:-.08em}.signal-grid span{font:11px DM Mono,monospace;line-height:1.5;color:#a5a49d}.mini-bars{height:34px;display:flex;align-items:end;gap:5px}.mini-bars i{display:block;background:var(--lime);width:24px;height:15px}.mini-bars i:nth-child(2){height:27px}.mini-bars i:nth-child(3){height:20px}.mini-bars i:nth-child(4){height:32px}.mini-bars i:nth-child(5){height:21px}.mini-bars i:nth-child(6){height:28px}.mini-bars i:nth-child(7){height:17px}.setup-page,.student-entry,.scanner-page{padding:10vh 0}.setup-grid{display:grid;grid-template-columns:1fr 390px;gap:10vw;align-items:start}.session-form,.student-form{border-top:1px solid var(--line);padding-top:8px}.session-form label,.student-form label{display:block;font:11px DM Mono,monospace;letter-spacing:.1em;color:var(--muted);padding:19px 0 6px;border-bottom:1px solid var(--line)}.session-form input,.student-form input{display:block;width:100%;border:0;background:transparent;padding:13px 0 8px;font:18px Manrope;color:var(--ink);outline:0}.session-form input:focus,.student-form input:focus{border-bottom:2px solid var(--ink)}.label-help{float:right;color:#b2afa6}.session-form .button,.student-form .button{margin-top:27px;width:100%}.error-message{color:#a14334;font-size:12px;margin:14px 0}.dashboard{padding:6vh 0}.dashboard-head{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:30px}.dashboard-head h1{font-size:44px;letter-spacing:-.07em;margin:0 0 9px}.dashboard-head p{margin:0;color:var(--muted);font-size:13px}.head-actions{display:flex;align-items:center;flex-wrap:wrap;gap:15px}.status-chip,.live-dot{font:11px DM Mono,monospace;letter-spacing:.08em}.status-chip.active{color:#6c8d20}.status-chip.ended{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:310px 1fr;gap:20px;margin-top:20px}.qr-panel,.roster-panel,.alerts-panel{border:1px solid var(--line);padding:25px}.qr-panel{text-align:center}.qr-frame{display:grid;place-items:center;margin:22px auto 15px;width:220px;height:220px;background:#fff}.qr-frame img{width:196px;height:196px}.qr-panel strong{font-size:14px}.qr-panel p{font-size:11px;color:var(--muted);margin:23px 0 7px}.copy-link{border:0;background:transparent;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#67665e;font:10px DM Mono,monospace;cursor:pointer}.copy-link span{color:var(--ink);text-decoration:underline;margin-left:5px}.panel-header{display:flex;justify-content:space-between;align-items:start}.panel-header h2{font-size:23px;letter-spacing:-.05em;margin:8px 0}.live-dot{color:#719b21}.student-list{margin-top:25px}.student-row{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding:14px 0}.avatar{display:grid;place-items:center;width:34px;height:34px;background:var(--lime);font-weight:800;font-size:13px}.student-name{font-size:13px;font-weight:700;flex:1}.student-name small,.alert-row small{display:block;color:var(--muted);font:10px DM Mono,monospace;margin-top:5px}.row-action{background:transparent;border:0;color:#a34234;font-size:11px;cursor:pointer}.empty-state,.empty-alerts{color:var(--muted);font-size:13px;line-height:1.7;text-align:center;padding:90px 0}.empty-state span{font-size:11px}.alerts-panel{margin-top:20px}.alert-count{font:12px DM Mono,monospace;background:#ead4cd;color:#a34839;padding:8px 11px}.alert-list{margin-top:17px}.alert-row{display:flex;gap:12px;border-top:1px solid var(--line);padding:12px 0;font-size:12px}.alert-icon{display:grid;place-items:center;background:#f0d6cf;color:#ad4938;width:23px;height:23px;border-radius:50%;font-weight:800}.alert-icon-lock{background:#e4e2d8;color:var(--muted)}.help-badge{font:11px DM Mono,monospace;letter-spacing:.08em;background:#e4f3bd;color:#5c7a1c;padding:8px 11px;animation:help-pulse 1.4s infinite}@keyframes help-pulse{0%,to{opacity:1}50%{opacity:.55}}.help-panel{border:1px solid var(--line);padding:25px;margin-top:20px}.help-list{margin-top:17px}.help-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:12px 0}.help-dot{width:9px;height:9px;border-radius:50%;background:#8cb83b;flex-shrink:0;animation:help-pulse 1.4s infinite}.help-name{flex:1;font-size:13px;font-weight:700}.help-name small{display:block;color:var(--muted);font:10px DM Mono,monospace;margin-top:4px}.help-row .button{padding:9px 13px;font-size:11px;gap:0}.help-button{position:fixed;right:24px;bottom:24px;border:0;background:var(--lime);color:#20330a;font-weight:800;font-size:13px;padding:16px 20px;border-radius:40px;cursor:pointer;box-shadow:0 10px 30px #00000059;z-index:20}.help-button-pending{background:#3d3d39;color:#f5f3ed}.scanner-page{max-width:570px}.scanner-box{background:#fff;margin-top:32px;border:1px solid var(--line);padding:18px}.student-entry{max-width:700px}.student-badge{margin-bottom:28px}.student-form{max-width:390px;margin-top:42px}.live-shell{min-height:100vh;background:var(--ink);color:#f5f3ed;padding:0 6vw}.live-header{border-color:#393936}.live-header .brand{color:#f5f3ed}.secure-label{color:#a9a79f}.live-content{max-width:620px;margin:0 auto;padding:13vh 0}.live-kicker{color:#9f9d95}.live-kicker span{color:var(--lime)}.live-content h1{font-size:62px;letter-spacing:-.08em;margin:27px 0 10px}.live-intro{color:#a9a79f;font-size:14px}.timer-card{margin-top:67px;border-top:1px solid #3d3d39;border-bottom:1px solid #3d3d39;padding:25px 0}.timer-card>span{font:10px DM Mono,monospace;color:#97968f;letter-spacing:.1em}.timer-card strong{display:block;font:64px DM Mono,monospace;letter-spacing:-.09em;color:var(--lime);margin:15px 0}.timer-track{height:2px;background:#3d3d39}.timer-track i{display:block;height:2px;background:var(--lime);width:37%}.live-stats{display:flex;gap:80px;margin:31px 0}.live-stats div{display:flex;align-items:center;gap:13px}.live-stats strong{font-size:30px;letter-spacing:-.06em}.live-stats span{color:#96958e;font:10px DM Mono,monospace;line-height:1.5}.live-notice{display:flex;gap:13px;align-items:start;background:#292926;padding:16px 18px;margin-top:46px}.live-notice>span{color:var(--lime)}.live-notice p{font-size:11px;line-height:1.6;color:#aaa8a0;margin:0}.live-notice strong{color:#f5f3ed}@media(max-width:800px){.app-shell{padding:0 22px}.topbar{height:74px}.topbar-status{display:none}.landing{padding-top:12vh}.landing h1,.setup-page h1,.student-entry h1,.scanner-page h1{font-size:58px}.landing-aside{position:static;width:auto;margin:35px 0 50px}.landing-actions{flex-direction:column;max-width:300px}.landing-note{margin-top:48px}.setup-grid,.dashboard-grid{grid-template-columns:1fr}.dashboard-head{align-items:start;gap:20px;flex-direction:column}.head-actions{width:100%;justify-content:space-between}.qr-panel{max-width:none}.live-shell{padding:0 22px}.live-content{padding-top:11vh}.live-content h1{font-size:49px}.live-stats{gap:35px}}.notice-message{color:#3d6b1f;font-size:12px;margin:14px 0}.switch-mode{margin-top:16px;color:var(--muted);font-size:12px;text-align:left;padding:0}.admin-link{color:inherit}.admin-page{padding:9vh 0}.admin-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:32px;margin-bottom:24px}.admin-heading h1{font-size:clamp(44px,6vw,76px);line-height:.95;letter-spacing:-.08em;margin:0}.admin-heading h1 em{font-family:Playfair Display,Georgia,serif;font-weight:600}.admin-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:20px 0}.admin-search{flex:1 1 240px;padding:12px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px}.admin-filters{display:flex;flex-wrap:wrap;gap:6px}.admin-filters button{border:1px solid var(--line);background:transparent;padding:9px 12px;font:inherit;font-size:12px;cursor:pointer}.admin-filters button.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}.admin-new{margin-top:0;width:auto}.admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:end;padding:20px;border:1px solid var(--line);background:#fff;margin-bottom:20px}.admin-form label{display:grid;gap:6px;font-size:12px;font-weight:600}.admin-form input,.admin-form select{padding:11px 12px;border:1px solid var(--line);font:inherit;font-size:13px}.admin-form .button{margin-top:0}.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);background:#fff}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--line)}.admin-table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table td strong{display:block}.admin-table td span{color:var(--muted);font-size:12px}.admin-table select{padding:7px 8px;border:1px solid var(--line);background:#fff;font:inherit;font-size:12px}.admin-actions{display:flex;flex-wrap:wrap;gap:4px 12px}.admin-actions button{background:transparent;border:0;padding:0;font:inherit;font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline}.admin-actions button.danger{color:#a34234}.admin-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}.admin-table td .status-pill{display:inline-block;padding:4px 9px;font-size:11px;font-weight:700;color:var(--ink)}.status-pending{background:#f4e3a6}.status-approved{background:var(--lime)}.status-disabled{background:#e6c3bb}.area-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;padding:16px 0;border-bottom:1px solid var(--line)}.area-nav a{color:var(--muted);text-decoration:none;font-size:13px;font-weight:600;padding:6px 0;border-bottom:2px solid transparent}.area-nav a.is-active{color:var(--ink);border-color:var(--ink)}.area-nav-spacer{flex:1}.area-user{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.area-page{padding:6vh 0}.avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:11px;font-weight:800;color:var(--ink);flex:none}.profile-head .avatar{width:64px;height:64px;font-size:22px}.profile-page{max-width:640px}.profile-head{display:flex;align-items:center;gap:20px;margin:24px 0 30px}.profile-head h1{margin:0;font-size:34px;letter-spacing:-.04em}.profile-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.profile-form{display:grid;gap:16px}.profile-form label{display:grid;gap:6px;font-size:12px;font-weight:600}.profile-form input{padding:12px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:14px}.profile-form .button{margin-top:6px}.profile-colors{display:grid;gap:8px;font-size:12px;font-weight:600}.profile-colors div{display:flex;gap:10px}.profile-colors button{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer}.profile-colors button.is-active{border-color:var(--ink)}.back-link{color:var(--muted);font-size:12px;margin-bottom:18px}.detail-title{font-size:clamp(32px,4.5vw,56px);line-height:1;letter-spacing:-.05em;margin:0 0 10px}.detail-meta{margin:0;color:var(--muted);font-size:13px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}.detail-actions .button{margin-top:0;width:auto}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:0 0 20px}.metrics div{background:#fff;border:1px solid var(--line);padding:16px}.metrics strong{display:block;font-size:30px;letter-spacing:-.04em}.metrics span{color:var(--muted);font-size:12px}.note-input{width:100%;min-width:140px;padding:7px 9px;border:1px solid var(--line);font:inherit;font-size:12px;background:#fff}.alert-toggle{color:var(--ink);font-weight:700;text-decoration:underline}.alert-rows td{background:#faf9f4}.alert-rows ul{margin:0;padding-left:18px;font-size:12px;line-height:1.9}.alert-rows li span{font-family:DM Mono,monospace;color:var(--muted)}.notes-box{display:grid;gap:12px;margin:24px 0}.notes-box label{display:grid;gap:6px;font-size:12px;font-weight:600}.notes-box textarea{padding:12px 14px;border:1px solid var(--line);font:inherit;font-size:13px;background:#fff;resize:vertical}.notes-box .button{margin-top:0;width:auto;justify-self:start}.danger-link{color:#a34234;text-decoration:underline;font-size:12px}.status-pill.exam-waiting{background:#f4e3a6}.status-pill.exam-active{background:var(--lime)}.status-pill.exam-ended{background:#e2e0d8}.role-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}.role-choices button{display:grid;gap:6px;text-align:left;padding:14px;border:1px solid var(--line);background:#fff;font:inherit;cursor:pointer}.role-choices button strong{font-size:14px}.role-choices button span{color:var(--muted);font-size:12px;line-height:1.5}.role-choices button.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#f6fbe6}.session-form textarea{padding:12px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;resize:vertical;width:100%}.optional{font-style:normal;color:var(--muted);font-weight:400}.or-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;margin:22px 0 0}.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--line)}.session-form .button-light,.session-form a.button{margin-top:10px}.session-form a.switch-mode{display:inline-block;text-decoration:underline}.portal-section{padding:8vh 0;border-top:1px solid var(--line);margin-top:4vh}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:26px}.feature-grid article{background:#fff;border:1px solid var(--line);padding:22px}.feature-grid span{font-family:DM Mono,monospace;font-size:11px;color:var(--muted)}.feature-grid h3{margin:14px 0 8px;font-size:18px;letter-spacing:-.02em}.feature-grid p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.steps{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:14px;max-width:640px}.steps li{display:flex;gap:18px;align-items:flex-start}.steps li>strong{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--lime);font-size:14px}.steps h3{margin:4px 0;font-size:17px}.steps p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.portal-cta{margin-top:40px}.portal-cta p{font-weight:700;margin:0 0 4px}.request-note{display:block;margin-top:4px;font-size:12px;color:var(--muted);max-width:280px}.request-hint{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.status-pill.status-rejected{background:#e6c3bb}@media(max-width:600px){.role-choices{grid-template-columns:1fr}}.tabs{display:flex;gap:4px;margin:8px 0 18px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 16px;font:inherit;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;margin-bottom:-1px}.tabs button.is-active{color:var(--ink);border-color:var(--ink)}.history-panel .admin-toolbar select{padding:9px 10px;border:1px solid var(--line);background:#fff;font:inherit;font-size:12px}.history-export{margin-top:0;width:auto}.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}.timeline li{position:relative;display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0 12px 20px}.timeline li:before{content:"";position:absolute;left:-6px;top:18px;width:10px;height:10px;border-radius:50%;background:#bdb9ad;border:2px solid var(--paper)}.timeline time{font-family:DM Mono,monospace;font-size:11px;color:var(--muted);padding-top:2px}.timeline strong{font-size:13px}.timeline p{margin:3px 0 0;font-size:12px;color:var(--muted);line-height:1.5}.timeline p em{font-style:normal;opacity:.75}.tl-who{font-size:13px;color:var(--muted)}.tl-alert:before{background:#df6b52}.tl-help:before{background:#e0b83e}.tl-moderation:before{background:#a34234}.tl-session:before{background:var(--ink)}.tl-presence:before{background:#7aa0d4}.tl-review:before{background:#7ea54a}.history-count{margin:16px 0 0;font-size:11px;color:var(--muted)}@media(max-width:600px){.timeline li{grid-template-columns:1fr;gap:4px}}.professor-line{margin:0 0 14px;font-size:13px;color:var(--muted)}.professor-line strong{color:var(--ink)}.notice-box{background:#f6fbe6;border:1px solid #cfe59a;padding:12px 14px;font-size:13px;line-height:1.5;margin:0 0 14px}.notice-box a{color:var(--ink);font-weight:700}.session-form select{padding:12px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:14px;width:100%}.areas-picker{display:grid;gap:10px;font-size:12px;font-weight:600}.area-chips{display:flex;flex-wrap:wrap;gap:8px}.area-chips button{display:inline-flex;align-items:baseline;gap:6px;padding:9px 13px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;cursor:pointer}.area-chips button small{color:var(--muted);font-size:11px}.area-chips button.is-active{border-color:var(--ink);background:var(--lime);box-shadow:inset 0 0 0 1px var(--ink)}.muted-note{color:var(--muted);font-weight:400;font-size:12px;margin:0}.my-courses{display:grid;gap:8px;font-size:12px;font-weight:600}.my-courses details{border:1px solid var(--line);background:#fff;padding:10px 14px}.my-courses summary{cursor:pointer;font-size:13px}.my-courses ul{margin:10px 0 2px;padding-left:18px;font-weight:400;line-height:1.8}.my-courses li small{color:var(--muted)}.detail-desc{margin:0 0 20px;max-width:640px;color:var(--muted);font-size:14px;line-height:1.6}.catalog-lede{max-width:640px;margin:0 0 24px}.import-box{border:1px solid var(--line);background:#fff;padding:14px 16px;margin-bottom:20px}.import-box summary{cursor:pointer;font-weight:700;font-size:14px}.import-box p{font-size:12px;color:var(--muted);line-height:1.6}.import-box textarea{width:100%;padding:12px;border:1px solid var(--line);font-family:DM Mono,monospace;font-size:11px;resize:vertical}.import-button{width:auto;margin-top:12px}.course-list{list-style:none;margin:0;padding:0;font-size:12px;line-height:2}.course-list li span{font-family:DM Mono,monospace;color:var(--muted);margin-right:6px}.course-list li em{font-style:normal;color:var(--muted)}.course-list li.is-off{opacity:.5}.alert-rows li.sev-critical strong{color:#a34234}.alert-rows li.sev-warning strong{color:#a0730f}.alert-rows li.sev-info strong{color:var(--muted)}.entry-desc{color:var(--muted);font-size:13px}.consent{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;font-weight:400!important;font-size:12px!important;line-height:1.5;color:var(--muted)}.consent input{width:auto!important;margin-top:2px;flex:none}.alert-sev-critical{background:#df6b52!important;color:#fff!important}.alert-sev-warning{background:#e0b83e!important}.alert-sev-info{background:#d9d6ce!important;color:var(--ink)!important}.presence-summary{display:flex;flex-wrap:wrap;gap:6px 16px;padding:12px 0 6px;font-size:12px;color:var(--muted)}.presence-summary span{display:inline-flex;align-items:center;gap:6px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%}.dot-live{background:#7ea54a}.dot-hidden{background:#e0b83e}.dot-away{background:#df6b52}.dot-out{background:#8a8577}.roster-group{margin-top:14px}.group-label{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;color:var(--muted);margin:0 0 6px}.group-away{color:#a34234}.group-live{color:#4f7a25}.student-row-away{background:#fbeeea;border-left:3px solid #df6b52}.student-row-hidden{background:#fdf6df;border-left:3px solid #e0b83e}.student-row-flag:not(.student-row-hidden){border-left:3px solid #7aa0d4}.student-row-out{opacity:.55}.big-timer{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:center;background:#191918;color:#fff;padding:26px 32px;margin:22px 0;border-radius:2px}.big-timer-main{flex:1 1 420px;min-width:0}.big-timer-label,.big-timer-side span{display:block;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.14em;color:#a9a79d}.big-timer-digits{display:block;font-family:DM Mono,monospace;font-variant-numeric:tabular-nums;font-size:clamp(64px,12vw,168px);line-height:1;font-weight:500;letter-spacing:-.03em;margin:6px 0 14px;color:#c9f469}.big-timer-bar{height:6px;background:#3a3934}.big-timer-bar i{display:block;height:100%;background:#c9f469;transition:width 1s linear}.big-timer-side{display:grid;gap:14px;min-width:200px}.big-timer-side strong{display:block;font-family:DM Mono,monospace;font-variant-numeric:tabular-nums;font-size:clamp(28px,3.4vw,46px);font-weight:500}.big-timer-side button{background:#c9f469;color:#191918;border:0;padding:12px 14px;font:inherit;font-weight:700;font-size:12px;cursor:pointer}.tone-warn .big-timer-digits,.tone-warn .big-timer-bar i{color:#f4c542;background:#f4c542}.tone-warn .big-timer-digits{background:none}.tone-danger .big-timer-digits{color:#ff7a5c;background:none;animation:pulse-timer 1s ease-in-out infinite}.tone-danger .big-timer-bar i{background:#ff7a5c}.tone-idle .big-timer-digits{color:#e8e5dc}.tone-idle .big-timer-bar i{background:#6f6d64}@keyframes pulse-timer{50%{opacity:.55}}.projector{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0e0e0d;color:#fff;display:grid;grid-template-rows:auto 1fr auto;padding:4vh 5vw;font-family:Manrope,sans-serif}.projector header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.projector header strong{display:block;font-size:clamp(20px,3vw,42px)}.projector header span{color:#a9a79d;font-size:clamp(14px,1.8vw,26px)}.projector header button{background:transparent;color:#a9a79d;border:1px solid #3a3934;padding:8px 14px;font:inherit;cursor:pointer;flex:none}.projector main{display:grid;place-content:center;text-align:center}.projector-label{font-family:DM Mono,monospace;letter-spacing:.2em;font-size:clamp(14px,2vw,28px);color:#a9a79d}.projector-digits{font-family:DM Mono,monospace;font-variant-numeric:tabular-nums;font-size:min(30vw,46vh);line-height:1;font-weight:500;letter-spacing:-.04em;color:#c9f469}.projector.tone-warn .projector-digits{color:#f4c542}.projector.tone-danger .projector-digits{color:#ff7a5c;animation:pulse-timer 1s ease-in-out infinite}.projector.tone-idle .projector-digits{color:#e8e5dc}.projector footer{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-top:1px solid #2a2a27;padding-top:2.5vh}.projector footer span{display:block;font-family:DM Mono,monospace;font-size:clamp(11px,1.3vw,18px);letter-spacing:.14em;color:#a9a79d}.projector footer strong{font-family:DM Mono,monospace;font-variant-numeric:tabular-nums;font-size:clamp(30px,5.5vw,84px);font-weight:500}.projector-status{font-family:DM Mono,monospace;letter-spacing:.2em;font-size:clamp(14px,2vw,30px);color:#c9f469}.late-toggle{display:block;margin:10px auto 0;background:transparent;border:1px dashed var(--line);padding:8px 10px;font:inherit;font-size:11px;cursor:pointer;color:var(--muted)}.student-row-danger{background:#fbe3dc!important;border-left:3px solid #d0442a!important}.strike-tag{color:#a34234;font-size:11px;margin-left:4px}.strike-count{color:var(--muted)}.strike-banner{background:#fdf1cf;border:1px solid #e0b83e;color:#6b4e00;padding:12px 14px;margin:14px 0;font-size:13px;font-weight:600;line-height:1.5}.stat-danger strong{color:#d0442a}.timer-card strong{font-size:clamp(64px,20vw,132px)!important;font-variant-numeric:tabular-nums}.lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center;background:#0d0d0c;color:#f1efe9}.lock-overlay strong{font-size:30px}.lock-overlay p{max-width:420px;margin:0;color:#c9c6bc;line-height:1.5}.lock-overlay button{margin-top:12px;padding:10px 18px;border:1px solid #555;border-radius:8px;background:transparent;color:#c9c6bc;font:inherit;cursor:pointer}.sound-toggle.sound-off{background:#df6b52;color:#fff;border-color:#df6b52}.sound-tag{margin-left:6px;padding:1px 6px;border-radius:9px;background:#e0b83e;color:#191918;font-size:11px}.alert-sounded{border-left:3px solid #e0b83e}.lock-overlay .lock-check{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#c6f24e;color:#191918;font-size:34px;font-weight:800}.lock-overlay .lock-kicker{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c6f24e}.lock-overlay button.lock-cancel{width:100%;max-width:320px;margin-top:20px;padding:15px 18px;border:2px solid #f1efe9;border-radius:12px;background:#f1efe9;color:#191918;font-size:16px;font-weight:700}.wait-steps{list-style:none;margin:8px 0 20px;padding:0;display:grid;gap:12px}.wait-steps li{display:flex;gap:12px;align-items:flex-start;line-height:1.45}.wait-steps b{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#191918;color:#f1efe9;font-size:13px}.confirm-button{width:100%;justify-content:center;padding:18px 20px;font-size:18px}.phone-simple{min-height:100vh;min-height:100dvh;background:#0d0d0c;color:#f1efe9;display:flex;flex-direction:column}.phone-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;text-align:center}.phone-name{margin:0;font-size:22px;color:#c9c6bc}.phone-main-button{width:100%;max-width:380px;padding:26px 20px;border:0;border-radius:18px;background:#c6f24e;color:#191918;font:inherit;font-size:24px;font-weight:800;cursor:pointer;box-shadow:0 0 0 4px #c6f24e40}.phone-main-button:active{transform:scale(.98)}.phone-locked strong{font-size:28px}.phone-locked p{margin:0;color:#c9c6bc;font-size:17px}.phone-simple .strike-banner{margin:0;border-radius:0}.row-action-ok{border-color:#2f7d4f;color:#2f7d4f}.student-row-done{opacity:.75}.roster-finished{border-left:3px solid #2f7d4f;padding-left:10px}.group-done{color:#2f7d4f}.student-row-done .avatar{background:#2f7d4f;color:#fff}
