:root{--ink:#16233a;--muted:#647086;--line:#e5e9f0;--surface:#fff;--canvas:#f6f8fc;--blue:#3968e8;--navy:#14213d}*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}a,button{font:inherit}a{color:inherit}.sr-only{clip:rect(0,0,0,0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.app-shell{min-height:100vh}.sidebar{display:none}.mobile-header{align-items:center;background:var(--navy);display:flex;height:64px;justify-content:space-between;padding:9px 20px}.mobile-header .sign-out{background:transparent;border-color:#9aa8c4;min-height:44px;padding:8px 14px}.mobile-header .sign-out:hover{background:#273757;border-color:#eaf0ff}.app-shell-logo{display:block;flex:none;line-height:0}.mobile-logo,.mobile-logo img{height:40px;width:40px}.main-content{max-width:1280px;margin:auto;padding:32px 20px 96px}.skip-link{position:fixed;left:16px;top:-60px;background:var(--surface-elevated);padding:10px 14px;z-index:5;border-radius:8px}.skip-link:focus{top:16px}.page-header{margin-bottom:28px}.eyebrow{color:var(--blue);font-size:.77rem;font-weight:700;letter-spacing:.11em;margin:0 0 5px;text-transform:uppercase}.page-header h1{font-size:clamp(2rem,6vw,3.25rem);line-height:1.08;letter-spacing:-.04em;margin:0}.page-header>p:last-child{color:var(--muted);margin:10px 0 0;max-width:580px}.metrics{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr)}.metric-card,.panel,.placeholder{background:var(--surface);border:1px solid var(--line);border-radius:16px}.metric-card{min-height:151px;padding:17px;position:relative;overflow:hidden}.metric-card:before{background:var(--card-color);content:"";height:4px;left:0;position:absolute;right:0;top:0}.metric-card p{color:var(--muted);font-size:.82rem;font-weight:700;margin:0}.metric-card strong{display:block;font-size:2.15rem;letter-spacing:-.05em;margin:13px 0 1px}.metric-card span{color:var(--muted);font-size:.77rem}.metric-card a{color:var(--blue);display:block;font-size:.78rem;font-weight:700;margin-top:8px;text-decoration:none}.blue{--card-color:#3968e8}.mint{--card-color:#20a77a}.amber{--card-color:#e99b27}.violet{--card-color:#815ad5}.dashboard-grid{display:grid;grid-gap:16px;gap:16px;margin-top:16px}.panel{padding:20px}.panel-heading{align-items:center;display:flex;justify-content:space-between;gap:10px}.panel-heading h2{font-size:1.2rem;margin:0}.panel-heading a,.panel-heading button{background:none;border:0;color:var(--blue);cursor:pointer;font-size:.85rem;font-weight:700;padding:8px;text-decoration:none}.dashboard-empty{color:var(--muted);padding:32px 8px;text-align:center}.dashboard-empty a,.dashboard-more a,.dashboard-record-link{color:var(--blue);font-weight:700}.dashboard-error{background:var(--semantic-warning-bg);border:1px solid var(--semantic-warning-border);border-radius:10px;color:var(--semantic-warning);padding:10px 14px}.dashboard-more{color:var(--muted);font-size:.82rem}.dashboard-record-link{font-size:.78rem;grid-column:2;text-decoration:none}.lesson-list{margin-top:14px}.lesson-row{align-items:center;border-top:1px solid var(--line);display:flex;gap:13px;padding:14px 0}.lesson-row time{background:var(--primary-subtle);border-radius:9px;color:var(--blue);font-size:.72rem;font-weight:700;line-height:1.1;padding:8px;text-align:center}.activity-list h3,.lesson-row h3{font-size:.94rem;margin:0}.activity-list p,.lesson-row p{color:var(--muted);font-size:.8rem;margin:2px 0 0}.status{border-radius:100px;font-size:.68rem;font-weight:700;margin-left:auto;padding:5px 7px}.activity-list{list-style:none;margin:14px 0 0;padding:0}.activity-list li{align-items:flex-start;border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;grid-template-columns:10px minmax(0,1fr);padding:14px 0}.activity-list time{color:var(--muted);font-size:.72rem;grid-column:2}.activity-dot{background:var(--primary-border);border-radius:50%;height:8px;margin-top:6px;width:8px}.mobile-nav{background:var(--surface-elevated);border-top:1px solid var(--line);bottom:0;display:flex;justify-content:space-around;left:0;position:fixed;right:0;z-index:2}.nav-link{align-items:center;border-radius:10px;color:var(--muted);display:flex;font-size:.68rem;gap:7px;padding:10px 7px;text-decoration:none}.mobile-nav .nav-link{flex-direction:column;gap:2px;min-height:57px;justify-content:center}.nav-link.active{color:var(--blue);font-weight:700}.nav-icon{font-size:1.1rem;line-height:1}.placeholder{max-width:720px;padding:36px 24px;text-align:center}.placeholder>span{color:var(--blue);font-size:1.7rem}.placeholder h2{font-size:1.4rem;margin:12px 0 6px}.placeholder p{color:var(--muted);margin:0 auto;max-width:520px}a:focus-visible,button:focus-visible{outline:3px solid #f3a72e;outline-offset:3px}@media(min-width:520px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:760px){.main-content{padding:48px 44px 40px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-list li{grid-template-columns:10px minmax(0,1fr) auto}.activity-list time{grid-column:auto}}@media(min-width:1024px){.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{align-self:start;background:var(--navy);color:#eaf0ff;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;padding:28px 17px;position:-webkit-sticky;position:sticky;top:0}.mobile-header{display:none}.desktop-logo,.desktop-logo img{height:52px;width:52px}.brand-note{color:#9aa8c4;font-size:.76rem;margin:8px 9px 30px}.sidebar-nav{display:grid;grid-gap:5px;gap:5px}.sidebar .nav-link{color:#aebbd2;font-size:.9rem;padding:12px}.sidebar .nav-link.active,.sidebar .nav-link:hover{background:#273757;color:#fff}.sidebar-footer{border-top:1px solid #30405e;color:#aebbd2;font-size:.75rem;margin-top:auto;padding:18px 9px 0}.sidebar-footer span{color:#73829e}.mobile-nav{display:none}.main-content{padding:54px 58px}.page-header{margin-bottom:34px}}.activity-list,.activity-list li,.activity-list li>div,.activity-panel,.dashboard-grid,.dashboard-grid>.panel{min-width:0}.activity-list h3,.activity-list p{overflow-wrap:anywhere}.auth-page{align-items:center;background:linear-gradient(135deg,#f6f8fc,#edf2ff);display:flex;justify-content:center;min-height:100vh;padding:24px}.auth-card{background:var(--surface-elevated);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 45px var(--shadow);max-width:470px;padding:30px;width:100%}.auth-brand{align-items:center;display:flex;font-size:1.15rem;font-weight:400;gap:8px;margin-bottom:30px;text-decoration:none}.auth-brand span{background:var(--blue);border-radius:8px;color:#fff;padding:2px 7px}.auth-logo{width:max-content}.auth-logo img{height:64px;width:64px}.auth-card h1{font-size:clamp(1.8rem,7vw,2.35rem);letter-spacing:-.04em;line-height:1.08;margin:0}.auth-description{color:var(--muted);margin:10px 0 24px}.auth-form{display:grid;grid-gap:16px;gap:16px}.auth-form label{color:var(--ink);display:grid;font-size:.88rem;font-weight:700;grid-gap:6px;gap:6px}.auth-form input{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);font:inherit;font-weight:400;min-height:46px;padding:10px 12px;width:100%}.auth-form input:focus{border-color:var(--blue);outline:3px solid var(--primary-focus)}.name-fields{display:grid;grid-gap:16px;gap:16px}.primary-button,.sign-out{background:var(--blue);border:1px solid var(--blue);border-radius:9px;color:#fff;cursor:pointer;font-weight:700;min-height:46px;padding:10px 16px}.primary-button:hover,.sign-out:hover{background:#2858d6}.primary-button:disabled,.sign-out:disabled{opacity:.7}.form-message{border-radius:9px;font-size:.88rem;margin:0;min-width:0;overflow-wrap:anywhere;padding:10px 12px}.form-message.error{background:var(--semantic-error-bg);color:var(--semantic-error)}.form-message.success{background:var(--semantic-success-bg);color:var(--semantic-success)}.auth-switch{color:var(--muted);font-size:.88rem;line-height:1.8;margin:22px 0 0}.auth-switch a{color:var(--blue);font-weight:700}.sidebar-footer .sign-out{background:transparent;border-color:#73829e;font-size:.82rem;margin-bottom:12px;min-height:36px;width:100%}.sidebar-footer>span{display:block}@media(min-width:480px){.name-fields{grid-template-columns:1fr 1fr}.auth-card{padding:38px}}.password-input-wrap{display:block;position:relative}.auth-form .password-input-wrap input{padding-right:52px}.password-visibility{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--muted);cursor:pointer;display:flex;height:38px;justify-content:center;padding:8px;position:absolute;right:4px;top:4px;width:40px}.password-visibility:hover{background:var(--primary-subtle);color:var(--blue)}.password-visibility:focus-visible{outline:3px solid #f3a72e;outline-offset:1px}.password-visibility svg{fill:none;height:22px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:22px}.password-requirements{background:var(--surface-soft);border-radius:9px;color:var(--muted);font-size:.8rem;margin-top:-7px;padding:10px 12px}.password-requirements p{color:var(--ink);font-weight:700;margin:0}.password-requirements ul{display:flex;flex-wrap:wrap;gap:3px 20px;margin:7px 0 0;padding-left:19px}.auth-form input[aria-invalid=true]{border-color:var(--semantic-error-border)}.auth-form>.field-error{margin-top:-10px}.password-errors p{margin:0}.password-errors ul{margin:4px 0 0;padding-left:20px}.auth-link-button{display:block;text-align:center;text-decoration:none}.password-requirements li{align-items:center;display:flex;gap:5px}.password-requirements .requirement-satisfied{color:var(--semantic-success);font-weight:700}.requirement-indicator{display:inline-block;font-weight:800;min-width:1em;text-align:center}.auth-experience{border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 65px var(--shadow);max-width:980px;overflow:hidden;position:relative}.auth-experience,.auth-form-pane{background:var(--surface-elevated);width:100%}.auth-form-pane{padding:30px}.auth-mobile-logo{margin-bottom:24px}.auth-mobile-switch{color:var(--muted);font-size:.88rem;margin:20px 0 0}.auth-mobile-switch a,.auth-recovery a{color:var(--blue);font-weight:700}.auth-brand-panel{display:none}@media(min-width:800px){.auth-experience{display:grid;grid-template-columns:1fr 1fr;min-height:650px;perspective:1200px}.auth-form-pane{align-self:center;grid-column:1;padding:52px 58px}.auth-experience.is-sign-up .auth-form-pane{grid-column:2}.auth-mobile-logo,.auth-mobile-switch{display:none}.auth-brand-panel{align-items:center;background:linear-gradient(145deg,#14213d,#1d3565 58%,#315fc7);color:#fff;display:flex;flex-direction:column;inset:0 0 0 50%;justify-content:center;overflow:hidden;padding:56px;position:absolute;text-align:center;transform-origin:left center;width:50%;z-index:1}.auth-brand-panel:before{background:radial-gradient(circle,rgba(255,255,255,.13),transparent 68%);content:"";height:420px;position:absolute;right:-190px;top:-190px;width:420px}.is-sign-up .auth-brand-panel{inset:0 50% 0 0;transform-origin:right center}.auth-brand-panel .auth-brand{margin:0 0 32px;position:relative}.auth-brand-panel .auth-logo img{height:80px;width:80px}.auth-brand-copy{position:relative}.auth-brand-kicker{color:#b9c9ed;font-size:.76rem;font-weight:700;letter-spacing:.12em;margin:0 0 8px;text-transform:uppercase}.auth-brand-copy h2{font-size:1.75rem;letter-spacing:-.035em;line-height:1.15;margin:0}.auth-brand-copy>p:not(.auth-brand-kicker){color:#dce6fb;margin:12px auto 26px;max-width:280px}.auth-panel-action{border:1px solid rgba(255,255,255,.72);border-radius:9px;color:#fff;display:inline-block;font-weight:700;min-width:160px;padding:10px 18px;text-decoration:none}.auth-panel-action:hover{background:var(--surface-elevated);color:var(--navy)}.is-sign-in .auth-brand-panel{animation:auth-panel-from-left .42s ease-in-out both}.is-sign-up .auth-brand-panel{animation:auth-panel-from-right .42s ease-in-out both}.is-sign-in .auth-form-pane{animation:auth-form-from-right .42s ease-in-out both}.is-sign-up .auth-form-pane{animation:auth-form-from-left .42s ease-in-out both}}@keyframes auth-panel-from-left{0%{opacity:.94;transform:translateX(-100%) rotateY(-4deg)}to{opacity:1;transform:translateX(0) rotateY(0)}}@keyframes auth-panel-from-right{0%{opacity:.94;transform:translateX(100%) rotateY(4deg)}to{opacity:1;transform:translateX(0) rotateY(0)}}@keyframes auth-form-from-right{0%{opacity:.45;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}@keyframes auth-form-from-left{0%{opacity:.45;transform:translateX(-18px)}to{opacity:1;transform:translateX(0)}}@media(prefers-reduced-motion:reduce){.auth-brand-panel,.auth-form-pane{animation:none!important;transition:none!important;transform:none!important}}.workflow-note{background:var(--primary-subtle);border-left:4px solid var(--blue);border-radius:8px;color:var(--muted);font-size:.86rem;margin:0 0 24px;padding:11px 14px}.student-view-switcher{background:var(--surface-subtle);border:1px solid var(--line);border-radius:10px;display:grid;grid-gap:4px;gap:4px;margin-bottom:18px;padding:4px}.student-view-switcher a{border-radius:7px;color:var(--muted);font-size:.86rem;font-weight:700;padding:10px 14px;text-align:center;text-decoration:none}.student-view-switcher a[aria-current=page]{background:var(--surface-elevated);box-shadow:0 1px 3px var(--shadow);color:var(--blue)}.student-view-switcher a:focus-visible{outline:3px solid var(--primary-focus);outline-offset:2px}.students-layout{display:grid;grid-gap:18px;gap:18px}.create-student-panel,.student-list-panel{padding:20px}.student-section-heading{align-items:center;display:flex;justify-content:space-between}.create-student-panel h2,.student-section-heading h2{font-size:1.25rem;margin:0}.student-count{align-items:center;background:var(--primary-subtle);border-radius:50%;color:var(--blue);display:flex;font-size:.8rem;font-weight:700;height:32px;justify-content:center;width:32px}.students-state{color:var(--muted);padding:48px 20px;text-align:center}.students-state>span{color:var(--blue);font-size:1.8rem}.students-state h3{color:var(--ink);font-size:1.05rem;margin:10px 0 4px}.students-state p{margin:0 auto;max-width:430px}.archived-empty-state a{color:var(--blue);display:inline-block;font-size:.86rem;font-weight:700;margin-top:14px}.student-list{list-style:none;margin:16px 0 0;padding:0}.student-list li{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto 1fr;padding:16px 0}.student-avatar{align-items:center;background:var(--primary-subtle);border-radius:10px;color:var(--blue);display:flex;font-size:.78rem;font-weight:800;height:40px;justify-content:center;text-transform:uppercase;width:40px}.student-summary h3{font-size:1rem;margin:0}.student-contact{display:flex;flex-wrap:wrap;gap:3px 14px;margin-top:3px}.student-contact a{color:var(--muted);font-size:.82rem}.student-indicators{display:flex;flex-wrap:wrap;gap:6px;grid-column:2;justify-self:start}.archived-indicator,.notes-indicator{border-radius:100px;font-size:.7rem;font-weight:700;padding:4px 8px}.notes-indicator{background:var(--semantic-note-bg);color:var(--semantic-note)}.archived-indicator{background:var(--semantic-neutral-bg);border:1px solid var(--line);color:var(--semantic-neutral)}.form-intro{color:var(--muted);font-size:.82rem;margin:5px 0 18px}.student-form,.student-name-fields{display:grid;grid-gap:14px;gap:14px}.student-field{display:grid;grid-gap:6px;gap:6px}.student-form label{font-size:.86rem;font-weight:700}.student-form input,.student-form textarea{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);font:inherit;padding:10px 12px;width:100%}.student-form input{min-height:44px}.student-form textarea{min-height:100px;resize:vertical}.student-form input:focus,.student-form textarea:focus{border-color:var(--blue);outline:3px solid var(--primary-focus)}.student-form [aria-invalid=true]{border-color:var(--semantic-error-border)}.field-error{color:var(--semantic-error);font-size:.78rem;margin:0}.student-form .primary-button{width:100%}@media(min-width:480px){.student-view-switcher{display:inline-grid;grid-template-columns:1fr 1fr}}@media(min-width:600px){.student-name-fields{grid-template-columns:1fr 1fr}.student-list li{grid-template-columns:auto 1fr auto}.student-indicators{grid-column:auto;justify-self:end}}@media(min-width:1000px){.students-layout{align-items:start;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr)}.students-layout.archived-roster-layout{grid-template-columns:1fr}.create-student-panel,.student-list-panel{padding:24px}.create-student-panel{position:-webkit-sticky;position:sticky;top:32px}}.student-name-link{color:var(--ink);-webkit-text-decoration-color:#b9c7ed;text-decoration-color:#b9c7ed;text-underline-offset:3px}.back-link,.student-name-link:hover{color:var(--blue)}.back-link{display:inline-block;font-size:.88rem;font-weight:700;margin-bottom:20px;text-decoration:none}.student-detail-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.student-detail-header h1{font-size:clamp(2rem,6vw,3.1rem);letter-spacing:-.04em;line-height:1.08;margin:0}.student-state{border-radius:100px;font-size:.75rem;font-weight:800;margin-top:7px;padding:6px 10px}.student-state.active{background:var(--semantic-success-bg);color:var(--semantic-success)}.student-state.archived{background:var(--semantic-neutral-bg);color:var(--muted)}.student-overview{margin-bottom:18px}.status-control h2,.student-edit-panel h2,.student-overview h2{font-size:1.25rem;margin:0 0 16px}.student-overview dl{display:grid;grid-gap:18px;gap:18px;margin:0}.student-overview dl>div{min-width:0}.student-overview dt{color:var(--muted);font-size:.76rem;font-weight:700;margin-bottom:3px;text-transform:uppercase}.student-overview dd{margin:0;overflow-wrap:anywhere}.notes-detail dd{white-space:pre-wrap}.missing-value{color:var(--muted);font-style:italic}.student-detail-layout{display:grid;grid-gap:18px;gap:18px}.status-control p{color:var(--muted);font-size:.88rem}.status-control form{display:grid;grid-gap:14px;gap:14px}.archive-confirm{align-items:flex-start;display:flex;font-size:.84rem;font-weight:600;gap:9px}.archive-confirm input{height:18px;margin:2px 0 0;width:18px}.danger-button{background:var(--surface-elevated);cursor:pointer;font-weight:700;min-height:46px;padding:10px 16px}.danger-button:hover{background:var(--semantic-error-bg)}.danger-button:disabled{opacity:.7}@media(min-width:600px){.student-overview dl{grid-template-columns:1fr 1fr}.student-overview .notes-detail{grid-column:1/-1}}@media(min-width:900px){.student-detail-layout{align-items:start;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr)}.status-control,.student-edit-panel,.student-overview{padding:24px}.status-control{position:-webkit-sticky;position:sticky;top:32px}}.student-form select{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);font:inherit;min-height:44px;padding:10px 12px;width:100%}.course-list{list-style:none;margin:16px 0 0;padding:0}.course-list li{align-items:center;border-top:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding:15px 0}.course-list h3,.course-list p{margin:0}.course-list p{color:var(--muted);font-size:.85rem;margin-top:3px}.course-list a{color:var(--blue);font-weight:700}.course-detail-layout{display:grid;grid-gap:18px;gap:18px;margin-bottom:18px}.course-detail-layout h2,.current-students h2,.enrollment-history h2,.enrollment-panel h2{font-size:1.25rem;margin:0 0 16px}.status-label{background:var(--primary-subtle);border:1px solid var(--primary-border);border-radius:100px;color:var(--primary-strong);font-size:.72rem;font-weight:800;padding:4px 8px;text-transform:capitalize}.current-students{margin-top:18px}.enrollment-history,.enrollment-panel{margin-bottom:18px}.enrollment-summary{display:grid;grid-gap:14px;gap:14px;margin:0 0 18px}.enrollment-summary dt{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.enrollment-summary dd{margin:2px 0 0;white-space:pre-wrap}.enrollment-summary a{color:var(--blue);font-weight:700}.enrollment-actions{display:flex;flex-wrap:wrap;gap:10px}.enrollment-actions form{display:grid;grid-gap:5px;gap:5px}.enrollment-actions button{min-height:40px;padding:7px 13px}.enrollment-history{margin-top:18px}@media(min-width:800px){.course-detail-layout{align-items:start;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr)}.enrollment-summary{grid-template-columns:repeat(3,1fr)}.enrollment-summary div:last-child{grid-column:1/-1}}.enrollment-panel,.enrollment-panel .student-field,.enrollment-panel .student-form{min-width:0}.enrollment-course-field{width:100%}.enrollment-course-field .searchable-combobox-list{max-width:100%;overflow-x:hidden}.enrollment-course-field .searchable-combobox-list li{overflow-wrap:anywhere}.course-lesson-heading>div,.course-lesson-summary,.course-list li>div,.enrollment-summary>div,.student-contact,.student-detail-header>div,.student-list li,.student-summary{min-width:0}.course-lesson-summary h3,.course-lesson-summary p,.course-list a,.course-list h3,.course-list p,.enrollment-summary dd,.student-contact a,.student-detail-header h1,.student-name-link{overflow-wrap:anywhere}.course-list>li>span,.student-indicators,.student-state{flex-shrink:0}.student-name-fields{align-items:start}.student-name-fields>.student-field{width:100%}.course-lessons h2{font-size:1.25rem;margin:0}.course-lesson-list{list-style:none;margin:16px 0 0;padding:0}.course-lesson-list>li{align-items:flex-start;border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:36px minmax(0,1fr);padding:16px 0}.lesson-position{align-items:center;background:var(--primary-subtle);border-radius:9px;color:var(--blue);display:flex;font-size:.8rem;font-weight:800;height:36px;justify-content:center}.course-lesson-heading{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between}.course-lesson-summary h3{font-size:1rem;margin:5px 0 0}.course-lesson-summary p{color:var(--muted);font-size:.85rem;margin:5px 0 0;white-space:pre-wrap}.lesson-category{background:var(--semantic-neutral-bg);border-radius:100px;color:var(--muted);font-size:.7rem;font-weight:800;padding:4px 8px}.lesson-list-state{color:var(--muted);padding:36px 18px;text-align:center}.lesson-list-state h3{color:var(--ink);font-size:1rem;margin:0 0 4px}.lesson-list-state p{margin:0}.lesson-incomplete{background:var(--semantic-warning-bg);border:1px solid var(--semantic-warning-border);border-radius:9px;padding:10px 12px}.lesson-incomplete h3{color:var(--semantic-warning);margin:0}.lesson-incomplete p{color:var(--semantic-warning);margin-top:2px}.lesson-list-error{background:var(--semantic-error-bg);border-radius:9px;margin-top:16px}.lesson-list-error,.lesson-list-error h3{color:var(--semantic-error)}.create-lesson-form{background:var(--canvas);border:1px solid var(--line);border-radius:12px;margin-top:16px;padding:16px}.create-lesson-form h3{font-size:1rem;margin:0}.create-lesson-form .primary-button{justify-self:start;width:auto}@media(min-width:700px){.create-lesson-form form{grid-template-columns:1fr 1fr}.create-lesson-form .form-message,.create-lesson-form .primary-button,.create-lesson-form .student-field:last-of-type{grid-column:1/-1}}.assigned-course-plan{margin-bottom:18px}.assigned-course-plan h2{font-size:1.25rem;margin:0}.assigned-plan-intro{color:var(--muted);font-size:.85rem;margin:5px 0 0}.assigned-plan-warning{background:var(--semantic-warning-bg);border:1px solid var(--semantic-warning-border);border-radius:9px;color:var(--semantic-warning);margin-top:16px;padding:11px 12px}.assigned-course-plan .course-lesson-list{margin-top:12px}@media(min-width:900px){.assigned-course-plan{padding:24px}}.assigned-plan-status{background:var(--semantic-neutral-bg);border-radius:9px;color:var(--muted);font-size:.85rem;margin:14px 0 0;padding:10px 12px}.lesson-attempt-controls{margin-top:12px}.lesson-attempt-action{align-items:flex-start;display:flex;flex-direction:column;gap:6px}.lesson-attempt-button,.lesson-attempt-link{display:inline-flex;justify-content:center;min-height:40px;padding:7px 13px;text-decoration:none}.lesson-attempt-link:hover{background:#2858d6}.lesson-attempt-button:disabled{opacity:.58}.calendar-resume-conflict,.lesson-attempt-resume-link{color:var(--blue);font-size:.86rem;font-weight:800}.lesson-disabled-reason{font-size:.78rem!important;margin:0!important;max-width:420px}.attempt-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.attempt-header h1{font-size:clamp(2rem,6vw,3.1rem);letter-spacing:-.04em;line-height:1.08;margin:0}.attempt-header>div>p:last-child{color:var(--muted);margin:8px 0 0}.attempt-in-progress{background:var(--semantic-success-bg);border-color:#bce8d4;color:var(--semantic-success)}.attempt-workspace{max-width:850px}.attempt-state{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;padding-bottom:18px}.attempt-state>span{color:#20a77a;font-size:1.4rem}.attempt-state .eyebrow{margin:0}.attempt-state h2{font-size:1.35rem;margin:0}.attempt-details{display:grid;grid-gap:18px;gap:18px;margin:20px 0 0}.attempt-details dt{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.attempt-details dd{margin:3px 0 0;white-space:pre-wrap}.attempt-description{grid-column:1/-1}@media(min-width:600px){.attempt-details{grid-template-columns:1fr 1fr}}@media(min-width:900px){.attempt-workspace{padding:24px}}.attempt-back-link,.attempt-details>div,.attempt-header,.attempt-header>div,.attempt-item,.attempt-item-title,.attempt-item-title h3,.attempt-state>div,.attempt-workspace{min-width:0}.attempt-back-link,.attempt-details dd,.attempt-header h1,.attempt-header>div>p:last-child,.attempt-item-title h3{overflow-wrap:anywhere}.attempt-header .status-label,.attempt-item-title>span{flex-shrink:0}.attempt-workspace{width:100%}.assigned-course-plan .course-lesson-list>li{padding:11px 0}.assigned-course-plan .course-lesson-summary h3{margin-top:2px}.assigned-lesson-description{color:var(--muted);font-size:.85rem;margin-top:6px}.assigned-lesson-description summary{border-radius:5px;color:var(--blue);cursor:pointer;font-weight:700;width:max-content;max-width:100%}.assigned-lesson-description summary:focus-visible{outline:3px solid var(--primary-focus);outline-offset:3px}.assigned-lesson-description p{margin:6px 0 0}.assigned-course-plan .lesson-attempt-controls{margin-top:8px}.modal-backdrop{align-items:center;background:rgba(12,21,39,.58);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:20}.modal-card{background:var(--surface-elevated);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 55px rgba(12,21,39,.25);max-width:460px;padding:22px;position:relative;width:100%}.modal-card h2{font-size:1.25rem;margin:0;padding-right:38px}.modal-card p{color:var(--muted);margin:9px 0 20px}.modal-card .primary-button{width:100%}.modal-close-button{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--muted);cursor:pointer;display:flex;font-size:1.6rem;height:44px;justify-content:center;line-height:1;padding:0;position:absolute;right:10px;top:9px;width:44px}.modal-close-button:hover{background:var(--surface-subtle);color:var(--ink)}@media(min-width:480px){.modal-card{padding:26px}.modal-card .primary-button{width:auto}.modal-close-button{right:12px;top:11px}}.attempt-terminal>span{color:#647086}.attempt-actions{align-items:stretch;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px;margin-top:22px;padding-top:20px}.attempt-cancel-button{background:transparent;border:1px solid var(--semantic-error-border);border-radius:9px;color:var(--semantic-error);cursor:pointer;font-weight:700;min-height:46px;padding:10px 16px}.attempt-cancel-button:hover{background:var(--semantic-error-hover)}.modal-actions{display:flex;flex-direction:column;gap:10px}.modal-card .form-message{margin:-8px 0 16px}.modal-actions .danger-button,.modal-actions .lesson-cancel-button{width:100%}@media(min-width:480px){.attempt-actions,.modal-actions{align-items:center;flex-direction:row}.modal-actions .danger-button,.modal-actions .lesson-cancel-button{width:auto}}.lesson-edit-trigger{background:transparent;border:0;color:var(--blue);cursor:pointer;font-size:.82rem;font-weight:800;padding:4px 0}.lesson-edit-form{background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:12px}.lesson-edit-actions{display:flex;flex-wrap:wrap;gap:8px}.lesson-cancel-button,.lesson-edit-actions .primary-button{min-height:40px;padding:7px 13px;width:auto}.lesson-cancel-button{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);cursor:pointer;font-weight:700}.lesson-cancel-button:hover{background:var(--surface-subtle)}.lesson-edit-success{color:var(--semantic-success);font-size:.82rem;margin:10px 0 0;min-height:1.25rem;min-width:0;overflow-wrap:anywhere}.lesson-edit-actions .lesson-edit-success{flex-basis:100%;margin:2px 0 0}.lesson-edit-message{margin:0}@media(min-width:700px){.lesson-edit-form{grid-template-columns:1fr 1fr}.lesson-edit-actions,.lesson-edit-description,.lesson-edit-message{grid-column:1/-1}}.lesson-summary-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.lesson-item-count{color:var(--muted);font-size:.78rem!important;font-weight:800;margin:3px 0 0!important;text-transform:uppercase;white-space:normal!important}.lesson-description-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.lesson-items-disclosure{align-items:center;background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);display:inline-flex;font-size:.82rem;font-weight:800;gap:6px;min-height:40px;padding:7px 12px}.lesson-items-disclosure:hover{background:var(--surface-subtle)}.lesson-disclosure-icon{color:var(--blue);font-size:.8rem;line-height:1}.lesson-summary-items-region{margin-top:12px}.lesson-summary-items{margin:0;padding-left:22px}.lesson-summary-items li{margin-top:6px}.lesson-summary-items li::marker{color:var(--blue);font-weight:800}@media(max-width:520px){.lesson-summary-actions{align-items:stretch;flex-direction:column}.lesson-edit-trigger,.lesson-items-disclosure{justify-content:center;width:100%}}@media(min-width:1024px){.app-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar-toggle{align-items:center;align-self:flex-end;background:transparent;border:1px solid #53617c;border-radius:8px;color:#eaf0ff;cursor:pointer;display:flex;font-size:1.15rem;height:36px;justify-content:center;margin-bottom:18px;width:40px}.sidebar-toggle:hover{background:#273757}.sidebar-collapsed .desktop-logo,.sidebar-collapsed .sidebar-toggle{align-self:center}.sidebar-collapsed .desktop-logo,.sidebar-collapsed .desktop-logo img{height:46px;width:46px}.sidebar-collapsed .brand-note,.sidebar-collapsed .sidebar-footer>span,.sidebar-collapsed .sidebar-label{display:none}.sidebar-collapsed .nav-label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.sidebar-collapsed .sidebar .nav-link{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed .sidebar-footer{padding-left:0;padding-right:0}.sidebar-collapsed .sidebar-footer .sign-out{font-size:0;padding:7px}.sidebar-collapsed .sidebar-footer .sign-out:after{content:"⇥";font-size:1.1rem}.main-content{min-width:0;width:100%}}.lesson-item-editor{border:0;padding:0;margin:0;min-width:0}.lesson-item-editor legend{font-weight:700;margin-bottom:.25rem}.lesson-item-row{border:1px solid var(--border,#cbd5e1);border-radius:.6rem;padding:.75rem;margin:.65rem 0}.lesson-item-row label{display:block;font-weight:650;margin-bottom:.35rem}.lesson-item-row input{width:100%}.lesson-item-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.55rem}.attempt-status-choices button,.lesson-item-buttons button{min-height:44px;padding:.55rem .85rem}.lesson-item-add{margin:.35rem 0 1rem}.attempt-items{margin-top:1.5rem}.attempt-items ol{list-style:none;margin:0;padding:0;display:grid;grid-gap:.85rem;gap:.85rem}.attempt-item{border:1px solid var(--border,#cbd5e1);border-radius:.75rem;padding:1rem}.attempt-item-title{display:flex;gap:.75rem;align-items:flex-start}.attempt-item-title>span{display:grid;place-items:center;min-width:2rem;height:2rem;border-radius:999px;background:#e8eef8;font-weight:750}.attempt-item-title h3{margin:.2rem 0 .75rem;font-size:1rem}.attempt-carryover-badge{background:var(--primary-subtle);border:1px solid var(--primary-border);border-radius:999px;color:var(--primary-strong);display:inline-block;font-size:.68rem;margin-left:.35rem;padding:3px 7px;vertical-align:middle}.attempt-carryover-context{background:var(--surface-soft);border-left:4px solid var(--primary-border);border-radius:8px;margin:.1rem 0 .8rem;padding:9px 10px}.attempt-carryover-context strong{font-size:.78rem}.attempt-carryover-context p{font-size:.86rem;margin:3px 0 0;white-space:pre-wrap}.attempt-status-choices{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.45rem;gap:.45rem}.attempt-status-choices legend{font-weight:650;margin-bottom:.4rem}.attempt-status-choices button[aria-pressed=true]{font-weight:750}.inline-save-error,.save-status{min-height:1.3rem;margin:.45rem 0 0;font-size:.9rem}.inline-save-error{color:#a21c1c}.attempt-final-status{margin:0;font-weight:700}.attempt-items-empty{margin-top:1.5rem;padding:1rem;background:#f5f6f8;border-radius:.6rem}@media (max-width:600px){.attempt-status-choices{grid-template-columns:1fr}.attempt-status-choices button{width:100%}}.attempt-note-form,.overall-notes-form{display:grid;grid-gap:.45rem;gap:.45rem}.attempt-note-form label,.overall-notes-form label{font-weight:700}.attempt-note-form textarea,.overall-notes-form textarea{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);font:inherit;padding:10px 12px;resize:vertical;width:100%}.attempt-note-form textarea:focus,.overall-notes-form textarea:focus{border-color:var(--blue);outline:3px solid var(--primary-focus)}.note-form-footer{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.78rem;gap:10px;justify-content:space-between}.note-save-button{min-height:44px}.overall-notes{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.overall-notes h2{font-size:1.25rem;margin:0 0 12px}.overall-notes-form>label{position:absolute;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}.terminal-notes{background:var(--surface-soft);border-radius:8px;margin-top:12px;padding:10px 12px}.terminal-notes h4{font-size:.82rem;margin:0 0 4px}.terminal-notes p{margin:0;white-space:pre-wrap}.empty-note{color:var(--muted);font-style:italic}.attempt-final-status span{color:var(--muted);font-weight:600}.completion-counts{display:grid;grid-gap:7px;gap:7px;grid-template-columns:repeat(3,1fr);margin:16px 0}.completion-counts span{background:var(--surface-subtle);border-radius:8px;font-size:.78rem;padding:8px;text-align:center}.completion-counts strong{display:block;font-size:1.2rem}.completion-review h3{font-size:.9rem;margin:12px 0 3px}.completion-review ul{margin:0;padding-left:22px}.completion-review p{margin:10px 0}.completion-acknowledgment{align-items:flex-start;background:var(--semantic-warning-bg);border:1px solid var(--semantic-warning-border);border-radius:8px;display:flex;font-size:.85rem;font-weight:650;gap:9px;margin:16px 0;padding:10px}.completion-acknowledgment input{height:18px;margin:2px 0 0;width:18px}.completion-review{max-height:55vh;overflow:auto}.modal-card:has(.completion-review){max-width:560px}.attempt-status-choices button{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:8px;color:var(--ink);align-items:center;display:inline-flex;gap:6px;justify-content:center;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}.attempt-status-icon{flex:0 0 auto;height:18px;width:18px}.attempt-status-choices button[aria-pressed=true]{font-weight:800;outline:3px solid #173f75;outline-offset:1px}.attempt-final-sat,.attempt-status-sat[aria-pressed=true]{background:var(--semantic-success-selected)!important;border-color:var(--semantic-success-border)!important;color:var(--semantic-success)!important}.attempt-final-unsat,.attempt-status-unsat[aria-pressed=true]{background:var(--semantic-error-bg)!important;border-color:var(--semantic-error-border)!important;color:var(--semantic-error)!important}.attempt-final-incomplete,.attempt-status-incomplete[aria-pressed=true]{background:var(--semantic-warning-selected)!important;border-color:var(--semantic-warning-border)!important;color:var(--semantic-warning)!important}@media(hover:hover){.attempt-status-choices button:not(:disabled):hover{background:var(--primary-subtle);border-color:var(--primary-border);box-shadow:0 1px 3px var(--shadow)}.attempt-status-sat[aria-pressed=true]:hover{background:var(--semantic-success-hover)!important;border-color:var(--semantic-success-border-strong)!important;box-shadow:0 1px 3px #12654a2e}.attempt-status-unsat[aria-pressed=true]:hover{background:var(--semantic-error-hover)!important;border-color:var(--semantic-error-border-strong)!important;box-shadow:0 1px 3px #9223332e}.attempt-status-incomplete[aria-pressed=true]:hover{background:var(--semantic-warning-hover)!important;border-color:var(--semantic-warning-border-strong)!important;box-shadow:0 1px 3px #76500d2e}}.attempt-unsatisfactory-outcome{background:var(--semantic-error-bg);border-color:var(--semantic-error-border);color:var(--semantic-error)}.attempt-unsatisfactory-text{color:var(--semantic-error)}.outcome-choices{border:0;display:grid;grid-gap:9px;gap:9px;margin:16px 0;padding:0}.outcome-choices legend{font-weight:800;margin-bottom:6px}.outcome-choices label{align-items:flex-start;border:1px solid var(--line);border-radius:9px;cursor:pointer;display:flex;gap:10px;padding:11px}.outcome-choices label:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 2px #cfdbfa}.outcome-choices input{height:20px;width:20px}.outcome-choices span{color:var(--muted);font-size:.84rem}.outcome-choices strong{color:var(--ink);display:block;font-size:.92rem}.attempt-history{margin-bottom:18px}.attempt-history h2{font-size:1.25rem;margin:0 0 16px}.attempt-history ul{display:grid;grid-gap:12px;gap:12px;list-style:none;margin:0;padding:0}.attempt-history li{border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;padding:16px 0}.attempt-history h3,.attempt-history p{margin:0}.attempt-history p{color:var(--muted);font-size:.84rem}.attempt-history dl{display:grid;grid-gap:10px;gap:10px;margin:0}.attempt-history dt{color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase}.attempt-history dd{font-size:.85rem;margin:1px 0 0}.history-unsatisfactory{color:var(--semantic-error);font-weight:800}.attempt-history-link{color:var(--blue);font-weight:800;min-height:44px;padding:10px 0}@media(min-width:700px){.attempt-history li{align-items:center;grid-template-columns:minmax(150px,1fr) 2fr auto}.attempt-history dl{grid-template-columns:repeat(2,1fr)}}.students-page-heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px}.students-page-heading .page-header{flex:1 1;min-width:0;margin-bottom:0}.add-student-link{align-items:center;display:inline-flex;flex:0 0 auto;justify-content:center;text-decoration:none}.roster-controls{align-items:end;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.student-list-panel{width:100%}.roster-search{display:grid;grid-gap:6px;gap:6px;margin:20px 0 4px;max-width:520px}.roster-search label{font-size:.86rem;font-weight:700}.roster-search input{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:44px;padding:10px 12px;width:100%}.roster-search input:focus{border-color:var(--blue);outline:3px solid var(--primary-focus)}.active-indicator{background:var(--semantic-success-bg);border-radius:100px;color:var(--semantic-success);font-size:.7rem;font-weight:700;padding:4px 8px}.students-state a{color:var(--blue);display:inline-block;font-weight:700;margin-top:14px}.student-form-page{max-width:760px}.student-form-page .create-student-panel{position:static}.form-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.form-actions .primary-button{width:auto}.secondary-link-button{align-items:center;border:1px solid var(--input-border);border-radius:9px;display:inline-flex;font-weight:700;justify-content:center;min-height:46px;padding:10px 16px;text-decoration:none}.secondary-link-button:hover{background:var(--surface-subtle)}.student-detail-nav{border-bottom:1px solid var(--line);display:flex;margin-bottom:24px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.student-detail-nav a{border-bottom:3px solid transparent;color:var(--muted);flex:0 0 auto;font-size:.88rem;font-weight:700;min-height:48px;padding:12px 16px;text-decoration:none}.student-detail-nav a:hover{background:var(--surface-subtle);color:var(--ink)}.student-detail-nav a[aria-current=page]{border-color:var(--blue);color:var(--blue)}.student-workflow-note{margin-top:0}.student-route-message{margin-bottom:18px}.overview-training-summary dl,.overview-training-summary h2{margin-top:0}.overview-training-summary dl{display:grid;grid-gap:16px;gap:16px}.overview-training-summary dt{color:var(--muted);font-size:.76rem;font-weight:700;text-transform:uppercase}.overview-training-summary dd{margin:3px 0 0}.overview-training-summary>a{color:var(--blue);display:inline-block;font-weight:700;margin-top:16px}.route-section-title{font-size:1.5rem;margin:0 0 16px}.section-empty-state{color:var(--muted);padding:30px 10px;text-align:center}.section-empty-state h3{color:var(--ink);margin:0 0 4px}.section-empty-state p{margin:0}.status-control,.student-edit-panel{min-width:0}.notes-detail dd,.student-form textarea{overflow-wrap:anywhere}.sidebar-footer .sign-out:hover{background:#273757;border-color:#9aa8c4;color:#fff}@media(min-width:600px){.overview-training-summary dl{grid-template-columns:1fr 1fr}}@media(max-width:599px){.students-page-heading{flex-direction:column}.student-view-switcher,.students-page-heading .add-student-link{width:100%}.student-list li{align-items:start}.student-indicators{grid-column:2}.student-detail-header{align-items:flex-start;flex-direction:column}.student-state{margin-top:0}}.roster-search-control{align-items:center;display:flex;gap:8px}.roster-search-control input{min-width:0}.roster-search-control button{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);cursor:pointer;flex:0 0 auto;font-weight:700;min-height:44px;padding:9px 14px}.roster-search-control button:hover{background:var(--surface-hover);border-color:var(--input-border)}.roster-search-control button:focus-visible{outline:3px solid #f3a72e;outline-offset:3px}.student-identity-sticky{background:var(--canvas);border-bottom:1px solid #d7dde7;box-shadow:0 5px 10px -10px rgba(22,35,58,.55);margin-bottom:24px;padding-top:4px;position:-webkit-sticky;position:sticky;top:0;z-index:3}.student-identity-sticky .back-link,.student-identity-sticky .student-detail-header{margin-bottom:8px}.student-identity-sticky .student-detail-nav{margin-bottom:0}.not-found-roster-link{align-items:center;min-height:44px;padding:10px 4px;text-underline-offset:3px}.not-found-roster-link:hover{color:#2858d6;text-decoration-thickness:2px}@media(max-width:599px){.student-identity-sticky{margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}.student-identity-sticky .student-detail-header{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto}.student-identity-sticky .student-detail-header h1{font-size:clamp(1.55rem,8vw,2rem);overflow-wrap:anywhere}.student-identity-sticky .student-detail-header .eyebrow{font-size:.68rem}.student-identity-sticky .student-state{white-space:nowrap}.student-identity-sticky .student-detail-nav a{padding-left:14px;padding-right:14px}.roster-search-control{align-items:stretch;flex-direction:column}.roster-search-control button{align-self:flex-start}}.local-persistence-messages{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.local-recovery-message,.local-save-status{font-size:.82rem;margin:0}.local-save-status{color:var(--muted)}.local-recovery-message{background:var(--semantic-success-bg);border-radius:8px;color:var(--semantic-success);margin-bottom:8px;padding:9px 11px}.lesson-save-status-area{background:var(--surface-elevated);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 12px var(--shadow);box-sizing:border-box;display:grid;grid-gap:5px;gap:5px;margin:0 0 14px;min-height:52px;padding:9px 11px;position:-webkit-sticky;position:sticky;top:12px;z-index:2}.lesson-save-status-warning{background:var(--semantic-warning-bg);border-color:#efd3a6}.lesson-local-save-status{min-height:1.2rem}.local-save-warning{color:var(--semantic-warning)}.field-local-save-status{color:var(--muted);font-size:.76rem;margin:6px 0 0}.field-local-save-warning{color:var(--semantic-warning)}.offline-lesson-save-status{align-self:start;max-width:100%;position:-webkit-sticky;position:sticky;top:12px;z-index:3}.lesson-connectivity-status{color:var(--semantic-success);font-size:.82rem;margin:0}.lesson-connectivity-warning{color:var(--semantic-warning)}.lesson-sync-button{background:var(--primary-subtle);border:1px solid var(--blue);border-radius:8px;color:var(--blue);font-weight:700;justify-self:start;margin-top:4px;min-height:38px;padding:7px 12px}.lesson-sync-button:hover{background:var(--primary-subtle-hover)}.overall-cloud-feedback{min-height:1.3rem}.overall-cloud-feedback p{margin:.45rem 0 0}.overall-cloud-feedback .status-retry-button{font-size:.78rem;margin-top:6px;min-height:34px;padding:5px 9px}.terminal-save-guard{background:var(--semantic-warning-bg);border:1px solid var(--semantic-warning-border);border-radius:8px;color:var(--semantic-warning);font-size:.86rem;margin:0 0 12px;padding:10px 12px;width:100%}.status-cloud-feedback{min-height:1.3rem}.status-cloud-feedback p{margin:.45rem 0 0}.status-cloud-feedback .status-retry-button{font-size:.78rem;margin-top:6px;min-height:34px;padding:5px 9px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}button[aria-busy=true]{cursor:wait;opacity:.72}.calendar-layout{display:grid;grid-gap:18px;gap:18px}.calendar-panel,.upcoming-panel{min-width:0}.calendar-toolbar{align-items:flex-start;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}.calendar-toolbar h2,.upcoming-panel h2{margin:0}.week-navigation{display:grid;grid-gap:7px;gap:7px;grid-template-columns:1fr auto 1fr;margin:18px 0}.secondary-button,.week-navigation button{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;color:var(--ink);font-weight:750;min-height:44px;padding:8px 11px}.week-navigation button:last-child{text-align:right}.week-grid{display:grid;grid-gap:10px;gap:10px}.calendar-day{border:1px solid var(--line);border-radius:11px;min-width:0;padding:11px}.calendar-day h3{align-items:center;display:flex;font-size:.9rem;justify-content:space-between;margin:0 0 9px}.calendar-day h3 small{background:var(--primary-subtle);border-radius:999px;color:var(--primary-strong);padding:3px 7px}.calendar-day>p{color:var(--muted);font-size:.8rem;margin:8px 0}.calendar-day ul,.upcoming-panel ol{display:grid;grid-gap:7px;gap:7px;list-style:none;margin:0;padding:0}.calendar-day li button,.upcoming-panel li button{background:var(--surface-soft);border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:8px;color:var(--ink);display:grid;font:inherit;grid-gap:3px;gap:3px;min-height:44px;padding:9px;text-align:left;width:100%}.calendar-day li button strong{font-size:.76rem}.calendar-day li button span{font-size:.82rem;overflow-wrap:anywhere}.week-empty-message{color:var(--muted);font-size:.86rem;text-align:center}.upcoming-panel h2{font-size:1.25rem;margin-bottom:14px}.upcoming-panel li button{border-left:0;border-top:3px solid var(--blue)}.upcoming-panel li span{color:var(--muted);font-size:.78rem}.calendar-empty{color:var(--muted);padding:24px 8px;text-align:center}.calendar-empty h3{color:var(--ink);font-size:1rem;margin:0 0 4px}.calendar-empty p{margin:0}.calendar-dialog{border:0;border-radius:14px;box-shadow:0 18px 60px var(--shadow);max-height:calc(100dvh - 24px);max-width:620px;overflow-x:hidden;overflow-y:auto;padding:22px;width:calc(100% - 24px)}.calendar-dialog::-webkit-backdrop{background:#16233a88}.calendar-dialog::backdrop{background:#16233a88}.dialog-heading{align-items:flex-start;display:flex;gap:15px;justify-content:space-between}.dialog-heading h2{margin:0}.dialog-close{background:var(--surface-subtle);border:0;border-radius:50%;font-size:1.4rem;height:44px;width:44px}.appointment-details{display:grid;grid-gap:15px;gap:15px;grid-template-columns:1fr 1fr;margin:22px 0}.appointment-details dt{color:var(--muted);font-size:.72rem;font-weight:750;text-transform:uppercase}.appointment-details dd{margin:3px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.detail-wide{grid-column:1/-1}.dialog-actions{align-items:center;display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.danger-button{background:var(--semantic-error-bg);border:1px solid var(--semantic-error-border);border-radius:9px;color:var(--semantic-error);font-weight:750;min-height:44px;padding:9px 14px}.schedule-fields{display:grid;grid-gap:13px;gap:13px;margin-top:20px}.schedule-fields label{display:grid;font-size:.84rem;font-weight:750;grid-gap:5px;gap:5px}.schedule-fields label span{color:var(--muted);font-weight:500}.schedule-fields input,.schedule-fields select,.schedule-fields textarea{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:44px;padding:9px 11px;width:100%}.schedule-fields textarea{min-height:90px;resize:vertical}.time-fields{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1fr}.form-error{background:var(--semantic-error-bg);border:1px solid var(--semantic-error-border);border-radius:8px;color:var(--semantic-error);padding:10px}.calendar-heading .page-header{margin-bottom:18px}@media(min-width:760px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:190px}.upcoming-panel{align-self:start}}@media(min-width:1180px){.week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1400px){.calendar-layout{grid-template-columns:minmax(0,1fr) 260px}}@media(min-width:1600px){.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{padding:8px}.calendar-day h3{align-items:flex-start;flex-direction:column;gap:4px}.calendar-day li button{padding:7px}}@media(max-width:500px){.calendar-toolbar .primary-button{width:100%}.week-navigation button{font-size:.75rem;padding:6px}.appointment-details{grid-template-columns:1fr}.detail-wide{grid-column:auto}.time-fields{grid-template-columns:1fr}.dialog-actions>*{width:100%}}.schedule-fields .linked-lesson-toggle{align-items:center;display:inline-flex;gap:10px;justify-self:start;min-height:44px;width:auto}.schedule-fields .linked-lesson-toggle input[type=checkbox]{accent-color:var(--primary);height:20px;margin:0;min-height:20px;padding:0;width:20px}.attempt-note-disclosure-row{align-items:center;display:flex;flex-wrap:wrap;gap:.55rem;justify-content:space-between;margin-top:.75rem}.attempt-note-present{background:var(--semantic-success-bg);border:1px solid var(--semantic-success-border);border-radius:999px;color:var(--semantic-success);font-size:.76rem;font-weight:700;padding:.25rem .55rem}.attempt-note-disclosure{background:var(--surface-elevated);border:1px solid var(--line);border-radius:999px;color:var(--blue);cursor:pointer;font:inherit;font-size:.85rem;font-weight:750;min-height:40px;padding:.45rem .8rem}.attempt-note-disclosure:hover{background:var(--surface-soft)}.attempt-note-disclosure:focus-visible{outline:3px solid var(--primary-focus);outline-offset:2px}.attempt-note-region{border-top:1px solid var(--line);margin-top:.8rem;padding-top:.8rem}.attempt-note-region[hidden]{display:none}@media (max-width:640px){.attempt-item{padding:.85rem}.attempt-note-disclosure-row{align-items:stretch;flex-direction:column}.attempt-note-disclosure{width:100%}}.start-carryover-panel{border:1px solid var(--line);border-radius:12px;margin:0 0 10px;max-width:620px;padding:14px}.start-carryover-panel legend{font-weight:800;padding:0 5px}.start-carryover-panel>p{color:var(--muted);font-size:.86rem;margin:0 0 10px}.start-carryover-list{display:grid;grid-gap:8px;gap:8px}.start-carryover-item{align-items:flex-start;border-top:1px solid var(--line);display:flex;gap:10px;padding-top:10px}.start-carryover-item:first-child{border-top:0;padding-top:0}.start-carryover-item input{flex:0 0 auto;height:20px;margin-top:2px;width:20px}.start-carryover-item>span{display:grid;grid-gap:4px;gap:4px;min-width:0}.start-carryover-note{background:var(--surface-soft);border-radius:7px;display:grid;font-size:.82rem;grid-gap:3px;gap:3px;padding:7px;white-space:pre-wrap}.start-carryover-note>strong{font-size:.78rem}.carryover-note{background:var(--surface-soft);border-radius:7px;margin-top:10px;padding:8px}.carryover-note>strong{font-size:.78rem}.carryover-note>p{margin:3px 0 0;white-space:pre-wrap}@media(max-width:640px){.start-carryover-panel{width:100%}}.carryover-panel{margin-bottom:18px;min-width:0}.carryover-panel h2{margin-top:0}.carryover-source{background:var(--surface-soft);border-radius:10px;margin:12px 0;padding:12px}.carryover-source h3,.carryover-source p{margin:0}.carryover-context,.carryover-source p{color:var(--muted);font-size:.86rem}.carryover-form fieldset{border:0;margin:0 0 14px;padding:0}.carryover-form legend{font-weight:800;margin-bottom:10px}.carryover-list,.carryover-review-list{display:grid;grid-gap:12px;gap:12px;list-style:none;margin:0;padding:0}.carryover-card,.carryover-review-item{border:1px solid var(--line);border-radius:12px;min-width:0;padding:14px;overflow-wrap:anywhere}.carryover-checkbox{align-items:flex-start;display:flex;font-weight:750;gap:10px}.carryover-checkbox input{height:20px;margin-top:2px;width:20px}.original-quick-note{background:var(--surface-soft);border-left:4px solid var(--primary-border);border-radius:8px;margin:10px 0;padding:10px}.original-quick-note strong{font-size:.8rem}.original-quick-note p{margin:4px 0 0;white-space:pre-wrap}.carryover-note-label{display:block;font-weight:750;margin-top:10px}.carryover-note-label span,.character-count{color:var(--muted);font-size:.8rem}.carryover-review-item textarea{border:1px solid var(--input-border);border-radius:9px;font:inherit;margin-top:5px;min-height:84px;padding:10px 12px;resize:vertical;width:100%}.carryover-review-item textarea:disabled{background:var(--surface-subtle)}.character-count{margin:4px 0 0;text-align:right}.carryover-card h3{font-size:1rem;margin:0}.carryover-actions{gap:12px;margin-top:10px}.carryover-actions,.carryover-status-form{align-items:center;display:flex;flex-wrap:wrap}.carryover-status-form{gap:8px}.carryover-disclosure{margin-bottom:18px}.carryover-disclosure>summary{cursor:pointer;font-weight:800;margin-bottom:10px;min-height:44px;padding:10px 0}@media(max-width:640px){.carryover-actions,.carryover-status-form{align-items:stretch;flex-direction:column}.carryover-actions a,.carryover-status-form button{width:100%}}.inline-validation-error,.terminal-validation-guard{color:var(--semantic-error)}.terminal-validation-guard{background:var(--semantic-error-bg);border:1px solid var(--semantic-error-border);border-radius:8px;font-size:.86rem;margin:0 0 12px;padding:10px 12px;width:100%}.carryover-status-badge{border:1px solid;border-radius:999px;display:inline-block;font-size:.72rem;font-weight:800;line-height:1;padding:4px 7px;text-transform:none}.carryover-status-unsat{background:var(--semantic-error-bg);border-color:#efb8b8;color:var(--semantic-error)}.carryover-status-incomplete{background:var(--semantic-warning-bg);border-color:#ead28b;color:var(--semantic-warning)}.carryover-context{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.carryover-list-disclosure>summary{align-items:center;cursor:pointer;display:flex;font-size:1.25rem;font-weight:800;gap:8px;min-height:44px}.carryover-count{background:var(--primary-subtle);border-radius:999px;color:var(--primary-strong);font-size:.72rem;padding:4px 8px}.carryover-list-disclosure[open]>summary{margin-bottom:16px}.carryover-older-toggle{margin-top:12px}.lesson-activity-controls{display:grid;grid-gap:6px;gap:6px;margin:0 0 18px;max-width:560px}.lesson-activity-controls label,.lesson-status-filter legend{font-size:.86rem;font-weight:750}.lesson-activity-controls input{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:46px;padding:10px 12px;width:100%}.lesson-activity-controls input:focus{border-color:var(--blue);outline:3px solid var(--primary-focus)}.lesson-activity-section{margin-bottom:18px}.lesson-activity-section-heading,.lesson-history-heading{align-items:flex-start;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}.lesson-activity-error h2,.lesson-activity-section-heading h2,.lesson-history-heading h2{font-size:1.25rem;margin:0}.lesson-activity-section-heading>span{background:var(--primary-subtle);border-radius:999px;color:var(--primary-strong);font-size:.8rem;font-weight:800;padding:5px 10px}.lesson-activity-list{display:grid;list-style:none;margin:16px 0 0;padding:0}.lesson-activity-list>li{border-top:1px solid var(--line);display:grid;grid-gap:13px;gap:13px;padding:18px 0}.lesson-activity-context{align-items:start;display:grid;grid-gap:11px;gap:11px;grid-template-columns:auto minmax(0,1fr)}.lesson-activity-position{align-items:center;background:var(--primary-subtle);border-radius:9px;color:var(--primary-strong);display:flex;font-size:.82rem;font-weight:800;height:38px;justify-content:center;width:38px}.lesson-activity-context h3{font-size:1rem;margin:0;overflow-wrap:anywhere}.lesson-activity-context p{color:var(--muted);font-size:.84rem;margin:3px 0 0;overflow-wrap:anywhere}.lesson-activity-meta{align-items:flex-start;color:var(--muted);display:flex;flex-direction:column;font-size:.8rem;gap:5px}.lesson-activity-action{align-items:center;display:inline-flex;justify-content:center;text-decoration:none}.lesson-activity-view{align-items:center;color:var(--blue);display:inline-flex;font-weight:800;min-height:44px}.history-state{border-radius:999px;font-size:.72rem;padding:4px 8px}.history-state-completed{background:var(--semantic-success-bg);color:var(--semantic-success)}.history-state-cancelled{background:var(--semantic-neutral-bg);color:var(--semantic-neutral)}.lesson-activity-empty{color:var(--muted);padding:34px 10px;text-align:center}.lesson-activity-empty h3{color:var(--ink);font-size:1rem;margin:0 0 4px}.lesson-activity-empty p,.lesson-activity-error p{margin:0}.lesson-status-filter{align-items:center;border:0;display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0}.lesson-status-filter legend{margin-bottom:5px;width:100%}.lesson-status-filter button{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:999px;color:var(--muted);font-size:.82rem;font-weight:750;min-height:38px;padding:7px 12px}.lesson-status-filter button[aria-pressed=true]{background:var(--primary-subtle);border-color:var(--primary-border);color:var(--primary-strong)}.lesson-activity-error{margin-top:18px}.lesson-activity-error p{color:var(--muted)}.skeleton{animation:skeleton-pulse 1.6s ease-in-out infinite;border-radius:7px;display:block}.lesson-activity-skeleton{display:grid;grid-gap:10px;gap:10px}.lesson-activity-skeleton .panel{display:grid;grid-gap:8px;gap:8px;margin-top:8px}.skeleton-eyebrow{height:12px;width:125px}.skeleton-title{height:46px;max-width:360px;width:70%}.skeleton-description{height:18px;max-width:570px;width:90%}.skeleton-control{height:46px;margin:17px 0 0;max-width:560px}.skeleton-section-title{height:25px;margin-bottom:4px;width:180px}.skeleton-attempt-row{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr);padding:17px 0}.skeleton-avatar{height:38px;width:38px}.skeleton-row-title{height:17px;max-width:280px;width:70%}.skeleton-row-detail{height:12px;margin-top:8px;max-width:360px;width:90%}.skeleton-row-action{grid-column:1/-1;height:44px;width:100%}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}@media(min-width:720px){.lesson-activity-list>li{align-items:center;grid-template-columns:minmax(220px,1.35fr) minmax(160px,.75fr) auto}.lesson-activity-action{min-width:140px}.lesson-activity-history>li{grid-template-columns:minmax(220px,1.35fr) minmax(190px,.75fr) auto}.skeleton-attempt-row{grid-template-columns:auto minmax(0,1fr) 140px}.skeleton-row-action{grid-column:auto;width:140px}}.lesson-history-count{align-items:flex-end;color:var(--muted);display:flex;flex-direction:column;font-size:.82rem;gap:2px}.lesson-history-total{font-weight:750}.lesson-history-filters{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;display:grid;grid-gap:12px;gap:12px;margin-top:16px;padding:14px}.history-search-field,.lesson-history-filters label{display:grid;font-size:.78rem;font-weight:750;grid-gap:5px;gap:5px}.lesson-history-filters input,.lesson-history-filters select{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:8px;color:var(--ink);font:inherit;min-height:42px;padding:8px 10px;width:100%}.history-search-submit{background:var(--surface-elevated);cursor:pointer}.history-clear-link{align-self:center;color:var(--blue);font-size:.84rem;font-weight:750}.lesson-activity-summary{align-items:flex-start;color:var(--muted);display:flex;flex-direction:column;font-size:.8rem;gap:5px}.history-result{border-radius:999px;font-size:.76rem;padding:5px 9px}.history-result-satisfactory{background:var(--semantic-success-bg);color:var(--semantic-success)}.history-result-unsatisfactory{background:var(--semantic-error-bg);color:var(--semantic-error)}.history-result-cancelled{background:var(--semantic-neutral-bg);color:var(--semantic-neutral)}.history-result-result.unavailable{background:var(--semantic-warning-bg);color:var(--semantic-warning)}.history-item-counts{color:var(--ink);font-weight:750}.lesson-history-pagination{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr auto 1fr;margin-top:12px;padding-top:18px;text-align:center}.lesson-history-pagination>span:first-child{text-align:left}.lesson-history-pagination>span:last-child{text-align:right}.lesson-history-pagination a{color:var(--blue);font-weight:800;min-height:44px;padding:10px 0}.lesson-history-pagination [aria-disabled=true]{color:var(--disabled-text)}.lesson-activity-empty a{color:var(--blue);display:inline-block;font-weight:750;margin-top:10px}.skeleton-filter-grid{display:grid;grid-gap:10px;gap:10px;margin:8px 0}.skeleton-filter-grid .skeleton-control{margin:0;max-width:none}@media(min-width:700px){.lesson-history-filters{align-items:end;grid-template-columns:repeat(2,minmax(0,1fr))}.history-search-field{grid-column:1/-1}.skeleton-filter-grid{grid-template-columns:2fr 1fr 1fr}.lesson-activity-history>li{grid-template-columns:minmax(220px,1.2fr) minmax(240px,1fr) auto}}@media(min-width:1400px){.lesson-history-filters{grid-template-columns:2fr repeat(4,minmax(120px,1fr))}.history-search-field{grid-column:auto}.history-search-submit{grid-column:1}.history-clear-link{grid-column:2}}.settings-workspace{display:grid;grid-gap:18px;gap:18px;max-width:680px}.settings-section{min-width:0}.settings-section h2{margin-top:0}.settings-description{color:var(--muted);margin-top:-4px}.settings-section form{display:grid;grid-gap:16px;gap:16px}.profile-name-fields label,.settings-section form>label{display:grid;font-weight:750;grid-gap:6px;gap:6px}.settings-section input:not([type]),.settings-section input[type=email]{border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:44px;min-width:0;padding:9px 11px;width:100%}.settings-section input[readonly]{background:var(--surface-subtle);color:var(--muted)}.settings-section label span{color:var(--muted);font-size:.8rem;font-weight:500}.profile-name-fields{display:grid;grid-gap:16px;gap:16px}@media(min-width:560px){.profile-name-fields{grid-template-columns:1fr 1fr}}.date-time-settings{max-width:680px}.date-time-settings h2{margin-top:0}.settings-effective{background:var(--surface-soft);border-radius:9px;padding:11px}.date-time-settings form{display:grid;grid-gap:16px;gap:16px}.date-time-settings form>label{display:grid;font-weight:750;grid-gap:6px;gap:6px}.date-time-settings input[list],.date-time-settings input[type=text]{border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:44px;padding:9px 11px}.date-time-settings label span{color:var(--muted);font-size:.8rem;font-weight:500}.date-time-settings fieldset{border:0;display:flex;gap:18px;margin:0;padding:0}.date-time-settings legend{font-weight:750;margin-bottom:8px}.date-time-settings fieldset label{align-items:center;display:flex;gap:7px}.success-message{background:var(--semantic-success-bg);border-radius:8px;color:var(--semantic-success);min-width:0;overflow-wrap:anywhere;padding:10px}.calendar-day small,.upcoming-panel small{color:var(--muted);font-size:.68rem}.account-security{display:grid;grid-gap:22px;gap:22px}.security-group{border-top:1px solid var(--line);padding-top:20px}.security-group h3{font-size:1rem;margin:0 0 12px}.account-email{display:flex;flex-wrap:wrap;gap:6px 12px}.account-email strong{overflow-wrap:anywhere}.account-security input[inputmode],.account-security input[type=password]{border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:44px;min-width:0;padding:9px 11px;width:100%}.account-security input[aria-invalid=true]{border-color:var(--semantic-error-border)}.account-security .password-requirements{margin-top:-7px}.recovery-option p{color:var(--muted)}.calendar-view-switcher{display:inline-flex;margin-top:16px;border:1px solid var(--input-border);border-radius:9px;overflow:hidden}.calendar-view-switcher button{background:var(--surface-elevated);border:0;border-right:1px solid var(--input-border);color:var(--ink);font-weight:750;min-height:40px;padding:7px 15px}.calendar-view-switcher button:last-child{border-right:0}.calendar-view-switcher button[aria-pressed=true]{background:var(--blue);color:#fff}.calendar-day button:focus-visible,.calendar-view-switcher button:focus-visible,.day-view button:focus-visible,.month-day button:focus-visible,.week-navigation button:focus-visible{outline:3px solid #f2a900;outline-offset:2px}.day-view ul{display:grid;grid-gap:10px;gap:10px;list-style:none;margin:0;padding:0}.day-view li{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;padding:10px}.day-view li>button{background:transparent;border:0;color:var(--ink);display:grid;font:inherit;grid-gap:4px;gap:4px;padding:3px;text-align:left;width:100%}.day-view li>button strong{font-size:1rem}.day-view li>button span{font-size:.9rem}.appointment-course,.appointment-location,.day-view li>button small{color:var(--muted);display:block;font-size:.76rem;margin:4px 3px}.today-banner{background:var(--primary-subtle);border-radius:8px;color:var(--primary-strong);font-weight:750;padding:8px 11px}.month-scroll{max-width:100%;overflow-x:auto;padding:3px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));min-width:672px}.month-weekdays{display:contents}.month-weekdays span{background:var(--surface-soft);font-size:.72rem;font-weight:800;padding:8px;text-align:center;text-transform:uppercase}.month-day,.month-weekdays span{border-bottom:1px solid var(--line)}.month-day{border-right:1px solid var(--line);min-height:142px;min-width:0;padding:7px}.month-day:nth-of-type(7n+2){border-left:1px solid var(--line)}.month-day h3{align-items:flex-start;display:flex;flex-wrap:wrap;font-size:.8rem;gap:4px;justify-content:space-between;margin:0 0 6px}.month-day h3 small{background:var(--primary-subtle);border-radius:999px;color:var(--primary-strong);font-size:.58rem;padding:2px 5px}.month-day.adjacent-month{background:var(--surface-subtle)}.month-day.adjacent-month>h3>span{color:var(--muted)}.month-day.adjacent-month h3 small:last-child{background:transparent;color:var(--muted);padding:2px 0;width:100%}.month-day ul{display:grid;grid-gap:4px;gap:4px;list-style:none;margin:0;padding:0}.month-appointment{background:var(--primary-subtle);border:0;border-left:3px solid var(--blue);border-radius:5px;color:var(--ink);display:grid;font:inherit;padding:5px;text-align:left;width:100%}.month-appointment span,.month-appointment strong{font-size:.64rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-appointment span:last-child{color:var(--muted)}.month-more{background:transparent;border:0;color:var(--primary-strong);font-size:.7rem;font-weight:750;margin-top:5px;padding:5px}.month-calendar{overflow:hidden}@media(max-width:500px){.calendar-view-switcher{display:flex}.calendar-view-switcher button{flex:1 1}.month-scroll{margin-left:-8px;margin-right:-8px}.month-day{min-height:125px}}.calendar-day.is-today,.month-day.is-today{background:var(--primary-subtle);box-shadow:inset 0 0 0 2px var(--primary-border)}.calendar-day-heading,.month-day-heading{background:transparent;border:0;color:inherit;font:inherit;padding:2px;text-align:left}.calendar-day-heading{display:grid;grid-gap:2px;gap:2px;width:100%}.calendar-day-heading strong{font-size:.86rem}.calendar-day-heading span{color:var(--muted);font-size:.72rem;font-weight:650}.month-day-heading{align-items:center;border-radius:4px;display:inline-flex;font-weight:800;justify-content:center;min-height:28px;min-width:28px}.month-day.adjacent-month .month-day-heading{color:var(--muted)}.calendar-day-heading,.month-day-heading{cursor:pointer}.calendar-day-heading{border-radius:7px;padding:5px}.calendar-day-heading:hover,.month-day-heading:hover{background:var(--surface-hover)}.calendar-day-heading:focus-visible,.month-day-heading:focus-visible{background:var(--primary-subtle)}@media(hover:none),(max-width:900px){.calendar-day-heading{min-height:44px;padding:7px 9px}.calendar-day-heading,.month-day-heading{background:var(--surface-subtle);border:1px solid var(--line)}.month-day-heading{border-radius:7px;min-height:36px;min-width:36px;padding:5px}.month-day.adjacent-month .month-day-heading{background:var(--semantic-neutral-bg)}}.dashboard-skeleton,.dashboard-skeleton .page-header{display:grid;grid-gap:10px;gap:10px}.skeleton-metric-label{height:13px;width:55%}.skeleton-metric-value{height:38px;margin-top:14px;width:35%}.skeleton-metric-detail{height:12px;margin-top:9px;width:80%}.skeleton-dashboard-panel{display:grid;grid-gap:8px;gap:8px;min-height:250px}.lesson-row small{color:var(--muted);display:block;font-size:.7rem;margin-top:3px}.dashboard-schedule-action{color:var(--blue);font-size:.78rem;font-weight:800;margin-left:auto;min-height:44px;padding:11px 0;text-align:right;text-decoration:none;white-space:nowrap}@media(max-width:520px){.lesson-row{align-items:flex-start;flex-wrap:wrap}.dashboard-schedule-action{margin-left:55px;text-align:left}}.student-roster-skeleton{display:grid}.skeleton-avatar-round{border-radius:50%}.skeleton-course-row{border-top:1px solid var(--line);padding:17px 0}.skeleton-course-row:first-of-type{margin-top:8px}.skeleton-button{height:44px;margin-top:16px;width:140px}.detail-skeleton{display:grid;grid-gap:16px;gap:16px}.detail-skeleton .panel{display:grid;grid-gap:9px;gap:9px}.skeleton-back-link{height:16px;width:150px}.skeleton-badge{border-radius:999px;height:30px;width:82px}.skeleton-workflow-note{height:42px;width:100%}.skeleton-detail-nav{display:flex;gap:8px;margin-top:14px;overflow:hidden}.skeleton-nav-item{flex:0 0 92px;height:42px}.skeleton-detail-grid{display:grid;grid-gap:18px;gap:18px;margin-top:20px}.skeleton-calendar-toolbar{align-items:end;display:flex;gap:12px;justify-content:space-between}.skeleton-calendar-toolbar .skeleton-control{flex:1 1}.skeleton-control-short{max-width:180px}.skeleton-calendar-grid{min-width:0}.skeleton-calendar-days{display:grid;grid-gap:7px;gap:7px;grid-template-columns:repeat(7,minmax(0,1fr))}.skeleton-calendar-day{height:190px}.skeleton-calendar-aside{align-self:start}.skeleton-calendar-aside .skeleton-row-detail{margin:12px 0;width:100%}.course-tab-heading{align-items:start;display:flex;gap:16px;justify-content:space-between}.course-tab-heading p{color:var(--muted);font-size:.88rem;margin:5px 0 0}.create-lesson-disclosure{margin-top:16px}.create-lesson-disclosure>summary{cursor:pointer;list-style:none;width:max-content;max-width:100%}.create-lesson-disclosure>summary::-webkit-details-marker{display:none}.create-lesson-disclosure>summary:focus-visible,.lesson-parent-link:focus-visible,.lesson-view-link:focus-visible{outline:3px solid var(--primary-focus);outline-offset:3px}.create-lesson-disclosure .create-lesson-form{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.lesson-view-link{color:var(--blue);display:inline-block;font-size:.85rem;font-weight:700;margin-top:10px}.course-overview,.course-overview dd,.course-overview h2,.dedicated-lesson-view,.lesson-detail,.lesson-detail dd,.lesson-detail-items li,.lesson-parent-link{min-width:0}.course-overview dd,.dedicated-lesson-view h2,.lesson-detail dd,.lesson-detail-items li,.lesson-parent-link{overflow-wrap:anywhere}.dedicated-lesson-view{display:grid;grid-gap:18px;gap:18px}.lesson-parent-link{justify-self:start;margin-bottom:0;max-width:100%}.lesson-detail h2{font-size:1.7rem;margin:0}.lesson-detail dl{display:grid;grid-gap:16px;gap:16px;margin:22px 0}.lesson-detail dt{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.lesson-detail dd{margin:3px 0 0;white-space:pre-wrap}.lesson-full-description{grid-column:1/-1}.lesson-detail>h3{font-size:1.05rem;margin:0 0 10px}.lesson-detail-items{margin:0;padding-left:24px}.lesson-detail-items li{padding:4px 0}.dedicated-lesson-editor h2{font-size:1.25rem;margin:0 0 12px}.archived-lesson-note{margin:0}@media(min-width:600px){.lesson-detail dl,.skeleton-detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:759px){.skeleton-calendar-days{grid-template-columns:1fr}.skeleton-calendar-day{height:64px}.skeleton-calendar-toolbar{align-items:stretch;flex-direction:column}.skeleton-calendar-toolbar .skeleton-control{margin-top:8px;max-width:none}.skeleton-workflow-note{height:58px}}.utc-display-preference>span:first-child{align-items:center;color:var(--ink);display:flex;font-size:.9rem;font-weight:750;gap:8px}.utc-display-preference input{height:20px;width:20px}.timezone-effective{align-items:center;display:flex;justify-content:space-between;margin:0}.timezone-effective button{flex:none}.timezone-pending{background:var(--primary-subtle);border:1px solid var(--primary-border);border-radius:9px;display:grid;grid-gap:2px;gap:2px;padding:10px 12px}.timezone-pending>small,.timezone-pending>span{color:var(--muted);font-size:.78rem}.timezone-field{display:grid;font-weight:750;grid-gap:6px;gap:6px;position:relative}.timezone-field>input{border:1px solid var(--input-border);border-radius:9px;font:inherit;min-height:44px;padding:9px 11px;width:100%}.timezone-field>span{color:var(--muted);font-size:.8rem;font-weight:500}.timezone-options{background:var(--surface);border:1px solid var(--input-border);border-radius:9px;box-shadow:0 10px 28px #16233a1a;list-style:none;margin:0;max-height:280px;overflow-y:auto;padding:5px;position:absolute;top:72px;width:100%;z-index:4}.timezone-options li{border-radius:7px;cursor:pointer;display:grid;font-weight:500;grid-gap:1px;gap:1px;padding:8px 10px}.timezone-options li.is-active,.timezone-options li:hover{background:var(--surface-soft)}.timezone-options small{color:var(--muted);font-size:.72rem}.timezone-options .timezone-no-results{color:var(--muted);cursor:default}:root{color-scheme:light;--auth-background:linear-gradient(135deg,#f6f8fc,#edf2ff);--primary:#3968e8;--primary-hover:#2858d6;--primary-strong:#294eaf;--primary-subtle:#edf2ff;--primary-subtle-hover:#dfe8ff;--primary-border:#9db6f8;--primary-focus:#c9d7ff;--focus:#f3a72e;--surface-elevated:#fff;--surface-soft:#f6f8fc;--surface-subtle:#eef1f6;--surface-hover:#e8edf5;--nav-surface:#14213d;--nav-hover:#273757;--input-border:#aeb8c8;--disabled-text:#8b94a4;--shadow:#16233a24;--semantic-error-bg:#fff1f1;--semantic-error-hover:#ffe3e6;--semantic-error:#9f1d20;--semantic-error-border:#d7939c;--semantic-error-border-strong:#bd6974;--semantic-success-bg:#e9f8f1;--semantic-success-selected:#e6f7f0;--semantic-success-hover:#d7f1e5;--semantic-success:#12654a;--semantic-success-border:#75bea3;--semantic-success-border-strong:#4f9f83;--semantic-warning-bg:#fff4df;--semantic-warning-selected:#fff4d6;--semantic-warning-hover:#ffedba;--semantic-warning:#734b0b;--semantic-warning-border:#dfbd64;--semantic-warning-border-strong:#bd9638;--semantic-neutral-bg:#f1f2f5;--semantic-neutral:#4f596c;--semantic-note-bg:#f2effb;--semantic-note:#6948a6;--blue:var(--primary);--navy:var(--nav-surface)}:root[data-accent=red]{--primary:#b4232a;--primary-hover:#941c22}:root[data-accent=violet]{--primary:#7c3fc5;--primary-hover:#6932aa}:root[data-accent=teal]{--primary:#087f78;--primary-hover:#066a65}:root[data-theme=dark]{color-scheme:dark;--auth-background:linear-gradient(135deg,#0e1728,#172744);--ink:#e7edf8;--muted:#a7b3c7;--line:#34435a;--surface:#172238;--canvas:#0e1728;--surface-elevated:#1d2a42;--surface-soft:#19263d;--surface-subtle:#202d44;--surface-hover:#263653;--nav-surface:#091223;--nav-hover:#263653;--input-border:#66758c;--disabled-text:#78869b;--shadow:#0008;--primary-strong:#a9c0ff;--primary-subtle:#24375c;--primary-subtle-hover:#2c4470;--primary-border:#5875ad;--primary-focus:#789bdf;--semantic-error-bg:#3c1d28;--semantic-error-hover:#512431;--semantic-error:#ffb3bd;--semantic-error-border:#8d4854;--semantic-error-border-strong:#b75e6b;--semantic-success-bg:#17382f;--semantic-success-selected:#194438;--semantic-success-hover:#205445;--semantic-success:#8de0c0;--semantic-success-border:#477f6d;--semantic-success-border-strong:#5a9f88;--semantic-warning-bg:#3c3019;--semantic-warning-selected:#493b1c;--semantic-warning-hover:#594822;--semantic-warning:#f2cf83;--semantic-warning-border:#80692f;--semantic-warning-border-strong:#a4873d;--semantic-neutral-bg:#293448;--semantic-neutral:#bdc7d7;--semantic-note-bg:#30284a;--semantic-note:#cfb6ff}@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--auth-background:linear-gradient(135deg,#0e1728,#172744);--ink:#e7edf8;--muted:#a7b3c7;--line:#34435a;--surface:#172238;--canvas:#0e1728;--surface-elevated:#1d2a42;--surface-soft:#19263d;--surface-subtle:#202d44;--surface-hover:#263653;--nav-surface:#091223;--nav-hover:#263653;--input-border:#66758c;--disabled-text:#78869b;--shadow:#0008;--primary-strong:#a9c0ff;--primary-subtle:#24375c;--primary-subtle-hover:#2c4470;--primary-border:#5875ad;--primary-focus:#789bdf;--semantic-error-bg:#3c1d28;--semantic-error-hover:#512431;--semantic-error:#ffb3bd;--semantic-error-border:#8d4854;--semantic-error-border-strong:#b75e6b;--semantic-success-bg:#17382f;--semantic-success-selected:#194438;--semantic-success-hover:#205445;--semantic-success:#8de0c0;--semantic-success-border:#477f6d;--semantic-success-border-strong:#5a9f88;--semantic-warning-bg:#3c3019;--semantic-warning-selected:#493b1c;--semantic-warning-hover:#594822;--semantic-warning:#f2cf83;--semantic-warning-border:#80692f;--semantic-warning-border-strong:#a4873d;--semantic-neutral-bg:#293448;--semantic-neutral:#bdc7d7;--semantic-note-bg:#30284a;--semantic-note:#cfb6ff}}body{background:var(--canvas)}.auth-page{background:var(--auth-background)}.auth-card,.auth-experience,.auth-form-pane,.calendar-dialog,.metric-card,.mobile-nav,.panel,.placeholder{background:var(--surface)}input,select,textarea{background:var(--surface-elevated);border-color:var(--input-border);color:var(--ink)}.primary-button,.sign-out{background:var(--primary);border-color:var(--primary)}.primary-button:hover,.sign-out:hover{background:var(--primary-hover)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--focus)}.skeleton{background:var(--line)}.settings-accordion-card{padding:0;overflow:hidden}.settings-disclosure{align-items:center;background:transparent;border:0;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;min-height:76px;padding:15px 20px;text-align:left;width:100%}.settings-disclosure:hover{background:var(--surface-hover)}.settings-disclosure>span:first-child{display:grid;grid-gap:3px;gap:3px}.settings-disclosure strong{font-size:1.05rem}.settings-disclosure small{color:var(--muted);font-size:.8rem;font-weight:500;overflow-wrap:anywhere}.settings-chevron{font-size:1.5rem;transition:transform .18s}.settings-disclosure[aria-expanded=true] .settings-chevron{transform:rotate(180deg)}.settings-accordion-panel{border-top:1px solid var(--line);padding:20px}.settings-accordion-panel[hidden]{display:none}.settings-panel-content{min-width:0}.appearance-options{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.appearance-options label{cursor:pointer}.appearance-options label>span{align-items:center;background:var(--surface-subtle);border:2px solid transparent;border-radius:9px;display:flex;gap:8px;justify-content:center;min-height:46px;padding:8px}.appearance-options input{position:absolute;opacity:0}.appearance-options input:checked+span{border-color:var(--primary);color:var(--primary);font-weight:750}.appearance-options input:focus-visible+span{outline:3px solid var(--focus)}.accent-options{grid-template-columns:repeat(2,minmax(0,1fr))}.accent-swatch{background:var(--swatch);border-radius:50%;height:16px;width:16px}.accent-blue{--swatch:#3968e8}.accent-red{--swatch:#b4232a}.accent-violet{--swatch:#7c3fc5}.accent-teal{--swatch:#087f78}@media(max-width:480px){.appearance-options{grid-template-columns:1fr}.settings-disclosure{min-height:72px;padding:13px 16px}}@media(prefers-reduced-motion:reduce){.settings-chevron{transition:none}}.searchable-native-select{display:grid;grid-gap:5px;gap:5px;min-width:0;width:100%}.searchable-native-select>label{font-size:.78rem;font-weight:750}.searchable-combobox{min-width:0;position:relative;width:100%}.searchable-combobox>input[role=combobox]{padding-right:34px}.searchable-combobox.has-wrapping-selection{min-height:44px}.searchable-combobox.has-wrapping-selection>input[role=combobox]{background:transparent;border-color:transparent;color:transparent;height:100%;inset:0;position:absolute}.searchable-selected-label{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:9px;display:block;min-height:44px;overflow-wrap:anywhere;padding:10px 34px 10px 12px}.searchable-combobox-chevron{pointer-events:none;position:absolute;right:12px;top:12px}.searchable-combobox-list{background:var(--surface-elevated);border:1px solid var(--input-border);border-radius:8px;box-shadow:0 10px 28px var(--shadow);left:0;list-style:none;margin:4px 0 0;max-height:240px;overflow-y:auto;padding:4px;position:absolute;right:0;top:100%;z-index:20}.searchable-combobox-list li{border-radius:6px;cursor:pointer;font-size:.86rem;font-weight:500;padding:9px 10px}.searchable-combobox-list li.is-active,.searchable-combobox-list li:hover{background:var(--primary-subtle);color:var(--primary-strong)}.searchable-combobox-list li[aria-selected=true]{font-weight:800}.searchable-combobox-empty{color:var(--muted);cursor:default!important}.archived-badge{background:var(--semantic-neutral-bg);border:1px solid var(--line);border-radius:999px;color:var(--semantic-neutral);display:inline-block;font-size:.68rem;font-weight:800;line-height:1;padding:4px 7px;vertical-align:middle}.lesson-history-summary{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.lesson-history-pagination-top{border-top:0;margin-top:0;min-width:260px;padding-top:0}.lesson-history-pagination-top a{min-height:36px;padding:6px 0}.attempt-added-items{margin-top:1.25rem}.attempt-added-heading p,.attempt-added-offline{color:var(--muted-text);margin:.35rem 0 .75rem}.attempt-add-disclosure{border:1px solid var(--border);border-radius:.65rem;padding:.75rem;margin-bottom:1rem}.attempt-add-disclosure summary{cursor:pointer;font-weight:700}.attempt-add-form{display:grid;grid-gap:.5rem;gap:.5rem;margin-top:.75rem;max-width:36rem}.attempt-added-badge{display:inline-block;border:1px solid;border-radius:999px;color:var(--muted-text);font-size:.72rem;padding:.12rem .45rem;white-space:nowrap}.attempt-added-items .attempt-item-title input{font:inherit;width:min(100%,34rem)}.mobile-header-actions{align-items:center;display:flex;gap:8px}.feedback-launcher{background:transparent;border:1px solid #73829e;border-radius:9px;color:#eaf0ff;cursor:pointer;font-weight:700;min-height:36px;padding:7px 12px;width:100%}.feedback-launcher:hover{background:#273757;border-color:#eaf0ff}.sidebar-footer .feedback-launcher{margin-bottom:8px}.mobile-feedback-launcher{min-height:44px;width:auto}.feedback-dialog{background:var(--surface-elevated);border:1px solid var(--line);border-radius:16px;color:var(--ink);max-height:calc(100dvh - 32px);max-width:560px;overflow-x:hidden;padding:24px;width:calc(100% - 32px)}.feedback-dialog::-webkit-backdrop{background:rgba(8,16,32,.62)}.feedback-dialog::backdrop{background:rgba(8,16,32,.62)}.feedback-dialog .dialog-heading h2{margin:0}.feedback-intro{color:var(--muted);margin:8px 0 20px}.feedback-form{display:grid;grid-gap:16px;gap:16px}.feedback-form textarea{max-width:100%;resize:vertical}.feedback-character-count{color:var(--muted);font-size:.78rem;justify-self:end}.feedback-form .primary-button{justify-self:start}@media(max-width:420px){.mobile-header{padding-inline:12px}.mobile-header-actions{gap:5px}.mobile-feedback-launcher,.mobile-header .sign-out{font-size:.8rem;padding-inline:9px}.feedback-dialog{padding:18px;width:calc(100% - 20px)}}.offline-recovery-shell{max-width:960px;margin:0 auto;padding:32px 20px}.offline-recovery-panel{margin-top:10vh}.offline-recovery-header{margin-top:8px}.activity-list,.activity-list li,.activity-list li>div,.dashboard-grid>article,.lesson-list,.lesson-row,.lesson-row>div{min-width:0}.activity-list h3,.activity-list p,.lesson-row h3,.lesson-row p,.lesson-row small{overflow-wrap:anywhere;word-break:break-word}.activity-list time,.dashboard-record-link,.lesson-row .dashboard-schedule-action{max-width:100%}@media (min-width:760px) and (max-width:1199px){.activity-list li{grid-template-columns:10px minmax(9rem,1fr)}.activity-list time{grid-column:2;min-width:0}}