@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Quicksand:wght@500;600;700&display=swap";body{font:16px/1.5 var(--sans,system-ui, "Segoe UI", Roboto, sans-serif);color:var(--ink);background:var(--paper);margin:0}#root{min-height:100svh}.dashboard-page{background:var(--paper);min-height:100svh;color:var(--ink);padding:32px 24px}.dashboard-page h1{margin:0 0 4px}.dashboard-note{color:var(--ink-2);margin:0 0 24px;font-size:14px}.dashboard-panels{flex-wrap:wrap;gap:20px;display:flex}.dashboard-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.dashboard-panel-wide{grid-column:1/-1}.dashboard-panel-placeholder{color:var(--muted);border-style:dashed}.dashboard-panel-placeholder h2{color:var(--muted)}.home-card{color:inherit;text-decoration:none;transition:box-shadow .15s;display:block}a.home-card:hover{box-shadow:0 1px #1e2e3c0d,0 14px 32px -16px #1e2e3c80}.home-card-count{color:var(--accent-1);margin:0 0 4px;font-family:Fraunces,Georgia,serif;font-size:32px;font-weight:600}@media (width<=900px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-quick-actions{flex-wrap:wrap;gap:16px;margin:0 0 24px;display:flex}.dashboard-quick-actions a,.dashboard-quick-actions button{color:var(--accent-1);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none}.dashboard-quick-actions a:hover,.dashboard-quick-actions button:hover{text-decoration:underline}.dashboard-back-link{color:var(--ink-2);margin:0 0 20px;font-size:14px;text-decoration:none;display:inline-block}.dashboard-back-link:hover{text-decoration:underline}.dashboard-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;flex:320px;gap:14px;padding:24px;display:flex}.dashboard-panel h2{color:var(--ink);margin:0;font-size:18px}.dashboard-panel label{color:var(--ink-2);flex-direction:column;gap:6px;font-size:14px;display:flex}.dashboard-panel input{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:15px}.dashboard-panel input:focus{outline:2px solid var(--accent-1);outline-offset:1px}.dashboard-panel button{color:var(--surface);background:var(--accent-1);cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:10px 16px;font-size:15px;font-weight:600}.dashboard-panel button:hover:not(:disabled){background:var(--accent-1-dim)}.dashboard-panel button:disabled{opacity:.6;cursor:not-allowed}.dashboard-error{color:var(--warn);margin:0;font-size:14px}.dashboard-success{color:var(--good);margin:0;font-size:14px}.students-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.students-list-item{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.students-list-name{color:var(--ink);font-weight:600}.students-list-link{text-decoration:none}.students-list-link:hover{color:var(--accent-1);text-decoration:underline}.students-list-email{color:var(--ink-2);font-size:14px}.students-list-badge{color:var(--warn);background:var(--surface);border:1px solid var(--line);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px}.pending-table{border-collapse:collapse;width:100%;font-size:14px}.pending-table th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line);padding:8px}.pending-table td{border-bottom:1px solid var(--line);color:var(--ink);padding:8px}.pending-table select{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:6px 8px}.pending-actions{gap:8px;display:flex}.pending-actions button{cursor:pointer;color:var(--surface);background:var(--accent-1);border:none;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}.pending-actions button:hover{background:var(--accent-1-dim)}.pending-actions button.reject{background:var(--warn)}.fixture-form{flex-direction:column;gap:10px;padding-top:8px;display:flex}.fixture-form h3{color:var(--ink);margin:0;font-size:15px}.fixture-form label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:13px;display:flex}.fixture-form input{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}.fixture-form button{color:var(--surface);background:var(--accent-2);cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:8px 14px;font-size:14px;font-weight:600}.fixture-form button:hover{background:var(--accent-2-dim)}.fixture-list{color:var(--ink);flex-direction:column;gap:6px;margin:8px 0 0;padding-left:0;font-size:14px;list-style:none;display:flex}.fixture-list-item{justify-content:space-between;align-items:center;gap:8px;display:flex}.fixture-list-item button{color:var(--surface);background:var(--accent-1);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:600}.fixture-list-item button:hover{background:var(--accent-1-dim)}.backlog-filter{color:var(--ink-2);align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.backlog-filter select{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:6px 8px}.backlog-list{flex-direction:column;gap:10px;max-height:480px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.backlog-row{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;gap:10px;padding:10px;display:flex}.backlog-row-body{flex-direction:column;gap:4px;display:flex}.backlog-row-body strong{color:var(--ink);font-size:14px}.backlog-row-body p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.4}.backlog-status{white-space:nowrap;color:var(--surface);background:var(--ink-2);border-radius:999px;flex-shrink:0;align-self:flex-start;padding:3px 8px;font-size:11px;font-weight:700}.backlog-status--done{background:var(--accent-1)}.backlog-status--in-progress{background:var(--accent-2)}.backlog-status--not-started{background:var(--warn)}.backlog-status--design-settled{background:var(--accent-2-dim)}.dashboard-panel h3{color:var(--ink);margin:16px 0 8px;font-size:14px}.overview-table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:13px}.overview-table th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line);padding:6px 8px}.overview-table td{border-bottom:1px solid var(--line);color:var(--ink);padding:6px 8px}.content-flag-tutor{color:var(--muted);text-transform:uppercase;margin:6px 0 2px;font-size:12px;font-weight:700}.content-flag-snapshot{color:var(--ink-2);margin:0 0 4px;font-size:13px;font-style:italic}.auth-page{background:var(--paper);justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-page:before,.auth-page:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.auth-page:before{background:radial-gradient(circle, color-mix(in srgb, var(--accent-1) 14%, transparent) 0%, transparent 70%);width:560px;height:560px;top:-180px;right:-140px}.auth-page:after{background:radial-gradient(circle, color-mix(in srgb, var(--accent-2) 11%, transparent) 0%, transparent 70%);width:640px;height:640px;bottom:-220px;left:-160px}.auth-page-content{z-index:1;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:380px;display:flex;position:relative}.auth-brand{display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:16px;padding:32px;display:flex}.auth-launch-link{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.auth-launch-link:hover{color:var(--ink);background:var(--surface-2)}.auth-card h1{color:var(--ink);margin:0 0 4px;font-size:22px}.auth-card p{color:var(--ink-2);margin:0;line-height:1.5}.auth-card label{color:var(--ink-2);flex-direction:column;gap:6px;font-size:14px;display:flex}.auth-card input,.auth-card select{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:15px}.auth-card select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23748A9B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.auth-card input:focus,.auth-card select:focus{outline:2px solid var(--accent-1);outline-offset:1px}.auth-card button{color:var(--surface);background:var(--accent-1);cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:600}.auth-card button:hover:not(:disabled){background:var(--accent-1-dim)}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:var(--warn);font-size:14px}.palette-switcher{gap:8px;padding:0 10px 14px;display:flex}.palette-switcher-dot{cursor:pointer;border:2px solid #0000;border-radius:999px;width:22px;height:22px;padding:0}.palette-switcher-dot-active{border-color:var(--ink)}.shell{background:var(--paper);min-height:100svh;color:var(--ink);display:flex}.shell-sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:220px;padding:24px 16px;display:flex}.shell-brand{color:var(--ink);margin-bottom:32px;padding:0 8px;font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:600;text-decoration:none;display:block}.shell-brand:hover{color:var(--accent-1)}.shell-nav{flex-direction:column;flex:1;gap:4px;display:flex}.shell-nav-group{flex-direction:column;gap:3px;display:flex}.shell-nav-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px;padding:0 10px;font-size:11px;font-weight:700}.shell-nav-group:first-child .shell-nav-group-label{margin-top:0}.shell-nav-item{color:var(--ink-2);border-left:2px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 8px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.shell-nav-badge{color:var(--surface);background:var(--accent-2);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}a.shell-nav-item:hover{background:var(--surface-2);color:var(--ink)}.shell-nav-item-active{color:var(--accent-1);background:var(--surface-2);border-left:2px solid var(--accent-1)}.shell-nav-item-disabled{color:var(--muted);cursor:default;opacity:.6}.shell-settings{border-top:1px solid var(--line);margin-top:auto;padding-top:16px}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.shell-topbar{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:24px;padding:20px 32px;display:flex}.shell-topbar-title{flex-shrink:0;margin:0;font-size:22px}.shell-search{max-width:320px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;flex:auto;padding:8px 14px;font-family:inherit;font-size:14px}.shell-search:focus{outline:2px solid var(--accent-1);outline-offset:1px}.shell-topbar-actions{align-items:center;gap:16px;margin-left:auto;display:flex}.shell-logout{color:var(--ink-2);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600}.shell-logout:hover{color:var(--ink);background:var(--surface-2)}.shell-topbar-avatar{background:var(--accent-1);width:36px;height:36px;color:var(--surface);border-radius:999px;justify-content:center;align-items:center;font-family:Fraunces,Georgia,serif;font-size:14px;font-weight:600;display:flex}.shell-content{flex:1;padding:32px;overflow-y:auto}@media (width<=720px){.shell{flex-direction:column}.shell-sidebar{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;width:100%;padding:12px 16px}.shell-brand{margin-bottom:0;margin-right:16px}.shell-nav{flex-flow:wrap;flex:1}.shell-settings{border-top:none;margin-top:0;padding-top:0}.shell-content{padding:20px 16px}}.approvals-panel-list{flex-direction:column;gap:10px;display:flex}.approvals-panel-row{background:var(--surface-2);border-radius:9px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.approvals-panel-tag{color:var(--surface);background:var(--accent-1);border-radius:999px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:700}.approvals-panel-text{flex:240px;font-size:14px}.approvals-panel-actions{flex-shrink:0;gap:8px;display:flex}.approvals-panel-actions button{cursor:pointer;border-radius:7px;padding:6px 12px;font-size:13px;font-weight:700}.approvals-panel-actions button:first-child{color:var(--surface);background:var(--good);border:none}.approvals-panel-review{color:var(--ink-2);border:1px solid var(--line);background:0 0}.assign-form{max-width:360px;margin-bottom:20px}.assign-form h3{margin:0;font-size:16px}.assign-form-actions{gap:10px;display:flex}.assign-form-actions button[type=submit]{color:var(--surface);background:var(--accent-1)}.assign-form-actions button[type=submit]:hover:not(:disabled){background:var(--accent-1-dim)}.assign-form-cancel{color:var(--ink-2);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:600}.content-browse-pills{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.content-browse-pill{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600}.content-browse-pill-active{color:var(--accent-1);border-color:var(--accent-1)}.content-browse-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.content-browse-card{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:14px}.content-browse-card-subject{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.content-browse-card-title{margin:4px 0 8px;font-size:14px;font-weight:700}.content-browse-card button{color:var(--accent-1);border:1px solid var(--accent-1);cursor:pointer;background:0 0;border-radius:7px;padding:5px 10px;font-size:12px;font-weight:700}@media (width<=900px){.content-browse-grid{grid-template-columns:repeat(2,1fr)}}.intake-form{max-width:480px;margin-bottom:20px}.intake-form h3{margin:0;font-size:16px}.intake-form textarea{resize:vertical;min-height:60px;font-family:inherit}.intake-form-actions{gap:10px;display:flex}.intake-form-actions button[type=submit]{color:var(--surface);background:var(--accent-1)}.intake-form-actions button[type=submit]:hover:not(:disabled){background:var(--accent-1-dim)}.intake-form-cancel{color:var(--ink-2);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:600}.schedule-panel-list{flex-direction:column;gap:8px;display:flex}.schedule-panel-row{background:var(--surface-2);border-radius:9px;align-items:center;gap:12px;padding:10px 12px;display:flex}.schedule-panel-day{width:46px;color:var(--accent-1);flex-shrink:0;font-size:12px;font-weight:700}.schedule-panel-time{width:56px;color:var(--ink-2);flex-shrink:0;font-size:12px}.schedule-panel-student{flex:1;font-size:14px;font-weight:600}.schedule-panel-badge{color:var(--accent-2);border:1px solid var(--accent-2);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.schedule-panel-checked-in{color:var(--good);flex-shrink:0;font-size:12px;font-weight:700}.schedule-panel-row button{color:var(--good);border:1px solid var(--good);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;padding:5px 10px;font-size:12px;font-weight:700}.home-stat-strip{grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px;display:grid}.home-stat{gap:2px}.home-stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.home-stat-value{color:var(--accent-1);margin-top:4px;font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:600}.home-stat-value-warn{color:var(--warn)}.home-stat-placeholder,.home-stat-placeholder .home-stat-label{color:var(--muted)}.home-section{margin-bottom:22px}.home-section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.home-section-header h2{margin:0;font-family:Fraunces,Georgia,serif;font-size:17px}.home-section-link{color:var(--accent-1);font-size:13px;font-weight:700;text-decoration:none}.home-section-link:hover{text-decoration:underline}.home-two-col{grid-template-columns:1.1fr 1fr;gap:18px;display:grid}.home-two-col .home-section{margin-bottom:0}@media (width<=900px){.home-stat-strip{grid-template-columns:repeat(2,1fr)}.home-two-col{grid-template-columns:1fr}}.invite-password-row{gap:8px;display:flex}.invite-password-row input{flex:1;font-family:Courier New,monospace}.invite-password-button{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:8px;flex-shrink:0;padding:10px 14px;font-size:13px;font-weight:600}.invite-password-button:hover{color:var(--ink);background:var(--surface)}.launch-page{background:var(--paper);color:var(--ink)}.launch-topbar{justify-content:space-between;align-items:center;max-width:1040px;margin:0 auto;padding:20px 24px;display:flex}.launch-login-button{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-size:14px;font-weight:600;text-decoration:none}.launch-login-button:hover{color:var(--ink);background:var(--surface-2)}.launch-hero{text-align:center;max-width:720px;margin:0 auto;padding:48px 24px 56px}.launch-hero-trust{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:24px;font-size:12px;font-weight:600;display:flex}.launch-kicker{letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:700}.launch-hero h1{margin:0 0 16px;font-size:40px;line-height:1.15}.launch-subhead{color:var(--ink-2);margin:0 0 28px;font-size:17px}.launch-cta-button{color:var(--surface);background:var(--accent-1);border-radius:8px;padding:12px 24px;font-size:15px;font-weight:600;text-decoration:none;display:inline-block}.launch-cta-button:hover{background:var(--accent-1-dim)}.launch-features{flex-wrap:wrap;justify-content:center;gap:20px;max-width:1040px;margin:0 auto;padding:0 24px 56px;display:flex}.launch-feature-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex:280px;padding:24px}.launch-feature-card--highlight{border-color:var(--accent-2);border-width:2px}.launch-feature-card h2{margin:0 0 10px;font-size:18px}.launch-feature-card p{color:var(--ink-2);margin:0;font-size:14px}.launch-library{max-width:1040px;margin:0 auto;padding:0 24px 56px}.launch-library h2{margin:0 0 4px;font-size:24px}.launch-library-subhead{color:var(--ink-2);margin:0 0 24px;font-size:14px}.launch-library-grid{grid-template-columns:repeat(5,1fr);gap:12px;display:grid}.launch-library-item{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 14px}.launch-library-icon{margin-bottom:8px;font-size:24px}.launch-library-title{margin:0 0 4px;font-size:13px;font-weight:700}.launch-library-status{font-size:11px;font-weight:700}.launch-library-status--live{color:var(--good)}.launch-library-status--soon{color:var(--muted)}@media (width<=720px){.launch-library-grid{grid-template-columns:repeat(2,1fr)}}.launch-how{max-width:880px;margin:0 auto;padding:0 24px 56px}.launch-steps{flex-wrap:wrap;gap:24px;margin:0;padding:0;list-style:none;display:flex}.launch-step{text-align:center;flex:240px}.launch-step-number{width:32px;height:32px;color:var(--muted);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;margin-bottom:10px;font-size:14px;font-weight:700;display:inline-flex}.launch-step h3{margin:0 0 8px;font-size:16px}.launch-step p{color:var(--ink-2);margin:0;font-size:14px}.launch-trust-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:1040px;color:var(--muted);flex-wrap:wrap;justify-content:center;gap:24px;margin:0 auto 32px;padding:24px;font-size:12px;font-weight:600;display:flex}.launch-cta{text-align:center;background:var(--surface-2);padding:56px 24px 72px}.launch-cta h2{margin:0 0 20px;font-size:26px}.legal-page{background:var(--paper);min-height:100svh;color:var(--ink);padding:24px 16px 64px}.legal-page>*{max-width:720px;margin-inline:auto}.legal-brand{margin-bottom:20px}.legal-brand a{color:inherit;text-decoration:none;display:inline-flex}.legal-banner{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px 16px;font-size:14px}.legal-tabs{gap:8px;margin-top:20px;display:flex}.legal-tabs a{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none}.legal-tabs a[aria-current=page]{color:var(--ink);background:var(--surface-2)}.legal-body{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-top:24px;padding:24px;line-height:1.6}.legal-body h1{margin:0 0 8px;font-size:24px}.legal-body h2{margin:24px 0 6px;font-size:16px}.legal-body p,.legal-body ul{margin:0 0 8px}.legal-body li{margin-bottom:6px}.legal-meta{color:var(--ink-2);font-size:13px;margin-top:28px!important}.auth-legal-links{color:var(--ink-2);font-size:12px}.auth-legal-links a{color:inherit}.adhoc-form{max-width:360px;margin-bottom:20px}.adhoc-form h3{margin:0;font-size:16px}.adhoc-form-actions{gap:10px;display:flex}.adhoc-form-actions button[type=submit]{color:var(--surface);background:var(--accent-1)}.adhoc-form-actions button[type=submit]:hover:not(:disabled){background:var(--accent-1-dim)}.adhoc-form-cancel{color:var(--ink-2);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:600}.schedule-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.schedule-adhoc-button{color:var(--surface);background:var(--accent-2);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:8px 14px;font-size:14px;font-weight:600}.schedule-adhoc-button:hover{background:var(--accent-2-dim)}.schedule-list{flex-direction:column;gap:10px;display:flex}.schedule-row{flex-direction:row;flex:0 auto;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px}.schedule-row-main{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.schedule-row-date{color:var(--ink);min-width:90px;font-weight:600}.schedule-row-time{color:var(--ink-2);min-width:56px}.schedule-row-badge{color:var(--accent-2);border:1px solid var(--accent-2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.schedule-row-status button{color:var(--good);border:1px solid var(--good);cursor:pointer;background:0 0;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:600}.schedule-row-status button:hover{color:var(--surface);background:var(--good)}.schedule-row-checked-in{color:var(--good);font-size:13px;font-weight:600}.goal-section-toggle{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;margin:0 0 12px;padding:0;display:flex}.goal-section-toggle h3{margin:0}.goal-section-chevron{color:var(--muted);font-size:12px}.goal-entry{margin-bottom:12px}.goal-entry-text{margin:0 0 10px;font-family:Fraunces,Georgia,serif}.goal-entry-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.goal-status{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.goal-status-pending{color:var(--warn);background:var(--surface);border:1px solid var(--warn)}.goal-status-approved{color:var(--good);background:var(--surface);border:1px solid var(--good)}.goal-status-rejected{color:var(--muted);background:var(--surface);border:1px solid var(--line)}.goal-entry-actions{gap:8px;display:flex}.goal-entry-actions button{cursor:pointer;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:600}.goal-entry-actions button:first-child{color:var(--surface);background:var(--good);border:none}.goal-entry-actions button:last-child{color:var(--ink-2);border:1px solid var(--line);background:0 0}.progress-header{margin-bottom:24px}.progress-header h2{margin:0 0 4px}.progress-section{margin-bottom:32px}.progress-section h3{color:var(--ink);margin:0 0 12px;font-size:16px}.progress-assignment,.progress-note{margin-bottom:16px}.progress-assignment h4{margin:0 0 4px;font-size:16px}.progress-question-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.progress-question-item{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.progress-question-text{flex:auto;min-width:160px;font-family:Fraunces,Georgia,serif}.progress-status{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.progress-status-correct{color:var(--good);background:var(--surface);border:1px solid var(--good)}.progress-status-incorrect{color:var(--warn);background:var(--surface);border:1px solid var(--warn)}.progress-status-pending{color:var(--muted);background:var(--surface);border:1px solid var(--line)}.progress-note-body{white-space:pre-wrap;margin:0 0 6px}.frame-diagram{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:18px}.bar-model-row{align-items:center;gap:12px;margin-bottom:10px;display:flex}.bar-model-row:last-child{margin-bottom:0}.bar-model-track{flex:1;gap:2px;height:32px;display:flex}.bar-model-segment{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;flex:1}.bar-model-segment-filled{background:var(--accent-1);border-color:var(--accent-1-dim)}.bar-model-label{flex-shrink:0;width:130px;font-family:Fraunces,Georgia,serif;font-size:13px;font-weight:600}.frame-grid{justify-content:center;gap:6px;display:flex}.grid-box{background:var(--surface-2);border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;min-width:44px;padding:10px 14px;display:flex}.grid-box-active{border-color:var(--accent-1);background:var(--surface)}.grid-digit{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:600}.grid-col-label{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.number-line-track{height:50px;margin:10px 0;position:relative}.number-line-track:before{content:"";background:var(--line-2);height:2px;position:absolute;top:20px;left:4%;right:4%}.number-line-tick{background:var(--muted);width:2px;height:14px;position:absolute;top:14px;transform:translate(-50%)}.number-line-tick-on{background:var(--accent-1);height:18px;top:12px}.number-line-tick-label{color:var(--ink-2);font-size:12px;font-weight:600;position:absolute;top:32px;transform:translate(-50%)}.number-line-arrow{color:var(--warn);font-size:16px;font-weight:700;position:absolute;top:-8px;transform:translate(-50%)}.frame-svg{justify-content:center;display:flex}.frame-svg svg{width:100%;max-width:340px;height:auto}.geo-shape{fill:var(--surface-2);stroke:var(--ink-2);stroke-width:2px;stroke-linejoin:round}.geo-baseline,.geo-ray{stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round}.geo-faint-circle{fill:none;stroke:var(--line);stroke-width:1px;stroke-dasharray:3 4}.geo-arc{fill:none;stroke:var(--muted);stroke-width:2px}.geo-arc-on{stroke:var(--accent-1);stroke-width:3px}.geo-arc-mark{stroke:var(--ink-2);stroke-width:1.5px}.geo-wedge{fill:var(--accent-1);fill-opacity:.18}.geo-right-marker{fill:none;stroke:var(--ink-2);stroke-width:2px}.geo-tick{stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round}.geo-label{fill:var(--ink);paint-order:stroke;stroke:var(--surface-2);stroke-width:4px;stroke-linejoin:round;font-family:Fraunces,Georgia,serif;font-size:15px;font-weight:600}.geo-label-on{fill:var(--accent-1-dim);font-size:17px;font-weight:700}.geo-side-label{fill:var(--ink-2);font-size:13px;font-weight:600}.frame-triangle-algebra{justify-content:center;align-items:center;gap:16px;padding:22px 18px;display:flex}.triangle-algebra-step{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.triangle-algebra-equation{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:26px;font-weight:600}.worked-example-card{background:var(--surface-2);border-radius:10px;margin-bottom:14px;padding:16px}.worked-example-difficulty{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.worked-example-question{margin:4px 0 8px;font-family:Fraunces,Georgia,serif;font-size:17px}.worked-example-caption{color:var(--ink-2);text-align:center;margin:8px 0;font-size:14px}.worked-example-nav{justify-content:center;align-items:center;gap:14px;margin:10px 0;display:flex}.worked-example-nav button{width:32px;height:32px;color:var(--surface);background:var(--accent-1);cursor:pointer;border:none;border-radius:999px;font-size:15px;font-weight:700}.worked-example-nav button:disabled{background:var(--line-2);color:var(--muted);cursor:not-allowed}.worked-example-dots{gap:6px;display:flex}.worked-example-dot{background:var(--line-2);border-radius:999px;width:7px;height:7px}.worked-example-dot-on{background:var(--accent-1)}.worked-example-steps{color:var(--ink-2);margin:0 0 10px;padding-left:20px;font-size:14px}.worked-example-steps li{margin-bottom:4px}.worked-example-answer{margin:8px 0 4px;font-family:Fraunces,Georgia,serif;font-weight:700}.worked-example-explain{color:var(--ink-2);margin:0;font-size:13px;font-style:italic}.worked-example-card-bare{background:0 0;margin-bottom:0;padding:0}.worked-example-scenario{color:var(--ink-2);margin:4px 0 2px;font-size:14px;line-height:1.5}.concept-stepper{max-width:560px;margin:0 auto}.concept-stepper-progress-row{align-items:center;gap:10px;margin-bottom:16px;display:flex}.concept-stepper-progress-track{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.concept-stepper-progress-fill{background:linear-gradient(90deg, var(--accent-1), var(--accent-2));height:100%;transition:width .3s cubic-bezier(.16,1,.3,1)}.concept-stepper-progress-label{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.concept-stepper-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;min-height:280px;padding:26px 24px;animation:.3s cubic-bezier(.16,1,.3,1) both concept-stepper-fade-up;display:flex}@keyframes concept-stepper-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.concept-stepper-card{animation:none}}.concept-stepper-kicker{background:var(--surface-2);color:var(--accent-1-dim);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-bottom:14px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-flex}.concept-stepper-kicker-warn{color:var(--warn)}.concept-stepper-kicker-example{color:var(--accent-2-dim)}.concept-stepper-title{margin:0 0 14px;font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:700;line-height:1.3}.concept-stepper-body{color:var(--ink-2);flex:1;margin:0;font-size:16px;line-height:1.6}.concept-stepper-headline{color:var(--accent-1-dim);text-align:center;background:var(--surface-2);border-radius:16px;flex:1;justify-content:center;align-items:center;padding:24px 16px;font-family:Fraunces,Georgia,serif;font-size:19px;font-weight:600;display:flex}.concept-stepper-memory-hook{background:color-mix(in srgb, var(--accent-2) 12%, var(--surface-2));border:1.5px solid var(--accent-2-dim);border-radius:16px;padding:18px 20px}.concept-stepper-memory-hook-kicker{color:var(--accent-2-dim);text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.concept-stepper-memory-hook-text{color:var(--ink-2);margin:0;font-size:16px;font-style:italic}.concept-stepper-mistake{background:color-mix(in srgb, var(--warn) 10%, var(--surface-2));border:1.5px solid var(--warn);border-radius:16px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.concept-stepper-mistake-icon{flex-shrink:0;font-size:22px}.concept-stepper-mistake-text{color:var(--ink-2);margin:0;font-size:15px;line-height:1.5}.concept-stepper-nav{justify-content:space-between;gap:12px;margin-top:18px;display:flex}.concept-stepper-nav button{cursor:pointer;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 20px;font-size:14px;font-weight:700}.concept-stepper-nav button:disabled{opacity:.4;cursor:not-allowed}.concept-stepper-next{color:var(--surface)!important;background:var(--accent-1)!important;border:none!important}.concept-stepper-next:hover:not(:disabled){background:var(--accent-1-dim)!important}.concept-stepper-kicker-recap{color:var(--good)}.concept-stepper-recap-title{margin:0 0 12px;font-family:Fraunces,Georgia,serif;font-size:18px}.concept-stepper-recap-hook{margin-bottom:14px}.concept-stepper-recap-list{color:var(--ink-2);margin:0;padding-left:20px;font-size:14px;line-height:1.6}.concept-stepper-recap-list li{margin-bottom:6px}.concept-stepper-video{aspect-ratio:16/9;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;width:100%;position:relative;overflow:hidden}.concept-stepper-video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.concept-stepper-video-play{cursor:pointer;width:100%;color:var(--accent-1-dim);background:0 0;border:0;font-size:18px;font-weight:700;position:absolute;inset:0}.concept-stepper-video-meta{color:var(--muted);margin:10px 0 0;font-size:13px}.flag-issue-form{background:var(--surface);border:1px solid var(--warn);border-radius:10px;flex-direction:column;gap:10px;margin-top:10px;padding:14px;display:flex}.flag-issue-snapshot{color:var(--ink-2);margin:0;font-size:13px;font-style:italic}.flag-issue-form textarea{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);resize:vertical;border-radius:8px;min-height:70px;padding:10px 12px;font-family:inherit;font-size:14px}.flag-issue-actions{gap:8px;display:flex}.flag-issue-actions button[type=submit]{color:var(--surface);background:var(--warn);cursor:pointer;border:none;border-radius:7px;padding:8px 16px;font-size:13px;font-weight:700}.flag-issue-cancel{color:var(--ink-2);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:7px;padding:8px 16px;font-size:13px;font-weight:600}.mini-whiteboard{margin-top:10px}.mini-whiteboard-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.mini-whiteboard-label{color:var(--muted);font-size:12px;font-weight:700}.mini-whiteboard-clear{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700}.mini-whiteboard-clear:disabled{opacity:.4;cursor:not-allowed}.mini-whiteboard-canvas{background:var(--surface);border:1.5px dashed var(--line-2);cursor:crosshair;touch-action:none;border-radius:10px;width:100%;max-width:400px;height:160px;display:block}.view-content-back{color:var(--ink-2);cursor:pointer;background:0 0;border:none;margin:0 0 16px;padding:0;font-size:14px;display:inline-block}.view-content-back:hover{text-decoration:underline}.view-content-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.view-content-header h2{margin:0}.view-content-flag-trigger{color:var(--warn);border:1px solid var(--warn);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;padding:5px 10px;font-size:12px;font-weight:700}.view-content-concept h3{margin:16px 0 8px;font-size:15px}.view-content-concept ul{color:var(--ink-2);margin:0;padding-left:20px;font-size:14px}.view-content-concept li{margin-bottom:4px}.view-content-explanation{margin:14px 0 8px;font-size:14px;line-height:1.6}.view-content-memory-hook{background:var(--surface-2);border-radius:8px;margin:0 0 8px;padding:10px 14px;font-size:14px;font-weight:600}.view-content-questions{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:14px 18px;display:grid}.view-content-question{background:var(--surface-2);border-bottom:3px solid var(--line);border-radius:10px;padding:14px}.view-content-question-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.view-content-question-number{color:var(--surface);background:var(--ink-2);border-radius:6px;padding:2px 7px;font-size:12px;font-weight:800}.view-content-difficulty{color:var(--muted);text-transform:uppercase;margin-right:auto;font-size:11px;font-weight:700}.view-content-question-text{margin:0 0 4px;font-family:Fraunces,Georgia,serif;font-size:16px}.view-content-reveal-button{color:var(--surface);background:var(--good);cursor:pointer;border:none;border-radius:7px;margin-top:4px;padding:8px 16px;font-size:13px;font-weight:700}.view-content-reveal-button:hover{opacity:.9}.view-content-answer-revealed{color:var(--good);margin-top:4px;font-weight:700}:root,:root[data-palette=skyline]{--paper:#eef4f9;--surface:#fbfdff;--surface-2:#e1ebf3;--ink:#1e2e3c;--ink-2:#3c5468;--accent-1:#3e7ca6;--accent-1-dim:#2e6188;--accent-2:#d98a3d;--accent-2-dim:#b96f27;--muted:#748a9b;--warn:#b5542f;--good:#4a8f5c;--line:#1e2e3c1f;--line-2:#1e2e3c3d;--shadow:0 1px 0 #1e2e3c0d, 0 10px 26px -18px #1e2e3c66}@media (prefers-color-scheme:dark){:root:not([data-theme=light]),:root[data-palette=skyline]:not([data-theme=light]){--paper:#10161c;--surface:#161f27;--surface-2:#1a2530;--ink:#e6eff6;--ink-2:#b9cbda;--accent-1:#7eb4d9;--accent-1-dim:#5c97bf;--accent-2:#e8a968;--accent-2-dim:#c98a46;--muted:#8ca2b3;--warn:#db8360;--good:#7fbf93;--line:#e6eff61f;--line-2:#e6eff63d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}}:root[data-theme=dark],:root[data-palette=skyline][data-theme=dark]{--paper:#10161c;--surface:#161f27;--surface-2:#1a2530;--ink:#e6eff6;--ink-2:#b9cbda;--accent-1:#7eb4d9;--accent-1-dim:#5c97bf;--accent-2:#e8a968;--accent-2-dim:#c98a46;--muted:#8ca2b3;--warn:#db8360;--good:#7fbf93;--line:#e6eff61f;--line-2:#e6eff63d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}:root[data-palette=blossom]{--paper:#fbf1f3;--surface:#fffcfc;--surface-2:#f6e6e9;--ink:#3a2027;--ink-2:#5c3b43;--accent-1:#c15c74;--accent-1-dim:#a2455c;--accent-2:#4f8b7a;--accent-2-dim:#3b6e5f;--muted:#93737b;--warn:#b5542f;--good:#4a8f5c;--line:#3a20271f;--line-2:#3a20273d;--shadow:0 1px 0 #3a20270d, 0 10px 26px -18px #3a202766}@media (prefers-color-scheme:dark){:root[data-palette=blossom]:not([data-theme=light]){--paper:#1c1215;--surface:#241719;--surface-2:#2a1b1e;--ink:#f5e4e7;--ink-2:#dbb9c0;--accent-1:#e389a0;--accent-1-dim:#c56e85;--accent-2:#7bb6a4;--accent-2-dim:#5d9683;--muted:#a9868d;--warn:#db8360;--good:#7fbf93;--line:#f5e4e71f;--line-2:#f5e4e73d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}}:root[data-palette=blossom][data-theme=dark]{--paper:#1c1215;--surface:#241719;--surface-2:#2a1b1e;--ink:#f5e4e7;--ink-2:#dbb9c0;--accent-1:#e389a0;--accent-1-dim:#c56e85;--accent-2:#7bb6a4;--accent-2-dim:#5d9683;--muted:#a9868d;--warn:#db8360;--good:#7fbf93;--line:#f5e4e71f;--line-2:#f5e4e73d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}:root[data-palette=lilac]{--paper:#f3eff6;--surface:#fcfafd;--surface-2:#e9e1ee;--ink:#2e2638;--ink-2:#4e4258;--accent-1:#8467a0;--accent-1-dim:#6a5182;--accent-2:#c97f52;--accent-2-dim:#a9633b;--muted:#867792;--warn:#b5542f;--good:#4a8f5c;--line:#2e26381f;--line-2:#2e26383d;--shadow:0 1px 0 #2e26380d, 0 10px 26px -18px #2e263866}@media (prefers-color-scheme:dark){:root[data-palette=lilac]:not([data-theme=light]){--paper:#16131a;--surface:#1d1922;--surface-2:#221d2a;--ink:#eee8f2;--ink-2:#cbbdd6;--accent-1:#b79bcf;--accent-1-dim:#9a7cb5;--accent-2:#e0a276;--accent-2-dim:#c08256;--muted:#9d8ca8;--warn:#db8360;--good:#7fbf93;--line:#eee8f21f;--line-2:#eee8f23d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}}:root[data-palette=lilac][data-theme=dark]{--paper:#16131a;--surface:#1d1922;--surface-2:#221d2a;--ink:#eee8f2;--ink-2:#cbbdd6;--accent-1:#b79bcf;--accent-1-dim:#9a7cb5;--accent-2:#e0a276;--accent-2-dim:#c08256;--muted:#9d8ca8;--warn:#db8360;--good:#7fbf93;--line:#eee8f21f;--line-2:#eee8f23d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}:root[data-palette=peach]{--paper:#fbf0e9;--surface:#fffbf8;--surface-2:#f5e1d3;--ink:#3a2618;--ink-2:#5c4130;--accent-1:#d97d4e;--accent-1-dim:#b5602f;--accent-2:#4f8fa0;--accent-2-dim:#397383;--muted:#977c68;--warn:#b5542f;--good:#4a8f5c;--line:#3a26181f;--line-2:#3a26183d;--shadow:0 1px 0 #3a26180d, 0 10px 26px -18px #3a261866}@media (prefers-color-scheme:dark){:root[data-palette=peach]:not([data-theme=light]){--paper:#1b140f;--surface:#231a13;--surface-2:#291f17;--ink:#f6e9dd;--ink-2:#debfa5;--accent-1:#e8a876;--accent-1-dim:#c98850;--accent-2:#7fbbcb;--accent-2-dim:#5d9aab;--muted:#ad927c;--warn:#db8360;--good:#7fbf93;--line:#f6e9dd1f;--line-2:#f6e9dd3d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}}:root[data-palette=peach][data-theme=dark]{--paper:#1b140f;--surface:#231a13;--surface-2:#291f17;--ink:#f6e9dd;--ink-2:#debfa5;--accent-1:#e8a876;--accent-1-dim:#c98850;--accent-2:#7fbbcb;--accent-2-dim:#5d9aab;--muted:#ad927c;--warn:#db8360;--good:#7fbf93;--line:#f6e9dd1f;--line-2:#f6e9dd3d;--shadow:0 1px 0 #0000004d, 0 10px 26px -18px #0009}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Quicksand,system-ui,sans-serif}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600}.view-as-banner{color:var(--surface);background:var(--warn);justify-content:center;align-items:center;gap:12px;padding:10px 16px;font-size:14px;display:flex}.view-as-banner button{color:var(--warn);background:var(--surface);cursor:pointer;border:none;border-radius:6px;padding:4px 12px;font-size:13px;font-weight:600}.view-as-banner button:hover{opacity:.9}
