:root{--green:#155a47;--green-dark:#104735;--mint:#e6f1e9;--ink:#202a24;--muted:#737a72;--line:#e3e6df;--paper:#fff;--bg:#f6f7f3;--red:#a64135;--red-bg:#fcece7;--amber:#95601b;--amber-bg:#fff2dc;--blue:#426e99;--blue-bg:#eaf1f9;--radius:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #79b99b;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #8bbca7;outline-offset:1px}a{color:var(--green)}button svg{pointer-events:none}button{touch-action:manipulation}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.15;letter-spacing:-1.2px;margin-bottom:9px;font-weight:650}h2{font-size:20px;letter-spacing:-.5px;line-height:1.25;margin-bottom:8px;font-weight:640}h3{font-size:16px;font-weight:620;letter-spacing:-.3px;margin-bottom:8px}p{margin-bottom:16px}.muted,.hint{color:var(--muted)}.hint{font-size:12px;line-height:1.65}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:700;color:var(--green);margin-bottom:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:#fff;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-size:26px;letter-spacing:-1.1px;font-weight:700;color:var(--ink);text-decoration:none}.brand img{border-radius:11px}.brand-dot{color:var(--green)}.sidebar-label{font-size:8px;letter-spacing:1.4px;color:#8b918a;font-weight:650;margin:30px 0 17px 8px}.navigation{display:grid;gap:7px}.nav-item{border:0;background:transparent;display:flex;align-items:center;gap:13px;width:100%;padding:12px 14px;border-radius:10px;text-align:left;color:#687168;font-weight:500}.nav-item.active{background:var(--mint);color:var(--green);font-weight:650}.nav-item:hover{background:#f1f5f0}.nav-icon{font-size:21px;line-height:22px;width:22px;text-align:center}.sidebar-bottom{margin-top:auto;padding:20px 7px 0}.device-indicator{font-size:10px;font-weight:600;display:flex;align-items:center;gap:6px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4f9770;flex-shrink:0}.dot.muted{background:#b2baad}.sidebar-bottom p{font-size:12px;color:#899084;margin-top:13px;line-height:1.8}.sidebar-bottom .text-button{font-size:10px;padding:0;margin-bottom:22px;text-align:left}.version{display:block;color:#a3a99e;font-size:8px;letter-spacing:1.5px}.app-shell{margin-left:226px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 38px;background:rgba(255,255,255,.7)}.topbar-context{font-size:9px;font-weight:650;color:#8a9187;letter-spacing:1.6px}.topbar-right{display:flex;align-items:center;gap:24px}.connection-status{font-size:11px;color:#687368;display:flex;align-items:center;gap:6px}.mobile-brand{display:none}.button{border:1px solid transparent;border-radius:9px;padding:11px 17px;min-height:44px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#fff;text-decoration:none;white-space:nowrap}.button:hover{background:var(--green-dark)}.button.secondary{color:var(--green);background:#fff;border-color:#dce4db}.button.secondary:hover{background:#f0f5ee}.button.subtle{background:#edf3ed;color:var(--green)}.button.small{padding:8px 12px;min-height:37px;font-size:11px}.button.danger{background:var(--red);color:#fff}.text-button{background:none;border:0;color:var(--green);font-weight:600;font-size:12px;min-height:36px;padding:5px 9px}.text-button.danger{color:var(--red)}main{padding:34px 38px 24px;max-width:1580px;width:100%;margin:auto auto 0;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px}.page-heading p{color:var(--muted);font-size:12px;margin-bottom:0}.page-heading .eyebrow{margin-bottom:10px}.heading-actions{display:flex;align-items:center;gap:8px;padding-top:14px}.date-browse{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}.date-browse button{width:34px;height:34px;background:none;border:0;color:#697364;font-size:18px}.date-browse input{width:135px;border:0;background:none;padding:6px 2px;font-size:11px;font-weight:600;color:var(--ink);min-width:0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:22px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.selection-panel{padding:20px 23px;margin-bottom:17px;display:flex;align-items:center;gap:19px}.course-icon{width:46px;height:46px;border-radius:14px;background:var(--mint);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:23px;flex-shrink:0}.selector-fields{flex:1;min-width:0}.field-title{font-size:9px;letter-spacing:1.1px;color:#8a9285;font-weight:650;display:block;margin-bottom:6px}.course-select{font-size:18px;letter-spacing:-.4px;font-weight:640;border:0;max-width:100%;background:transparent;padding:0 20px 0 0;color:var(--ink)}.session-field{padding-left:20px;border-left:1px solid var(--line);max-width:160px}.session-select{border:0;background:none;color:#596858;font-size:11px;padding:1px 15px 1px 0;max-width:100%}.selection-note{font-size:10px;color:#8a9285;margin-top:5px;display:flex;gap:7px;align-items:center}.selection-note .text-button{padding:0;min-height:20px;font-size:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}.stat{border-radius:11px;border:1px solid var(--line);padding:13px 15px;background:#fff;display:flex;align-items:center;gap:12px}.stat-icon{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;background:var(--mint);color:var(--green)}.stat-number{font-size:23px;line-height:1.15;font-weight:630;letter-spacing:-.5px}.stat-label{font-size:10px;color:var(--muted);margin-top:2px}.stat.absent .stat-icon{background:var(--red-bg);color:var(--red)}.stat.late .stat-icon{background:var(--amber-bg);color:var(--amber)}.stat.justified .stat-icon{background:var(--blue-bg);color:var(--blue)}.roster-header{padding:20px 23px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.roster-header h2{font-size:16px;margin-bottom:4px}.roster-header p{font-size:10px;color:var(--muted);margin:0}.roster-tools{display:flex;gap:8px;align-items:center;padding:0 23px 16px;border-bottom:1px solid var(--line)}.search-wrap{position:relative;flex:1;min-width:0}.search-wrap span{position:absolute;top:9px;left:11px;color:#8b9588}.search-wrap input{border:1px solid #e5e9e0;border-radius:7px;background:#fafbf8;padding:9px 10px 9px 30px;width:100%;font-size:11px;min-height:37px}.filter-select{background:#fafbf8;border:1px solid #e5e9e0;border-radius:7px;color:#697364;font-size:10px;padding:9px;max-width:145px;min-height:37px}.table-head{display:grid;grid-template-columns:minmax(150px,1fr) 268px 32px;gap:14px;padding:10px 23px;background:#fcfdf9;font-size:8px;font-weight:650;letter-spacing:1.1px;color:#9aa18f}.student-row{padding:13px 23px;display:grid;grid-template-columns:minmax(150px,1fr) 268px 32px;align-items:center;gap:14px;border-top:1px solid #f0f2eb;min-height:78px}.student-identity{display:flex;align-items:center;gap:12px;min-width:0}.avatar{height:34px;width:34px;border-radius:50%;background:#f0f2e9;display:flex;align-items:center;justify-content:center;font-size:10px;color:#8c967f;font-weight:600;flex-shrink:0}.student-name{font-size:12px;line-height:1.5;font-weight:560;overflow-wrap:anywhere}.student-id{font-size:9px;color:#929b89;margin-top:2px}.student-note{font-size:10px;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.status-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.status-button{border:1px solid #e5e9e0;background:#fff;border-radius:7px;min-height:38px;color:#8b9481;font-size:10px;font-weight:600;display:flex;gap:4px;align-items:center;justify-content:center}.status-button:hover{background:#f2f6ee}.status-button[aria-pressed=true]{background:var(--mint);border-color:#b9d3bd;color:var(--green)}.status-button.absent[aria-pressed=true]{background:var(--red-bg);border-color:#e8b5a9;color:var(--red)}.status-button.late[aria-pressed=true]{background:var(--amber-bg);border-color:#e9ce98;color:var(--amber)}.status-button.justified[aria-pressed=true]{background:var(--blue-bg);border-color:#b9cfe7;color:var(--blue)}.status-symbol{font-size:14px}.status-long{display:none}.row-menu{border:0;background:none;font-size:19px;min-height:38px;width:32px;color:#929b89;padding:0}.pending-text{font-size:9px;color:#a0a897;font-weight:450;margin-left:6px;white-space:nowrap}.roster-bottom{padding:13px 23px;background:#fcfdf9;font-size:10px;color:#89937f;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.empty-results{padding:35px 22px;text-align:center;color:var(--muted);font-size:12px}.day-panel{padding:21px 18px}.day-panel .eyebrow{font-size:8px;margin-bottom:8px}.day-panel h2{font-size:15px;margin-bottom:16px}.progress-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:8px}.progress-meta strong{color:var(--green);font-size:11px}.progress{height:5px;width:100%;border-radius:4px;background:#edf0e8;overflow:hidden}.progress span{height:100%;display:block;background:#65a582;border-radius:4px;transition:width .2s}.day-list{margin-top:22px}.day-slot{position:relative;padding:0 0 21px 19px;border-left:1px solid #e4e9dd;margin-left:3px}.day-slot:before{content:'';width:7px;height:7px;position:absolute;top:5px;left:-4px;border-radius:50%;background:#cfd7c7;box-shadow:0 0 0 4px #fff}.day-slot.current:before{background:var(--green)}.day-slot:last-child{border-left-color:transparent;padding-bottom:0}.day-slot button{background:none;border:0;padding:0;text-align:left;width:100%;color:var(--ink)}.day-slot time{font-size:9px;color:#939d87;display:block;margin-bottom:5px}.day-slot strong{font-size:11px;font-weight:600;display:block;overflow-wrap:anywhere}.day-slot small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.aside-note{margin-top:18px;padding:18px;background:#edf1e7;border-radius:12px;border:1px solid #e0e7d7;color:#75816a;font-size:10px;line-height:1.8}.aside-note strong{display:block;color:#4a634a;font-size:11px;margin-bottom:6px}.past-date{padding:10px 15px;border-radius:9px;background:var(--amber-bg);color:var(--amber);font-size:11px;margin-bottom:15px}.onboarding{padding:42px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:30px;align-items:center;min-height:365px}.onboarding h2{font-size:29px;letter-spacing:-1px;line-height:1.2;margin-bottom:17px;max-width:360px}.onboarding p{color:#78826e;font-size:13px;line-height:1.8;max-width:370px}.onboarding-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:23px}.sample-card{background:#f2f5ed;padding:24px;border-radius:18px;transform:rotate(-3deg);border:1px solid #e0e7d8;box-shadow:0 15px 30px #304a2510}.sample-card-top{font-size:10px;font-weight:650;letter-spacing:1px;color:var(--green);padding-bottom:17px;border-bottom:1px solid #dfe5d6}.sample-row{display:flex;gap:12px;align-items:center;padding:18px 0;border-bottom:1px solid #e1e7d9}.sample-row:last-child{border:0;padding-bottom:0}.sample-line{height:7px;border-radius:4px;background:#c9d4bd;width:100px}.sample-row .check{margin-left:auto;background:#d9e9d5;color:var(--green);height:25px;width:25px;display:grid;place-items:center;border-radius:7px}.setup-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.setup-step{padding:23px;background:#fff;border:1px solid var(--line);border-radius:13px}.step-number{font-size:10px;font-weight:600;color:#a0ac92;margin-bottom:13px;display:block}.setup-step p{font-size:11px;color:var(--muted);margin-bottom:0}.setup-step h3{font-size:13px}.empty-links{display:flex;gap:12px;align-items:center;margin-top:18px;font-size:11px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.course-card{padding:23px}.course-card .course-icon{margin-bottom:19px}.course-card h2{font-size:18px}.course-card p{font-size:11px;color:var(--muted)}.card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;border-top:1px solid var(--line);padding-top:12px}.course-card.archived{opacity:.7}.section-title{font-size:11px;letter-spacing:1px;font-weight:650;color:var(--muted);margin:28px 0 14px}.detail-students{margin-top:18px}.manage-row{padding:15px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line)}.manage-row:last-child{border-bottom:0}.manage-row .student-name{font-size:13px}.manage-row .hint{margin:0}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:5px;font-size:9px;background:#f1f3ed;color:#7e8b73}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.day-column{min-height:170px;padding:17px 13px}.day-column h3{font-size:11px;margin:0 0 18px;color:#829075}.schedule-slot{background:var(--mint);border:1px solid #cce0ce;border-radius:10px;padding:13px 10px;width:100%;text-align:left;display:block;margin-bottom:10px;color:var(--green)}.schedule-slot time{font-size:10px;font-weight:600;display:block;margin-bottom:7px}.schedule-slot strong{font-size:12px;line-height:1.5;display:block}.schedule-slot small{font-size:10px;color:#789276;display:block;margin-top:7px}.empty-day{font-size:10px;color:#a6ad9c;margin-top:21px}.history-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:19px;margin-bottom:20px}.history-filters label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:8px}.history-filters select,.history-filters input{border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px;min-height:36px;color:var(--ink);font-size:11px}.history-row{width:100%;background:#fff;border:0;border-top:1px solid var(--line);display:flex;align-items:center;text-align:left;padding:19px 23px;gap:17px}.history-row:first-child{border-top:0}.history-row:hover{background:#fafcf7}.history-row h3{font-size:13px;margin-bottom:4px}.history-row p{font-size:10px;color:var(--muted);margin:0}.history-counts{display:flex;gap:15px;margin-left:auto;font-size:11px}.history-counts span{font-weight:600}.history-counts .present{color:var(--green)}.history-counts .absent{color:var(--red)}.history-counts .late{color:var(--amber)}.history-counts .justified{color:var(--blue)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.settings-card{padding:25px}.settings-card h2{font-size:18px;margin-bottom:12px}.settings-card p{font-size:12px;color:var(--muted);line-height:1.8}.settings-card .button{margin:4px 6px 6px 0}.settings-card.full{grid-column:1/-1}.settings-card ul{padding-left:18px;color:var(--muted);font-size:12px;line-height:1.9}.setting-line{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px}.setting-line:last-child{border:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-field{display:grid;gap:7px;margin-bottom:15px}.form-field label{font-size:11px;color:#697960;font-weight:600}.form-field input,.form-field select,.form-field textarea{width:100%;padding:11px 12px;border:1px solid #dce3d6;border-radius:8px;min-height:44px;background:#fff;color:var(--ink);font-size:14px}.form-field textarea{min-height:95px;resize:vertical}.check-field{display:flex;align-items:center;gap:8px;font-size:12px;margin:15px 0;color:#6d7d63}.check-field input{width:18px;height:18px;accent-color:var(--green)}.form-field .hint{font-weight:400;font-size:10px}.form-error{background:var(--red-bg);color:var(--red);padding:11px 13px;border-radius:8px;font-size:12px;margin:12px 0;white-space:pre-line}.form-error[hidden]{display:none}.form-success{background:var(--mint);color:var(--green);padding:11px 13px;border-radius:8px;font-size:12px;margin:12px 0}.app-footer{padding:20px 38px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px;color:#9ca590;letter-spacing:.15px;max-width:1580px;width:100%;margin:0 auto}.mobile-nav{display:none}dialog{border:1px solid var(--line);border-radius:20px;padding:0;width:min(640px,calc(100vw - 28px));max-height:min(90dvh,920px);color:var(--ink);box-shadow:0 30px 100px #10281635;background:white}dialog::backdrop{background:#1c2c2680;backdrop-filter:blur(3px)}.modal-header{padding:22px 25px 17px;display:flex;align-items:center;gap:20px;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:3}.modal-header h2{font-size:20px;margin:0}.close-button{border:0;background:#f2f5ee;width:32px;height:32px;font-size:22px;border-radius:50%;color:#7a876f}.modal-body{padding:22px 25px}.modal-body p{font-size:12px;color:var(--muted);line-height:1.8}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:18px 25px;border-top:1px solid var(--line);background:#fafbf8;position:sticky;bottom:0;z-index:2}.modal-footer .text-button{margin-right:auto}.import-step{font-size:9px;font-weight:700;letter-spacing:1.2px;color:#8da17b;margin:20px 0 13px}.import-step:first-child{margin-top:0}.import-preview{border:1px solid var(--line);border-radius:9px;overflow:hidden;max-height:230px;overflow-y:auto}.preview-row{padding:9px 13px;border-bottom:1px solid var(--line);font-size:12px}.preview-row:last-child{border:0}.preview-row small{display:block;font-size:10px;color:var(--muted)}.preview-caption{font-size:10px;color:var(--muted);margin:9px 0}.help-list{padding-left:21px;font-size:13px;line-height:1.9;color:#66725f}.help-list li{padding-left:5px;margin-bottom:9px}.help-block{background:#f3f6ee;border-radius:10px;padding:16px;margin-top:20px}.help-block p{margin-bottom:0}.update-banner,.error-banner{padding:12px 38px;background:#e5eedf;color:var(--green);font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.error-banner{background:var(--red-bg);color:var(--red);white-space:pre-line}.update-banner[hidden],.error-banner[hidden]{display:none}#toast{position:fixed;bottom:25px;left:calc(50% + 113px);transform:translateX(-50%);background:#263e30;color:#fff;border-radius:10px;padding:13px 20px;font-size:12px;box-shadow:0 6px 25px #1a351d25;z-index:100;max-width:calc(100vw - 28px);text-align:center}#toast[hidden]{display:none}.loading-screen{min-height:55vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--muted)}.empty-state{padding:42px 25px;text-align:center;color:var(--muted)}.empty-state h2{color:var(--ink)}.empty-state p{font-size:12px;max-width:410px;margin:15px auto 22px}.past-date strong{font-weight:600}.help-link{color:var(--green);font-weight:600;text-decoration:none}.page-width{max-width:1100px;margin:0 auto}.hidden{display:none!important}
@media(min-width:1550px){main{padding-top:43px}.workspace{grid-template-columns:minmax(0,1fr) 260px}.student-row,.table-head{grid-template-columns:minmax(170px,1fr) 340px 32px}.status-long{display:inline}.status-short{display:none}.student-row{min-height:84px}}
@media(max-width:1220px){.sidebar{width:199px;padding:29px 17px}.app-shell{margin-left:199px}.brand{font-size:24px}.sidebar-label{font-size:7px}.topbar{padding:0 25px}.topbar-right{gap:13px}main{padding:27px 25px 20px}.workspace{grid-template-columns:minmax(0,1fr) 200px;gap:16px}.selection-panel{padding:18px 17px;gap:13px}.course-select{font-size:16px}.session-field{max-width:127px;padding-left:13px}.stat{padding:12px 10px;gap:8px}.stat-icon{width:25px;height:25px}.stat-number{font-size:21px}.stat-label{font-size:9px}.student-row,.table-head{grid-template-columns:minmax(100px,1fr) 200px 27px;padding-left:17px;padding-right:17px;gap:9px}.student-identity{gap:9px}.student-name{font-size:11px}.avatar{width:29px;height:29px;font-size:9px}.status-button{min-height:37px}.pending-text{display:block;margin-left:0}.row-menu{width:27px}.roster-header{padding:18px 17px 13px}.roster-tools{padding:0 17px 15px}.roster-header .button{font-size:10px;padding:8px 10px}.app-footer{padding:18px 25px}#toast{left:calc(50% + 99px)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{gap:8px}.day-column{padding:14px 10px}.schedule-slot{padding:11px 8px}.day-column h3{font-size:10px}}
@media(max-width:1020px){.workspace{grid-template-columns:1fr}.workspace-aside{display:none}.roster-header .button{font-size:11px;padding:9px 13px}.student-row,.table-head{grid-template-columns:minmax(150px,1fr) 240px 30px}.student-name{font-size:12px}.avatar{width:32px;height:32px}.onboarding{padding:31px;gap:20px}.onboarding h2{font-size:25px}.settings-grid{gap:15px}.settings-card{padding:20px}.week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.setup-step{padding:20px 17px}}
@media(max-width:760px){h1{font-size:27px;letter-spacing:-.9px}.sidebar{display:none}.app-shell{margin:0;padding-bottom:calc(66px + env(safe-area-inset-bottom))}.topbar{height:68px;padding:env(safe-area-inset-top) 18px 0;background:#fff;gap:10px}.mobile-brand{display:flex;font-size:21px;gap:7px;letter-spacing:-.7px}.mobile-brand img{border-radius:8px}.topbar-context{display:none}.topbar-right{gap:8px}.topbar .button{padding:7px 10px;font-size:10px;min-height:34px}.connection-status{font-size:9px;gap:5px}.topbar-right .connection-status{max-width:104px;line-height:1.5}main{padding:25px 17px 20px}.page-heading{margin-bottom:20px;gap:10px}.page-heading p{font-size:11px;max-width:230px}.page-heading .eyebrow{font-size:8px;margin-bottom:9px}.heading-actions{padding-top:9px;flex-wrap:wrap;justify-content:flex-end;gap:5px}.heading-actions .button{font-size:10px;padding:8px 10px;min-height:36px}.date-browse{padding:2px}.date-browse button{width:25px;height:32px}.date-browse input{width:112px;font-size:10px}.selection-panel{padding:16px;gap:11px;flex-wrap:wrap;margin-bottom:12px;border-radius:13px}.course-icon{width:39px;height:39px;border-radius:11px;font-size:20px}.course-select{font-size:17px}.session-field{border-left:0;padding-left:0;max-width:none;margin-left:auto}.session-field .field-title{font-size:8px}.session-select{font-size:10px;max-width:130px}.selector-fields .field-title{font-size:8px;margin-bottom:4px}.selection-note{font-size:9px;gap:5px}.selection-note .text-button{font-size:9px}.stats{gap:7px;margin-bottom:17px}.stat{padding:10px 9px;gap:5px;align-items:flex-start;flex-direction:column;border-radius:9px}.stat-icon{width:22px;height:22px;border-radius:6px;font-size:14px}.stat-number{font-size:22px}.stat-label{font-size:9px}.stat-details{display:flex;align-items:baseline;gap:5px;width:100%;flex-wrap:wrap}.stat-number{line-height:1}.roster-header{padding:16px 14px 13px;gap:7px}.roster-header h2{font-size:15px}.roster-header p{font-size:9px}.roster-header .button{font-size:9px;padding:8px 9px;min-height:36px;max-width:156px;white-space:normal;line-height:1.4}.roster-tools{padding:0 14px 14px;gap:7px}.search-wrap input{font-size:12px;padding-top:10px;padding-bottom:10px}.filter-select{font-size:10px;max-width:115px}.table-head{display:none}.student-row{padding:15px 14px;grid-template-columns:minmax(0,1fr) 29px;gap:9px;min-height:0}.student-identity{grid-column:1;gap:10px}.student-name{font-size:13px}.avatar{height:32px;width:32px;font-size:10px}.student-id{font-size:10px}.pending-text{font-size:9px;display:inline;margin-left:5px}.status-buttons{grid-column:1/-1;grid-row:2;gap:7px;padding-left:42px;margin-top:1px}.status-button{min-height:38px;font-size:10px;gap:5px}.status-short{display:none}.status-long{display:inline;font-size:9px}.status-symbol{font-size:13px}.row-menu{grid-column:2;grid-row:1;width:29px;height:40px}.student-note{font-size:10px}.roster-bottom{font-size:9px;padding:12px 14px}.mobile-nav{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.97);border-top:1px solid #e0e7db;padding:7px 8px calc(7px + env(safe-area-inset-bottom));z-index:30;backdrop-filter:blur(12px)}.mobile-nav button{border:0;background:none;color:#9aa48d;font-size:9px;display:flex;align-items:center;flex-direction:column;gap:4px;min-height:45px;border-radius:9px}.mobile-nav button>span{font-size:20px;line-height:23px}.mobile-nav button.active{color:var(--green);background:#eff4e9;font-weight:650}.app-footer{padding:17px;font-size:8px}.onboarding{grid-template-columns:1fr;padding:27px 23px;min-height:0}.onboarding h2{font-size:27px;max-width:300px}.onboarding p{font-size:12px}.sample-card{display:none}.onboarding-buttons{margin-top:20px;gap:7px}.onboarding-buttons .button{font-size:11px;padding:11px 13px}.setup-steps{grid-template-columns:1fr;gap:9px;margin-top:14px}.setup-step{padding:17px;display:grid;grid-template-columns:26px 1fr;gap:0 10px}.step-number{grid-row:1/3;margin:3px 0}.setup-step h3{font-size:12px;margin-bottom:4px}.setup-step p{font-size:11px}.empty-links{flex-wrap:wrap;gap:5px}.card-grid{grid-template-columns:1fr;gap:12px}.course-card{padding:20px}.course-card .course-icon{margin-bottom:13px}.course-card h2{font-size:19px}.card-actions{margin-top:12px}.week-grid{grid-template-columns:1fr;gap:12px}.day-column{min-height:0;padding:17px}.day-column h3{font-size:12px;margin-bottom:13px}.schedule-slot{padding:15px;display:grid;grid-template-columns:104px 1fr;gap:4px 10px;align-items:center}.schedule-slot time{font-size:11px;margin-bottom:0}.schedule-slot strong{font-size:13px}.schedule-slot small{grid-column:2;margin-top:0}.empty-day{margin:0;padding:0 0 5px}.settings-grid{grid-template-columns:1fr;gap:14px}.settings-card.full{grid-column:auto}.settings-card h2{font-size:19px}.settings-card p{font-size:12px}.setting-line{font-size:11px}.history-filters{padding:15px;gap:10px}.history-filters label{font-size:10px;flex:1;min-width:115px;display:grid;gap:5px}.history-filters select,.history-filters input{width:100%;font-size:12px;min-height:40px}.history-row{padding:17px 15px;flex-wrap:wrap;gap:10px}.history-row h3{font-size:13px}.history-counts{margin-left:0;gap:20px;width:100%;font-size:11px}.history-row p{font-size:10px}.history-row .badge{margin-left:auto}.history-row>div:first-child{flex:1}.manage-row{padding:15px}.form-grid{gap:10px}.modal-body{padding:19px}.modal-header{padding:20px 19px 16px}.modal-header h2{font-size:19px}.modal-footer{padding:16px 19px}.form-field input,.form-field select,.form-field textarea{font-size:16px}.form-field label{font-size:11px}dialog{max-height:92dvh;border-radius:18px}.form-grid .form-field input[type=time]{min-width:0;width:100%}.update-banner,.error-banner{padding:12px 17px;font-size:11px;flex-wrap:wrap}#toast{left:50%;bottom:calc(81px + env(safe-area-inset-bottom));width:max-content}.past-date{font-size:10px}.topbar .button span{display:none}}
@media(max-width:375px){main{padding-left:12px;padding-right:12px}.topbar{padding-left:12px;padding-right:12px}.topbar .button{font-size:9px;padding:6px 8px}.connection-status{font-size:8px;max-width:80px!important}.mobile-brand{font-size:19px}.status-buttons{padding-left:0}.status-long{display:none}.status-short{display:inline}.selection-panel{gap:10px;padding:14px}.selection-panel>.course-icon{display:none}.date-browse input{width:104px;font-size:9px}.date-browse button{width:22px}.page-heading h1{font-size:25px}.form-grid{grid-template-columns:1fr}.stat-details{gap:3px}.stat-label{font-size:8px}.stat{padding:9px 7px}.selection-note{max-width:190px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
