@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-latin-500-normal-7RbcRiD8.woff2)format("woff2"),url(/assets/roboto-latin-500-normal-DQZyH_nt.woff)format("woff")}:root{--cream:#fcfaf6;--paper:#fffefa;--navy:#12233d;--muted:#70716f;--line:#e7e1d8;--orange:#ed5a16;--orange-soft:#fff0e7;--green:#18843a;--green-soft:#edf7ef;--amber:#d97800;--amber-soft:#fff4e4;--blue:#1768ae;--blue-soft:#edf5fc;--red:#d52f2f;--red-soft:#fff0ee}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.prototype-shell{background:var(--cream);width:100%;height:100%;color:var(--navy);font-family:Inter,ui-sans-serif,system-ui,sans-serif;position:relative;overflow:hidden}.app-header{z-index:20;border-bottom:1px solid var(--line);background:#fcfaf6fa;align-items:center;gap:15px;height:104px;padding:49px 18px 12px;display:flex;position:absolute;inset:0 0 auto}.brand-logo{object-fit:contain;width:67px;height:36px}.header-copy{flex:1;justify-content:space-between;align-items:center;min-width:0;display:flex}.header-copy h1{letter-spacing:0;margin:0;font:700 25px/1.05 Georgia,serif}.header-copy span{color:var(--green);align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.app-screen{background:var(--cream);height:auto!important;position:absolute!important;inset:104px 0 74px!important}.screen-content{min-height:100%;padding-bottom:28px}.bottom-nav{z-index:20;height:74px;padding:5px 7px calc(var(--mobile-safe-area-height) + 3px);border-top:1px solid var(--line);background:#fffefafa;grid-template-columns:repeat(5,1fr);display:grid;position:absolute;inset:auto 0 0}.bottom-nav button{color:#707575;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:3px 1px;font-size:9px;display:flex}.bottom-nav svg{width:20px;height:20px}.bottom-nav span{text-overflow:ellipsis;max-width:100%;overflow:hidden}.bottom-nav .active{color:var(--orange);font-weight:700}.eyebrow{letter-spacing:.12em;color:var(--orange);font-size:10px;font-weight:800}.class-context{border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;min-height:118px;padding:22px 18px;display:flex}.class-context h2,.welcome h2,.page-intro h2{letter-spacing:0;margin:5px 0 4px;font:700 29px/1.05 Georgia,serif}.class-context p,.welcome p,.page-intro p{color:var(--muted);margin:0;font-size:13px}.lesson-meta{border-left:1px solid var(--line);text-align:right;gap:7px;padding-left:18px;display:grid}.lesson-meta strong{font-size:16px}.lesson-meta span{color:var(--muted);font-size:12px}.status-summary{border-bottom:1px solid var(--line);background:var(--paper);grid-template-columns:repeat(4,1fr);padding:15px 12px;display:grid}.status-summary div{text-align:center;border-right:1px solid var(--line);min-width:0}.status-summary div:last-child{border:0}.status-summary strong{font:700 23px/1 Georgia,serif;display:block}.status-summary span{color:var(--muted);text-overflow:ellipsis;margin-top:5px;font-size:9px;display:block;overflow:hidden}.summary-present strong{color:var(--green)}.summary-late strong{color:var(--amber)}.summary-excused strong{color:var(--blue)}.summary-unexcused strong{color:var(--red)}.list-heading{text-transform:uppercase;color:#85827d;letter-spacing:.1em;grid-template-columns:126px 1fr;align-items:end;height:39px;padding:0 16px 8px;font-size:9px;font-weight:800;display:grid}.attendance-list,.class-list,.simple-list,.alert-list,.report-list{background:var(--paper);border-block:1px solid var(--line)}.attendance-row{border-bottom:1px solid var(--line);padding:12px}.student-identity{align-items:center;gap:10px;margin-bottom:9px;display:flex}.student-identity>div{flex-direction:column;min-width:0;display:flex}.student-identity strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.student-identity small{color:var(--amber);margin-top:2px;font-size:10px}.avatar{width:34px;height:34px;color:var(--orange);background:var(--orange-soft);border-radius:50%;flex:0 0 34px;place-items:center;font-size:11px;display:grid}.avatar.present{color:var(--green);background:var(--green-soft)}.avatar.late{color:var(--amber);background:var(--amber-soft)}.avatar.excused{color:var(--blue);background:var(--blue-soft)}.avatar.unexcused{color:var(--red);background:var(--red-soft)}.status-options{border:1px solid #d8d4cd;border-radius:7px;grid-template-columns:repeat(4,1fr);margin-left:44px;display:grid;overflow:hidden}.status-options button{color:#737574;background:#fff;border:0;border-right:1px solid #ddd8d1;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;height:49px;padding:5px 2px;font-size:8px;display:flex}.status-options button:last-child{border:0}.status-options svg{width:17px;height:17px}.status-options .present.selected{color:var(--green);background:var(--green-soft);box-shadow:inset 0 0 0 1px var(--green)}.status-options .late.selected{color:var(--amber);background:var(--amber-soft);box-shadow:inset 0 0 0 1px var(--amber)}.status-options .excused.selected{color:var(--blue);background:var(--blue-soft);box-shadow:inset 0 0 0 1px var(--blue)}.status-options .unexcused.selected{color:var(--red);background:var(--red-soft);box-shadow:inset 0 0 0 1px var(--red)}.finish-button{background:var(--orange);color:#fff;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;width:calc(100% - 24px);height:50px;margin:16px 12px 4px;font-weight:800;display:flex}.finish-button.completed{background:var(--green)}.welcome,.page-intro{background:var(--paper);border-bottom:1px solid var(--line);padding:24px 18px 20px}.welcome p{max-width:300px;line-height:1.45}.dashboard-metrics{grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px;display:grid}.dashboard-metrics div{border-left:3px solid var(--orange);background:var(--paper);grid-template-columns:22px 1fr;padding:8px 10px;display:grid}.dashboard-metrics svg{color:var(--orange);grid-row:1/3;margin-top:3px}.dashboard-metrics span{color:var(--muted);font-size:10px}.dashboard-metrics strong{font-size:15px}.section-title{justify-content:space-between;align-items:end;padding:16px 18px 9px;display:flex}.section-title h3{letter-spacing:0;margin:3px 0 0;font:700 19px Georgia,serif}.section-title>svg{color:var(--orange)}.class-list button,.simple-list button{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;min-height:78px;color:var(--navy);background:0 0;align-items:center;gap:12px;padding:12px 16px;display:flex}.date-block{background:var(--orange-soft);width:42px;height:48px;color:var(--orange);border-radius:6px;align-content:center;place-items:center;display:grid}.date-block b{font:700 20px Georgia,serif}.date-block small{font-size:8px;font-weight:800}.class-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.class-copy strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.class-copy small{color:var(--muted);font-size:11px}.class-copy em{color:var(--orange);font-size:10px;font-style:normal}.class-open,.class-done{color:var(--muted);text-align:right;font-size:9px;font-weight:700}.class-done{color:var(--green)}.search-box{border:1px solid var(--line);height:44px;color:var(--muted);background:#fff;border-radius:7px;align-items:center;gap:9px;margin:14px 16px;padding:0 13px;display:flex}.search-box input{width:100%;color:var(--navy);background:0 0;border:0;outline:0;font-size:14px}.simple-list button{min-height:67px}.avatar.neutral{color:var(--navy);background:#f4eee7}.attendance-rate{color:var(--green);font:700 18px Georgia,serif}.attendance-rate.low{color:var(--red)}.report-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.report-head h2{font-size:24px}.report-head label{flex:0 0 108px;position:relative}.report-head select{appearance:none;border:1px solid var(--line);width:100%;color:var(--navy);background:#fff;border-radius:6px;padding:9px 25px 9px 9px;font-size:11px}.report-head label svg{position:absolute;top:11px;right:8px}.overall-rate{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.overall-rate strong{color:var(--green);margin-top:5px;font:700 34px Georgia,serif;display:block}.overall-rate p{color:var(--muted);margin:2px 0;font-size:11px}.ring{border:8px solid var(--green);border-right-color:#dfe9df;border-radius:50%;place-items:center;width:69px;height:69px;font-weight:800;display:grid}.report-columns,.report-list>div{grid-template-columns:1fr 30px 30px 30px 38px;align-items:center;gap:3px;display:grid}.report-columns{color:var(--muted);text-align:center;padding:10px 13px;font-size:9px;font-weight:800}.report-columns span:first-child{text-align:left}.report-list>div{border-bottom:1px solid var(--line);text-align:center;min-height:59px;padding:8px 13px;font-size:11px}.report-list>div>span{text-align:left;flex-direction:column;min-width:0;display:flex}.report-list strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.report-list small{color:var(--muted);font-size:9px}.late-text{color:var(--amber)}.excused-text{color:var(--blue)}.unexcused-text{color:var(--red)}.legend{color:var(--muted);margin:12px 15px;font-size:9px}.automation-note{background:var(--blue-soft);border-left:3px solid var(--blue);gap:11px;margin:14px;padding:13px;display:flex}.automation-note svg{color:var(--blue);width:22px;height:22px}.automation-note strong{font-size:13px}.automation-note p{color:var(--muted);margin:3px 0;font-size:10px;line-height:1.4}.section-title.compact{padding-top:13px}.alert-list>div{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:70px;padding:10px 15px;display:flex}.alert-list>div>span:nth-child(2){flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.alert-list strong{font-size:13px}.alert-list small{color:var(--muted);font-size:10px}.alert-list i{background:#eee9e3;border-radius:2px;height:4px;overflow:hidden}.alert-list i b{background:var(--amber);height:100%;display:block}.alert-list em{color:var(--amber);font-size:9px;font-style:normal;font-weight:700}.alert-list .mail-ready{color:var(--blue)}.student-sheet{color:var(--navy);padding:8px 2px 26px}.sheet-rate{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding:12px 0 17px;display:flex}.sheet-rate span{color:var(--muted);font-size:13px}.sheet-rate strong{color:var(--green);font:700 34px Georgia,serif}.sheet-stats{border-bottom:1px solid var(--line);text-align:center;grid-template-columns:repeat(3,1fr);padding:18px 0;display:grid}.sheet-stats div{border-right:1px solid var(--line)}.sheet-stats div:last-child{border:0}.sheet-stats strong{font:700 22px Georgia,serif;display:block}.sheet-stats span{color:var(--muted);font-size:10px}.sheet-history h4{margin:18px 0 10px;font:700 17px Georgia,serif}.sheet-history p{border-bottom:1px solid var(--line);align-items:center;gap:8px;margin:0;padding:9px 0;font-size:12px;display:flex}.sheet-history svg{color:var(--orange)}.interactive-context{padding:0}.interactive-context>button{height:118px;color:var(--navy);text-align:left;background:0 0;border:0;padding:20px 18px}.interactive-context>button:first-child{flex:1;min-width:0}.interactive-context .context-title{align-items:center;gap:6px;margin:5px 0 4px;font:700 25px/1.05 Georgia,serif;display:flex}.interactive-context small{color:var(--muted);font-size:11px}.interactive-context .lesson-meta{flex:0 0 132px;align-content:center}.interactive-context .lesson-meta>span:last-child{justify-content:flex-end;align-items:center;gap:4px;display:flex}.interactive-context .lesson-meta svg{width:12px}.today-panel{background:var(--navy);color:#fff;border-radius:7px;justify-content:space-between;align-items:center;margin:14px 16px 2px;padding:16px;display:flex}.today-panel .eyebrow{color:#ffb186}.today-panel h3{margin:5px 0 3px;font:700 21px Georgia,serif}.today-panel p{color:#dce1e8;margin:0;font-size:10px}.today-panel button{background:var(--orange);color:#fff;border:0;border-radius:6px;align-items:center;gap:4px;height:37px;padding:0 10px;font-size:10px;font-weight:800;display:flex}.teacher-overview{background:var(--paper);border-block:1px solid var(--line)}.teacher-overview button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:63px;color:var(--navy);text-align:left;background:0 0;align-items:center;gap:10px;padding:10px 16px;display:flex}.teacher-overview button>span:nth-child(2){flex-direction:column;flex:1;display:flex}.teacher-overview strong{font-size:13px}.teacher-overview small{color:var(--muted);font-size:10px}.teacher-overview em{color:var(--orange);font-size:10px;font-style:normal}.report-selector{background:var(--paper);border-bottom:1px solid var(--line);padding:13px 16px 15px}.teacher-tabs{gap:6px;margin:7px 0 14px;display:flex;overflow:hidden}.teacher-tabs button{border:1px solid var(--line);height:32px;color:var(--navy);background:#fff;border-radius:6px;padding:0 11px;font-size:10px}.teacher-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}.class-tabs{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px;display:grid}.class-tabs button{border:1px solid var(--line);min-width:0;min-height:47px;color:var(--navy);background:#fff;border-radius:6px;flex-direction:column;justify-content:center;align-items:flex-start;padding:7px;font-size:11px;font-weight:800;display:flex}.class-tabs button small{color:var(--muted);margin-top:2px;font-size:8px;font-weight:500}.class-tabs button.active{border-color:var(--orange);background:var(--orange-soft);color:var(--orange)}.picker-list{padding-bottom:20px}.picker-list h4{margin:17px 0 6px;font:700 17px Georgia,serif}.picker-list section:first-child h4{margin-top:3px}.picker-list button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:52px;color:var(--navy);text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex}.picker-list button>span{flex-direction:column;display:flex}.picker-list button strong{font-size:13px}.picker-list button small{color:var(--muted);font-size:10px}.picker-list button.active{color:var(--orange)}.lesson-calendar{padding-bottom:18px}.lesson-calendar header{justify-content:space-between;align-items:center;margin:2px 0 16px;display:flex}.lesson-calendar header strong{font:700 18px Georgia,serif}.lesson-calendar header button{border:1px solid var(--line);width:36px;height:36px;color:var(--navy);background:#fff;border-radius:6px}.weekdays,.month-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.weekdays span{text-align:center;color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:800}.month-grid{margin-top:5px}.month-grid button{aspect-ratio:1;color:#aaa;background:0 0;border:0;border-radius:6px;font-size:12px}.month-grid button.lesson-day{background:var(--orange-soft);color:var(--orange);font-weight:800}.month-grid button.selected{background:var(--orange);color:#fff}.lesson-calendar>p{color:var(--muted);align-items:center;gap:7px;margin:15px 0;font-size:10px;display:flex}.lesson-calendar>p span{background:var(--orange-soft);border:1px solid var(--orange);border-radius:2px;width:9px;height:9px}.previous-note{background:var(--blue-soft);border-left:3px solid var(--blue);color:var(--blue);gap:9px;padding:12px;display:flex}.previous-note>span{flex-direction:column;display:flex}.previous-note strong{font-size:11px}.previous-note small{color:var(--muted);margin-top:2px;font-size:9px}.attendance-start{background:var(--paper);text-align:center;flex-direction:column;align-items:center;min-height:100%;padding:48px 24px 30px;display:flex}.start-icon{background:var(--orange-soft);width:68px;height:68px;color:var(--orange);border-radius:50%;place-items:center;margin-bottom:22px;display:grid}.start-icon svg{width:30px;height:30px}.attendance-start h2{letter-spacing:0;max-width:280px;margin:9px 0 10px;font:700 30px/1.08 Georgia,serif}.attendance-start>p{max-width:310px;color:var(--muted);margin:0;font-size:13px;line-height:1.5}.attendance-start>button{background:var(--orange);color:#fff;border:0;border-radius:7px;justify-content:center;align-items:center;gap:7px;width:100%;height:50px;margin-top:24px;font-weight:800;display:flex}.start-note{text-align:left;background:var(--blue-soft);border-left:3px solid var(--blue);width:100%;color:var(--blue);align-items:flex-start;gap:10px;margin-top:28px;padding:14px;display:flex}.start-note>span{flex-direction:column;gap:3px;display:flex}.start-note strong{font-size:11px}.start-note small{color:var(--muted);font-size:9px;line-height:1.4}.lesson-stepper{border-left:1px solid var(--line);text-align:center;flex:0 0 190px;height:118px;padding:20px 10px 16px}.lesson-stepper>div{grid-template-columns:30px 1fr 30px;align-items:center;margin-top:6px;display:grid}.lesson-stepper button{color:var(--navy);background:0 0;border:0;padding:0}.lesson-stepper>div>button:first-child,.lesson-stepper>div>button:last-child{place-items:center;width:30px;height:42px;display:grid}.lesson-stepper .current-date{flex-direction:column;align-items:center;gap:5px;display:flex}.lesson-stepper .current-date strong{white-space:nowrap;font-size:14px}.lesson-stepper .current-date small{color:var(--muted);white-space:nowrap;align-items:center;gap:3px;font-size:9px;display:flex}.lesson-stepper svg{width:14px}.agenda-head{padding-bottom:17px}.dashboard-calendar{background:var(--paper);border-bottom:1px solid var(--line);padding:13px 17px 11px}.mini-weekdays,.mini-month{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.mini-weekdays span{text-align:center;text-transform:uppercase;color:var(--muted);font-size:8px;font-weight:800}.mini-month{margin-top:5px}.mini-month span{border-radius:5px;place-items:center;height:28px;font-size:10px;display:grid;position:relative}.mini-month span.has-lesson{background:var(--orange-soft);color:var(--orange);font-weight:800}.mini-month span.today{box-shadow:inset 0 0 0 1px var(--navy);color:var(--navy);background:#fff}.calendar-key{color:var(--muted);justify-content:flex-end;gap:13px;margin-top:9px;font-size:8px;display:flex}.calendar-key span{align-items:center;gap:4px;display:flex}.calendar-key i{border-radius:2px;width:7px;height:7px}.today-dot{border:1px solid var(--navy)}.lesson-dot{background:var(--orange-soft);border:1px solid var(--orange)}.upcoming-title{align-items:center}.upcoming-title>button{color:var(--orange);background:0 0;border:0;align-items:center;gap:3px;font-size:10px;font-weight:800;display:flex}.upcoming-list{background:var(--paper);border-block:1px solid var(--line)}.upcoming-list article{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:76px;padding:12px 16px;display:flex}.upcoming-list article>div{flex-direction:column;gap:2px;min-width:0;display:flex}.upcoming-list strong{font-size:12px}.upcoming-list small{color:var(--orange);font-size:9px;font-weight:700}.upcoming-list p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:9px;overflow:hidden}.school-moment{background:var(--navy);color:#fff;border-radius:7px;gap:11px;margin:14px 16px;padding:13px;display:flex}.school-moment>svg{color:#ff9a66}.school-moment>div{flex-direction:column;display:flex}.school-moment .eyebrow{color:#ff9a66}.school-moment strong{margin-top:3px;font-size:12px}.school-moment small{color:#dce1e8;margin-top:2px;font-size:9px}.month-switch{grid-template-columns:34px 1fr 34px;align-items:center;gap:5px;margin-top:4px;display:grid}.month-switch h2{text-align:center;margin:0;font-size:25px}.month-switch button{border:1px solid var(--line);width:34px;height:34px;color:var(--navy);background:#fff;border-radius:6px;place-items:center;display:grid}.month-switch button:disabled{opacity:.25}.mini-month span.has-event,.mini-month span.has-lesson.has-event{box-shadow:inset 0 -3px 0 var(--blue)}.calendar-key .event-dot{background:var(--blue);border:1px solid var(--blue)}.month-agenda{background:var(--paper);border-block:1px solid var(--line)}.month-agenda article{border-bottom:1px solid var(--line);align-items:center;gap:11px;min-height:58px;padding:10px 16px;display:flex}.month-agenda article>span{width:34px;height:34px;color:var(--navy);background:#f4f1ec;border-radius:6px;flex:0 0 34px;place-items:center;font-size:12px;font-weight:800;display:grid}.month-agenda article>span svg{width:15px}.month-agenda article>div{flex-direction:column;gap:2px;min-width:0;display:flex}.month-agenda strong{font-size:12px}.month-agenda small{color:var(--muted);font-size:9px;line-height:1.35}.month-agenda article.lesson>span{color:var(--orange);background:var(--orange-soft)}.month-agenda article.meeting>span{color:var(--blue);background:var(--blue-soft)}.month-agenda article.exam>span{color:var(--red);background:var(--red-soft)}.month-agenda article.break>span{color:#666;background:#efefed}.month-agenda article.event>span{color:var(--green);background:var(--green-soft)}.moon-note{color:var(--muted);margin:12px 16px;font-size:9px;line-height:1.4}.mini-month span{border-bottom:3px solid #0000;color:var(--navy)!important;box-shadow:none!important;background:0 0!important;border-radius:0!important}.mini-month span.has-lesson{border-bottom-color:#172235;font-weight:800}.mini-month span.event-event{border-bottom-color:#17b879}.mini-month span.event-meeting{border-bottom-color:#1a9bb7}.mini-month span.event-exam{border-bottom-color:#2869d8}.mini-month span.event-break{border-bottom-color:#d73083}.mini-month span.today{outline:1px solid var(--navy);outline-offset:-2px}.calendar-key{flex-wrap:wrap;justify-content:flex-start;gap:8px}.calendar-key i{border:0!important}.calendar-key .lesson-dot{background:#172235}.calendar-key .event-green{background:#17b879}.calendar-key .event-cyan{background:#1a9bb7}.calendar-key .event-blue{background:#2869d8}.calendar-key .event-pink{background:#d73083}.month-agenda:empty{display:none}.account-loading{padding:100px 24px}.account-login{height:100%;padding:90px 24px 80px}.account-login form{padding-bottom:60px}.account-login img{object-fit:contain;width:110px;height:50px}.account-login h1{margin:24px 0 12px;font:28px Georgia,serif}.account-login p{color:var(--muted);font-size:14px}.account-field{color:var(--navy);flex-direction:column;gap:7px;margin:16px 0;font-size:13px;display:flex}.account-field input,.account-field select{border:1px solid var(--line);width:100%;min-height:46px;color:var(--navy);background:#fff;border-radius:6px;padding:10px 12px;font-size:16px}.account-primary{background:var(--orange);color:#fff;border:0;border-radius:6px;width:100%;margin:10px 0 20px;padding:14px 16px;font-weight:700}.account-error{background:var(--red-soft);padding:12px;font-size:13px;color:var(--red)!important}.account-app .app-header{gap:10px}.account-heading{flex-direction:column;flex:1;min-width:0;display:flex}.account-heading strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.account-heading small{color:var(--muted);font-size:10px}.account-app .app-header button{width:32px;height:36px;color:var(--navy);background:0 0;border:0}.account-section{border-bottom:1px solid var(--line);padding:18px 16px}.account-section h2{overflow-wrap:anywhere;margin:0 0 14px;font:24px Georgia,serif}.account-section p{color:var(--muted);font-size:13px;line-height:1.5}.account-row{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--navy);background:0 0;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;display:flex}.account-row>span{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.account-row strong{overflow-wrap:anywhere;font-size:13px}.account-row small{color:var(--muted);font-size:11px;line-height:1.4}.account-row>svg{flex-shrink:0}.account-date{grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin:14px 0;display:grid}.account-date>button{border:1px solid var(--line);height:44px;color:var(--navy);background:#fff;border-radius:6px}.account-date strong{text-align:center}.account-app button:disabled{opacity:.4;cursor:default}.account-app .status-options{margin-left:0}.account-app .status-options button{height:52px;font-size:10px}.account-app .bottom-nav{height:52px;padding:5px}.account-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.account-grid small{text-align:center;padding:4px;font-size:10px}.account-grid button{height:38px;color:var(--navy);background:0 0;border:0;border-bottom:3px solid #0000;font-size:12px}.account-grid button.lesson{border-bottom-color:#172235}.account-grid button.event-event{border-bottom-color:#17b879}.account-grid button.event-meeting{border-bottom-color:#1a9bb7}.account-grid button.event-exam{border-bottom-color:#2869d8}.account-grid button.event-break{border-bottom-color:#d73083}.account-grid button.today{outline:1px solid var(--navy);outline-offset:-2px}.account-grid button.selected{background:var(--orange-soft)}.account-details{padding-bottom:30px}.account-details p{border-bottom:1px solid var(--line);padding:10px 0;font-size:14px;line-height:1.5}.admin-tabs{grid-template-columns:1fr 1fr;gap:6px;display:grid}.admin-tabs button{border:1px solid var(--line);min-height:40px;color:var(--navy);background:#fff;border-radius:5px;font-size:12px}.admin-tabs .active{background:var(--orange-soft);color:var(--orange);border-color:var(--orange)}.text-action{color:var(--orange);background:0 0;border:0;align-items:center;gap:5px;margin-bottom:12px;display:flex}.account-note{font-size:11px!important}.account-login form{padding:80px 24px 60px}.account-loading{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.account-loading img{object-fit:contain;width:224px;height:auto}.account-loading.has-error{text-align:center;flex-direction:column;gap:16px}.account-loading.has-error p{color:var(--red);margin:0;font-size:14px}.account-loading.has-error button{background:var(--orange);color:#fff;border:0;border-radius:6px;min-height:44px;padding:0 18px;font-weight:700}.account-app{--muted:#5d6465;--line:#dfe3e2;--cream:#f8faf9;--paper:#fff;font-size:16px;line-height:1.45}.account-app .account-section p,.account-app .account-field{font-size:14px}.account-app .account-row strong{line-height:1.4;font-size:16px!important}.account-app .account-row small{line-height:1.5;font-size:13px!important}.account-app .account-row{padding:16px 2px}.account-app .account-row:focus-visible,.account-app button:focus-visible{outline-offset:-2px;outline:2px solid #1768ae}.account-app .app-header button{min-width:44px;min-height:44px}.account-app .account-heading small{font-size:12px}.account-app .bottom-nav{gap:2px;height:60px}.account-app .bottom-nav button{justify-content:center;min-height:48px;font-size:11px}.account-app .bottom-nav .active{background:#fff0e7;border-radius:6px}.account-app .app-screen{bottom:80px!important}.account-app .student-identity strong{white-space:normal;overflow-wrap:anywhere;font-size:16px}.account-app .student-identity>span:last-child{min-width:0}.account-app .attendance-row{border-bottom:1px solid #dfe3e2;padding:16px}.account-app .status-options{border:0;border-radius:0;gap:4px;overflow:visible}.account-app .status-options button{border-radius:6px;line-height:1.25;border:1px solid #cdd4d1!important;height:60px!important;font-size:11px!important}.account-app .status-options button.selected{font-weight:800;border-width:2px!important}.account-app .status-options svg{width:21px;height:21px}.account-app .account-date{grid-template-columns:46px minmax(0,1fr) 46px}.account-app .account-date>button{min-height:46px;font-size:14px}.account-app .account-grid button{height:44px;font-size:14px}.account-app .account-grid small,.account-app .classic-counts small{font-size:12px}.account-app .admin-workflows button{min-height:48px;font-size:13px}.account-app .admin-summary small{font-size:12px}.account-app .report-list strong{font-size:14px;line-height:1.4}.account-app .report-list small,.account-app .legend{font-size:12px;line-height:1.5}.account-app .report-columns{z-index:3;background:#f0f4f2;font-size:12px;position:sticky;top:0}.account-app .report-list>div{padding-block:13px;font-size:14px}.account-app .text-action{min-height:44px;font-size:14px}.account-app .sync-panel{flex-wrap:wrap}.account-app .sync-panel button{min-height:44px}.account-error{justify-content:space-between;align-items:center;gap:10px;display:flex}.account-error button{color:inherit;background:0 0;border:0;flex:none;min-width:44px;min-height:44px}.save-feedback{z-index:10;color:#176547;background:#e5f5ec;border-bottom:1px solid #a6cfb6;align-items:center;gap:9px;margin:0;padding:12px 16px;font-size:14px;display:flex;position:sticky;top:0}.teacher-login-card{border:1px solid var(--line);background:#fff;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px;padding:13px 14px;display:flex}.teacher-login-card>span{flex-direction:column;gap:4px;min-width:0;display:flex}.teacher-login-card strong{font-size:13px}.teacher-login-card small{color:var(--muted);font-size:11px}.teacher-login-card button{border:1px solid var(--orange);min-height:36px;color:var(--orange);background:#fff;border-radius:5px;flex:none;padding:0 12px;font-weight:700}.fixed-teacher{border-left:3px solid var(--orange);background:var(--orange-soft);flex-direction:column;gap:4px;margin:16px 0;padding:12px 14px;display:flex}.fixed-teacher span{color:var(--muted);text-transform:uppercase;font-size:10px}.fixed-teacher strong{color:var(--navy);font-size:15px}.student-attendance-calendar{padding:4px 2px 32px}.attendance-calendar-legend{z-index:2;background:#fff;grid-template-columns:1fr 1fr;gap:7px;padding:10px 0 14px;display:grid;position:sticky;top:0}.attendance-calendar-legend span{align-items:center;gap:7px;min-height:30px;font-size:10px;font-weight:700;display:flex}.attendance-calendar-legend svg{width:16px;height:16px}.attendance-calendar-legend .present{color:#21845f}.attendance-calendar-legend .late{color:#a56d0e}.attendance-calendar-legend .excused{color:#287da4}.attendance-calendar-legend .unexcused{color:#b43b3f}.attendance-calendar-legend .unrecorded i{background:#aaa9a3;border-radius:50%;width:11px;height:11px}.student-calendar-month{border-top:1px solid var(--line);padding:12px 0 18px}.student-calendar-month h3{margin:0 0 10px;font:700 17px Georgia,serif}.student-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.student-calendar-grid>small{text-align:center;color:var(--muted);text-transform:uppercase;font-size:9px}.student-calendar-grid>div{aspect-ratio:1;color:#aaa9a3;border:1px solid #0000;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;display:flex}.student-calendar-grid b{font-size:10px}.student-calendar-grid svg{width:15px;height:15px}.student-calendar-grid .lesson-day{color:var(--navy);background:#faf9f6;border-color:#dedbd4}.student-calendar-grid .lesson-day>i{background:#aaa9a3;border-radius:50%;width:6px;height:6px}.student-calendar-grid .present{color:#21845f;background:#e9f7f1;border-color:#8fceb6}.student-calendar-grid .late{color:#a56d0e;background:#fff6df;border-color:#e0bd72}.student-calendar-grid .excused{color:#287da4;background:#ebf7fc;border-color:#8fc6df}.student-calendar-grid .unexcused{color:#b43b3f;background:#fff0f0;border-color:#e1a0a2}.student-calendar-grid>button{aspect-ratio:1;min-width:0;font:inherit;cursor:pointer;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:flex}.student-calendar-grid>button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}.attendance-row.focused-student{background:var(--orange-soft);box-shadow:inset 3px 0 var(--orange);scroll-margin-block:110px}.attendance-row.focused-student .student-identity strong{color:var(--orange)}.student-calendar-return{z-index:6;text-align:left;border-bottom:1px solid var(--line);background:#fffffffa;align-items:center;width:100%;max-width:none;min-height:48px;margin:0;padding:10px 16px;line-height:1.35;position:sticky;top:0;box-shadow:0 4px 10px #1722350d}.student-calendar-return svg{flex:none}.teacher-class-row.replacement-class{border:1px solid #e5b66d;border-left:4px solid var(--orange);background:#fff8ed;border-radius:6px;margin:7px 0;padding:12px}.teacher-class-row .replacement-label{background:var(--orange);color:#fff;text-transform:uppercase;border-radius:4px;width:max-content;margin-top:3px;padding:4px 7px;font-size:9px;font-weight:800}.weekly-lesson.replacement-lesson{border:1px solid #e5b66d;border-left:4px solid var(--orange);background:#fff8ed;border-radius:6px;margin:7px 0;padding:12px}.weekly-lesson.replacement-lesson strong{color:#c94d0b}.weekly-lesson.replacement-lesson svg{color:var(--orange)}.school-admin{padding-top:14px}.school-admin-head{margin-bottom:14px}.school-admin-head h2{margin:4px 0 6px}.school-admin-head p{margin:0}.admin-summary{border:1px solid var(--line);background:#fff;border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.admin-summary span{text-align:center;border-right:1px solid var(--line);min-width:0;padding:12px 5px}.admin-summary span:last-child{border:0}.admin-summary strong{color:var(--navy);font:700 22px Georgia,serif;display:block}.admin-summary small{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:9px;display:block}.admin-workflows{z-index:5;border-block:1px solid var(--line);background:#fffffffa;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:16px -16px;padding:9px 16px;display:grid;position:sticky;top:0}.admin-workflows button{min-height:42px;color:var(--muted);background:#f3f1ec;border:0;border-radius:5px;padding:5px;font-size:10px;font-weight:700;line-height:1.2}.admin-workflows button.active{background:var(--orange);color:#fff}.admin-panel-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-panel-heading h3{margin-bottom:4px}.admin-panel-heading p{margin:0}.admin-panel-heading button{border:1px solid var(--orange);min-height:38px;color:var(--orange);background:#fff;border-radius:5px;flex:none;padding:0 11px;font-weight:700}.admin-success{background:#e9f7f1;border-left:3px solid #21845f;padding:10px 12px;color:#176547!important}.date-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.replacement-admin-row>button{color:#c94d0b;background:#fff;border:1px solid #c94d0b;border-radius:5px;min-height:34px;padding:0 9px;font-weight:700}.school-admin>.sync-panel{margin-top:26px}.password-requirement{color:#8f5b0b;background:#fff8e6;border:1px solid #e2c26f;border-left:4px solid #bc7911;border-radius:5px;align-items:center;gap:10px;margin:-6px 0 14px;padding:11px 12px;display:flex}.password-requirement.invalid{color:#a42f34;background:#fff0f0;border-color:#df9497 #df9497 #df9497 #b43b3f}.password-requirement.valid{color:#176547;background:#e9f7f1;border-color:#8fceb6 #8fceb6 #8fceb6 #21845f}.password-requirement svg{flex:none;width:21px;height:21px}.password-requirement span{flex-direction:column;gap:3px;display:flex}.password-requirement strong{font-size:12px}.password-requirement small{color:inherit;font-size:10px}.school-admin .admin-panel-heading>button{display:none}.account-secondary{border:1px solid var(--orange);width:100%;min-height:44px;color:var(--orange);background:#fff;border-radius:6px;margin:12px 0 20px;padding:10px 14px;font-weight:700}.transfer-button{margin-top:16px}.transfer-class-list{border:1px solid var(--line);border-radius:6px;flex-direction:column;margin:10px 0 18px;display:flex;overflow:hidden}.transfer-class-list>span{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:11px 12px;font-size:13px;font-weight:700;display:flex}.transfer-class-list>span:last-child{border:0}.transfer-class-list small{color:var(--muted);font-weight:400}.transfer-warning{background:#fff8e6;border-left:3px solid #bc7911;padding:11px 12px;color:#80520d!important}.lesson-group{margin-top:24px}.lesson-group h3{border-bottom:2px solid var(--orange);justify-content:space-between;align-items:center;padding-bottom:10px;font-size:17px;display:flex}.lesson-group h3 small{color:var(--muted);font-size:12px;font-weight:400}.class-report{border-bottom:1px solid var(--line);padding:16px 0}.class-report summary{cursor:pointer;min-height:48px}.class-report summary span{vertical-align:top;flex-direction:column;gap:6px;max-width:90%;display:inline-flex}.class-report summary small{color:var(--muted);font-size:12px}.class-report[open] summary{border-bottom:2px solid var(--orange);padding-bottom:14px}.account-row .report-rate{text-align:right;flex:0 0 70px}.report-rate b{font-size:20px}.account-app .teacher-tabs,.account-app .class-tabs{flex-wrap:wrap;display:flex;overflow:visible}.account-app .teacher-tabs button,.account-app .class-tabs button{white-space:normal;min-height:44px}.account-app .class-tabs button{flex:140px}.account-app .report-head{flex-wrap:wrap;gap:12px}.account-app .report-head select{border:1px solid var(--line);background:#fff;border-radius:5px;padding:10px}.account-app .report-list strong{white-space:normal;overflow-wrap:anywhere}.account-app .report-list>div{min-height:64px}.classic-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:16px;display:grid}.classic-counts div{text-align:center;background:#fff;border-bottom:3px solid #259873;flex-direction:column;gap:5px;padding:12px 2px;display:flex}.classic-counts .late{border-color:#dd981f}.classic-counts .excused{border-color:#429bc3}.classic-counts .unexcused{border-color:#d85757}.classic-counts strong{font-size:22px}.classic-counts small{font-size:10px}.account-app .student-identity{align-items:center;gap:10px;display:flex}.account-app .student-identity>span:last-child{flex-direction:column;gap:4px;display:flex}.account-app .student-identity small{color:var(--muted);font-size:11px}.account-app .account-section h2{font-size:25px}.account-app .account-row{min-height:66px}.account-app .account-row strong{font-size:14px}.account-app .account-row small{font-size:12px}.notice-group{border-top:3px solid #c58a17;margin-top:28px;padding-top:12px}.notice-group.unexcused{border-color:#c44141}.notice-group h3{align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.notice-group h3 svg{flex-shrink:0;width:20px;height:20px}.notice-group.late h3,.notice-group.late .account-row>b{color:#94610a}.notice-group.unexcused h3,.notice-group.unexcused .account-row>b{color:#b22f35}.notice-group .account-row>b{white-space:nowrap;font-size:13px}.notice-tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:16px 0;display:grid}.notice-tabs button{min-height:52px;color:var(--muted);white-space:normal;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 4px;font-size:11px;font-weight:600}.notice-tabs button.active{color:var(--orange);border-bottom-color:var(--orange);background:var(--orange-soft)}.notice-tabs button:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}.alerts-explanation{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.45}.notice-group.blacklist{border-color:#161a1d}.notice-group.blacklist h3{color:#161a1d}.blacklist-row{background:#fff;border:1px solid #c8c8c8;border-left:5px solid #161a1d;border-radius:7px;margin:12px 0;overflow:hidden}.blacklist-detail{width:100%;min-height:72px;color:var(--navy);text-align:left;background:#fff;border:0;align-items:center;gap:8px;padding:12px;display:flex}.blacklist-detail>span{flex-direction:column;flex:1;gap:4px;display:flex}.blacklist-detail strong{font-size:14px}.blacklist-detail small{color:var(--muted);font-size:10px}.blacklist-row>div{background:#f3f3f3;border-top:1px solid #ddd;flex-wrap:wrap;gap:8px;padding:10px 12px;display:flex}.blacklist-row a{color:#fff;background:#161a1d;border-radius:5px;padding:8px 10px;font-size:11px;font-weight:800;text-decoration:none}.blacklist-row>div>span{color:var(--red);font-size:11px;font-weight:700}.student-data{border-bottom:1px solid var(--line);grid-template-columns:90px minmax(0,1fr);gap:14px 12px;padding:16px 0;font-size:13px;display:grid}.student-data dt{color:var(--muted)}.student-data dd{overflow-wrap:anywhere;margin:0}.teacher-management>h2{overflow-wrap:anywhere}.sync-panel{border:1px solid var(--line);border-left:4px solid var(--orange);background:#fff;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:14px;display:flex}.sync-panel>div{flex-direction:column;gap:5px;min-width:0;display:flex}.sync-panel small{color:var(--muted);font-size:12px;line-height:1.4}.sync-panel button{border:1px solid var(--orange);background:var(--orange);color:#fff;border-radius:5px;flex:none;min-height:40px;padding:0 12px;font-weight:700}.sync-panel button:disabled{background:var(--line);border-color:var(--line);color:var(--muted)}.attendance-class-group{border-bottom:1px solid var(--line)}.class-group-toggle{width:100%;min-height:82px;color:var(--navy);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 4px;display:flex}.class-group-toggle>span{flex-direction:column;gap:5px;min-width:0;display:flex}.class-group-toggle strong{font-size:17px}.class-group-toggle small{color:var(--muted);font-size:13px}.class-group-toggle>svg{flex:none;width:20px;height:20px;transition:transform .15s}.class-group-toggle[aria-expanded=true]>svg{transform:rotate(90deg)}.class-group-toggle[aria-expanded=true]{color:var(--orange)}.class-group-content{border-left:3px solid var(--orange);margin-bottom:16px;padding:0 0 8px 14px}.class-group-content .account-row:last-child{border-bottom:0}.class-owner{border:0;border-block:1px solid var(--line);min-width:0;margin:20px 0;padding:0}.class-owner legend{padding:0 8px 0 0;font-size:16px;font-weight:700}.school-admin .admin-workflows button{background:#edf1ef;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:64px;display:flex}.school-admin .admin-workflows button.active{background:var(--orange);color:#fff}.school-admin .admin-workflows small{font-size:12px;font-weight:400}.search-clear-field>span{display:block;position:relative}.search-clear-field input{padding-right:46px}.search-clear-field>span>button{width:38px;height:38px;color:var(--muted);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:4px;right:4px}.search-clear-field>span>button svg{width:19px;height:19px}.replacement-access-note{border-left:3px solid var(--orange);background:var(--orange-soft);margin:10px 0;padding:10px 12px;font-weight:700;color:#9b3d0e!important}.hours-page{padding-bottom:28px}.hours-title{background:var(--paper);border-bottom:1px solid var(--line);padding:24px 18px 20px}.hours-title h2{margin:5px 0 6px;font:700 28px Georgia,serif}.hours-title p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.hours-month{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;font-size:12px;font-weight:700;display:flex}.hours-month input{border:1px solid var(--line);min-height:40px;color:var(--navy);background:#fff;border-radius:6px;padding:6px 10px}.hours-entry{border:1px solid var(--line);border-top:4px solid var(--orange);background:#fff;border-radius:7px;margin:18px;padding:18px}.hours-entry>div{border-bottom:1px solid var(--line);flex-direction:column;gap:5px;padding-bottom:16px;display:flex}.hours-entry>div small,.hours-entry>div span{color:var(--muted);font-size:11px}.hours-entry>div strong{font:700 24px Georgia,serif}.hours-entry>label{flex-direction:column;gap:8px;margin:18px 0 10px;font-size:12px;font-weight:700;display:flex}.hours-entry>label>span{border:1px solid var(--line);border-radius:6px;align-items:center;display:flex;overflow:hidden}.hours-entry input{width:100%;height:52px;color:var(--navy);border:0;padding:0 14px;font-size:22px;font-weight:700}.hours-entry label b{color:var(--muted);padding:0 14px}.hours-note{color:var(--muted);align-items:flex-start;gap:9px;margin:0 18px;font-size:11px;line-height:1.45;display:flex}.hours-note svg{color:var(--green);flex:none;width:18px;height:18px}.hours-metrics{grid-template-columns:repeat(3,1fr);gap:8px;padding:16px;display:grid}.hours-metrics article{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:0;padding:13px 10px}.hours-metrics small,.hours-metrics span{color:var(--muted);font-size:9px;display:block}.hours-metrics strong{margin:7px 0 4px;font:700 21px Georgia,serif;display:block}.hours-progress{padding:0 16px 16px}.hours-progress>span{background:#e8e4dc;border-radius:4px;height:8px;display:block;overflow:hidden}.hours-progress b{background:var(--green);height:100%;display:block}.hours-progress small{color:var(--muted);margin-top:7px;font-size:10px;display:block}.hours-roster{border-block:1px solid var(--line);background:#fff}.hours-roster-head,.hours-roster article{grid-template-columns:38px minmax(0,1fr) 62px 76px;align-items:center;gap:8px;padding:10px 16px;display:grid}.hours-roster-head{color:var(--muted);text-transform:uppercase;grid-template-columns:minmax(0,1fr) 62px 76px;font-size:9px}.hours-roster article{border-top:1px solid var(--line);min-height:64px}.hours-roster article>span:nth-child(2){flex-direction:column;gap:3px;min-width:0;display:flex}.hours-roster article strong{font-size:13px}.hours-roster article small{color:var(--muted);font-size:10px}.hours-roster article>b{text-align:right;font-size:13px}.hours-roster em{text-align:center;border-radius:4px;padding:5px 6px;font-size:9px;font-style:normal;font-weight:700}.hours-roster .submitted{background:var(--green-soft);color:var(--green)}.hours-roster .missing{background:var(--amber-soft);color:var(--amber)}@media (width>=900px){.hours-title,.hours-month{border:1px solid var(--line)}.hours-metrics{padding-inline:0}.hours-metrics article{padding:18px}.hours-metrics strong{font-size:28px}.hours-roster{border:1px solid var(--line);border-radius:7px;overflow:hidden}.hours-entry{max-width:620px;margin:24px auto}.hours-note{max-width:620px;margin-inline:auto}}.app-surface .app-header{height:calc(68px + env(safe-area-inset-top,0px));padding:calc(12px + env(safe-area-inset-top,0px)) 18px 12px}.app-surface .app-screen{inset:calc(68px + env(safe-area-inset-top,0px)) 0 calc(68px + env(safe-area-inset-bottom,0px))!important}.app-surface .bottom-nav{height:calc(68px + env(safe-area-inset-bottom,0px));padding:6px 7px calc(6px + env(safe-area-inset-bottom,0px))}@media (width>=900px){.app-surface{--desktop-sidebar:224px}.app-surface .prototype-shell{background:#f7f6f2}.app-surface .app-header{inset:0 0 auto var(--desktop-sidebar);background:#fffefafa;height:82px;padding:0 32px}.app-surface .brand-logo{width:76px;height:42px}.app-surface .account-heading strong{font-size:16px}.app-surface .app-screen{inset:82px 0 0 var(--desktop-sidebar)!important}.app-surface .screen-content{width:min(1180px,100%);margin:0 auto;padding:24px 28px 48px}.app-surface .bottom-nav{width:var(--desktop-sidebar);border-top:0;border-right:1px solid var(--line);background:#fffefa;flex-direction:column;gap:4px;height:100%;padding:92px 12px 24px;display:flex;inset:0 auto 0 0}.app-surface .bottom-nav:before{content:"Cemi Aanwezigheid";color:var(--navy);font:700 18px Roboto,Arial,sans-serif;position:absolute;top:27px;left:22px}.app-surface .bottom-nav button{text-align:left;border-radius:6px;flex-direction:row;flex:0 0 48px;justify-content:flex-start;gap:12px;width:100%;padding:0 14px;font-size:13px}.app-surface .bottom-nav button:hover{background:#f7f4ef}.app-surface .bottom-nav .active{background:var(--orange-soft)}.app-surface .bottom-nav svg{width:21px;height:21px}.app-surface .bottom-nav span{overflow:visible}.app-surface .attendance-row{grid-template-columns:minmax(240px,1fr) minmax(440px,1.35fr);align-items:center;gap:24px;padding:12px 18px;display:grid}.app-surface .attendance-row .student-identity{margin:0}.app-surface .attendance-row .status-options{margin-left:0}.app-surface .account-login{place-items:center;padding:32px;display:grid;inset:0!important}.app-surface .account-login .mobile-scroll-content{place-items:center;min-height:100%}.app-surface .account-login form{border:1px solid var(--line);background:var(--paper);width:440px;max-width:100%;padding:36px;box-shadow:0 14px 40px #12233d14}}.director-menu-trigger{flex:0 0 44px;place-items:center;display:grid!important}.director-menu-trigger svg{width:24px;height:24px}.director-menu-backdrop{z-index:40;opacity:0;pointer-events:none;background:#0f1c3057;border:0;transition:opacity .18s;position:fixed;inset:0}.director-menu-backdrop.open{opacity:1;pointer-events:auto}.director-menu{z-index:41;width:min(330px,86vw);padding:calc(18px + env(safe-area-inset-top,0px)) 14px calc(18px + env(safe-area-inset-bottom,0px));background:#fffefa;flex-direction:column;transition:transform .2s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:12px 0 32px #141f302e}.director-menu.open{transform:translate(0)}.director-menu>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:0 4px 18px;display:flex}.director-menu>header>div{flex-direction:column;gap:4px;display:flex}.director-menu>header strong{font:700 20px Roboto,Arial,sans-serif}.director-menu>header small{color:var(--muted)}.director-menu>header button{width:44px;height:44px;color:var(--navy);background:0 0;border:0;place-items:center;display:grid}.director-menu nav{flex-direction:column;gap:5px;padding:16px 0;display:flex}.director-menu nav button,.director-menu-logout{width:100%;min-height:50px;color:var(--navy);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:13px;padding:0 14px;font-weight:700;display:flex}.director-menu nav button.active{background:var(--orange-soft);color:var(--orange)}.director-menu nav svg,.director-menu-logout svg{flex:none;width:21px;height:21px}.director-menu-logout{border-top:1px solid var(--line);color:var(--red);border-radius:0;margin-top:auto}.app-surface .director-mode .app-screen{bottom:0!important}.director-mode .screen-content{padding-bottom:0}.director-mode .director-desktop-nav{display:none}.director-mode .hours-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.hours-metrics .pay-total{border-top:3px solid var(--green);grid-column:1/-1}.hours-metrics .pay-total strong{color:var(--green);white-space:nowrap;font-size:clamp(20px,7vw,28px)}.teacher-hours-pay{text-align:right;flex-direction:column;align-items:flex-end;gap:3px;display:flex}.teacher-hours-pay b{font-size:13px}.teacher-hours-pay small{white-space:nowrap;font-weight:800;color:var(--green)!important;font-size:10px!important}.hours-roster-head>span:nth-child(2){text-align:right}@media (width>=900px){.director-mode .director-menu-trigger{display:none!important}.director-mode .director-desktop-nav{display:flex}.app-surface .director-mode .app-screen{bottom:0!important}.director-menu{width:340px}.director-mode .screen-content{padding-bottom:0}.director-mode .hours-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.director-mode .hours-metrics .pay-total{grid-column:auto}}.teacher-create{display:none!important}.calendar-overview-row{padding-left:24px;position:relative}.calendar-overview-row:before{background:var(--green);content:"";border-radius:2px;width:4px;position:absolute;top:12px;bottom:12px;left:4px}.calendar-overview-row.event-meeting:before{background:#1a9bb7}.calendar-overview-row.event-exam:before{background:#2869d8}.calendar-overview-row.event-break:before{background:#d73083}.calendar-overview-row small{color:var(--muted);align-items:baseline;gap:4px;display:flex!important}.calendar-overview-row small b{color:inherit;font-size:inherit}.calendar-overview-row.event-event small{color:#16865e}.calendar-overview-row.event-meeting small{color:#167f96}.calendar-overview-row.event-exam small{color:#245bb4}.calendar-overview-row.event-break small{color:#b3236c}.hours-withdraw{width:100%;min-height:42px;color:var(--red);background:0 0;border:0;margin-top:8px;font-weight:700}.hours-roster-head{grid-template-columns:minmax(0,1fr) 62px 76px 40px}.hours-roster article{grid-template-columns:38px minmax(0,1fr) 62px 76px 40px}.teacher-whatsapp{color:#fff;background:#168447;border:0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex;box-shadow:0 2px 7px #16844733}.teacher-whatsapp svg{width:18px;height:18px}.teacher-whatsapp span{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.teacher-whatsapp:hover{background:#116d3a}.teacher-whatsapp:focus-visible{outline-offset:2px;outline:3px solid #16844747}.teacher-whatsapp:disabled{color:#fff;box-shadow:none;cursor:not-allowed;background:#c8ceca}@media (width>=900px){.hours-roster-head{grid-template-columns:minmax(0,1fr) 90px 90px 116px}.hours-roster article{grid-template-columns:42px minmax(0,1fr) 90px 90px 116px}.teacher-whatsapp{border-radius:6px;gap:7px;width:auto;height:38px;padding:0 13px;font-weight:800}.teacher-whatsapp span{clip:auto;white-space:normal;width:auto;height:auto;margin:0;position:static;overflow:visible}}.director-class-nav{grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:8px;margin:8px 0 4px;display:grid}.director-class-nav h2{text-align:center;overflow-wrap:anywhere;min-width:0;margin:0}.director-class-nav button{border:1px solid var(--line);width:40px;height:40px;color:var(--navy);background:#fff;border-radius:6px;place-items:center;padding:0;display:grid}.director-class-nav button svg{width:20px;height:20px}.director-class-nav button:disabled{opacity:.3}.director-class-nav button:not(:disabled):active{background:var(--orange-soft);color:var(--orange)}.account-app .screen-content,.account-app .mobile-scroll-content{align-content:start;min-height:0}.account-app .screen-content{padding-bottom:12px}.account-app .calendar-overview-row{padding-left:36px!important}.account-app .calendar-overview-row:before{left:10px}@media (width<=899px){.account-app:not(.director-mode) .bottom-nav button{font-size:9px}.account-app:not(.director-mode) .bottom-nav span{white-space:nowrap;letter-spacing:0;max-width:none;overflow:visible}}@media (width>=900px){.app-surface .brand-logo{display:none}.app-surface .bottom-nav{background:#fffefa;border-right:1px solid #e9e5dc;padding:100px 12px 18px}.app-surface .bottom-nav:before{content:"";background:url(/cemi-logo.png) 0/contain no-repeat;width:108px;height:48px;position:absolute;top:24px;left:22px}.app-surface .bottom-nav button{color:#62645e;flex-basis:44px;gap:12px;padding:0 12px;font-size:14px;font-weight:500}.app-surface .bottom-nav .active{color:var(--orange);box-shadow:inset 3px 0 var(--orange);background:#fff1e7}.app-surface .sheet-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#12213a47;position:fixed;left:224px}.app-surface .bottom-sheet{border:1px solid var(--line);touch-action:auto;background:#fff;border-radius:8px;width:min(580px,100vw - 288px);height:calc(100dvh - 138px);min-height:0;position:fixed;top:106px;left:auto;right:32px;overflow:hidden;box-shadow:0 22px 64px #12213a38;max-height:calc(100dvh - 138px)!important;bottom:auto!important}.app-surface .bottom-sheet.sheet-compact{width:min(520px,100vw - 288px);height:auto;min-height:180px;top:auto;max-height:min(70dvh,640px)!important;bottom:32px!important}.app-surface .bottom-sheet.sheet-calendar{width:min(1060px,100vw - 288px)}.app-surface .sheet-handle-zone{display:none}.app-surface .sheet-header{border-bottom:1px solid var(--line);min-height:82px;padding:24px 28px 18px}.app-surface .sheet-title{color:var(--navy);font:700 25px Georgia,serif}.app-surface .sheet-description{margin-top:5px;font-size:13px}.app-surface .sheet-content{overscroll-behavior:contain;padding:0 28px 28px}.app-surface .account-details{padding:8px 0}.app-surface .account-details p{margin:0;padding:16px 0;font-size:15px}.app-surface .student-attendance-calendar{padding:0 0 8px}.app-surface .attendance-calendar-legend{border-bottom:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:16px 0}.app-surface .attendance-calendar-legend span{background:#f8f7f3;border-radius:5px;justify-content:center;min-height:36px;padding:0 8px;font-size:11px}.app-surface .student-calendar-months{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;padding-top:16px;display:grid}.app-surface .student-calendar-month{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:0;padding:12px}.app-surface .student-calendar-month h3{font-size:15px}.app-surface .student-calendar-grid{gap:3px}.app-surface .student-calendar-grid>div,.app-surface .student-calendar-grid>button{aspect-ratio:auto;min-height:26px}.app-surface .student-calendar-grid b{font-size:10px}.app-surface .student-calendar-grid svg{width:13px;height:13px}}@media (width>=1240px){.app-surface .student-calendar-months{grid-template-columns:repeat(4,minmax(0,1fr))}}:root{color:#151515;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}.mobile-carousel{overscroll-behavior:contain;scrollbar-width:none;-webkit-user-select:none;user-select:none;width:100%;min-width:0;max-width:100%;display:block;position:relative;overflow:auto}.mobile-carousel::-webkit-scrollbar{display:none}.mobile-carousel{touch-action:pan-y;overflow:auto hidden}.mobile-carousel[data-dragging=true]{cursor:none}.mobile-carousel-content{width:max-content;min-width:100%;transform:translateX(var(--mobile-carousel-overdrag));will-change:transform;display:flex}.mobile-carousel-scrollbar{z-index:4;opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;inset:0}.mobile-carousel-scrollbar[data-visible=true]{opacity:1}.mobile-carousel-scrollbar-thumb{background:#00000059;border-radius:999px;height:3px;position:absolute;bottom:4px;right:4px}body{min-width:320px;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}.phone-stage{place-items:center;width:100%;height:100%;padding:24px;display:grid;position:relative}.device-menu-bar{z-index:100;border-radius:12px;padding:3px;position:absolute;top:18px;right:18px}.device-picker-trigger{color:#151515;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;height:34px;padding:0 10px 0 12px;font:600 14px/1 ui-sans-serif,system-ui,sans-serif;display:flex}.device-picker-trigger:hover,.device-picker-trigger[data-state=open]{background:#0000000e}.device-picker-trigger:focus-visible{outline-offset:2px;outline:2px solid #000000b8}.device-picker-menu{z-index:200;min-width:168px;transform-origin:var(--radix-dropdown-menu-content-transform-origin);background:#fffffffa;border-radius:12px;padding:3px;animation:.12s ease-out device-menu-in;box-shadow:0 0 1px #0000000f,0 0 0 1px #00000014,0 4px 4px #0000000d}.device-picker-item{color:#181818;-webkit-user-select:none;user-select:none;border-radius:8px;outline:none;justify-content:space-between;align-items:center;height:34px;padding:0 9px 0 10px;font:500 14px/1 ui-sans-serif,system-ui,sans-serif;display:flex}.device-picker-item[data-highlighted]{background:#f0f0f0}.device-picker-item[data-state=checked]{font-weight:600}.device-picker-check{color:#181818;place-items:center;display:grid}@keyframes device-menu-in{0%{opacity:0;transform:scale(.98)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.phone-scale-box{position:relative}.phone-device{transform-origin:0 0;-webkit-user-select:none;user-select:none;position:absolute;top:0;left:0}.phone-bezel{object-fit:contain;z-index:2;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.device-screen{cursor:none;z-index:1;-webkit-user-select:none;user-select:none;background:#fff;border-radius:42px;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.device-camera{z-index:75;pointer-events:none;background:#050505;border-radius:50%;display:block;position:absolute;box-shadow:inset 0 0 0 1px #ffffff14}.device-screen,.device-screen *{cursor:none!important}.device-screen img,.keyboard-asset{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.device-screen input,.device-screen textarea,.device-screen select,.device-screen option,.device-screen [contenteditable=true]{-webkit-user-select:auto;user-select:auto}.device-screen:active,.device-screen:active *,.device-screen input,.device-screen textarea,.device-screen button,.device-screen a,.device-screen [role=button]{cursor:none!important}.device-screen[data-cursor-debug=true],.device-screen[data-cursor-debug=true] *{cursor:default!important}.device-screen :focus,.device-screen :focus-visible{box-shadow:none!important;outline:0!important}.flow-stack,.flow-scenes,.flow-screen,.mobile-app-viewport{position:absolute;inset:0}.app-surface{--mobile-safe-area-height:env(safe-area-inset-bottom,0px);background:#fcfaf6;width:100%;height:100%;min-height:100dvh;position:relative;overflow:hidden}.mobile-app-viewport[data-platform=android][data-keyboard-visible=false]{bottom:var(--device-safe-area-bottom,48px)}.flow-stack{--flow-header-height:0px;--flow-header-content-height:0px;--flow-header-safe-area:0px;--flow-footer-height:0px;--keyboard-height:0px;touch-action:pan-y;background:0 0;overflow:hidden}.flow-fixed-header{z-index:12;height:var(--flow-header-height);padding-top:var(--flow-header-safe-area);box-sizing:border-box;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;position:absolute;top:0;left:0;right:0}.flow-fixed-footer{z-index:12;right:0;bottom:var(--keyboard-height);height:var(--flow-footer-height);background:0 0;transition:bottom .26s cubic-bezier(.2,.8,.2,1);position:absolute;left:0}.flow-scenes{top:var(--flow-header-height);bottom:0;overflow:hidden}.flow-screen{will-change:transform;background:0 0;overflow:hidden}.mobile-page{--mobile-safe-area-height:var(--device-safe-area-bottom,34px);--keyboard-height:0px;position:absolute;inset:0}.mobile-page[data-keyboard-visible=true],.mobile-app-viewport[data-platform=android] .mobile-page{--mobile-safe-area-height:0px}.mobile-scroll{top:0;right:0;bottom:var(--keyboard-height);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;touch-action:none;-webkit-user-select:none;user-select:none;transition:bottom .26s cubic-bezier(.2,.8,.2,1);position:absolute;left:0;overflow:hidden auto}.mobile-scroll::-webkit-scrollbar{display:none}.mobile-scroll[data-dragging=true]{cursor:none}.mobile-cursor{z-index:80;opacity:0;pointer-events:none;will-change:transform;background:radial-gradient(circle at 50% 44%,#ffffffb3 0 34%,#ffffff8a 58%,#eeeeee7a 100%);border:.5px solid #0000001f;border-radius:999px;width:48px;height:48px;transition:opacity 90ms,background 80ms,box-shadow 80ms;position:absolute;top:0;left:0;box-shadow:inset 0 1px 2px #fff9,inset 0 -5px 10px #0000000d,inset 0 0 0 1px #00000006}.mobile-cursor:before{content:"";pointer-events:none;background:linear-gradient(#ffffff61,#fff0);border-radius:999px;width:32px;height:17px;position:absolute;top:3px;left:50%;transform:translate(-50%)}.mobile-cursor:after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 1px 0 3px #ffffff47,inset -1px 0 3px #00000005}.mobile-cursor-hotspot{pointer-events:none;background:#ffffffd1;border:1px solid #007afff2;border-radius:999px;width:9px;height:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffffbf,0 0 0 3px #007aff29}.mobile-cursor-hotspot:before,.mobile-cursor-hotspot:after{content:"";background:#007afff2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mobile-cursor-hotspot:before{width:17px;height:1px}.mobile-cursor-hotspot:after{width:1px;height:17px}.mobile-cursor[data-visible=true]{opacity:1}.mobile-cursor[data-active=true]{background:radial-gradient(circle at 50% 55%,#e8e8e894 0 30%,#f8f8f880 62%,#ffffffad 100%);box-shadow:inset 0 3px 7px #00000014,inset 0 -4px 8px #ffffff57,inset 0 0 0 1px #00000008}.mobile-cursor[data-active=true]:before{background:linear-gradient(#0000000e,#0000)}.mobile-cursor[data-active=true]:after{box-shadow:inset 0 5px 9px #0000000b,inset 0 -3px 7px #ffffff47}.mobile-scroll-content{will-change:transform;grid-template-columns:minmax(0,1fr);gap:0;min-width:0;padding:0;display:grid}.app-screen{background:#fff}.mobile-scrollbar{z-index:9;top:4px;right:5px;bottom:calc(var(--mobile-safe-area-height) + var(--keyboard-height) + 4px);opacity:0;pointer-events:none;width:4px;transition:bottom .26s cubic-bezier(.2,.8,.2,1),opacity .18s;position:absolute}.mobile-page[data-keyboard-dragging=true] .mobile-scroll,.mobile-page[data-keyboard-dragging=true] .mobile-scrollbar,.flow-stack[data-keyboard-dragging=true] .flow-fixed-footer{transition:none}.mobile-scrollbar[data-visible=true]{opacity:1}.mobile-scrollbar-thumb{background:#00000047;border-radius:999px;width:4px;min-height:36px;transition:background .12s;box-shadow:0 0 0 1px #ffffff2e}.status-bar{z-index:72;color:#050505;pointer-events:none;background:0 0;grid-template-columns:1fr auto;align-items:center;height:54px;padding:10px 34px 0 36px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;display:grid;position:absolute;top:0;left:0;right:0}.device-screen[data-device=pixel-10] .status-bar{align-items:start;height:auto;padding:32px 32px 0;font-family:Roboto,Arial,sans-serif}.status-time{text-align:center;letter-spacing:0;justify-self:start;min-width:58px;font-size:15px;font-weight:600;line-height:1}.status-indicators{justify-self:end;align-items:center;display:flex}.status-indicator-svg{display:block}.status-indicator-svg[data-platform=ios]{width:79px;height:13px}.status-indicator-svg[data-platform=android]{width:50px;height:14px}.device-screen[data-device=pixel-10] .status-time{font-weight:500;transform:translateY(2px)}.home-indicator-svg{z-index:70;width:100%;height:var(--device-safe-area-bottom,34px);pointer-events:none;display:block;position:absolute;bottom:0;left:0;right:0}.android-navigation-bar{z-index:70;width:428px;height:var(--device-safe-area-bottom,48px);pointer-events:none;-webkit-user-drag:none;display:block;position:absolute;bottom:-1px;left:-1px}h1,h2,p{margin:0}h1{letter-spacing:0;font-size:26px;line-height:1.08}h2{font-size:15px}p{color:#555;font-size:14px;line-height:1.45}.field-label{color:#555;font-size:13px;font-weight:800}.mobile-field{gap:8px;display:grid}.mobile-field input{color:#151515;background:#fff;border:1px solid #0000001a;border-radius:8px;outline:0;width:100%;min-height:44px;padding:0 12px}.mobile-field input:focus{box-shadow:none;border-color:#00000029}.device-screen .mobile-field input:focus,.device-screen .mobile-field input:focus-visible{border-color:#0000001f;box-shadow:none!important;outline:0!important}.sheet-overlay{z-index:20;background:#00000057;position:absolute;inset:0}.bottom-sheet{z-index:21;touch-action:none;background:#fff;border-radius:22px 22px 0 0;flex-direction:column;min-height:260px;display:flex;position:absolute;left:0;right:0;overflow:hidden;box-shadow:0 -16px 48px #0003}.sheet-handle-zone{touch-action:none;place-items:center;height:30px;display:grid}.sheet-handle{background:#c9c9c4;border-radius:999px;width:42px;height:5px}.sheet-header{justify-content:space-between;align-items:flex-start;gap:4px;padding:0 18px 14px;display:flex}.sheet-close{color:#172235;background:#f2f1ed;border:0;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;margin-top:-6px;display:grid}.sheet-close svg{width:18px;height:18px}.sheet-title{margin:0;font-size:18px;font-weight:900}.sheet-description{color:#737373;margin:0;font-size:13px;line-height:1.35}.sheet-content{padding:0 18px 24px;overflow:auto}.keyboard-dock{z-index:30;height:339px;box-shadow:none;pointer-events:none;will-change:transform;background:#d8d9de;border-radius:32px 32px 0 0;padding:0;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.keyboard-dock[data-platform=android]{background:#f3f2f6;border-radius:0;box-shadow:0 -1px 2px #00000014}.keyboard-dock[data-visible=true]{pointer-events:auto}.keyboard-asset{z-index:1;border-radius:inherit;object-fit:cover;object-position:center bottom;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block;position:relative}.keyboard-dock[data-platform=android] .keyboard-asset{object-fit:fill;border-radius:0}
