@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#252522;font-synthesis:none;text-rendering:optimizelegibility;--ink:#252522;--muted:#89877f;--line:#e8e5de;--paper:#fffefa;--canvas:#f5f3ee;--coral:#e87963;--sage:#b7cfbc;--blue:#b8d2dc;--amber:#edc671;background:#f5f3ee;font-family:Manrope,sans-serif}*{box-sizing:border-box}body{background:var(--canvas);min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #e8796352}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-loading{min-height:100vh;color:var(--muted);place-items:center;font-size:13px;display:grid}.app-shell{min-height:100vh;display:flex}.sidebar{background:#efede6;border-right:1px solid #e3e0d8;flex-direction:column;flex:0 0 254px;width:254px;padding:27px 17px 19px;display:flex}.brand{letter-spacing:-.7px;align-items:center;gap:10px;padding:0 12px 30px;font-size:18px;font-weight:800;display:flex}.brand>span:last-child span,.mobile-brand strong span{color:var(--coral)}.brand-mark{background:var(--coral);color:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.profile-mini{background:#f8f6f0;border:1px solid #dfdbd1;border-radius:11px;align-items:center;gap:10px;margin-bottom:27px;padding:11px 10px;display:flex}.profile-mini>div:nth-child(2){min-width:0}.profile-mini strong,.profile-mini small{display:block}.profile-mini strong{font-size:11px}.profile-mini small{color:var(--muted);margin-top:3px;font-size:9px}.profile-mini>svg{color:#9c998f;margin-left:auto}.avatar{border-radius:9px;place-items:center;width:33px;height:33px;font-size:10px;font-weight:800;display:grid}.coral-avatar{color:#8b392a;background:#f6b6a7}.nav-label{color:#a19e94;letter-spacing:.9px;margin:0 12px 10px;font:9px DM Mono,monospace}.sidebar nav{gap:5px;display:grid}.nav-item{color:#77746c;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;width:100%;padding:11px 12px;font-size:11px;transition:background .16s,color .16s;display:flex}.nav-item:hover,.nav-item.active{color:var(--ink);background:#fffefa}.nav-item.active{font-weight:800;box-shadow:0 2px 6px #28282008}.nav-item.active svg{color:var(--coral)}.sidebar-bottom{gap:4px;margin-top:auto;display:grid}.workspace-note{border-top:1px solid #dedbd2;align-items:center;gap:10px;margin:20px 7px 0;padding:16px 3px 1px;display:flex}.workspace-note strong,.workspace-note small{display:block}.workspace-note strong{font-size:10px}.workspace-note small{color:var(--muted);margin-top:4px;font-size:9px}.workspace-indicator{background:#79a781;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #79a78120}.main-content{flex:1;min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fffefa8c;justify-content:space-between;align-items:center;height:72px;padding:0 clamp(22px,4vw,58px);display:flex}.breadcrumb{color:#99968d;align-items:center;gap:9px;font-size:11px;display:flex}.breadcrumb svg{color:#c1bdb3}.breadcrumb strong{color:var(--ink);font-weight:700}.top-actions{align-items:center;gap:18px;display:flex}.term-label{border:1px solid var(--line);color:#77746c;background:var(--paper);border-radius:7px;padding:7px 10px;font-size:9px}.icon-button,.menu-button{color:#77746c;background:0 0;border:0;place-items:center;padding:6px;display:grid;position:relative}.icon-button i{background:var(--coral);border-radius:50%;width:5px;height:5px;position:absolute;top:3px;right:3px}.top-avatar{color:#fff;background:var(--ink);border-radius:50%;place-items:center;width:32px;height:32px;font-size:9px;font-weight:800;display:grid}.menu-button{display:none}.page-wrap{max-width:1320px;margin:0 auto;padding:39px clamp(22px,4vw,58px) 65px}.welcome-row{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.eyebrow{color:var(--coral);letter-spacing:.65px;text-transform:uppercase;margin:0 0 8px;font:10px DM Mono,monospace}.welcome-row h1{letter-spacing:-1.65px;margin:0 0 8px;font-size:clamp(27px,3vw,36px);line-height:1.15}.muted{color:var(--muted);margin:0;font-size:11px}.demo-banner{background:#f0f5ef;border:1px solid #dfe9df;border-radius:9px;align-items:center;gap:12px;margin-bottom:22px;padding:12px 15px;display:flex}.demo-banner-icon{color:#598264;background:#dcebdd;border-radius:8px;flex:none;place-items:center;width:29px;height:29px;display:grid}.demo-banner strong,.demo-banner span{display:block}.demo-banner strong{font-size:10px}.demo-banner div:nth-child(2) span{color:#758477;margin-top:3px;font-size:10px}.demo-tag{color:#648069;letter-spacing:.5px;background:#dfecdf;border-radius:5px;margin-left:auto;padding:5px 8px;font:8px DM Mono,monospace}.primary-button,.outline-button{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:10px;font-weight:800;transition:transform .15s,background .15s;display:inline-flex}.primary-button{border:1px solid var(--ink);color:#fff;background:var(--ink)}.primary-button:hover{border-color:var(--coral);background:var(--coral);transform:translateY(-1px)}.outline-button{color:#4a4943;background:0 0;border:1px solid #d9d4ca}.outline-button:hover{background:#f8f6f0}.text-button{color:var(--ink);background:0 0;border:0;align-items:center;gap:5px;padding:5px;font-size:9px;font-weight:800;display:inline-flex}.text-button:hover{color:var(--coral)}.toast{z-index:40;color:#fff;background:#292923;border:1px solid #393932;border-radius:9px;align-items:center;gap:9px;max-width:min(440px,100vw - 32px);padding:12px 14px;font-size:10px;animation:.2s ease-out slide-in;display:flex;position:fixed;top:20px;right:24px;box-shadow:0 10px 30px #29292320}.toast>svg{color:var(--sage);flex:none}.toast button{color:#c5c4bd;background:0 0;border:0;place-items:center;margin-left:6px;padding:3px;display:grid}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card{border:1px solid #00000005;border-radius:11px;min-height:130px;padding:17px 18px;position:relative;overflow:hidden}.stat-card:after{content:"";border:1px solid #25252216;border-radius:50%;width:100px;height:100px;position:absolute;bottom:-44px;right:-25px}.stat-card.sage{background:#c9dbc9}.stat-card.amber{background:#f1d998}.stat-card.coral{background:#f6c0b3}.stat-card.blue{background:#c8dfe5}.stat-icon{color:#46463f;background:#ffffff75;border-radius:8px;place-items:center;width:29px;height:29px;margin-bottom:12px;display:grid}.stat-card p{color:#5e5d55;margin:0 0 2px;font-size:10px}.stat-card strong{letter-spacing:-1px;font-size:23px;display:block}.stat-card small{color:#77756c;margin-top:3px;font-size:9px;display:block}.content-grid{grid-template-columns:minmax(0,1.45fr) minmax(265px,.75fr);gap:16px;margin-bottom:18px;display:grid}.panel{background:var(--paper);border:1px solid #e9e6df;border-radius:11px;min-width:0;padding:21px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-heading h2{letter-spacing:-.5px;margin:0;font-size:15px}.panel-heading .eyebrow{margin-bottom:6px}.live-pill,.status-badge{white-space:nowrap;border-radius:20px;justify-content:center;align-items:center;gap:6px;padding:6px 9px;font-size:9px;font-weight:700;display:inline-flex}.live-pill{color:#9e533d;background:#fff0e8}.live-pill i,.status-badge i{background:currentColor;border-radius:50%;flex:none;width:5px;height:5px;display:block}.live-pill i{animation:1.7s ease-out infinite pulse}.active-card{background:#fcf7f0;border:1px solid #f0e5da;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin:20px 0 17px;padding:14px;display:grid}.session-art{border-radius:10px;flex:none;place-items:center;width:42px;height:42px;display:grid}.coral-art{color:#985344;background:#f3c1b4}.sage-art{color:#5d7961;background:#d4e2d3}.blue-art{color:#577780;background:#d0e2e7}.active-info{min-width:0}.course-code{color:var(--coral);letter-spacing:.35px;font:8px DM Mono,monospace}.dot-separator{color:#c7c1b7}.active-info h3{letter-spacing:-.3px;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 5px;font-size:12px;overflow:hidden}.active-info p,.session-row-info small{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:9px;display:flex}.active-info p svg,.session-row-info small svg{flex:none}.active-info p span{color:#c5beb3}.progress-line{background:#e8e0d6;border-radius:4px;height:4px;margin:12px 0 5px;overflow:hidden}.progress-line span{border-radius:inherit;background:var(--coral);height:100%;transition:width .2s;display:block}.active-info small{color:var(--muted);font-size:9px}.panel-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding-top:13px;font-size:8px;display:flex}.pulse-panel{padding:21px 22px}.subtle-label{border:1px solid var(--line);color:#8d8a81;border-radius:5px;padding:6px 8px;font-size:8px}.pulse-total{align-items:baseline;gap:8px;margin:19px 0 15px;display:flex}.pulse-total strong{letter-spacing:-1.2px;font-size:29px}.pulse-total span{color:var(--muted);font-size:9px}.distribution-bars,.report-status-list{gap:12px;display:grid}.distribution-row{min-width:0}.distribution-label{color:#77756d;justify-content:space-between;margin-bottom:5px;font-size:8px;display:flex}.distribution-label strong{color:var(--ink);font-weight:700}.distribution-track{background:#f0eee8;border-radius:5px;height:5px;overflow:hidden}.distribution-track span{border-radius:inherit;min-width:2px;height:100%;transition:width .2s;display:block}.distribution-track .sage{background:#8eae93}.distribution-track .amber{background:#d6b458}.distribution-track .coral{background:#dc8c78}.distribution-track .gray{background:#b8b6ae}.pulse-note{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;margin-top:17px;padding-top:12px;font-size:8px;line-height:1.5;display:flex}.trend-icon{color:#628367;background:#e7f0e5;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.roster-preview,.upcoming-panel{margin-bottom:17px}.roster-preview .panel-heading,.upcoming-panel .panel-heading{align-items:center}.roster-table{width:100%;margin-top:17px}.roster-head,.roster-row{grid-template-columns:minmax(190px,1fr) 115px 104px 132px;align-items:center;gap:12px;display:grid}.roster-head{border-bottom:1px solid var(--line);color:#a09d94;letter-spacing:.45px;text-transform:uppercase;padding:10px 0;font:9px DM Mono,monospace}.roster-row{border-bottom:1px solid #f0eee8;min-height:56px;padding:8px 0}.roster-row:last-child{border-bottom:0}.student-cell{align-items:center;gap:9px;min-width:0;display:flex}.student-avatar{color:#705d3b;background:#eeddb8;border-radius:50%;flex:none;place-items:center;width:31px;height:31px;font-size:8px;font-weight:800;display:grid}.avatar-a,.avatar-n{color:#59715e;background:#d7e4d3}.avatar-m,.avatar-t{color:#6a6880;background:#dddaee}.avatar-p{color:#8a6253;background:#f2d8ca}.avatar-k{color:#5d7580;background:#d1e4e9}.student-cell>div:last-child{min-width:0}.student-cell strong,.student-cell small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.student-cell strong{color:#35352f;font-size:10px}.student-cell small,.time-cell{color:#9a978e;margin-top:3px;font-size:9px}.time-cell{margin:0}.status-badge{text-transform:capitalize;justify-self:start;padding:5px 8px;font-size:9px}.status-badge.present{color:#5e8464;background:#e5f0e3}.status-badge.late{color:#9c792c;background:#fbf1d9}.status-badge.absent{color:#a75e4c;background:#f8e7e1}.status-badge.excused{color:#77756d;background:#eeede8}.status-badge.upcoming{color:#89867d;background:#f0eee8}.status-badge.green{color:#5e8464;background:#e5f0e3}.status-control{align-items:center;width:120px;display:flex;position:relative}.status-control select{appearance:none;color:#66645c;cursor:pointer;background:#fffefa;border:1px solid #e8e5de;border-radius:6px;width:100%;padding:7px 24px 7px 9px;font-size:9px}.status-control>svg{color:#a7a49a;pointer-events:none;position:absolute;right:8px}.roster-table.compact .roster-head,.roster-table.compact .roster-row{grid-template-columns:minmax(180px,1fr) 100px 100px 120px}.table-footnote{border-top:1px solid var(--line);color:#8c9388;align-items:center;gap:7px;margin-top:13px;padding-top:12px;font-size:8px;display:flex}.table-footnote svg{color:#78957c;flex:none}.empty-state{color:var(--muted);text-align:center;justify-items:center;gap:8px;padding:36px 12px;display:grid}.empty-state strong{color:#4a4943;font-size:11px}.empty-state span{font-size:9px}.sessions-layout{grid-template-columns:minmax(0,1.55fr) minmax(250px,.7fr);align-items:start;gap:16px;display:grid}.panel-intro{color:var(--muted);margin:8px 0 0;font-size:9px}.session-list{margin-top:14px}.session-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:14px 0;display:flex}.session-row-info{flex:1;min-width:0}.session-row-info>div{align-items:center;gap:9px;display:flex}.session-row-info strong{text-overflow:ellipsis;white-space:nowrap;margin:4px 0 5px;font-size:11px;display:block;overflow:hidden}.date-label{color:#96938a;font-size:8px}.session-row-meta{flex-direction:column;align-items:flex-end;gap:6px;min-width:86px;display:flex}.roster-count{color:var(--muted);align-items:center;gap:4px;font-size:8px;display:flex}.row-action{color:#64635c;background:0 0;border:0;align-items:center;gap:5px;padding:6px;font-size:9px;font-weight:700;display:inline-flex}.row-action:hover{color:var(--coral)}.session-tip{background:#faf8f2;padding:23px}.tip-icon{color:#617e66;background:#e0eadc;border-radius:9px;place-items:center;width:33px;height:33px;margin-bottom:22px;display:grid}.session-tip h2{letter-spacing:-.7px;max-width:225px;margin:0 0 10px;font-size:17px;line-height:1.35}.session-tip>p:not(.eyebrow){color:var(--muted);margin:0 0 16px;font-size:9px;line-height:1.7}.attendance-panel{padding:22px 24px}.attendance-heading{align-items:center}.attendance-heading h2{font-size:17px}.panel-subtitle{color:var(--muted);margin:7px 0 0;font-size:9px}.panel-subtitle span,.report-hero p:last-child span{color:#c3beb4;padding:0 3px}.roster-summary{background:#fbfaf6;border:1px solid #f0eee8;border-radius:8px;flex-wrap:wrap;gap:10px;margin:19px 0 0;padding:12px 13px;display:flex}.roster-summary span{color:#858279;border-right:1px solid #e9e6df;align-items:center;gap:5px;padding-right:13px;font-size:8px;display:flex}.roster-summary span:last-child{border:0;padding:0}.roster-summary strong{color:#34342e;font-size:10px}.roster-toolbar{align-items:center;gap:10px;margin-top:17px;display:flex}.search-field{color:#9a978e;background:#fffefa;border:1px solid #e4e1d9;border-radius:7px;flex:1;align-items:center;gap:8px;min-width:190px;padding:0 10px;display:flex}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:9px 0;font-size:9px}.search-field input:focus-visible{outline:0}.filter-field{color:#959188;align-items:center;gap:7px;font-size:8px;display:flex}.filter-field select{color:#55544d;background:#fffefa;border:1px solid #e4e1d9;border-radius:7px;padding:8px 25px 8px 9px;font-size:8px}.reset-button{padding:8px 10px;font-size:8px}.reports-view{gap:16px;display:grid}.report-hero{background:#d6e5e7;border-radius:11px;justify-content:space-between;align-items:flex-start;gap:15px;padding:23px 25px;display:flex}.report-hero h2{letter-spacing:-.8px;margin:0 0 7px;font-size:20px}.report-hero p:last-child{color:#657d82;margin:0;font-size:9px}.report-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.report-cards .stat-card{min-height:118px}.report-breakdown .distribution-row{max-width:620px}.report-breakdown .report-status-list{gap:16px;margin-top:20px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#24241f75;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--paper);border:1px solid #ebe7de;border-radius:14px;width:min(100%,470px);padding:28px;animation:.18s ease-out modal-in;position:relative;box-shadow:0 24px 80px #17171335}.modal-close{border:1px solid var(--line);color:#747169;background:0 0;border-radius:7px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:17px;right:17px}.modal-card h2{letter-spacing:-.8px;margin:0 0 7px;font-size:20px}.modal-description{color:var(--muted);margin:0 0 20px;font-size:9px}.modal-card form{gap:13px;display:grid}.modal-card label{color:#716f67;gap:6px;font-size:9px;font-weight:700;display:grid}.modal-card input{width:100%;color:var(--ink);background:#fffefa;border:1px solid #e2ded5;border-radius:7px;padding:10px 11px;font-size:10px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-error{color:#a65342;background:#f8e4df;border-radius:6px;margin:0;padding:9px 10px;font-size:9px}.modal-submit{width:100%;margin-top:3px}.login-page{background:var(--paper);grid-template-columns:1.08fr .92fr;min-height:100vh;display:grid}.login-art{color:#fff8ed;background:#252522;align-items:flex-end;padding:56px clamp(35px,7vw,110px);display:flex;position:relative;overflow:hidden}.login-art-copy{z-index:1;max-width:470px;position:relative}.login-art>.brand{z-index:1;padding:0;position:absolute;top:28px;left:clamp(35px,7vw,110px)}.login-art .eyebrow{color:#f4a08d;margin-bottom:17px}.login-art h1{letter-spacing:-4px;max-width:500px;margin:0 0 22px;font-size:clamp(42px,6vw,75px);line-height:.98}.login-art-copy>p:last-child{color:#aaa79e;max-width:355px;font-size:12px;line-height:1.8}.login-orbit{border:1px solid #ffffff20;border-radius:50%;position:absolute}.orbit-one{width:550px;height:550px;top:9%;right:-210px}.orbit-two{border-color:#ef745e66;width:370px;height:370px;top:25%;right:-35px}.login-panel{place-items:center;padding:35px;display:grid}.login-form-wrap{width:min(100%,360px)}.mobile-brand{align-items:center;gap:9px;margin-bottom:45px;display:none}.mobile-brand strong{letter-spacing:-.7px;font-size:18px}.login-form-wrap h2{letter-spacing:-1.1px;margin:0 0 9px;font-size:27px}.login-muted{color:var(--muted);margin:0 0 27px;font-size:10px}.login-form-wrap label{color:#69675f;gap:7px;margin-bottom:15px;font-size:9px;font-weight:700;display:grid}.login-form-wrap input{width:100%;color:var(--ink);background:#fffdf8;border:1px solid #dcd6ca;border-radius:7px;outline:none;padding:11px 12px;font-size:10px}.login-form-wrap input:focus{border-color:var(--coral);box-shadow:0 0 0 3px #ef745e18}.login-button{width:100%;margin-top:4px;padding:12px}.login-button:disabled{cursor:wait;opacity:.7}.auth-error{color:#a65342;background:#f8e4df;border-radius:6px;margin:0 0 11px;padding:9px;font-size:9px}.demo-button{width:100%;color:var(--ink);background:0 0;border:1px solid #dcd6ca;border-radius:7px;margin-top:10px;padding:11px;font-size:9px;font-weight:800}.demo-button:hover{border-color:var(--coral)}.login-footnote{color:#aaa69b;text-align:center;margin-top:25px;font-size:8px}.nav-scrim{display:none}@keyframes slide-in{0%{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse{50%{box-shadow:0 0 0 4px #e8796322}}@media (width<=1100px){.sidebar{flex-basis:224px;width:224px}.page-wrap,.topbar{padding-left:30px;padding-right:30px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}}@media (width<=780px){.sidebar{z-index:31;width:260px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:12px 0 35px #2525221f}.sidebar.is-open{transform:translate(0)}.nav-scrim{z-index:30;background:#25252255;border:0;display:block;position:fixed;inset:0}.menu-button{display:grid}.topbar{height:63px;padding:0 18px}.breadcrumb{margin-left:11px;margin-right:auto}.top-actions{gap:11px}.page-wrap{padding:28px 18px 48px}.sessions-layout{grid-template-columns:1fr}.session-tip{display:none}}@media (width<=560px){.term-label{display:none}.welcome-row{flex-direction:column;align-items:flex-start;margin-bottom:20px}.welcome-row h1{font-size:28px}.welcome-row>.primary-button{width:100%}.demo-banner{align-items:flex-start}.demo-tag{align-self:center}.stat-grid,.report-cards{grid-template-columns:1fr 1fr;gap:9px}.stat-card{min-height:117px;padding:14px}.stat-card strong{font-size:21px}.active-card{grid-template-columns:auto minmax(0,1fr)}.active-card>.primary-button{grid-column:1/-1;width:100%}.panel{padding:17px}.attendance-panel{padding:17px 14px}.attendance-heading{flex-direction:column;align-items:flex-start}.roster-summary{gap:8px}.roster-summary span{padding-right:8px}.roster-toolbar{flex-wrap:wrap;align-items:stretch}.search-field{flex-basis:100%;min-width:100%}.filter-field{flex:1;justify-content:space-between}.filter-field select,.reset-button{flex:1}.roster-table{overflow-x:auto}.roster-head,.roster-row{grid-template-columns:minmax(180px,1fr) 90px 90px 120px;gap:8px;min-width:620px}.roster-table.compact .roster-head,.roster-table.compact .roster-row{grid-template-columns:minmax(170px,1fr) 75px 85px 110px;gap:7px;min-width:510px}.session-row{gap:8px}.session-row .session-art{width:36px;height:36px}.session-row-meta{display:none}.row-action{font-size:0}.row-action svg{width:17px;height:17px}.report-hero{flex-direction:column;align-items:flex-start;padding:19px}.report-hero h2{font-size:18px}.roster-preview{overflow:hidden}.roster-preview .roster-table{padding-bottom:2px}.panel-footer{flex-direction:column;align-items:flex-start}.modal-card{padding:23px 18px}.toast{top:12px;left:12px;right:12px}}@media (width<=380px){.page-wrap,.topbar{padding-left:13px;padding-right:13px}.demo-banner div:nth-child(2) span{max-width:185px;line-height:1.45}.demo-tag{font-size:7px}.form-grid{grid-template-columns:1fr}.report-cards .stat-card small{max-width:100px}}@media (width<=900px){.login-page{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh}.mobile-brand{display:flex}}.storage-warning{color:#825c27;background:#fff7e8;border:1px solid #efd6b7;border-radius:7px;align-items:center;gap:9px;margin:-10px 0 18px;padding:10px 12px;font-size:9px;display:flex}.status-badge.unmarked{color:#77756d;background:#eeede8}.storage-warning>svg{flex:none}.storage-warning span{flex:1}.storage-warning button{color:inherit;background:0 0;border:0;place-items:center;padding:3px;display:grid}.storage-error{place-items:center;min-height:100vh;padding:24px;display:grid}.storage-error .panel{width:min(100%,500px);padding:30px}.storage-error h1{letter-spacing:-.8px;font-size:22px}.storage-error p{color:var(--muted);margin-bottom:20px;font-size:11px;line-height:1.6}.optional-label{color:#aaa69b;font-size:8px;font-weight:400}.check-label{border:1px solid var(--line);background:#faf9f5;border-radius:7px;align-items:center;padding:9px 10px;gap:9px!important;display:flex!important}.check-label input{width:14px;height:14px;accent-color:var(--coral)}.session-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.session-heading-actions .primary-button,.session-heading-actions .outline-button{padding:8px 10px;font-size:8px}.session-select-field,.list-toolbar label{color:var(--muted);align-items:center;gap:8px;font-size:9px;display:flex}.session-select-field{margin-top:18px}.session-select-field select,.list-toolbar select{border:1px solid var(--line);color:#55544d;background:var(--paper);border-radius:6px;min-width:220px;padding:8px 10px;font-size:9px}.list-toolbar{justify-content:flex-end;margin-top:17px;display:flex}.list-toolbar select{min-width:140px}.add-roster-form{color:#858279;background:#fcfbf7;border:1px dashed #ded9ce;border-radius:8px;align-items:center;gap:9px;margin-top:17px;padding:10px;display:flex}.add-roster-form>svg{flex:none}.add-roster-form select{border:1px solid var(--line);color:#55544d;background:var(--paper);border-radius:6px;flex:1;min-width:0;padding:8px 9px;font-size:9px}.add-roster-form button{padding:8px 10px;font-size:8px}.add-roster-form button:disabled{cursor:not-allowed;opacity:.5}.selected-session-row{background:#faf8f2;border-radius:7px;margin-left:-9px;margin-right:-9px;padding-left:9px;padding-right:9px}.session-row-link{color:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.session-row-link:hover strong{color:var(--coral)}.row-actions{align-items:center;gap:4px;display:flex}.row-actions .outline-button{padding:7px 8px;font-size:8px}.icon-action{border:1px solid var(--line);color:#77746c;background:var(--paper);border-radius:6px;place-items:center;width:28px;height:28px;display:inline-grid}.icon-action:hover{color:#a35342;background:#fff8f4;border-color:#e6b1a3}.archive-action:hover{color:#8d632f;background:#fffaf0;border-color:#e7c9a0}.student-toolbar{margin-bottom:5px}.student-directory{width:100%;margin-top:17px;overflow-x:auto}.directory-head,.directory-row{grid-template-columns:minmax(190px,1.2fr) minmax(100px,.7fr) minmax(170px,1.2fr) 100px 76px;align-items:center;gap:12px;min-width:700px;display:grid}.directory-head{border-bottom:1px solid var(--line);color:#a09d94;letter-spacing:.45px;text-transform:uppercase;padding:10px 0;font:9px DM Mono,monospace}.directory-row{border-bottom:1px solid #f0eee8;min-height:55px;padding:8px 0}.directory-row:last-child{border-bottom:0}.directory-row .student-cell strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.directory-code,.directory-email{color:#77746c;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.directory-row .status-badge{margin:0}.directory-actions{align-items:center;gap:5px;display:flex}.report-filter-panel{align-items:center;gap:12px;display:flex}.report-filter-panel>div{flex:1}.report-filter-panel .filter-field select{max-width:330px}.history-table{width:100%;margin-top:17px;overflow-x:auto}.history-head,.history-row{grid-template-columns:minmax(220px,1.6fr) 100px 55px 45px 55px 55px 95px 35px;align-items:center;gap:9px;min-width:840px;display:grid}.history-head{border-bottom:1px solid var(--line);color:#a09d94;letter-spacing:.4px;text-transform:uppercase;padding:10px 0;font:8px DM Mono,monospace}.history-row{color:#77746c;border-bottom:1px solid #f0eee8;min-height:56px;padding:8px 0;font-size:9px}.history-row>div strong,.history-row>div small{display:block}.history-row>div strong{color:#383831;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.history-row>div small{color:#99968d;margin-top:4px;font-size:8px}.history-row>strong{color:#4a4943;font-weight:700}.history-row .status-badge{margin:0}.settings-view{gap:16px;display:grid}.data-card{grid-template-columns:40px minmax(0,1fr);gap:15px;display:grid}.data-card-icon{color:#5f8065;background:#e4eee2;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.data-card h2,.backup-panel h2,.reset-panel h2{letter-spacing:-.4px;margin:0 0 7px;font-size:15px}.data-card p:not(.eyebrow),.reset-panel p:not(.eyebrow){max-width:690px;color:var(--muted);margin:0;font-size:9px;line-height:1.7}.data-facts{flex-wrap:wrap;gap:12px;margin-top:15px;display:flex}.data-facts span{border:1px solid var(--line);color:#77746c;background:#fcfbf7;border-radius:6px;padding:7px 9px;font-size:8px}.data-facts strong{color:var(--ink);margin-right:4px;font-size:10px}.backup-actions{flex-wrap:wrap;gap:9px;margin-top:17px;display:flex}.backup-panel>.form-error{margin-top:12px}.invite-code{overflow-wrap:anywhere;color:var(--ink);background:#faf9f5;border:1px dashed #d9d4ca;border-radius:7px;margin-top:14px;padding:12px;font:11px DM Mono,monospace}.sign-out-button{margin-left:2px}.reset-panel{border-color:#ead9d3;justify-content:space-between;align-items:center;gap:18px;display:flex}.reset-panel .eyebrow{color:#a85f4d}.reset-panel .outline-button{color:#975847;border-color:#e2c6bd}.activity-panel{margin-top:17px}.activity-list{margin-top:12px;display:grid}.activity-row{border-top:1px solid var(--line);gap:10px;padding:11px 0;display:flex}.activity-dot{background:#9eb89d;border-radius:50%;flex:none;width:7px;height:7px;margin-top:4px}.activity-row strong,.activity-row small{display:block}.activity-row strong{color:#55544d;font-size:9px;font-weight:700}.activity-row small{color:#99968d;text-transform:capitalize;margin-top:4px;font-size:8px}@media (width<=780px){.session-heading-actions{justify-content:flex-start}.report-filter-panel{flex-wrap:wrap;align-items:flex-start}.report-filter-panel>div{min-width:100%}.report-filter-panel .filter-field{flex:1}.report-filter-panel .filter-field select{max-width:unset;flex:1}}@media (width<=560px){.session-select-field{flex-direction:column;align-items:flex-start}.session-select-field select{width:100%;min-width:0}.session-heading-actions{width:100%}.session-heading-actions .status-badge{margin-right:auto}.add-roster-form{flex-wrap:wrap;align-items:stretch}.add-roster-form>svg{align-self:center}.add-roster-form select{flex-basis:calc(100% - 32px)}.add-roster-form button{width:100%}.row-actions{flex-direction:column;align-items:flex-end}.reset-panel{flex-direction:column;align-items:flex-start}.reset-panel .outline-button{width:100%}.backup-actions{flex-direction:column}.backup-actions button,.report-filter-panel>.outline-button{width:100%}}
