:root{--bg: #f4efe5;--bg-2: #ebe4d7;--card: rgba(255, 253, 247, .86);--surface-raised: #eee6d9;--ink: #1f2b27;--muted: #68726c;--line: rgba(49, 78, 68, .18);--primary: #2f7465;--primary-dark: #22594f;--secondary: #a94338;--mint: #4f8a6b;--warm: #c69733;--pink: #b85b50;--shadow: 0 18px 46px rgba(40, 55, 47, .08);--shadow-soft: 0 8px 24px rgba(40, 55, 47, .08);--shadow-hover: 0 18px 38px rgba(40, 55, 47, .12);--radius: 8px;--button-radius: 8px;--sidebar-width: 208px;--content-gutter: 24px;--font: "Source Sans 3", "Noto Sans Thai", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Noto Serif SC", "Songti SC", Georgia, "Times New Roman", serif;--font-code: "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);min-height:100vh;font-size:16px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:0}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.startup-fallback{min-height:100vh;display:grid;place-items:center;padding:24px;color:var(--ink);background:var(--bg)}.startup-fallback section{display:grid;gap:8px;width:min(420px,100%);padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.startup-fallback strong,.startup-fallback span{display:block}.startup-fallback span{color:var(--muted);line-height:1.5}.startup-error section{border-color:#b65b4f57;background:#fff7f4}.app-shell{width:min(1180px,calc(100% - 48px));margin:0 auto;padding-bottom:64px}.topbar{position:sticky;top:0;z-index:90;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 22px;padding:14px 0 10px;background:#fbfaf7db;border-bottom:0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;color:var(--primary);font-weight:600;font-size:1.35rem;background:#f8eadb;border:1px solid #ead6c3;box-shadow:none}.brand strong,.brand small{display:block}.brand small{color:var(--muted);margin-top:2px}.role-switch,.segmented{display:inline-flex;padding:4px;gap:4px;background:#fffdf8d6;border:1px solid var(--line);border-radius:var(--button-radius);box-shadow:none}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.logout-form{display:inline-flex;align-items:center;gap:8px}.session-user{color:var(--muted);font-size:.84rem;font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{padding:10px 12px;border-radius:8px;box-shadow:none}.pill,.segmented button{border:1px solid transparent;background:transparent;border-radius:var(--button-radius);color:var(--muted);padding:9px 13px;font-weight:600;transition:background .15s ease,border-color .15s ease,color .15s ease}.pill:hover,.pill:focus-visible,.segmented button:hover,.segmented button:focus-visible{border-color:#c2410c38;background:var(--surface-raised);color:var(--ink)}.pill.active,.segmented button.active{border-color:#b453093d;color:var(--primary);background:#f8eadb;box-shadow:none}.hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:28px;align-items:center;min-height:560px;padding:56px 0 42px}.hero-copy h1{font-size:clamp(2.4rem,6vw,5.25rem);line-height:.95;letter-spacing:0;margin:8px 0 22px;max-width:820px}.hero-copy p:not(.eyebrow){font-size:1.1rem;line-height:1.7;color:var(--muted);max-width:660px}.eyebrow{color:var(--primary);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 8px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.facebook-btn,.primary-btn,.secondary-btn{border:1px solid transparent;border-radius:var(--button-radius);padding:12px 16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;line-height:1.2;box-shadow:none;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}.facebook-btn:hover,.primary-btn:hover,.secondary-btn:hover{transform:none}button:disabled,input:disabled,.secondary-btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.facebook-btn{color:#fffdf8;background:#6f4a2f;border-color:#6f4a2f}.facebook-btn:hover,.facebook-btn:focus-visible{background:#5c3e29;border-color:#5c3e29}.facebook-btn span{width:24px;height:24px;display:grid;place-items:center;background:#fafaf9;color:#6f4a2f;border-radius:50%;font-weight:600}.primary-btn{color:#fff;background:var(--primary);border-color:var(--primary)}.primary-btn:hover,.primary-btn:focus-visible{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:none}.secondary-btn{color:var(--ink);background:transparent;border:1px solid var(--line)}.secondary-btn:hover,.secondary-btn:focus-visible{border-color:#c2410c61;background:var(--surface-raised);color:var(--primary)}.full{width:100%}.glass-card,.card,.approval-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card,.glass-card,.approval-card,.month-day,.calendar-class,.student-item,.practice-item,.timeline-item,.note,.mistake{transition:border-color .15s ease,background .15s ease}.card:hover,.glass-card:hover,.approval-card:hover{border-color:#d6c7b8;box-shadow:none}.hero-card{padding:26px;position:relative;overflow:hidden}.hero-card:before{display:none}.mini-calendar{position:relative;z-index:1;display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fffdf8;border:1px solid var(--line);padding:18px;border-radius:var(--radius)}.mini-calendar small,.mini-calendar strong,.mini-calendar span{display:block}.mini-calendar small,.progress-preview span,.stats-row span,.admin-student-grid small{color:var(--muted);font-size:.82rem}.mini-calendar strong{margin:4px 0;font-size:1.15rem}.join-mini{color:#fff;background:var(--mint);padding:10px 13px;border-radius:8px;text-decoration:none;font-weight:600;white-space:nowrap}.progress-preview{position:relative;z-index:1;padding:22px 0}.progress-preview div:first-child,.meter-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.progress-bar{height:12px;width:100%;border-radius:9999px;background:var(--surface-raised);overflow:hidden}.progress-bar.large{height:14px}.progress-bar span{display:block;height:100%;background:var(--primary);border-radius:inherit}.stats-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats-row div{background:#fafaf9;border:1px solid var(--line);padding:15px;border-radius:var(--radius)}.stats-row strong,.stats-row span{display:block}.dashboard{padding:4px 0 24px}.dashboard [id]{scroll-margin-top:96px}.student-view>.calendar-card,.student-view>.practice-card,.admin-main>.calendar-card{width:100%;max-width:100%}.dashboard-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:14px;padding:2px 0 4px}.dashboard-header h2{margin:0;font-size:clamp(1.75rem,3vw,2.7rem);letter-spacing:0}.student-status,.badge{display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:9px 12px;font-size:.84rem;font-weight:600;white-space:nowrap}.student-status{background:#f4efe8;color:#5f5247}.status-dot{width:9px;height:9px;background:var(--mint);border-radius:50%}.badge{color:#7a4a18;background:#f8eadb}.level-badge{display:inline-flex;width:fit-content;margin:6px 0 0;border-radius:9999px;padding:6px 9px;background:#f8eadb;color:#7a4a18;font-size:.75rem;font-weight:700}.level-badge.current{background:#eef6ee;color:#3f7048}.student-assigned-teacher{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 9px;width:fit-content;margin:12px 0 0;color:#746d80;font-size:.82rem}.student-assigned-teacher span{font-weight:650}.student-assigned-teacher strong{padding:5px 9px;border:1px solid #d8ccec;border-radius:999px;color:#59456e;background:#f7f2ff}.badge.warm{color:#7a4a18;background:#f4e4d2}.calendar-controls{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.84rem;font-weight:600;white-space:nowrap}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--card);color:var(--ink);font-size:1.25rem;font-weight:600;line-height:1;transition:background .16s ease,border-color .16s ease,color .16s ease}.icon-btn:hover,.icon-btn:focus-visible{border-color:#c2410c57;background:var(--surface-raised);color:var(--primary)}.icon-btn:disabled{opacity:.35}.grid{display:grid;gap:14px;margin-bottom:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}#studentOverview{grid-template-columns:repeat(3,minmax(0,1fr))}.align-start{align-items:start}.card-title-row{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:14px}.card h3,.card h4{margin:0}.class-time{display:inline-flex;align-items:center;gap:8px;font-size:1.8rem;font-weight:600;letter-spacing:0;margin-bottom:8px}.zoom-btn{width:100%;margin-top:18px}.zoom-btn.is-disabled{color:var(--muted);background:var(--surface-raised);border-color:var(--line)}.meter-block{margin:20px 0}.schedule-change-box{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:16px;border-radius:var(--radius);background:#fffdf8;border:1px solid #ead6c3}.schedule-change-box strong{font-size:1.4rem}.schedule-change-box small{grid-column:1 / -1;color:var(--muted)}.schedule-change-box.limit{background:#fff7f4;border-color:#e8c8bc}.zoom-access-card{display:grid;align-content:start}.zoom-access-summary{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fafaf9}.zoom-access-summary strong{font-size:1.2rem}.zoom-access-summary span{color:var(--muted);line-height:1.45}.stat-card{min-height:118px;display:flex;flex-direction:column;justify-content:center;gap:8px}.stat-card.compact{min-height:102px}.stat-card small{color:var(--muted);font-weight:600}.stat-card strong{font-size:1.55rem;letter-spacing:0}.stat-icon{width:42px;height:42px;display:grid;place-items:center;background:#f2ece4;border-radius:var(--button-radius);font-size:1.4rem}.stat-card:nth-child(2) .stat-icon{background:#f2ece4}.stat-card:nth-child(3) .stat-icon{background:#f2ece4}.stat-card:nth-child(4) .stat-icon{background:#f2ece4}.student-detail-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"history notes";gap:14px;align-items:start;margin-bottom:14px}.admin-flow-columns .card{display:block;width:100%;margin:0}.student-notes-card{grid-area:notes}.notes-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:8px 0 12px}.note-count-badge{display:inline-flex;width:fit-content;border-radius:9999px;padding:6px 9px;background:#f8eadb;color:#7a4a18;font-size:.74rem;font-weight:600}.text-btn{min-height:0;border:0;background:transparent;color:var(--primary);padding:5px 0;box-shadow:none;font-size:.8rem;font-weight:600}.text-btn:hover,.text-btn:focus-visible{color:var(--ink);text-decoration:underline}.student-history-card{grid-area:history}.student-mistakes-card{width:100%}.quiz-review-card{margin-bottom:14px}.practice-card .card-title-row{align-items:center}.level-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.level-tabs button{border:1px solid var(--line);border-radius:9999px;padding:8px 10px;background:#fafaf9;color:var(--muted);font-size:.78rem;font-weight:700;cursor:pointer}.level-tabs button.active{border-color:#b4530952;background:#f8eadb;color:var(--primary)}.quick-quiz-context{max-width:250px;color:var(--muted);font-size:.78rem;line-height:1.45;text-align:right}#studentPracticeSection>.card-title-row{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}#studentPracticeSection>.card-title-row h3{margin-top:3px;font-size:clamp(1.45rem,2.5vw,2rem)}.practice-library-step{display:flex;align-items:center;gap:11px}.practice-library-step>span:first-child{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#9a5a36;font-size:.76rem;font-weight:800}.practice-library-step>div{min-width:0;display:grid;gap:1px}.practice-library-step small{color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.practice-library-step strong{color:var(--ink);font-size:.92rem}.practice-library-step em{margin-left:auto;padding:6px 9px;border:1px solid #d6c8e7;border-radius:999px;color:#674d91;background:#f6f1fb;font-size:.68rem;font-style:normal;font-weight:800;white-space:nowrap}.activity-step{margin:20px 0 10px}.activity-step>span:first-child{background:#527f76}.quick-quiz-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 18px}.quick-quiz-mode{min-width:0;min-height:82px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;color:var(--ink);background:#fff;text-align:left;text-decoration:none;box-shadow:0 7px 18px #4c382a0d;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.quick-quiz-mode:hover,.quick-quiz-mode:focus-visible{border-color:#b4530957;box-shadow:0 10px 22px #4c382a17;transform:translateY(-2px)}.quick-quiz-mode[hidden]{display:none}.quick-quiz-mode>span:nth-child(2){min-width:0}.quick-quiz-mode strong,.quick-quiz-mode small{display:block}.quick-quiz-mode-time{display:block;margin-top:7px;color:#527f76;font-size:.72rem;font-weight:750}.quick-quiz-mode strong{font-size:.94rem}.quick-quiz-mode small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.sentence-builder-mode{grid-column:1 / -1;grid-template-columns:minmax(150px,.34fr) minmax(0,1fr) auto;min-height:132px;padding:0 18px 0 0;overflow:hidden;border-color:#d8c9ef;background:#fff}.character-match-mode{grid-column:1 / -1;grid-template-columns:minmax(150px,.34fr) minmax(0,1fr) auto;min-height:132px;padding:0 18px 0 0;overflow:hidden;border-color:#b9deda}.character-choice-mode{grid-column:1 / -1;grid-template-columns:minmax(150px,.34fr) minmax(0,1fr) auto;min-height:132px;padding:0 18px 0 0;overflow:hidden;border-color:#f1c9b9}.character-choice-art{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgMjgwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+DQogIDx0aXRsZSBpZD0idGl0bGUiPk1ldyBDaGluZXNlIGxlYXJuaW5nIG1hc2NvdDwvdGl0bGU+DQogIDxkZXNjIGlkPSJkZXNjIj5BIGZyaWVuZGx5IGNyZWFtIGNhdCBob2xkaW5nIGEgTWFuZGFyaW4gc3R1ZHkgYm9vay48L2Rlc2M+DQogIDxkZWZzPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZnVyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmRmOCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZThlMiIvPjwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJzaGlydCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiNmZjZmOWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNDQzN2QiLz48L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxlbGxpcHNlIGN4PSIxNjAiIGN5PSIyNTAiIHJ4PSIxMTAiIHJ5PSIxOCIgZmlsbD0iI2U4ZGZmZiIgb3BhY2l0eT0iLjU1Ii8+DQogIDxwYXRoIGQ9Ik04NiA4OSA2NiAyN2w1NCAzMU0yMzQgODlsMjAtNjItNTQgMzEiIGZpbGw9InVybCgjZnVyKSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCiAgPHBhdGggZD0ibTc3IDQ1IDI3IDE5LTE1IDEyWm0xNjYgMC0yNyAxOSAxNSAxMloiIGZpbGw9IiNmZmI5YzgiLz4NCiAgPHBhdGggZD0iTTE2MCA0NGM2MSAwIDk5IDM4IDk5IDkxIDAgNDgtMzYgODMtOTkgODNzLTk5LTM1LTk5LTgzYzAtNTMgMzgtOTEgOTktOTFaIiBmaWxsPSJ1cmwoI2Z1cikiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI3Ii8+DQogIDxwYXRoIGQ9Ik05NyAxMjZjOS0xNCAyNC0xNyAzNi04TTIyMyAxMjZjLTktMTQtMjQtMTctMzYtOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KICA8Y2lyY2xlIGN4PSIxMTIiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz48Y2lyY2xlIGN4PSIyMDgiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz4NCiAgPGNpcmNsZSBjeD0iMTA5IiBjeT0iMTM5IiByPSIyLjUiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMDUiIGN5PSIxMzkiIHI9IjIuNSIgZmlsbD0iI2ZmZiIvPg0KICA8ZWxsaXBzZSBjeD0iODgiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPjxlbGxpcHNlIGN4PSIyMzIiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPg0KICA8cGF0aCBkPSJtMTUyIDE2MCA4IDYgOC02IiBmaWxsPSIjZmY3Nzk4IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDE2NmMwIDEyLTE4IDEzLTI0IDRtMjQtNGMwIDEyIDE4IDEzIDI0IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4NCiAgPHBhdGggZD0iTTk0IDIwNmMxNC0yMCA0Mi0zMCA2Ni0zMHM1MiAxMCA2NiAzMHY1MUg5NFoiIGZpbGw9InVybCgjc2hpcnQpIiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTE4IDIwNGMyMC04IDY0LTggODQgMHY2MWgtODRaIiBmaWxsPSIjN2U2Y2Y1IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDIwNHY2MSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9Ii44Ii8+DQogIDx0ZXh0IHg9IjE2MCIgeT0iMjQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNSIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZiI+5Lit5paHPC90ZXh0Pg0KICA8cGF0aCBkPSJNMTA0IDIyM2MtMTggMC0yOCA5LTMwIDI0bTE0Mi0yNGMxOCAwIDI4IDkgMzAgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZjBlOCIgc3Ryb2tlLXdpZHRoPSIxOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+DQogIDxwYXRoIGQ9Ik0xMDQgMjIzYy0xOCAwLTI4IDktMzAgMjRtMTQyLTI0YzE4IDAgMjggOSAzMCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KPC9zdmc+DQo=);background-size:contain;background-color:#fff3e8}.character-choice-mode strong{color:#a84432;font-size:1.08rem}.character-choice-mode small{white-space:normal}.character-choice-mode:hover,.character-choice-mode:focus-visible{border-color:#ef8c72}.radical-builder-mode{grid-column:1 / -1;grid-template-columns:minmax(150px,.34fr) minmax(0,1fr) auto;min-height:132px;padding:0 18px 0 0;overflow:hidden;border-color:#f0c99f}.radical-builder-art{display:flex;align-items:center;justify-content:center;gap:7px;color:#37454a;background:linear-gradient(145deg,#fff2e9,#e9f8f7)}.radical-builder-art b{font-family:Noto Sans SC,sans-serif;font-size:2.8rem}.radical-builder-art i{color:#eb5544;font-size:1.5rem;font-style:normal;font-weight:900}.radical-builder-mode strong{color:#087f82;font-size:1.08rem}.radical-builder-mode small{white-space:normal}.radical-builder-mode:hover,.radical-builder-mode:focus-visible{border-color:#e99a62}.character-match-art{background-image:url(/assets/flashcard-match-DSB83LL8.jpg)}.sentence-builder-mode:hover,.sentence-builder-mode:focus-visible{border-color:#a896d2}.quick-quiz-mode-art{align-self:stretch;min-height:132px;background:#f1ebfa url(/assets/sentence-builder-DZW0bCqh.jpg) center / cover no-repeat}.quick-quiz-mode-kicker{display:block;margin-bottom:5px;color:#7055a7;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sentence-builder-mode strong{color:#4d3b72;font-size:1.08rem}.sentence-builder-mode small{white-space:normal}.quick-quiz-mode-cta{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:10px 13px;border-radius:10px;color:#fff;background:#7255a7;font-size:.75rem;font-weight:800;white-space:nowrap}.practice-setup-dialog{width:min(680px,calc(100% - 28px));max-height:min(760px,calc(100dvh - 28px));padding:0;overflow:auto;border:0;border-radius:24px;background:transparent;box-shadow:0 28px 70px #30261f40}.practice-setup-dialog::backdrop{background:#27201d80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.practice-setup-panel{position:relative;padding:30px;background:#fffaf5}.practice-setup-panel h2{margin:4px 42px 8px 0;color:var(--ink);font-size:clamp(1.55rem,4vw,2rem)}.practice-setup-instructions,.practice-setup-availability{color:var(--muted);line-height:1.55}.practice-setup-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:#fff;font-size:1.35rem;cursor:pointer}.practice-setup-panel fieldset{margin:22px 0 0;padding:0;border:0}.practice-setup-panel legend{margin-bottom:10px;color:var(--ink);font-weight:800}.practice-setup-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.practice-setup-options.scope-options{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-setup-options.scope-options button{min-height:58px}.practice-setup-options button{min-height:48px;padding:8px 12px;border:1px solid #dacfc5;border-radius:13px;color:var(--ink);background:#fff;font-weight:750;cursor:pointer}.practice-setup-options button.selected{border-color:#98613f;color:#fff;background:#98613f;box-shadow:0 7px 16px #5c372026}.practice-setup-availability{min-height:24px;margin:16px 0 0;font-size:.82rem}.practice-setup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.practice-setup-actions button{min-width:130px;min-height:48px}body.practice-page-leaving .app-shell{opacity:0;transform:scale(.99);transition:opacity .28s ease-out,transform .28s ease-out}.quiz-type-picker{display:grid;gap:8px;margin:16px 0 14px}.quiz-bank-link-status{display:grid;gap:3px;margin:18px 0;padding:13px 14px;border:1px solid rgba(79,138,91,.28);border-radius:var(--radius);color:#315d53;background:#eef6ee}.quiz-bank-link-status.warning{border-color:#b65b4f4d;color:#8a4339;background:#fff7f4}.quiz-bank-link-status span,.quiz-bank-item span,.quiz-bank-empty span{color:var(--muted);line-height:1.45}.quiz-bank-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px;padding-top:18px;border-top:1px solid var(--line)}.quiz-bank-heading h4{margin:2px 0 0}.quiz-bank-list{display:grid;gap:9px}.quiz-bank-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fafaf9}.quiz-bank-item strong,.quiz-bank-item span,.quiz-bank-empty strong,.quiz-bank-empty span{display:block}.quiz-bank-item span{margin-top:3px;font-size:.78rem}.quiz-bank-item .status-label{margin:0;white-space:nowrap}.quiz-bank-number{width:28px;height:28px;display:grid!important;place-items:center;margin:0!important;border-radius:50%;color:#fff!important;background:var(--primary);font-weight:700}.quiz-bank-empty{padding:16px;border:1px dashed var(--line);border-radius:var(--radius);background:#fafaf9}.quiz-bank-empty span{margin-top:5px}.form-label{color:var(--muted);font-size:.78rem;font-weight:700}.practice-card{overflow:hidden}.practice-card .quiz-panel{max-width:none;width:100%}.practice-card .quiz-question{display:grid;grid-template-columns:minmax(0,.95fr) minmax(280px,1.05fr);gap:12px 22px;align-items:start;min-height:240px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fafaf9}.practice-card .quiz-question>.choice-grid{grid-column:2;grid-row:1 / span 4;margin-top:0}.practice-card .quiz-question>.quiz-feedback,.practice-card .quiz-question>.quiz-footer{grid-column:1 / -1}.quiz-question{padding:16px;border-radius:var(--radius);background:#fafaf9;border:1px solid var(--line)}.quiz-question h4{font-size:1.45rem;margin:4px 0 6px}.choice-grid{display:grid;gap:10px;margin-top:16px}.choice-grid button{border:1px solid var(--line);background:#fafaf9;border-radius:var(--button-radius);padding:13px 14px;text-align:left;font-weight:600;transition:background .15s ease,border-color .15s ease,color .15s ease}.choice-grid button:hover,.choice-grid button:focus-visible{border-color:#b4530947;background:#f8eadb;color:var(--primary)}.choice-grid button.correct{border-color:#4f8a5b57;background:#eef6ee}.choice-grid button.wrong{border-color:#b65b4f57;background:#fff7f4}.quiz-feedback{margin-top:14px;padding:14px;border-radius:var(--button-radius);background:#fffdf8;color:var(--muted);font-weight:600}.quiz-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:14px}.note-list,.mistake-list,.timeline,.calendar-list,.student-list,.practice-results{display:grid;gap:12px}.teacher-note-list.expanded{max-height:440px;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(194,65,12,.38) rgba(231,229,228,.7)}.teacher-note-list.expanded::-webkit-scrollbar{width:8px}.teacher-note-list.expanded::-webkit-scrollbar-track{border-radius:999px;background:#e7e5e4b3}.teacher-note-list.expanded::-webkit-scrollbar-thumb{border-radius:999px;background:#c2410c61}.note,.mistake,.timeline-item,.calendar-item,.student-item,.practice-item{padding:15px;background:#fafaf9;border:1px solid var(--line);border-radius:var(--radius)}.note strong,.note span,.mistake strong,.mistake span,.timeline-item strong,.timeline-item span,.calendar-item strong,.calendar-item span,.practice-item strong,.practice-item span{display:block}.note span,.mistake span,.timeline-item span,.calendar-item span,.practice-item span{margin-top:5px;color:var(--muted);line-height:1.5}.timeline-item,.calendar-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.status-label{border-radius:9999px;padding:7px 10px;background:#f8eadb;color:#7a4a18;font-weight:600;font-size:.78rem}.status-label.completed{color:#3f7048;background:#eef6ee}.status-label.rescheduled{color:#7a4a18;background:#f8eadb}.status-label.zoom-unlocked{color:#3f7048;background:#eef6ee}.status-label.zoom-locked{color:#7a4a18;background:#f8eadb}.status-label.cancelled,.status-label.absent{color:#8a4339;background:#fff7f4}.approval-view{min-height:560px;display:grid;place-items:center}.approval-card{max-width:680px;padding:32px;text-align:center}.approval-card h2{font-size:clamp(2rem,4vw,3rem);margin:8px 0 12px;letter-spacing:0}.approval-card p{color:var(--muted);line-height:1.7}.status-icon{font-size:3rem}.approval-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.approval-steps span{padding:14px;background:#fafaf9;border:1px solid var(--line);border-radius:var(--radius);font-weight:600}.admin-layout{display:grid;grid-template-columns:292px minmax(0,1fr);gap:14px;align-items:start}.admin-layout>*,.admin-main>*{min-width:0}.admin-main{display:grid;min-width:0;gap:16px;align-content:start}#adminDashboard.admin-reschedule-page .dashboard-header,#adminDashboard.admin-reschedule-page #adminOverview,#adminDashboard.admin-reschedule-page .admin-main>:not(.admin-flow-columns),#adminDashboard.admin-reschedule-page .admin-flow-columns>:not(#adminRescheduleSection){display:none}#adminDashboard.admin-reschedule-page .admin-layout{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}#adminDashboard.admin-reschedule-page .admin-flow-columns{display:block}#adminDashboard.admin-reschedule-page #adminRescheduleSection{width:100%;margin:0}#adminDashboard:not(.admin-reschedule-page) #adminRescheduleSection{display:none}.admin-flow-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;margin-bottom:0}.sidebar-card{position:sticky;top:94px}.student-tools{display:grid;gap:8px;margin:12px 0}.student-search-label{position:relative}.student-search-label input{border-color:#c2410c3d;background:var(--card)}.student-list-summary{display:inline-flex;width:fit-content;border-radius:9999px;padding:6px 9px;background:#f8eadb;color:#7a4a18;font-size:.74rem;font-weight:600}.student-billing-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border:1px solid var(--line);border-radius:var(--button-radius);background:#fafaf9}.student-billing-tabs button{border:0;border-radius:calc(var(--button-radius) - 4px);padding:8px 10px;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.student-billing-tabs button.active{background:var(--card);color:var(--primary);box-shadow:var(--shadow-soft)}.student-list{max-height:min(42vh,420px);overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(194,65,12,.38) rgba(231,229,228,.7)}.student-list::-webkit-scrollbar{width:8px}.student-list::-webkit-scrollbar-track{border-radius:999px;background:#e7e5e4b3}.student-list::-webkit-scrollbar-thumb{border-radius:999px;background:#c2410c61}.student-item{border:1px solid var(--line);text-align:left;width:100%;background:#fafaf9;cursor:pointer}.student-item.active{border-color:#b453095c;background:#f8eadb}.student-item strong,.student-item span{display:block}.student-item span{color:var(--muted);margin-top:4px}.student-list-empty{padding:14px;border:1px dashed rgba(194,65,12,.28);border-radius:var(--radius);background:#fafaf9}.student-list-empty strong,.student-list-empty span{display:block}.student-list-empty span{margin-top:5px;color:var(--muted);line-height:1.5}.student-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.mini-badge{display:inline-flex;width:fit-content;border-radius:9999px;padding:4px 7px;background:#f8eadb;color:#7a4a18;font-size:.68rem;font-weight:600}.mini-badge.admin{background:#eef6ee;color:#3f7048}.mini-badge.level{background:#fffdf8;color:#5f5247}.student-level-form{display:grid;gap:8px;margin-top:6px}.admin-access-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.admin-access-panel h4{margin:0 0 12px}.profile-list{display:grid;gap:10px}.profile-item{padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fafaf9}.profile-item strong,.profile-item span{display:block}.profile-item span{margin-top:4px;color:var(--muted);font-size:.78rem}.mini-form,.form-grid{display:grid;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.no-border{border-top:0;padding-top:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0;padding-top:0;border-top:0}.form-helper{margin:-4px 0 0;color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.4}label{display:grid;gap:7px;color:var(--muted);font-weight:600;font-size:.86rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--button-radius);padding:12px 13px;background:var(--card);color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #c2410c1f}textarea{resize:vertical}.span-2{grid-column:1 / -1}.checkbox-label{display:flex;align-items:center;gap:10px;color:var(--ink)}.checkbox-label input{width:18px;height:18px}.admin-student-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-student-grid div{background:#fafaf9;border:1px solid var(--line);border-radius:var(--radius);padding:15px}.admin-student-grid strong{display:block;margin-top:4px}.schedule-rule-panel{margin-top:10px}.schedule-rule-panel summary{display:inline-flex;width:fit-content;min-height:32px;align-items:center;border:1px solid var(--line);border-radius:var(--button-radius);padding:7px 10px;background:var(--card);color:var(--ink);cursor:pointer;font-size:.78rem;font-weight:600;list-style:none;transition:background .16s ease,border-color .16s ease,color .16s ease}.schedule-rule-panel summary::-webkit-details-marker{display:none}.schedule-rule-panel summary:before{content:"+";margin-right:7px;color:var(--primary);font-weight:600}.schedule-rule-panel[open] summary:before{content:"-"}.schedule-rule-panel summary:hover,.schedule-rule-panel summary:focus-visible{border-color:#c2410c57;background:var(--surface-raised);color:var(--primary)}.schedule-rule-content{margin-top:10px;padding:12px 0 0;border-top:1px solid var(--line)}.schedule-rule-form{margin-top:10px;gap:9px}.schedule-default-form{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.schedule-rule-form input{text-align:center}.schedule-rule-form button{width:100%;min-height:38px;white-space:nowrap}.schedule-confirm-label{margin-top:10px;padding:11px 12px;border:1px dashed rgba(194,65,12,.28);border-radius:var(--radius);background:#fffdf8;font-size:.76rem}.schedule-confirm-label input{flex:0 0 auto}.calendar-card{margin-bottom:14px}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.month-heading,.month-day{border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.month-heading{padding:10px 8px;text-align:center;color:var(--muted);font-size:.78rem;font-weight:600}.month-day{min-height:128px;padding:10px;display:grid;grid-template-rows:auto 1fr;gap:8px}.month-day.outside{background:var(--surface-raised);opacity:.45}.month-date{color:var(--muted);font-size:.82rem;font-weight:600}.calendar-class-list{display:grid;gap:6px;align-content:start}.calendar-class{display:grid;gap:5px;padding:8px;border-radius:var(--button-radius);background:#fafaf9;border:1px solid var(--line);color:var(--ink);font-size:.78rem;line-height:1.3}.calendar-class:nth-child(2n){background:#fffdf8;border-color:var(--line)}.calendar-class:nth-child(3n){background:#fffaf4;border-color:#ead6c3}.calendar-class strong,.calendar-class span{display:block}.calendar-class span{color:var(--muted)}.calendar-note-preview{display:grid;gap:4px;margin-top:2px;padding:7px;border:1px solid #ead6c3;border-radius:var(--button-radius);background:#fffdf8}.calendar-note-preview strong{color:#7a4a18;font-size:.72rem}.calendar-note-preview span{color:var(--ink);line-height:1.35}.calendar-class.completed{background:#eef6ee;border-color:#4f8a5b47}.calendar-class.rescheduled{background:#fffdf8;border-color:#ead6c3}.calendar-class.cancelled,.calendar-class.absent{background:#fff7f4;border-color:#e8c8bc}.calendar-class button{justify-self:start;min-height:30px;padding:7px 9px;border-radius:6px;font-size:.74rem;box-shadow:none}.calendar-class-actions{display:flex;gap:6px;flex-wrap:wrap}.calendar-class-actions button{margin-top:2px}.month-calendar{position:relative;overflow:visible}.month-day{position:relative;min-height:92px;padding:9px;border-radius:var(--radius);outline:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.month-day:not(.outside):hover,.month-day:not(.outside):focus-within,.month-day:not(.outside):focus{z-index:15;border-color:#c2410c6b;box-shadow:var(--shadow-hover);transform:none}.calendar-day-summary{display:grid;gap:7px;align-content:start}.calendar-day-summary.empty{opacity:.42}.month-day.has-booking-availability{cursor:pointer;border-color:#2f9f6157;background:#f4fcf7;box-shadow:inset 0 0 0 1px #2f9f6114}.month-day.has-booking-availability:hover,.month-day.has-booking-availability:focus{border-color:#2f9f61b3;box-shadow:0 10px 20px #2f9f6121}.month-day.student-booking-date{cursor:pointer}.month-day.student-booking-date.is-selected{border-color:#7567ee;background:#f5f2ff;box-shadow:0 0 0 2px #7567ee24}.month-day.is-past-booking-date{cursor:not-allowed;opacity:.58}.calendar-availability-badge{display:inline-flex;width:fit-content;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;color:#247a49;background:#eaf8ef;font-size:.66rem;font-weight:800;line-height:1}.calendar-availability-badge i{width:6px;height:6px;border-radius:999px;background:#2f9f61}.schedule-count{display:inline-flex;width:fit-content;padding:5px 8px;border-radius:9999px;color:#7a4a18;background:#f8eadb;font-size:.72rem;font-weight:600}.calendar-day-summary small{color:var(--muted);font-size:.72rem;font-weight:600;line-height:1.3}.calendar-dots{display:flex;gap:4px;flex-wrap:wrap}.calendar-dot{width:8px;height:8px;border-radius:9999px;background:var(--secondary)}.calendar-dot.completed{background:var(--mint)}.calendar-dot.rescheduled{background:var(--warm)}.calendar-dot.cancelled,.calendar-dot.absent{background:var(--primary)}.day-popover{position:absolute;left:50%;top:calc(100% + 10px);z-index:30;display:none;width:min(280px,78vw);max-height:340px;overflow:auto;transform:translate(-50%);padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-hover)}.month-day:hover .day-popover,.month-day:focus .day-popover,.month-day:focus-within .day-popover{display:grid;gap:10px}.day-popover>strong{font-size:.9rem}.day-popover-list{display:grid;gap:8px}.spatial-calendar-card .day-popover .calendar-class,.day-popover .calendar-class{display:grid}.section-nav{position:fixed;top:0;bottom:0;left:0;z-index:80;display:grid;align-content:start;gap:8px;width:var(--sidebar-width);padding:30px 18px 24px;border:0;border-right:1px solid var(--line);border-radius:0;background:#f5ede6;box-shadow:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.section-nav:before{content:"Mew Chinese\a Dashboard";white-space:pre-line;color:var(--ink);font-size:1.18rem;font-weight:600;letter-spacing:0;line-height:1.1;padding:0 5px 28px}.section-nav button{position:relative;width:100%;min-height:42px;border:1px solid transparent;border-radius:var(--button-radius);background:transparent;color:var(--muted);font-size:.88rem;font-weight:600;text-align:left;padding:10px 28px 10px 34px;line-height:1.2;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.section-nav button:before{content:"";position:absolute;left:10px;top:50%;width:13px;height:13px;border-radius:4px;background:#6d625861;transform:translateY(-50%)}.section-nav button:after{content:"";position:absolute;top:8px;right:-18px;bottom:8px;width:3px;border-radius:9999px 0 0 9999px;background:transparent}.section-nav button:hover,.section-nav button:focus-visible,.section-nav button.active{border-color:transparent;background:#fffdf8a8;color:var(--primary);transform:none}.section-nav button.active{box-shadow:none}.section-nav button.active:before{background:var(--primary)}.section-nav button.active:after{background:var(--primary)}.section-nav.student-menu{width:var(--sidebar-width);padding:30px 18px 24px;border-right:1px solid var(--line);background:#f5ede6}.section-nav.student-menu:before{content:"Mew Chinese\aStudent Portal";color:var(--ink)}.section-nav.student-menu button{min-height:42px;padding:10px 28px 10px 34px;font-size:.88rem}.section-nav.student-menu button:before{left:10px;width:13px;height:13px;border-radius:4px;background:#6d625861;opacity:1}.section-nav.student-menu button:hover,.section-nav.student-menu button:focus-visible,.section-nav.student-menu button.active{border-color:transparent;background:#f8eadb;color:var(--primary);transform:none}.section-nav.student-menu button.active{box-shadow:none}.section-nav.student-menu button.active:before{background:var(--primary)}.student-item.all-students{background:#fffdf8;border-color:#ead6c3}.inline-number-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px}.inline-number-form input{min-width:0}.inline-number-form .secondary-btn{padding:11px 12px;border-radius:8px}.inline-number-form.schedule-rule-form{grid-template-columns:1fr;gap:10px}.inline-number-form.schedule-rule-form input,.inline-number-form.schedule-rule-form button{width:100%}.inline-number-form.schedule-rule-form .secondary-btn{min-height:40px;padding:11px 14px}.admin-hint{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;line-height:1.4}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);color:#fff;background:var(--ink);border-radius:var(--button-radius);padding:12px 18px;font-weight:600;box-shadow:var(--shadow-hover);z-index:60}.hidden{display:none!important}.auth-loading .app-shell,.auth-loading .toast{visibility:hidden}.login-only{display:grid;min-height:100vh;background:var(--bg)}.login-gate{display:grid;place-items:center;min-height:100vh;padding:24px}.login-panel{width:min(500px,100%);background:#f5f5f4f5;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.login-identity{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}.login-brand{margin-bottom:0}.login-secure-badge{flex:0 0 auto;border:1px solid #ead6c3;border-radius:9999px;background:#f8eadb;color:#7a4a18;padding:8px 10px;font-size:.74rem;font-weight:600}.login-copy h1{margin:0 0 14px;font-size:clamp(2rem,6vw,3.35rem);line-height:1;letter-spacing:0}.login-copy p:not(.eyebrow){color:var(--muted);line-height:1.7}.login-facebook{width:100%;margin-top:18px}.login-demo-student{width:100%;min-height:44px;margin-top:10px}.student-credit-card{display:grid;grid-template-columns:auto minmax(180px,1fr) auto minmax(210px,auto) auto;align-items:center;gap:18px;padding:20px 22px;overflow:hidden;background:radial-gradient(circle at 7% 18%,rgba(255,255,255,.9),transparent 24%),linear-gradient(125deg,#fffaf0,#fff3d8 48%,#f8ead0);border-color:#b4742e33}.student-credit-card:after{content:"";position:absolute;width:150px;height:150px;right:-58px;bottom:-92px;border:22px solid rgba(173,103,34,.08);border-radius:50%;pointer-events:none}.student-credit-icon{display:grid;place-items:center;width:64px;height:64px;color:#8a4d1f;background:linear-gradient(145deg,#fffdf7,#f4c978);border:1px solid rgba(151,87,28,.18);border-radius:20px;box-shadow:0 10px 24px #78471a24,inset 0 1px #ffffffe6}.student-credit-icon svg{width:42px;height:42px;fill:#fff9e2b8;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.student-credit-copy h3,.student-credit-copy p{margin:0}.student-credit-copy h3{margin-top:3px;color:var(--ink);font-size:clamp(1.05rem,1.4vw,1.28rem)}.student-credit-copy>p:last-child{margin-top:5px;color:var(--muted);line-height:1.45}.student-credit-balance{min-width:116px;padding-inline:20px;border-inline:1px solid rgba(148,91,37,.16);text-align:center}.student-credit-balance strong{display:block;color:#8d421f;font-size:clamp(2rem,3vw,2.75rem);line-height:1}.student-credit-balance span,.student-credit-details small{color:var(--muted);font-size:.78rem}.student-credit-details{display:grid;grid-template-columns:repeat(2,minmax(96px,1fr));gap:16px}.student-credit-details span,.student-credit-details strong{display:block}.student-credit-details strong{margin-top:3px;color:var(--ink);font-size:.92rem}.student-credit-action{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;color:#fff;background:#994725;border-radius:999px;font-weight:750;text-decoration:none;white-space:nowrap;box-shadow:0 8px 18px #7e391c33}.student-credit-action:hover,.student-credit-action:focus-visible{background:#7f381d;transform:translateY(-1px)}@media(max-width:1080px){.student-credit-card{grid-template-columns:auto minmax(0,1fr) auto}.student-credit-balance{border-right:0}.student-credit-details{grid-column:2 / 4}.student-credit-action{grid-column:2 / 4;justify-self:start}}@media(max-width:640px){.student-credit-card{grid-template-columns:54px minmax(0,1fr);gap:14px;padding:18px}.student-credit-icon{width:54px;height:54px;border-radius:17px}.student-credit-icon svg{width:36px;height:36px}.student-credit-balance{grid-column:1 / -1;display:flex;align-items:baseline;gap:8px;min-width:0;padding:14px 0 0;border:0;border-top:1px solid rgba(148,91,37,.16);text-align:left}.student-credit-balance strong{font-size:2.25rem}.student-credit-details,.student-credit-action{grid-column:1 / -1}.student-credit-action{width:100%}}.login-footer-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:24px;margin-top:14px}.login-status{min-height:0;margin:0;color:var(--muted);font-size:.86rem;font-weight:600;line-height:1.5}.login-footer-row>span{color:var(--muted);font-size:.78rem;font-weight:600;white-space:nowrap}.login-only{overflow-x:hidden;background:#091722}.living-world-login{position:relative;isolation:isolate;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.72fr);align-items:center;gap:48px;overflow:hidden;padding:84px max(28px,calc((100vw - 1240px)/2));color:#f8f2e7;background:#091722}.living-world-canvas,.world-fallback{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;overflow:hidden;pointer-events:none}.living-world-canvas canvas{display:block;width:100%;height:100%}.world-fallback{z-index:-3;background:#102532}.fallback-mountain{position:absolute;bottom:-5%;width:46%;height:58%;clip-path:polygon(50% 0,100% 100%,0 100%);background:#25493f;opacity:.9}.fallback-mountain-left{left:-10%;transform:scaleY(.82)}.fallback-mountain-center{left:28%;bottom:-12%;background:#315e52}.fallback-mountain-right{right:-12%;transform:scaleY(.74)}.fallback-gate{position:absolute;left:50%;bottom:8%;width:min(440px,52vw);height:min(360px,45vw);transform:translate(-50%)}.fallback-gate span{position:absolute;bottom:0;width:7%;height:82%;background:#8d332f;box-shadow:0 0 28px #b8483c38}.fallback-gate span:first-child{left:17%}.fallback-gate span:nth-child(2){right:17%}.fallback-gate i{position:absolute;left:4%;right:4%;top:14%;height:9%;border-top:5px solid #d1aa4d;background:#9f3932;box-shadow:0 0 30px #d1aa4d2e}.fallback-mist{position:absolute;left:-8%;width:116%;height:80px;border-radius:50%;background:#deebe81f;filter:blur(18px)}.fallback-mist-one{bottom:22%}.fallback-mist-two{bottom:42%;opacity:.66}.world-intro-copy{position:relative;z-index:2;align-self:center;max-width:660px;text-shadow:0 3px 28px rgba(3,10,15,.52)}.world-kicker{display:block;margin-bottom:16px;color:#e2c15f;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.world-calligraphy{position:absolute;left:-34px;top:-112px;z-index:-1;color:#e7f2ed1f;font-family:var(--font-display);font-size:11rem;line-height:1;filter:drop-shadow(0 0 20px rgba(196,224,211,.16))}.intro-playing .world-calligraphy{animation:world-ink-draw 1.25s .15s both}.world-intro-copy h1{margin:0;color:#fff9ec;font-size:4.8rem;line-height:.98;letter-spacing:0}.world-intro-copy p{margin:20px 0 0;color:#d9e5df;font-family:var(--font-display);font-size:1.42rem;line-height:1.45}.living-world-panel{position:relative;z-index:4;justify-self:end;width:min(470px,100%);color:#1f2b27;background:#fffcf3eb;border-color:#e5d2b19e;box-shadow:0 30px 70px #020b1057;-webkit-backdrop-filter:blur(20px) saturate(1.08);backdrop-filter:blur(20px) saturate(1.08)}.living-world-panel .login-copy h2{margin:0 0 12px;color:#1e3d35;font-family:var(--font-display);font-size:2.35rem;line-height:1.05}.living-world-panel .eyebrow{color:var(--secondary)}.living-world-panel .facebook-btn{background:#2f7465;border-color:#2f7465}.living-world-panel .facebook-btn:hover,.living-world-panel .facebook-btn:focus-visible{background:#22594f;border-color:#22594f}.world-controls{position:absolute;top:20px;right:24px;z-index:8;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.world-control,.world-quality{min-height:40px;display:inline-flex;align-items:center;border:1px solid rgba(235,241,236,.28);border-radius:8px;padding:9px 12px;color:#f5f0e5;background:#081a23a8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:.78rem;font-weight:700}.world-control:hover,.world-control:focus-visible{border-color:#e2c15f;color:#fff7df;background:#234a40db;outline:none}.world-control:focus-visible{box-shadow:0 0 0 3px #e2c15f47}.world-quality{color:#c6d5cf;cursor:default}.world-fallback-active .world-quality{color:#f3d981}.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}@keyframes world-ink-draw{0%{clip-path:inset(0 100% 0 0);opacity:0;transform:translateY(10px) scale(.94)}55%{opacity:.58}to{clip-path:inset(0 0 0 0);opacity:1;transform:translateY(0) scale(1)}}@media(max-width:900px){.living-world-login{grid-template-columns:1fr;align-content:center;gap:24px;min-height:100svh;padding:86px 22px 30px}.world-intro-copy{max-width:580px}.world-intro-copy h1{font-size:3.5rem}.world-intro-copy p{margin-top:12px;font-size:1.16rem}.world-calligraphy{left:auto;right:0;top:-66px;font-size:7rem}.living-world-panel{justify-self:start;width:min(520px,100%)}}@media(max-width:560px){.living-world-login{align-content:start;padding:78px 14px 20px}.world-controls{top:12px;right:12px;left:12px}.world-control,.world-quality{min-height:42px}.world-intro-copy h1{font-size:2.9rem}.world-intro-copy p{max-width:300px;font-size:1.02rem}.living-world-panel{padding:20px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.living-world-panel .login-copy h2{font-size:1.95rem}.fallback-gate{width:74vw;height:58vw}}@media(prefers-reduced-motion:reduce){.intro-playing .world-calligraphy{animation:none}}.academy-app,.academy-interface{position:relative;min-height:100vh}.academy-interface{z-index:1}.academy-scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;opacity:.62;transition:opacity .26s ease}.academy-scene[data-scene-view=admin]{opacity:.18}.academy-scene canvas{display:block;width:100%;height:100%}.academy-3d-fallback .academy-scene{display:none}body{background-color:var(--bg)}.app-shell{position:relative}.topbar{background:#f4efe5c2;border-bottom:1px solid rgba(49,78,68,.1)}.brand-mark{color:#fffaf0;background:var(--secondary);border-color:#75292247;box-shadow:0 8px 18px #7a312a29}.glass-card,.card,.approval-card{background:var(--card);border-color:#314e4429;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px) saturate(1.05);backdrop-filter:blur(18px) saturate(1.05)}.card:hover,.glass-card:hover,.approval-card:hover{border-color:#2f746552;box-shadow:var(--shadow-hover)}.dashboard-header.academy-welcome{position:relative;min-height:248px;align-items:center;overflow:hidden;margin-bottom:18px;padding:36px 32px;border-top:1px solid rgba(255,253,247,.78);border-bottom:1px solid rgba(49,78,68,.14)}.academy-welcome-copy{position:relative;z-index:2;max-width:560px;padding:18px 20px;border:1px solid var(--line);background:#fffdf7b8;box-shadow:0 18px 42px #2a3e3414;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.academy-welcome .eyebrow{color:var(--secondary)}.academy-welcome h2{color:#173c34;font-size:2.4rem;line-height:1.08}.academy-location{position:absolute;right:30px;top:28px;z-index:1;display:grid;gap:2px;min-width:112px;color:#1e493fb8;font-size:.73rem;font-weight:700;text-align:center;text-transform:uppercase}.academy-location b{color:var(--secondary);font-family:var(--font-display);font-size:2rem;font-weight:600}.academy-welcome .student-status{position:absolute;right:28px;bottom:26px;z-index:2;color:#244d43;background:#f4faf4e0;border:1px solid rgba(47,116,101,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#studentOverview{perspective:1200px;gap:16px}#studentOverview>.card{min-height:300px;overflow:hidden;border-top:3px solid var(--warm)}#studentOverview>.card:nth-child(2){border-top-color:var(--primary)}#studentOverview>.card:nth-child(3){border-top-color:var(--secondary)}.academy-desk{position:relative;background:#fffaf0e6;box-shadow:0 22px 46px #5b39221f}.academy-desk:after{content:"";position:absolute;left:18px;right:18px;bottom:14px;height:3px;border-radius:999px;background:var(--warm);opacity:.62}.journey-card{background:#f6fcf7e0}.course-journey{--journey-progress: 30%;position:relative;margin:20px 0 16px;padding:8px 2px 0}.journey-line{position:absolute;top:18px;left:9%;right:9%;height:4px;overflow:hidden;border-radius:999px;background:#d8dfda}.journey-line span{display:block;width:var(--journey-progress);height:100%;border-radius:inherit;background:var(--primary)}.journey-stops{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.journey-stops span{display:grid;justify-items:center;gap:5px;color:var(--muted);font-size:.68rem;font-weight:700}.journey-stops i{position:relative;z-index:1;width:24px;height:24px;display:grid;place-items:center;border:3px solid #d8dfda;border-radius:50%;color:var(--muted);background:#fffdf7;font-size:.64rem;font-style:normal}.journey-stops span.reached{color:var(--primary-dark)}.journey-stops span.reached i{border-color:var(--primary);color:#fff;background:var(--primary);box-shadow:0 0 0 4px #2f74651f}.schedule-change-box{background:#fffdf7d1;border-color:#c6973357}.floating-class-board{position:relative;margin-top:28px;border-top:4px solid var(--primary-dark);background:#fffdf7eb;box-shadow:0 24px 50px #26463b24;transform:perspective(1400px) rotateX(.7deg);transform-origin:top center}.floating-class-board:before,.floating-class-board:after{content:"";position:absolute;top:-28px;width:2px;height:25px;background:#9d7930;box-shadow:0 0 0 3px #c697331f}.floating-class-board:before{left:18%}.floating-class-board:after{right:18%}.month-heading{color:#31574e;background:#e9f0e9;border-color:#2f746529}.month-day{background:#fffdf7f0}.month-day:not(.outside):hover,.month-day:not(.outside):focus-within,.month-day:not(.outside):focus{border-color:#2f74657a;box-shadow:0 14px 26px #26463b1f;transform:translateY(-2px)}.calendar-class{border:1px solid rgba(47,116,101,.3);background:#f4f8f3}.learning-stations{position:relative;overflow:visible;border-top:4px solid var(--secondary);background:#fffbf2eb}.learning-stations .segmented{gap:8px;border:0;background:transparent}.learning-stations .segmented button{min-width:112px;border:1px solid rgba(49,78,68,.18);background:#fffdf7e6;box-shadow:0 8px 18px #28372f14;transform:translateY(0)}.learning-stations .segmented button:hover,.learning-stations .segmented button:focus-visible{border-color:#2f746561;transform:translateY(-2px)}.learning-stations .segmented button.active{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:0 10px 22px #2f746533}.learning-stations .quiz-question{border-color:#314e4429;background:#fffdf7e6;box-shadow:inset 0 0 0 1px #ffffffa6}.choice-grid button{min-height:48px;background:#fffdf7f5}.choice-grid button:hover,.choice-grid button:focus-visible{border-color:#2f746557;color:var(--primary-dark);background:#edf5ef}.level-tabs button.active{border-color:#2f746557;color:var(--primary-dark);background:#e7f0e9}.control-room-header{min-height:154px;align-items:center;margin-bottom:18px;padding:28px 30px;color:#fffaf0;background:#1b433bf2;border:1px solid rgba(22,57,50,.7);border-radius:var(--radius);box-shadow:0 20px 44px #18362f2e}.control-room-header .eyebrow,.control-room-header .muted{color:#dfc477}.control-room-header h2{color:#fffaf0;font-size:2.35rem}.control-room-header .primary-btn{color:#fffaf0;background:var(--secondary);border-color:#c15b4e}.admin-view .card{background:#fffdf8f7;border-color:#314e4429;box-shadow:0 10px 26px #26393112;-webkit-backdrop-filter:none;backdrop-filter:none}#adminOverview .card{min-height:112px;border-top:3px solid var(--primary)}#adminOverview .card:nth-child(2){border-top-color:var(--warm)}#adminOverview .card:nth-child(3),#adminOverview .card:nth-child(4){border-top-color:var(--secondary)}.sidebar-card{background:#f8f1e7!important;border-top:4px solid var(--primary)!important}.admin-main>.card,.admin-flow-columns>.card{border-left:1px solid rgba(47,116,101,.38)}.admin-student-grid div,.note,.mistake,.timeline-item,.calendar-item,.student-item,.practice-item,.profile-item{background:#fbf9f3}.primary-btn{background:var(--primary);border-color:var(--primary)}.secondary-btn:hover,.secondary-btn:focus-visible{border-color:#2f74656b;color:var(--primary-dark);background:#edf3ed}.section-nav,.section-nav.student-menu{color:#fff9ed;background:#173f37;border-right-color:#12302acc;box-shadow:12px 0 34px #19322b1f}.section-nav:before,.section-nav.student-menu:before{color:#fff9ed}.section-nav button,.section-nav.student-menu button{color:#c9d8d1}.section-nav button:before,.section-nav.student-menu button:before{background:#d6b75d;opacity:.62}.section-nav button:hover,.section-nav button:focus-visible,.section-nav button.active,.section-nav.student-menu button:hover,.section-nav.student-menu button:focus-visible,.section-nav.student-menu button.active{color:#fffaf0;background:#fffaf01f}.section-nav button.active:before,.section-nav.student-menu button.active:before,.section-nav button.active:after{background:#e4bd4f}body[data-portal-view=admin] .topbar{background:#eef1ebeb}.academy-3d-fallback .glass-card,.academy-3d-fallback .card,.academy-3d-fallback .approval-card,.academy-3d-fallback .academy-welcome-copy{background:#fffdf7;-webkit-backdrop-filter:none;backdrop-filter:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.floating-class-board,.month-day:not(.outside):hover,.learning-stations .segmented button:hover{transform:none}}@media print{.academy-scene,.section-nav,.topbar{display:none!important}body,.card,.academy-welcome-copy{background:#fff!important;box-shadow:none!important}}@media(min-width:901px){body.has-section-nav:not(.login-only){padding-left:var(--sidebar-width);padding-right:0}body.has-student-section-menu:not(.login-only){padding-left:var(--sidebar-width)}body.has-section-nav:not(.login-only) .app-shell{width:min(1180px,calc(100% - (var(--content-gutter) * 2)))}body.has-section-nav:not(.login-only) .topbar .brand{display:none}body.has-section-nav:not(.login-only) .topbar{justify-content:flex-end}body.has-section-nav:not(.login-only) .topbar-actions{width:100%;justify-content:space-between}}@media(max-width:900px){body.has-section-nav:not(.login-only){padding-top:62px;padding-left:0}.section-nav{top:8px;right:10px;bottom:auto;left:10px;z-index:120;width:auto;align-content:stretch;grid-auto-flow:column;grid-auto-columns:max-content;justify-content:start;overflow-x:auto;padding:8px 10px;border-radius:var(--radius);scrollbar-width:none;scroll-snap-type:x proximity}.section-nav::-webkit-scrollbar{display:none}.section-nav:before{display:none}.section-nav button{min-height:40px;min-width:94px;padding:9px 12px 9px 30px;text-align:center;white-space:nowrap;scroll-snap-align:center}.section-nav button.active{box-shadow:inset 0 -3px 0 var(--primary)}.section-nav button:after{display:none}.section-nav.student-menu{top:8px;right:10px;left:10px;width:auto;gap:8px;grid-auto-flow:column;grid-auto-columns:minmax(112px,max-content);padding:8px 10px;border-right:1px solid var(--line);background:#fffdf8f5}.section-nav.student-menu button{min-height:40px;padding:9px 14px 9px 38px;text-align:left}.section-nav.student-menu button:before{left:14px;width:12px;height:12px}.section-nav.student-menu button.active{box-shadow:none}}@media(max-width:980px){.topbar,.dashboard-header{align-items:flex-start;flex-direction:column}.hero,.grid-2,.grid-3,.grid-4,#studentOverview,.admin-layout,.student-detail-columns,.admin-flow-columns,.admin-student-grid{grid-template-columns:1fr}.student-detail-columns{grid-template-areas:"history" "notes"}.topbar{position:static;margin:0 0 16px}.sidebar-card{position:static}.student-list{max-height:none;overflow:visible;padding-right:0}.approval-steps,.practice-card .quiz-question{grid-template-columns:1fr}.practice-card .quiz-question>.choice-grid,.practice-card .quiz-question>.quiz-feedback,.practice-card .quiz-question>.quiz-footer{grid-column:auto;grid-row:auto}}@media(max-width:640px){.app-shell{width:min(100% - 20px,1180px)}.topbar-actions,.logout-form{width:100%}.logout-form{justify-content:space-between}.role-switch,.segmented{width:100%;overflow-x:auto;justify-content:flex-start}.pill,.segmented button{flex:0 0 auto}.practice-card .card-title-row{align-items:flex-start}.quick-quiz-context{max-width:none;text-align:left}.practice-library-step{align-items:flex-start;flex-wrap:wrap}.practice-library-step em{width:100%;margin-left:41px;white-space:normal}.quick-quiz-mode-grid{grid-template-columns:1fr}.sentence-builder-mode,.character-match-mode,.character-choice-mode,.radical-builder-mode{grid-column:auto;grid-template-columns:96px minmax(0,1fr);min-height:112px;padding-right:12px}.quick-quiz-mode-art{min-height:112px}.quick-quiz-mode-cta{grid-column:1 / -1;justify-content:center;margin:0 12px 12px}.hero{min-height:auto;padding-top:24px}.hero-copy h1{font-size:2.7rem}.mini-calendar,.stats-row,.timeline-item,.calendar-item,.form-grid{grid-template-columns:1fr}.mini-calendar{display:grid}.join-mini{text-align:center}.card,.hero-card,.approval-card{padding:16px;border-radius:var(--radius)}.quiz-bank-item{grid-template-columns:auto minmax(0,1fr)}.quiz-bank-item .status-label{grid-column:2;width:fit-content}.login-panel{padding:22px}.login-identity,.login-footer-row{align-items:flex-start;flex-direction:column}.login-secure-badge{width:fit-content}}@media(max-width:980px){.academy-scene{opacity:.38}.dashboard-header.academy-welcome{min-height:226px;padding:28px 22px}.academy-welcome-copy{max-width:min(620px,calc(100% - 124px))}#studentOverview>.card{min-height:0}.floating-class-board{margin-top:22px;transform:none}.control-room-header{min-height:0}}@media(max-width:900px){.section-nav,.section-nav.student-menu{color:var(--ink);background:#fffdf7f5;border:1px solid rgba(49,78,68,.18);box-shadow:0 12px 28px #253d331f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.section-nav button,.section-nav.student-menu button{color:var(--muted)}.section-nav button:hover,.section-nav button:focus-visible,.section-nav button.active,.section-nav.student-menu button:hover,.section-nav.student-menu button:focus-visible,.section-nav.student-menu button.active{color:var(--primary-dark);background:#eaf1e9}}@media(max-width:640px){.academy-scene{opacity:.24}.dashboard-header.academy-welcome{min-height:0;padding:18px 2px 22px;border-top:0}.academy-welcome-copy{max-width:100%;padding:16px;border-left-width:1px;background:#fffdf7e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.academy-welcome h2,.control-room-header h2{font-size:1.9rem}.academy-location{display:none}.academy-welcome .student-status{position:static;margin-top:10px;width:fit-content}.floating-class-board:before,.floating-class-board:after{display:none}.learning-stations .card-title-row{align-items:stretch;flex-direction:column}.learning-stations .segmented button{min-width:max-content}.journey-stops span{font-size:.62rem}.control-room-header{padding:22px 18px}}.auth-loading .academy-scene{visibility:hidden}.spatial-dashboard-app,.spatial-dashboard-interface{position:relative;min-height:100vh}.spatial-login{position:relative;isolation:isolate;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.68fr);align-items:center;gap:56px;overflow:hidden;padding:82px max(28px,calc((100vw - 1240px)/2));color:#20332d;background:#eae4d9}.spatial-login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(7deg,rgba(75,62,43,.018) 0 1px,transparent 1px 7px),linear-gradient(120deg,rgba(255,255,255,.36),transparent 42%)}.brush-login-visual{position:relative;z-index:1;display:grid;grid-template-columns:minmax(220px,.72fr) minmax(230px,1fr);align-items:center;gap:clamp(24px,4vw,48px)}.brush-login-paper{position:relative;display:grid;place-items:center;aspect-ratio:4 / 5;min-height:330px;overflow:hidden;color:#172d27;border:1px solid rgba(91,77,56,.18);background:repeating-linear-gradient(3deg,rgba(70,58,38,.025) 0 1px,transparent 1px 9px),repeating-linear-gradient(93deg,rgba(70,58,38,.014) 0 1px,transparent 1px 13px),#f7f2e8}.brush-login-character{color:#172d27;font-family:var(--font-display);font-size:clamp(9rem,20vw,14rem);font-weight:600;line-height:.88}.brush-login-seal{position:absolute;right:18px;bottom:18px;padding:5px 7px;color:#8d3f32;border:1px solid currentColor;font-size:.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.spatial-intro-copy{position:relative;max-width:580px}.spatial-kicker{display:block;margin-bottom:14px;color:#8d3f32;font-size:.8rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.spatial-intro-copy h1{margin:0;color:#19322b;font-family:var(--font);font-size:4.4rem;font-weight:600;line-height:1;letter-spacing:0}.spatial-intro-copy p{max-width:470px;margin:18px 0 0;color:#586861;font-size:1.28rem;line-height:1.5}.spatial-login .living-world-panel{position:relative;z-index:2;border-color:#75897f52;background:#f8f8f3;box-shadow:none}.spatial-dashboard-header{position:relative;display:grid;grid-template-columns:minmax(260px,.8fr) minmax(430px,1.2fr);align-items:stretch;min-height:348px;overflow:hidden;margin-bottom:18px;padding:0;color:#ecf3ef;background:linear-gradient(128deg,#08171d,#0a2025 58%,#081a20);border:1px solid rgba(102,151,135,.2);border-radius:var(--radius);box-shadow:0 22px 56px #10242029}.spatial-dashboard-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.72;background:linear-gradient(112deg,transparent 18%,rgba(176,214,200,.025) 52%,transparent 78%)}.spatial-dashboard-header:after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:1px;z-index:2;pointer-events:none;background:#dab95b57}.spatial-greeting-copy{position:relative;z-index:2;align-self:center;padding:40px 18px 78px 36px}.spatial-greeting-copy .eyebrow{color:#d9ba62}.spatial-greeting-copy h2{max-width:390px;color:#f3f5f1;font-family:var(--font);font-size:2.45rem;font-weight:600;line-height:1.08}.spatial-greeting-copy .muted{max-width:340px;color:#aebfba;line-height:1.55}.spatial-dashboard-header .student-status{position:absolute;left:36px;bottom:30px;z-index:3;color:#cae1d8;background:#25544785;border:1px solid rgba(109,174,154,.28)}.spatial-hero-mount,.spatial-hero{position:relative;z-index:1;min-width:0;min-height:330px}.spatial-hero{height:100%;overflow:hidden;background:repeating-linear-gradient(4deg,rgba(69,57,38,.024) 0 1px,transparent 1px 10px),repeating-linear-gradient(94deg,rgba(69,57,38,.012) 0 1px,transparent 1px 14px),#f5f0e6}.brush-character-hero{display:grid;place-items:center;isolation:isolate;border-left:1px solid rgba(91,77,56,.18)}.brush-character-stage{position:relative;z-index:1;display:grid;justify-items:center;gap:10px;width:100%;padding:34px 24px 20px}.brush-character-text{color:#18342c;font-family:var(--font-display);font-size:clamp(8.5rem,16vw,11.5rem);font-weight:600;line-height:.88}.brush-character-caption{color:#69756f;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.brush-character-hero.is-upcoming-soon .brush-character-caption{color:#8d3f32}.brush-text-reveal{position:relative;display:inline-grid;max-width:100%;vertical-align:baseline;isolation:isolate;contain:paint}.brush-text-reveal__final,.brush-text-reveal__progress,.brush-text-reveal__ink{grid-area:1 / 1;min-width:0;font:inherit;letter-spacing:inherit;line-height:inherit;white-space:inherit}.brush-text-reveal__final{position:relative;z-index:1;color:#1b362e47}.brush-text-reveal__progress{position:relative;z-index:2;color:#18372e;clip-path:var(--brush-progress-clip);pointer-events:none;-webkit-user-select:none;user-select:none;transition:clip-path .82s cubic-bezier(.2,.76,.2,1)}.brush-text-reveal__ink{position:relative;z-index:3;color:#16352c;pointer-events:none;-webkit-user-select:none;user-select:none;clip-path:polygon(0 0,0 0,.5% 14%,0 31%,.8% 49%,0 69%,.6% 86%,0 100%,0 100%)}.brush-text-reveal--armed .brush-text-reveal__final,.brush-text-reveal--armed .brush-text-reveal__progress,.brush-text-reveal--revealing .brush-text-reveal__final,.brush-text-reveal--revealing .brush-text-reveal__progress{opacity:0}.brush-text-reveal--revealing .brush-text-reveal__ink{will-change:clip-path,filter;animation:brush-ink-reveal var(--brush-duration, 1.25s) cubic-bezier(.2,.72,.24,1) both}.brush-text-reveal--revealing .brush-text-reveal__final,.brush-text-reveal--revealing .brush-text-reveal__progress{animation:brush-ink-settle var(--brush-duration, 1.25s) cubic-bezier(.22,.68,.2,1) both}.brush-text-reveal[data-mastery-complete=true] .brush-text-reveal__progress{background:#132f27}@keyframes brush-ink-reveal{0%{clip-path:polygon(0 0,0 0,.5% 14%,0 31%,.8% 49%,0 69%,.6% 86%,0 100%,0 100%);filter:blur(.28px)}22%{clip-path:polygon(0 0,20% 0,22.2% 13%,20.7% 30%,23% 48%,20.4% 67%,22.4% 86%,20.8% 100%,0 100%)}46%{clip-path:polygon(0 0,44.5% 0,47.2% 12%,45.4% 29%,48% 49%,44.8% 68%,47.4% 85%,45.2% 100%,0 100%);filter:blur(.2px)}72%{clip-path:polygon(0 0,70.5% 0,73.4% 14%,71.2% 31%,74% 50%,70.8% 70%,73.1% 86%,71.4% 100%,0 100%)}90%{clip-path:polygon(0 0,90% 0,92.4% 12%,90.8% 30%,93% 48%,90.4% 68%,92.1% 87%,90.6% 100%,0 100%);filter:blur(.08px)}to{clip-path:polygon(0 0,100% 0,100% 14%,100% 31%,100% 49%,100% 69%,100% 86%,100% 100%,0 100%);filter:none}}@keyframes brush-ink-settle{0%,80%{opacity:0}92%{opacity:.74}to{opacity:1}}.spatial-progress-note{position:absolute;top:20px;left:20px;z-index:3;display:grid;gap:3px;padding:4px 0 4px 11px;color:#203b33;border-left:2px solid rgba(141,63,50,.64)}.spatial-progress-note span,.spatial-progress-note small{color:#68766f;font-size:.7rem;font-weight:600}.spatial-progress-note strong{color:#203b33;font-size:.94rem;line-height:1.15}.spatial-mode-label{position:absolute;top:18px;right:20px;z-index:3;color:#91aaa2;font-size:.7rem;font-weight:700}#studentOverview{grid-template-columns:minmax(0,1.16fr) minmax(0,1fr) minmax(0,.84fr)}#studentOverview>.card{position:relative;min-height:286px;border-top-width:1px;border-top-color:#314e4429;background:#fffdf8f5;box-shadow:0 12px 28px #22342c14;transform:translateY(0);transition:transform .26s cubic-bezier(.22,.61,.36,1),border-color .26s ease,box-shadow .26s ease}#studentOverview>.card:before{content:"";position:absolute;top:0;right:18px;left:18px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(93,155,133,.26),rgba(218,185,91,.22),transparent)}#studentOverview>.card:hover,#studentOverview>.card:focus-within{border-color:#37796757;box-shadow:0 18px 34px #22342c1f;transform:translateY(-2px)}.primary-class-card{position:relative;border-color:#d2ae50!important}.primary-class-card:after{content:"";position:absolute;left:18px;right:18px;bottom:12px;height:1px;background:#d2ae5066}.primary-class-card.is-soon{border-color:#d2ae508f!important;box-shadow:0 16px 38px #ab842524!important}.class-countdown{width:fit-content;margin:2px 0 8px;color:#2f7465;font-size:.82rem;font-weight:700}.schedule-change-box{grid-template-columns:minmax(0,1fr) auto}.schedule-change-markers{grid-column:1 / -1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.schedule-change-marker{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 8px;border:1px solid rgba(47,116,101,.22);border-radius:7px;color:#315d53;background:#edf5ef;box-shadow:inset 0 1px #ffffffb8,0 4px 10px #2b5c4d14}.schedule-change-marker i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#3f806e;font-size:.68rem;font-style:normal;font-weight:700}.schedule-change-marker small{color:inherit;font-size:.7rem;font-weight:700}.schedule-change-marker.used{color:#706d67;background:#f0efeb;border-color:#65635c33;box-shadow:none}.schedule-change-marker.used i{background:#85837d}.schedule-change-marker.empty{color:var(--muted);background:transparent;box-shadow:none}.spatial-calendar-card,.spatial-practice-card{position:relative;border-top:2px solid rgba(47,116,101,.32);background:#fffdf8f7;box-shadow:0 12px 30px #25393014;transform:none}.spatial-practice-card{border-top-color:#b0443957}[data-student-page]:not([hidden]):not(.hidden){animation:spatial-section-reveal .36s ease both}@keyframes spatial-section-reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.spatial-dashboard-header{grid-template-columns:minmax(230px,.75fr) minmax(360px,1.25fr)}#studentOverview{grid-template-columns:1fr}#studentOverview>.card{min-height:0}}@media(max-width:760px){.practice-setup-panel{padding:24px 18px}.practice-setup-options{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-setup-options.question-counts,.practice-setup-options.scope-options{grid-template-columns:1fr}.practice-setup-actions{align-items:stretch;flex-direction:column-reverse}.practice-setup-actions button{width:100%}.spatial-login{grid-template-columns:1fr;align-content:start;gap:22px;overflow:visible;padding:24px 18px}.brush-login-visual{grid-template-columns:minmax(130px,.55fr) minmax(170px,1fr);gap:18px}.brush-login-paper{min-height:210px}.spatial-intro-copy h1{font-size:clamp(2rem,10vw,3.1rem)}.spatial-intro-copy p{margin-top:10px;font-size:1.05rem}.spatial-dashboard-header{grid-template-columns:1fr;min-height:0}.spatial-greeting-copy{padding:26px 20px 70px}.spatial-greeting-copy h2{font-size:2rem}.spatial-dashboard-header .student-status{left:20px;bottom:auto;top:146px}.spatial-hero-mount,.spatial-hero{min-height:244px}.brush-character-stage{padding:38px 18px 18px}.brush-character-text{font-size:clamp(7rem,36vw,9rem)}.spatial-progress-note{top:14px;left:14px}.brush-character-hero{border-top:1px solid rgba(91,77,56,.18);border-left:0}}@media(max-width:420px){.brush-login-visual{grid-template-columns:1fr;justify-items:center}.brush-login-paper{width:min(72vw,230px)}.spatial-intro-copy{width:100%;text-align:center}.spatial-intro-copy p{margin-right:auto;margin-left:auto}}@media(prefers-reduced-motion:reduce){[data-student-page]:not([hidden]):not(.hidden){animation:none}#studentOverview>.card:hover,#studentOverview>.card:focus-within{transform:none}.brush-text-reveal__final{opacity:1!important;animation:none!important}.brush-text-reveal__ink{display:none;animation:none!important}}:root{--bg: #fff8f7;--bg-2: #f8f5ff;--card: #ffffff;--surface-raised: #fff1f6;--ink: #302b3f;--muted: #797387;--line: #ede6f2;--primary: #f6538c;--primary-dark: #dc3373;--secondary: #7567ee;--mint: #38b86a;--warm: #f3b928;--pink: #f6538c;--pastel-pink: #fff0f5;--pastel-purple: #f2efff;--pastel-blue: #eef7ff;--pastel-mint: #effbef;--pastel-yellow: #fff9e9;--pastel-peach: #fff2e9;--zoom-blue: #4389f5;--shadow: 0 14px 34px rgba(87, 65, 115, .08);--shadow-soft: 0 8px 22px rgba(87, 65, 115, .07);--shadow-hover: 0 18px 38px rgba(87, 65, 115, .12);--radius: 22px;--button-radius: 13px;--sidebar-width: 252px;--content-gutter: 22px;--font: "Noto Sans Thai", "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Noto Sans Thai", "Source Sans 3", system-ui, sans-serif}html{background:#fff9f8}body{color:var(--ink);background:radial-gradient(circle at 16% 0%,rgba(255,219,232,.62),transparent 29rem),radial-gradient(circle at 96% 12%,rgba(224,217,255,.62),transparent 31rem),linear-gradient(135deg,#fffaf9,#fbf9ff 58%,#f7fbff)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(246,83,140,.08) .8px,transparent .8px);background-size:24px 24px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 72%);mask-image:linear-gradient(to bottom,#000,transparent 72%)}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);letter-spacing:-.025em}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid rgba(117,103,238,.34);outline-offset:3px}.app-shell{width:min(1480px,calc(100% - 44px));padding-bottom:52px}.glass-card,.card,.approval-card,.admin-view .card{border:1px solid rgba(214,201,230,.66);border-radius:var(--radius);background:#fffffff5;box-shadow:var(--shadow);-webkit-backdrop-filter:none;backdrop-filter:none}.card{padding:20px}.card:hover,.glass-card:hover,.approval-card:hover{border-color:#f6538c47;box-shadow:var(--shadow-hover)}.eyebrow{color:var(--primary-dark);font-size:.72rem;font-weight:800;letter-spacing:.065em}.muted{color:var(--muted)}.badge,.status-label,.level-badge,.note-count-badge{border-radius:999px;font-weight:700}.badge{color:#6657c7;background:#f1efff;border-color:#ddd7ff}.badge.warm{color:#a96800;background:#fff6d8;border-color:#ffe19a}.level-badge{color:#6f4ed8;background:#eee9ff;border-color:#d8cdff}.primary-btn,.facebook-btn{min-height:44px;color:#fff;border-color:var(--primary);border-radius:var(--button-radius);background:var(--primary);box-shadow:0 9px 20px #f6538c3b}.primary-btn:hover,.primary-btn:focus-visible,.facebook-btn:hover,.facebook-btn:focus-visible{border-color:var(--primary-dark);background:var(--primary-dark);box-shadow:0 12px 24px #dc337347;transform:translateY(-1px)}.secondary-btn,.icon-btn,.text-btn{min-height:42px;border-color:#e6ddeb;border-radius:12px;color:#5e5770;background:#fff}.secondary-btn:hover,.secondary-btn:focus-visible,.icon-btn:hover,.icon-btn:focus-visible{color:var(--primary-dark);border-color:#ffc1d7;background:#fff3f7}input,select,textarea{min-height:44px;border-color:#e5ddea;border-radius:12px;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{border-color:#b7a9ff;box-shadow:0 0 0 4px #7567ee1a}@media(min-width:901px){body.has-section-nav:not(.login-only),body.has-student-section-menu:not(.login-only){padding-left:var(--sidebar-width)}body.has-section-nav:not(.login-only) .app-shell{width:min(1480px,calc(100% - (var(--content-gutter) * 2)))}body.has-section-nav:not(.login-only) .topbar{position:fixed;inset:0 auto 0 0;z-index:110;width:var(--sidebar-width);height:100vh;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:18px;margin:0;padding:24px 16px 18px;overflow:hidden;border:1px solid #f0dfe8;border-width:0 1px 0 0;border-radius:0 24px 24px 0;background:#fffffff7;box-shadow:12px 0 36px #5b457012}body.has-section-nav:not(.login-only) .topbar:after{content:"学习中文 · สนุก จำได้ ใช้ได้จริง";position:absolute;top:112px;right:16px;left:16px;padding:12px 10px 84px;color:#7a5771;border:1px solid #ffd6e4;border-radius:18px;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgMjgwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+DQogIDx0aXRsZSBpZD0idGl0bGUiPk1ldyBDaGluZXNlIGxlYXJuaW5nIG1hc2NvdDwvdGl0bGU+DQogIDxkZXNjIGlkPSJkZXNjIj5BIGZyaWVuZGx5IGNyZWFtIGNhdCBob2xkaW5nIGEgTWFuZGFyaW4gc3R1ZHkgYm9vay48L2Rlc2M+DQogIDxkZWZzPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZnVyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmRmOCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZThlMiIvPjwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJzaGlydCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiNmZjZmOWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNDQzN2QiLz48L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxlbGxpcHNlIGN4PSIxNjAiIGN5PSIyNTAiIHJ4PSIxMTAiIHJ5PSIxOCIgZmlsbD0iI2U4ZGZmZiIgb3BhY2l0eT0iLjU1Ii8+DQogIDxwYXRoIGQ9Ik04NiA4OSA2NiAyN2w1NCAzMU0yMzQgODlsMjAtNjItNTQgMzEiIGZpbGw9InVybCgjZnVyKSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCiAgPHBhdGggZD0ibTc3IDQ1IDI3IDE5LTE1IDEyWm0xNjYgMC0yNyAxOSAxNSAxMloiIGZpbGw9IiNmZmI5YzgiLz4NCiAgPHBhdGggZD0iTTE2MCA0NGM2MSAwIDk5IDM4IDk5IDkxIDAgNDgtMzYgODMtOTkgODNzLTk5LTM1LTk5LTgzYzAtNTMgMzgtOTEgOTktOTFaIiBmaWxsPSJ1cmwoI2Z1cikiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI3Ii8+DQogIDxwYXRoIGQ9Ik05NyAxMjZjOS0xNCAyNC0xNyAzNi04TTIyMyAxMjZjLTktMTQtMjQtMTctMzYtOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KICA8Y2lyY2xlIGN4PSIxMTIiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz48Y2lyY2xlIGN4PSIyMDgiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz4NCiAgPGNpcmNsZSBjeD0iMTA5IiBjeT0iMTM5IiByPSIyLjUiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMDUiIGN5PSIxMzkiIHI9IjIuNSIgZmlsbD0iI2ZmZiIvPg0KICA8ZWxsaXBzZSBjeD0iODgiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPjxlbGxpcHNlIGN4PSIyMzIiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPg0KICA8cGF0aCBkPSJtMTUyIDE2MCA4IDYgOC02IiBmaWxsPSIjZmY3Nzk4IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDE2NmMwIDEyLTE4IDEzLTI0IDRtMjQtNGMwIDEyIDE4IDEzIDI0IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4NCiAgPHBhdGggZD0iTTk0IDIwNmMxNC0yMCA0Mi0zMCA2Ni0zMHM1MiAxMCA2NiAzMHY1MUg5NFoiIGZpbGw9InVybCgjc2hpcnQpIiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTE4IDIwNGMyMC04IDY0LTggODQgMHY2MWgtODRaIiBmaWxsPSIjN2U2Y2Y1IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDIwNHY2MSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9Ii44Ii8+DQogIDx0ZXh0IHg9IjE2MCIgeT0iMjQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNSIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZiI+5Lit5paHPC90ZXh0Pg0KICA8cGF0aCBkPSJNMTA0IDIyM2MtMTggMC0yOCA5LTMwIDI0bTE0Mi0yNGMxOCAwIDI4IDkgMzAgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZjBlOCIgc3Ryb2tlLXdpZHRoPSIxOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+DQogIDxwYXRoIGQ9Ik0xMDQgMjIzYy0xOCAwLTI4IDktMzAgMjRtMTQyLTI0YzE4IDAgMjggOSAzMCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KPC9zdmc+DQo=) center 42px / 92px auto no-repeat,linear-gradient(145deg,#fff6f9,#fff);font-size:.67rem;font-weight:700;text-align:center}body.has-section-nav:not(.login-only) .topbar .brand{display:flex;gap:10px;min-height:68px;padding:8px;border-radius:16px}.brand-mark{width:50px;height:50px;overflow:hidden;color:transparent;border:0;border-radius:15px;background:#fff0f5 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgMjgwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+DQogIDx0aXRsZSBpZD0idGl0bGUiPk1ldyBDaGluZXNlIGxlYXJuaW5nIG1hc2NvdDwvdGl0bGU+DQogIDxkZXNjIGlkPSJkZXNjIj5BIGZyaWVuZGx5IGNyZWFtIGNhdCBob2xkaW5nIGEgTWFuZGFyaW4gc3R1ZHkgYm9vay48L2Rlc2M+DQogIDxkZWZzPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZnVyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmRmOCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZThlMiIvPjwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJzaGlydCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiNmZjZmOWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNDQzN2QiLz48L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxlbGxpcHNlIGN4PSIxNjAiIGN5PSIyNTAiIHJ4PSIxMTAiIHJ5PSIxOCIgZmlsbD0iI2U4ZGZmZiIgb3BhY2l0eT0iLjU1Ii8+DQogIDxwYXRoIGQ9Ik04NiA4OSA2NiAyN2w1NCAzMU0yMzQgODlsMjAtNjItNTQgMzEiIGZpbGw9InVybCgjZnVyKSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCiAgPHBhdGggZD0ibTc3IDQ1IDI3IDE5LTE1IDEyWm0xNjYgMC0yNyAxOSAxNSAxMloiIGZpbGw9IiNmZmI5YzgiLz4NCiAgPHBhdGggZD0iTTE2MCA0NGM2MSAwIDk5IDM4IDk5IDkxIDAgNDgtMzYgODMtOTkgODNzLTk5LTM1LTk5LTgzYzAtNTMgMzgtOTEgOTktOTFaIiBmaWxsPSJ1cmwoI2Z1cikiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI3Ii8+DQogIDxwYXRoIGQ9Ik05NyAxMjZjOS0xNCAyNC0xNyAzNi04TTIyMyAxMjZjLTktMTQtMjQtMTctMzYtOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KICA8Y2lyY2xlIGN4PSIxMTIiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz48Y2lyY2xlIGN4PSIyMDgiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz4NCiAgPGNpcmNsZSBjeD0iMTA5IiBjeT0iMTM5IiByPSIyLjUiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMDUiIGN5PSIxMzkiIHI9IjIuNSIgZmlsbD0iI2ZmZiIvPg0KICA8ZWxsaXBzZSBjeD0iODgiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPjxlbGxpcHNlIGN4PSIyMzIiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPg0KICA8cGF0aCBkPSJtMTUyIDE2MCA4IDYgOC02IiBmaWxsPSIjZmY3Nzk4IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDE2NmMwIDEyLTE4IDEzLTI0IDRtMjQtNGMwIDEyIDE4IDEzIDI0IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4NCiAgPHBhdGggZD0iTTk0IDIwNmMxNC0yMCA0Mi0zMCA2Ni0zMHM1MiAxMCA2NiAzMHY1MUg5NFoiIGZpbGw9InVybCgjc2hpcnQpIiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTE4IDIwNGMyMC04IDY0LTggODQgMHY2MWgtODRaIiBmaWxsPSIjN2U2Y2Y1IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDIwNHY2MSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9Ii44Ii8+DQogIDx0ZXh0IHg9IjE2MCIgeT0iMjQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNSIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZiI+5Lit5paHPC90ZXh0Pg0KICA8cGF0aCBkPSJNMTA0IDIyM2MtMTggMC0yOCA5LTMwIDI0bTE0Mi0yNGMxOCAwIDI4IDkgMzAgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZjBlOCIgc3Ryb2tlLXdpZHRoPSIxOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+DQogIDxwYXRoIGQ9Ik0xMDQgMjIzYy0xOCAwLTI4IDktMzAgMjRtMTQyLTI0YzE4IDAgMjggOSAzMCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KPC9zdmc+DQo=) center 23% / 78px auto no-repeat;box-shadow:none}.brand strong{color:var(--primary);font-size:1.04rem;line-height:1.1}.brand small{color:#80788b;font-size:.68rem}body.has-section-nav:not(.login-only) .topbar-actions{width:100%;display:grid;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid #f0e6f2}body.has-section-nav:not(.login-only) .role-switch,body.has-section-nav:not(.login-only) .logout-form{width:100%}body.has-section-nav:not(.login-only) .role-switch{display:grid;grid-template-columns:repeat(2,1fr);padding:3px}body.has-section-nav:not(.login-only) .logout-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}body.has-section-nav:not(.login-only) .session-user{max-width:128px}.section-nav,.section-nav.student-menu{top:228px;bottom:152px;left:16px;z-index:120;width:calc(var(--sidebar-width) - 32px);align-content:start;gap:5px;padding:0;overflow-y:auto;color:var(--ink);border:0;background:transparent;box-shadow:none}.section-nav:before,.section-nav.student-menu:before{display:block;margin:3px 10px 8px;color:#a29aab;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}.section-nav button,.section-nav.student-menu button{min-height:44px;padding:10px 12px 10px 42px;color:#716a7d;border:0;border-radius:13px;background:transparent;font-size:.78rem;text-align:left}.section-nav button:before,.section-nav.student-menu button:before{left:14px;width:18px;height:18px;border:1px solid #dfd6e8;border-radius:6px;background:#f5f2fb;opacity:1}.section-nav button:nth-child(2n):before,.section-nav.student-menu button:nth-child(2n):before{background:#eef8ff;border-color:#cae7fa}.section-nav button:nth-child(3n):before,.section-nav.student-menu button:nth-child(3n):before{background:#fff6d9;border-color:#f4d983}.section-nav button:hover,.section-nav button:focus-visible,.section-nav button.active,.section-nav.student-menu button:hover,.section-nav.student-menu button:focus-visible,.section-nav.student-menu button.active{color:#fff;background:linear-gradient(135deg,#ff77a7,#f34f8a);box-shadow:0 8px 18px #f6538c33}.section-nav button.active:before,.section-nav.student-menu button.active:before{border-color:#ffffff9e;background:#ffffff3d}.section-nav button:after,.section-nav.student-menu button:after{display:none}}.spatial-dashboard-header{grid-template-columns:minmax(0,1.65fr) minmax(210px,.7fr);min-height:184px;margin-bottom:18px;overflow:hidden;color:var(--ink);border:1px solid #ffd6e4;border-radius:var(--radius);background:radial-gradient(circle at 8% 12%,rgba(255,255,255,.82),transparent 12rem),linear-gradient(130deg,#fff4f8,#fff 52%,#f2efff);box-shadow:var(--shadow)}.spatial-dashboard-header:before{opacity:1;background:radial-gradient(circle at 78% 26%,rgba(246,83,140,.12) 0 4px,transparent 5px),radial-gradient(circle at 87% 68%,rgba(117,103,238,.12) 0 5px,transparent 6px)}.spatial-dashboard-header:after{display:none}.spatial-greeting-copy{align-self:center;padding:26px 22px 26px 30px}.spatial-greeting-copy .eyebrow{color:var(--primary-dark)}.spatial-greeting-copy h2{max-width:none;margin:4px 0 8px;color:var(--ink);font-size:clamp(1.75rem,3vw,2.55rem);font-weight:800}.spatial-greeting-copy .muted{max-width:560px;margin:10px 0 0;color:#746d80}.spatial-dashboard-header .student-status{right:24px;bottom:18px;left:auto;color:#267b4a;border-color:#bde6c8;background:#effbef}.spatial-hero-mount,.spatial-hero{min-height:182px}.spatial-hero{border-left:1px solid #e7def3;background:linear-gradient(145deg,#f6f2ff,#fff)}.brush-character-stage{gap:4px;padding:18px 18px 12px}.brush-character-text{color:#674fd5;font-size:clamp(5rem,8vw,7.5rem)}.brush-text-reveal__final{color:#7567ee33}.brush-text-reveal__progress,.brush-text-reveal__ink{color:#b72a62;background:none}.spatial-progress-note{top:14px;left:14px;color:#5b4db4;border-left-color:#f6538c}.spatial-mode-label{color:#948aaa}#studentOverview{grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr) minmax(220px,.62fr);gap:16px;perspective:none}#studentOverview>.card{min-height:294px;overflow:hidden;border-top-width:1px;border-top-color:inherit;border-radius:var(--radius);box-shadow:var(--shadow-soft)}#studentOverview>.card:before{display:none}#studentOverview>.card:hover,#studentOverview>.card:focus-within{border-color:#f6538c4d;box-shadow:var(--shadow-hover);transform:translateY(-2px)}.primary-class-card{padding-right:min(38%,176px);border:1px solid #ffc8db!important;background:linear-gradient(145deg,#fff 0,#fff 52%,#fff0f5)!important}.primary-class-card:after{right:20px;bottom:18px;left:20px;height:2px;background:linear-gradient(90deg,#f6538c,transparent);opacity:.3}.next-class-illustration{position:absolute;right:-6px;bottom:0;width:min(42%,190px);height:220px;pointer-events:none;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgMjgwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+DQogIDx0aXRsZSBpZD0idGl0bGUiPk1ldyBDaGluZXNlIGxlYXJuaW5nIG1hc2NvdDwvdGl0bGU+DQogIDxkZXNjIGlkPSJkZXNjIj5BIGZyaWVuZGx5IGNyZWFtIGNhdCBob2xkaW5nIGEgTWFuZGFyaW4gc3R1ZHkgYm9vay48L2Rlc2M+DQogIDxkZWZzPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZnVyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmRmOCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZThlMiIvPjwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJzaGlydCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiNmZjZmOWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNDQzN2QiLz48L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxlbGxpcHNlIGN4PSIxNjAiIGN5PSIyNTAiIHJ4PSIxMTAiIHJ5PSIxOCIgZmlsbD0iI2U4ZGZmZiIgb3BhY2l0eT0iLjU1Ii8+DQogIDxwYXRoIGQ9Ik04NiA4OSA2NiAyN2w1NCAzMU0yMzQgODlsMjAtNjItNTQgMzEiIGZpbGw9InVybCgjZnVyKSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCiAgPHBhdGggZD0ibTc3IDQ1IDI3IDE5LTE1IDEyWm0xNjYgMC0yNyAxOSAxNSAxMloiIGZpbGw9IiNmZmI5YzgiLz4NCiAgPHBhdGggZD0iTTE2MCA0NGM2MSAwIDk5IDM4IDk5IDkxIDAgNDgtMzYgODMtOTkgODNzLTk5LTM1LTk5LTgzYzAtNTMgMzgtOTEgOTktOTFaIiBmaWxsPSJ1cmwoI2Z1cikiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI3Ii8+DQogIDxwYXRoIGQ9Ik05NyAxMjZjOS0xNCAyNC0xNyAzNi04TTIyMyAxMjZjLTktMTQtMjQtMTctMzYtOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KICA8Y2lyY2xlIGN4PSIxMTIiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz48Y2lyY2xlIGN4PSIyMDgiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz4NCiAgPGNpcmNsZSBjeD0iMTA5IiBjeT0iMTM5IiByPSIyLjUiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMDUiIGN5PSIxMzkiIHI9IjIuNSIgZmlsbD0iI2ZmZiIvPg0KICA8ZWxsaXBzZSBjeD0iODgiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPjxlbGxpcHNlIGN4PSIyMzIiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPg0KICA8cGF0aCBkPSJtMTUyIDE2MCA4IDYgOC02IiBmaWxsPSIjZmY3Nzk4IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDE2NmMwIDEyLTE4IDEzLTI0IDRtMjQtNGMwIDEyIDE4IDEzIDI0IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4NCiAgPHBhdGggZD0iTTk0IDIwNmMxNC0yMCA0Mi0zMCA2Ni0zMHM1MiAxMCA2NiAzMHY1MUg5NFoiIGZpbGw9InVybCgjc2hpcnQpIiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTE4IDIwNGMyMC04IDY0LTggODQgMHY2MWgtODRaIiBmaWxsPSIjN2U2Y2Y1IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDIwNHY2MSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9Ii44Ii8+DQogIDx0ZXh0IHg9IjE2MCIgeT0iMjQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNSIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZiI+5Lit5paHPC90ZXh0Pg0KICA8cGF0aCBkPSJNMTA0IDIyM2MtMTggMC0yOCA5LTMwIDI0bTE0Mi0yNGMxOCAwIDI4IDkgMzAgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZjBlOCIgc3Ryb2tlLXdpZHRoPSIxOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+DQogIDxwYXRoIGQ9Ik0xMDQgMjIzYy0xOCAwLTI4IDktMzAgMjRtMTQyLTI0YzE4IDAgMjggOSAzMCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KPC9zdmc+DQo=) center bottom / contain no-repeat;filter:drop-shadow(0 10px 12px rgba(98,68,108,.1))}.class-time{color:#40364c;font-size:clamp(1.7rem,2.7vw,2.6rem)}.class-countdown{color:var(--primary-dark);background:#fff0f5;border-radius:999px;padding:5px 10px}.zoom-btn{width:fit-content;padding-inline:18px;background:var(--zoom-blue);border-color:var(--zoom-blue);box-shadow:0 8px 18px #4389f53d}.zoom-btn:hover,.zoom-btn:focus-visible{background:#2477eb;border-color:#2477eb}.course-card{--course-progress: 108deg;border-color:#c9e8c7!important;background:linear-gradient(150deg,#fff,#f2fcf1)!important}.course-card:after{content:"";position:absolute;top:72px;right:26px;width:76px;height:76px;border-radius:50%;background:conic-gradient(#3cbd65 0 var(--course-progress),#e1efe1 var(--course-progress) 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 11px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 11px),#000 0)}.course-card .meter-block{padding-right:82px}.progress-bar{background:#e8e9ef}.progress-bar span{background:linear-gradient(90deg,#4ccf70,#36b760)}.schedule-change-box{border-color:#f4d988;border-radius:16px;background:#fff8dedb}.schedule-change-box>strong{color:#a86a00;font-size:1.45rem}.schedule-change-marker{color:#a86a00;border-color:#f4d98a;background:#fffaf0;box-shadow:none}.schedule-change-marker i{background:#efb425}.zoom-access-card{border-color:#cddfff!important;background:linear-gradient(155deg,#fff,#eef7ff)!important}.zoom-access-card:after{content:"ZOOM";position:absolute;right:-4px;bottom:12px;color:#4389f51a;font-size:2.4rem;font-weight:900;letter-spacing:-.06em;transform:rotate(-90deg) translate(35%)}.zoom-access-summary{border-radius:16px;background:#fffc}.spatial-calendar-card,.spatial-practice-card{margin-top:16px;border:1px solid #d9d0ff;border-radius:var(--radius);background:linear-gradient(145deg,#fff,#f8f6ff);box-shadow:var(--shadow)}.spatial-practice-card{border-color:#e0d3ff;background:linear-gradient(145deg,#fff,#fbf5ff)}.month-heading{color:#716a7d;border-color:transparent;background:transparent}.month-day{border-color:#eee8f3;border-radius:14px;background:#ffffffe0}.month-day:not(.outside):hover,.month-day:not(.outside):focus-within,.month-day:not(.outside):focus{border-color:#bdb1ff;box-shadow:0 10px 20px #7567ee1a;transform:translateY(-1px)}.calendar-class{border-left-color:#7567ee;border-radius:9px;background:#f1efff}.calendar-dot.scheduled{background:#f6538c}.calendar-dot.completed{background:#43be68}.calendar-dot.cancelled{background:#f3b928}#studentStats{gap:14px;margin-top:16px}#studentStats .stat-card{min-height:126px;border-color:#ffd4e3;background:var(--pastel-pink)}#studentStats .stat-card:nth-child(2){border-color:#d8d1ff;background:var(--pastel-purple)}#studentStats .stat-card:nth-child(3){border-color:#ffe2a1;background:var(--pastel-yellow)}.stat-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.86);border-radius:14px;background:#ffffffb3}.segmented{border-color:#e4ddf0;border-radius:14px;background:#f8f5fb}.segmented button.active,.learning-stations .segmented button.active{color:#fff;border-color:#7567ee;background:#7567ee;box-shadow:0 7px 16px #7567ee33}.level-tabs button.active{color:#684fd6;border-color:#cfc5ff;background:#f0edff}.choice-grid button:hover,.choice-grid button:focus-visible{color:#684fd6;border-color:#cfc5ff;background:#f7f5ff}.student-detail-columns{gap:16px;margin-top:16px}.student-history-card{border-color:#cfe6ff;background:linear-gradient(145deg,#fff,#f2f9ff)}.student-notes-card{border-color:#ffd7bd;background:linear-gradient(145deg,#fff,#fff6ef)}.note,.mistake,.timeline-item,.calendar-item,.student-item,.practice-item,.profile-item,.admin-student-grid div{border-color:#ece5f1;border-radius:14px;background:#ffffffdb}.control-room-header{min-height:158px;color:var(--ink);border-color:#dcd3ff;border-radius:var(--radius);background:radial-gradient(circle at 92% 18%,rgba(246,83,140,.18),transparent 10rem),linear-gradient(135deg,#f2efff,#fff 66%);box-shadow:var(--shadow)}.control-room-header h2{color:var(--ink)}.control-room-header .eyebrow{color:#6b55d6}.control-room-header .muted{color:var(--muted)}.control-room-header .primary-btn{color:#fff;border-color:var(--primary);background:var(--primary)}#adminOverview{gap:14px}#adminOverview .card{min-height:116px;border:1px solid #ffd2e1;background:var(--pastel-pink)}#adminOverview .card:nth-child(2){border-color:#d9d2ff;background:var(--pastel-purple)}#adminOverview .card:nth-child(3){border-color:#cce7ff;background:var(--pastel-blue)}#adminOverview .card:nth-child(4){border-color:#cce9ce;background:var(--pastel-mint)}.admin-layout{gap:16px}.sidebar-card{border:1px solid #e4daf0!important;background:linear-gradient(160deg,#fff,#fbf8ff)!important}.admin-main>.card,.admin-flow-columns>.card{border-left:1px solid rgba(214,201,230,.66)}.student-billing-tabs{border-radius:13px;background:#f5f1f9}.student-billing-tabs button.active,.student-item.active{color:#fff;border-color:var(--secondary);background:var(--secondary)}.schedule-rule-panel,.admin-access-panel,.quiz-bank-item{border-color:#e6ddec;border-radius:15px;background:#fbf9fd}@media(max-width:1180px)and (min-width:981px){#studentOverview{grid-template-columns:repeat(2,minmax(0,1fr))}.zoom-access-card{grid-column:1 / -1;min-height:180px!important}}@media(max-width:980px){.app-shell{width:min(100% - 28px,900px)}.spatial-dashboard-header{grid-template-columns:minmax(0,1.2fr) minmax(210px,.8fr)}#studentOverview{grid-template-columns:1fr 1fr}.primary-class-card{grid-column:1 / -1}.admin-layout,.admin-student-grid{grid-template-columns:1fr}.sidebar-card{position:static}}@media(max-width:900px){body.has-section-nav:not(.login-only){padding-top:0;padding-bottom:88px}.topbar{position:sticky;top:0;z-index:110;width:100%;display:flex;align-items:center;flex-direction:row;margin-bottom:12px;padding:10px 0;border-bottom:1px solid rgba(235,220,230,.8);background:#fffafbf0}.topbar-actions{width:auto;margin-left:auto}.brand-mark{border-radius:13px;color:transparent;background:#fff0f5 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgMjgwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+DQogIDx0aXRsZSBpZD0idGl0bGUiPk1ldyBDaGluZXNlIGxlYXJuaW5nIG1hc2NvdDwvdGl0bGU+DQogIDxkZXNjIGlkPSJkZXNjIj5BIGZyaWVuZGx5IGNyZWFtIGNhdCBob2xkaW5nIGEgTWFuZGFyaW4gc3R1ZHkgYm9vay48L2Rlc2M+DQogIDxkZWZzPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZnVyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmRmOCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZThlMiIvPjwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJzaGlydCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiNmZjZmOWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNDQzN2QiLz48L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxlbGxpcHNlIGN4PSIxNjAiIGN5PSIyNTAiIHJ4PSIxMTAiIHJ5PSIxOCIgZmlsbD0iI2U4ZGZmZiIgb3BhY2l0eT0iLjU1Ii8+DQogIDxwYXRoIGQ9Ik04NiA4OSA2NiAyN2w1NCAzMU0yMzQgODlsMjAtNjItNTQgMzEiIGZpbGw9InVybCgjZnVyKSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCiAgPHBhdGggZD0ibTc3IDQ1IDI3IDE5LTE1IDEyWm0xNjYgMC0yNyAxOSAxNSAxMloiIGZpbGw9IiNmZmI5YzgiLz4NCiAgPHBhdGggZD0iTTE2MCA0NGM2MSAwIDk5IDM4IDk5IDkxIDAgNDgtMzYgODMtOTkgODNzLTk5LTM1LTk5LTgzYzAtNTMgMzgtOTEgOTktOTFaIiBmaWxsPSJ1cmwoI2Z1cikiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI3Ii8+DQogIDxwYXRoIGQ9Ik05NyAxMjZjOS0xNCAyNC0xNyAzNi04TTIyMyAxMjZjLTktMTQtMjQtMTctMzYtOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KICA8Y2lyY2xlIGN4PSIxMTIiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz48Y2lyY2xlIGN4PSIyMDgiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz4NCiAgPGNpcmNsZSBjeD0iMTA5IiBjeT0iMTM5IiByPSIyLjUiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMDUiIGN5PSIxMzkiIHI9IjIuNSIgZmlsbD0iI2ZmZiIvPg0KICA8ZWxsaXBzZSBjeD0iODgiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPjxlbGxpcHNlIGN4PSIyMzIiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPg0KICA8cGF0aCBkPSJtMTUyIDE2MCA4IDYgOC02IiBmaWxsPSIjZmY3Nzk4IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDE2NmMwIDEyLTE4IDEzLTI0IDRtMjQtNGMwIDEyIDE4IDEzIDI0IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4NCiAgPHBhdGggZD0iTTk0IDIwNmMxNC0yMCA0Mi0zMCA2Ni0zMHM1MiAxMCA2NiAzMHY1MUg5NFoiIGZpbGw9InVybCgjc2hpcnQpIiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTE4IDIwNGMyMC04IDY0LTggODQgMHY2MWgtODRaIiBmaWxsPSIjN2U2Y2Y1IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDIwNHY2MSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9Ii44Ii8+DQogIDx0ZXh0IHg9IjE2MCIgeT0iMjQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNSIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZiI+5Lit5paHPC90ZXh0Pg0KICA8cGF0aCBkPSJNMTA0IDIyM2MtMTggMC0yOCA5LTMwIDI0bTE0Mi0yNGMxOCAwIDI4IDkgMzAgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZjBlOCIgc3Ryb2tlLXdpZHRoPSIxOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+DQogIDxwYXRoIGQ9Ik0xMDQgMjIzYy0xOCAwLTI4IDktMzAgMjRtMTQyLTI0YzE4IDAgMjggOSAzMCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KPC9zdmc+DQo=) center 23% / 68px auto no-repeat}.section-nav,.section-nav.student-menu{position:fixed;top:auto;right:10px;bottom:10px;left:10px;z-index:140;width:auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(90px,1fr);gap:5px;padding:7px;overflow-x:auto;color:var(--ink);border:1px solid #eadfea;border-radius:18px;background:#fffffff5;box-shadow:0 14px 32px #49365d29;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.section-nav button,.section-nav.student-menu button{min-width:88px;min-height:48px;padding:8px 10px;color:#756f80;border-radius:12px;text-align:center}.section-nav button:before,.section-nav.student-menu button:before,.section-nav:before,.section-nav.student-menu:before{display:none}.section-nav button:hover,.section-nav button:focus-visible,.section-nav button.active,.section-nav.student-menu button:hover,.section-nav.student-menu button:focus-visible,.section-nav.student-menu button.active{color:#fff;background:var(--primary)}}@media(max-width:720px){.spatial-dashboard-header{grid-template-columns:1fr}.spatial-greeting-copy{padding:22px 18px 62px}.spatial-dashboard-header .student-status{top:auto;right:auto;bottom:18px;left:18px}.spatial-hero-mount{display:none}#studentOverview{grid-template-columns:1fr}.primary-class-card{min-height:320px!important;padding-right:20px;padding-bottom:138px}.next-class-illustration{right:12px;width:136px;height:145px}.zoom-access-card{min-height:190px!important}.course-card .meter-block{padding-right:70px}.course-card:after{top:76px;right:18px;width:66px;height:66px}.card-title-row{align-items:flex-start}}@media(max-width:560px){.app-shell{width:min(100% - 20px,540px)}.topbar{gap:8px}.brand small,.session-user{display:none}.brand strong{font-size:.86rem}.topbar-actions,.logout-form{width:auto}.role-switch{max-width:128px}.pill{padding:8px 9px;font-size:.72rem}.logout-btn{min-height:38px;padding:8px 10px;font-size:.72rem}.card,.hero-card,.approval-card{padding:16px;border-radius:18px}.spatial-dashboard-header,.control-room-header{border-radius:18px}.spatial-greeting-copy h2{font-size:1.62rem}.month-calendar{grid-template-columns:repeat(7,minmax(34px,1fr));gap:4px}.month-heading{display:block;padding:4px 0;font-size:.58rem}.month-day{min-height:54px;padding:5px 3px;border-radius:9px}.month-day.outside{display:block;opacity:.3}.calendar-day-summary small,.calendar-class{display:none}.calendar-availability-badge{padding:3px 4px;font-size:0}.calendar-availability-badge i{width:7px;height:7px}.calendar-dots{gap:2px}.calendar-dot{width:5px;height:5px}.section-nav,.section-nav.student-menu{grid-auto-columns:minmax(82px,1fr);scrollbar-width:none}}.brand-mark svg{display:block;width:100%;height:100%}.brand-copy{display:grid;min-width:0}.brand-wordmark{display:grid!important;justify-items:start;gap:0;line-height:.88}.brand-wordmark>span{color:#f6538c;font-size:1.42rem;font-weight:950;letter-spacing:.025em;text-shadow:0 2px 0 #ffd0df}.brand-wordmark>em{margin-top:5px;color:#28324c;font-size:.72rem;font-style:normal;font-weight:900;letter-spacing:.105em}.brand-copy>small{margin-top:6px;color:#776d7d;font-size:.58rem;font-weight:700;line-height:1.3;white-space:nowrap}@media(min-width:901px){body.has-section-nav:not(.login-only) .topbar .brand{min-height:82px;align-items:center;padding:7px 5px}body.has-section-nav:not(.login-only) .brand-mark{width:58px;height:58px;flex:0 0 58px;padding:4px;color:#f6538c;border:1px solid #ffd0df;border-radius:18px;background:linear-gradient(145deg,#fff,#fff1f6);box-shadow:0 8px 18px #f6538c1f}.sidebar-illustration{min-height:172px;margin-top:-2px;padding:18px 13px;background:url(/assets/sidebar-mascot-v2-DsxFZfgN.jpg) center / 100% auto no-repeat,#fff9f8}.sidebar-illustration:after{display:none}.sidebar-illustration span,.sidebar-illustration small{width:76px;margin-left:auto}.sidebar-illustration span{margin-top:11px;color:#c33069;font-size:1rem}.sidebar-illustration small{margin-top:10px;color:#875f74;font-size:.55rem}.section-nav,.section-nav.student-menu{top:292px}}@media(max-width:900px){.brand-mark{width:46px;height:46px;padding:3px;color:#f6538c;border:1px solid #ffd0df;background:linear-gradient(145deg,#fff,#fff1f6)}.brand-wordmark>span{font-size:1.08rem}.brand-wordmark>em{font-size:.58rem}}@media(prefers-reduced-motion:reduce){.primary-btn:hover,.card:hover,#studentOverview>.card:hover,.month-day:not(.outside):hover{transform:none}}.student-view{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}.student-view>*{min-width:0}.student-view>.spatial-dashboard-header{grid-column:1 / -1}.student-view>#studentOverview{grid-column:1 / span 7;grid-row:2}.student-view>#studentCalendarSection{grid-column:8 / -1;grid-row:2;margin-top:0}.student-view>#studentPracticeShowcase{grid-column:8 / -1;grid-row:3}.student-view>#studentDetails{grid-column:1 / span 7;grid-row:3;align-self:start;margin-top:0}.student-view>#studentStats,.student-view>#studentPracticeSection,.student-view>.quiz-review-card{grid-column:1 / -1}.student-view>#studentRulesPage,.student-view>#teacherBookingTools{grid-column:1 / -1;grid-row:2;width:100%}.spatial-dashboard-header{grid-template-columns:minmax(280px,1fr) minmax(0,1.22fr);min-height:148px}.spatial-greeting-copy{padding:22px 28px}.spatial-greeting-copy h2{font-size:clamp(1.55rem,2.2vw,2.15rem)}.welcome-metrics{position:relative;z-index:2;align-self:center;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 20px 18px 0;padding:10px;border:1px solid rgba(255,255,255,.92);border-radius:24px;background:#ffffffdb;box-shadow:0 12px 30px #63497914}.welcome-metric{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;gap:0 9px;align-items:center;min-width:0;padding:6px 13px;border-right:1px solid #eee6f2}.welcome-metric:last-child{border-right:0}.welcome-metric>span{grid-row:1 / 3;display:grid;place-items:center;width:42px;height:42px;color:#fff;border-radius:14px;background:linear-gradient(145deg,#ff79a8,#f6538c);font-family:var(--font-display);font-size:1.25rem;font-weight:800;box-shadow:0 7px 16px #f6538c2e}.welcome-metric.hours-metric>span{background:linear-gradient(145deg,#ffca52,#f3a81e);box-shadow:0 7px 16px #f3b92833}.welcome-metric.score-metric>span{background:linear-gradient(145deg,#917dff,#6d5de0);box-shadow:0 7px 16px #7567ee33}.welcome-metric small,.welcome-metric strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-metric small{color:#8c8497;font-size:.67rem}.welcome-metric strong{color:#302b3f;font-size:1.15rem;line-height:1.15}.dashboard-brush-mount{display:none}#studentOverview{grid-template-columns:minmax(0,1.35fr) minmax(230px,.82fr);align-content:start}#studentOverview>.primary-class-card,#studentOverview>.course-card{min-height:330px}#studentOverview>.zoom-access-card{grid-column:1 / -1;min-height:142px}.primary-class-card{isolation:isolate;padding-right:42%;background:#fff!important}.primary-class-card>:not(.next-class-illustration){position:relative;z-index:3}.primary-class-card:before{content:""!important;position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:2;display:block!important;width:auto!important;height:auto!important;pointer-events:none;background:linear-gradient(90deg,#fff,#fff 43%,#ffffffeb 52%,#ffffff0a 76%)}.next-class-illustration{top:0;right:0;bottom:0;left:0;width:auto;height:auto;z-index:1;border-radius:inherit;background:url(/assets/upcoming-class-BZzRN4CA.jpg) center / cover no-repeat;filter:none}.primary-class-card .card-title-row{display:block}.primary-class-card .badge{display:inline-flex;margin-top:8px}.primary-class-card .class-time{margin-top:18px;font-size:clamp(1.65rem,2.1vw,2.2rem)}.primary-class-card .muted{display:-webkit-box;max-width:310px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.course-card{padding-top:22px}.course-card .card-title-row{align-items:flex-start;flex-direction:column}.course-card:after{top:98px;right:24px;width:86px;height:86px}.course-card .meter-block{min-height:96px;padding:18px 92px 12px 0}.schedule-change-box{padding:13px}.schedule-change-markers{gap:6px}.schedule-change-marker{min-height:27px;padding:4px 6px}.zoom-access-card{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(0,1.2fr);align-items:center;gap:18px;padding:18px 20px}.zoom-access-card .card-title-row,.zoom-access-card .zoom-access-summary{margin:0}.spatial-calendar-card{min-height:356px;padding:18px}.spatial-calendar-card .month-calendar{gap:5px}.spatial-calendar-card .month-day{min-height:58px;padding:6px}.spatial-calendar-card .calendar-day-summary small,.spatial-calendar-card .calendar-class{display:none}.student-detail-columns{grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr)}@media(max-width:1280px){.student-view>#studentOverview,.student-view>#studentCalendarSection,.student-view>#studentDetails{grid-column:1 / -1;grid-row:auto}#studentOverview{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}.spatial-calendar-card{min-height:auto}.spatial-calendar-card .calendar-day-summary small,.spatial-calendar-card .calendar-class{display:initial}}@media(max-width:1180px){.spatial-dashboard-header{grid-template-columns:1fr}.welcome-metrics{margin:0 18px 70px}.admin-layout{grid-template-columns:1fr}.sidebar-card{position:static}#adminOverview,.admin-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.student-view{grid-template-columns:1fr}.student-view>*{grid-column:1!important;grid-row:auto!important}.spatial-dashboard-header{grid-template-columns:1fr}.welcome-metrics{margin:0 18px 70px}#studentOverview{grid-template-columns:1fr}#studentOverview>.primary-class-card,#studentOverview>.course-card,#studentOverview>.zoom-access-card{grid-column:1}#adminDashboard.admin-reschedule-page .admin-layout{grid-template-columns:1fr}}@media(max-width:720px){.welcome-metrics{grid-template-columns:1fr;gap:6px;margin-bottom:70px;border-radius:18px}.welcome-metric{grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:1fr;border-right:0;border-bottom:1px solid #eee6f2}.welcome-metric:last-child{border-bottom:0}.welcome-metric>span{grid-row:1;width:38px;height:38px}.welcome-metric strong{grid-column:3;grid-row:1}#studentOverview{grid-template-columns:1fr}#studentOverview>.course-card,#studentOverview>.zoom-access-card{grid-column:1}.primary-class-card{min-height:420px!important;padding-right:18px;padding-bottom:180px}.primary-class-card:before{background:linear-gradient(180deg,#fff,#fff 48%,#ffffffbd 66%,#ffffff0a)}.next-class-illustration{inset:auto 0 0;height:230px;background-position:62% center}.zoom-access-card,.student-detail-columns{grid-template-columns:1fr}}.nav-icon{width:19px;height:19px;flex:0 0 19px;overflow:visible}.section-nav button,.section-nav.student-menu button{display:flex;align-items:center;gap:10px}@media(min-width:901px){body.has-section-nav:not(.login-only) .topbar:after{display:none}.sidebar-illustration{position:relative;display:grid;justify-items:end;align-content:start;min-height:122px;margin:0 0 6px;padding:14px 12px;overflow:hidden;color:#c93770;border:1px solid #ffd1e0;border-radius:20px;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgMjgwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+DQogIDx0aXRsZSBpZD0idGl0bGUiPk1ldyBDaGluZXNlIGxlYXJuaW5nIG1hc2NvdDwvdGl0bGU+DQogIDxkZXNjIGlkPSJkZXNjIj5BIGZyaWVuZGx5IGNyZWFtIGNhdCBob2xkaW5nIGEgTWFuZGFyaW4gc3R1ZHkgYm9vay48L2Rlc2M+DQogIDxkZWZzPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZnVyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZmRmOCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZThlMiIvPjwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJzaGlydCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIHN0b3AtY29sb3I9IiNmZjZmOWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNDQzN2QiLz48L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxlbGxpcHNlIGN4PSIxNjAiIGN5PSIyNTAiIHJ4PSIxMTAiIHJ5PSIxOCIgZmlsbD0iI2U4ZGZmZiIgb3BhY2l0eT0iLjU1Ii8+DQogIDxwYXRoIGQ9Ik04NiA4OSA2NiAyN2w1NCAzMU0yMzQgODlsMjAtNjItNTQgMzEiIGZpbGw9InVybCgjZnVyKSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCiAgPHBhdGggZD0ibTc3IDQ1IDI3IDE5LTE1IDEyWm0xNjYgMC0yNyAxOSAxNSAxMloiIGZpbGw9IiNmZmI5YzgiLz4NCiAgPHBhdGggZD0iTTE2MCA0NGM2MSAwIDk5IDM4IDk5IDkxIDAgNDgtMzYgODMtOTkgODNzLTk5LTM1LTk5LTgzYzAtNTMgMzgtOTEgOTktOTFaIiBmaWxsPSJ1cmwoI2Z1cikiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI3Ii8+DQogIDxwYXRoIGQ9Ik05NyAxMjZjOS0xNCAyNC0xNyAzNi04TTIyMyAxMjZjLTktMTQtMjQtMTctMzYtOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KICA8Y2lyY2xlIGN4PSIxMTIiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz48Y2lyY2xlIGN4PSIyMDgiIGN5PSIxNDIiIHI9IjkiIGZpbGw9IiM0YTM0NDUiLz4NCiAgPGNpcmNsZSBjeD0iMTA5IiBjeT0iMTM5IiByPSIyLjUiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMDUiIGN5PSIxMzkiIHI9IjIuNSIgZmlsbD0iI2ZmZiIvPg0KICA8ZWxsaXBzZSBjeD0iODgiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPjxlbGxpcHNlIGN4PSIyMzIiIGN5PSIxNjUiIHJ4PSIxOCIgcnk9IjkiIGZpbGw9IiNmZjllYjQiIG9wYWNpdHk9Ii41NSIvPg0KICA8cGF0aCBkPSJtMTUyIDE2MCA4IDYgOC02IiBmaWxsPSIjZmY3Nzk4IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDE2NmMwIDEyLTE4IDEzLTI0IDRtMjQtNGMwIDEyIDE4IDEzIDI0IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRhMzQ0NSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4NCiAgPHBhdGggZD0iTTk0IDIwNmMxNC0yMCA0Mi0zMCA2Ni0zMHM1MiAxMCA2NiAzMHY1MUg5NFoiIGZpbGw9InVybCgjc2hpcnQpIiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNyIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTE4IDIwNGMyMC04IDY0LTggODQgMHY2MWgtODRaIiBmaWxsPSIjN2U2Y2Y1IiBzdHJva2U9IiM0YTM0NDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KICA8cGF0aCBkPSJNMTYwIDIwNHY2MSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9Ii44Ii8+DQogIDx0ZXh0IHg9IjE2MCIgeT0iMjQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNSIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZiI+5Lit5paHPC90ZXh0Pg0KICA8cGF0aCBkPSJNMTA0IDIyM2MtMTggMC0yOCA5LTMwIDI0bTE0Mi0yNGMxOCAwIDI4IDkgMzAgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZjBlOCIgc3Ryb2tlLXdpZHRoPSIxOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+DQogIDxwYXRoIGQ9Ik0xMDQgMjIzYy0xOCAwLTI4IDktMzAgMjRtMTQyLTI0YzE4IDAgMjggOSAzMCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNGEzNDQ1IiBzdHJva2Utd2lkdGg9IjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPg0KPC9zdmc+DQo=) 5px 12px / 118px auto no-repeat,linear-gradient(145deg,#fff1f6,#fffaf4);box-shadow:0 10px 22px #7e4e6f14}.sidebar-illustration:after{content:"";position:absolute;right:17px;top:17px;width:62px;height:50px;z-index:0;border:1px solid #ffc0d4;border-radius:18px 18px 18px 5px;background:#fff;box-shadow:0 7px 16px #f6538c1a}.sidebar-illustration span,.sidebar-illustration small{position:relative;z-index:1;width:60px;text-align:center}.sidebar-illustration span{margin-top:7px;font-size:.92rem;font-weight:900}.sidebar-illustration small{margin-top:25px;color:#8f7183;font-size:.56rem;font-weight:700;line-height:1.25}.section-nav,.section-nav.student-menu{top:246px;bottom:152px}.section-nav button,.section-nav.student-menu button{padding:10px 12px}.section-nav button:before,.section-nav.student-menu button:before{display:none}.section-nav button .nav-icon,.section-nav.student-menu button .nav-icon{display:block;padding:2px;color:#8a74d8;border-radius:5px}.section-nav button:nth-child(2n) .nav-icon,.section-nav.student-menu button:nth-child(2n) .nav-icon{color:#3d9ed0}.section-nav button:nth-child(3n) .nav-icon,.section-nav.student-menu button:nth-child(3n) .nav-icon{color:#e2a420}.section-nav button:hover .nav-icon,.section-nav button:focus-visible .nav-icon,.section-nav button.active .nav-icon,.section-nav.student-menu button:hover .nav-icon,.section-nav.student-menu button:focus-visible .nav-icon,.section-nav.student-menu button.active .nav-icon{color:#fff}}@media(max-width:900px){.sidebar-illustration{display:none}.section-nav button,.section-nav.student-menu button{justify-content:center;gap:6px}.section-nav button .nav-icon,.section-nav.student-menu button .nav-icon{width:17px;height:17px;flex-basis:17px}}@media(max-width:560px){body.has-section-nav:not(.login-only){padding-bottom:96px}.section-nav button,.section-nav.student-menu button{flex-direction:column;min-height:54px;padding:6px 8px;gap:3px;font-size:.64rem}}@media(min-width:901px){.sidebar-illustration{min-height:172px;margin-top:-2px;padding:18px 13px;background:url(/assets/sidebar-mascot-v2-DsxFZfgN.jpg) center / 100% auto no-repeat,#fff9f8}.sidebar-illustration:after{display:none}.sidebar-illustration span,.sidebar-illustration small{width:76px;margin-left:auto}.sidebar-illustration span{margin-top:11px;color:#c33069;font-size:1rem}.sidebar-illustration small{margin-top:10px;color:#875f74;font-size:.55rem}.section-nav,.section-nav.student-menu{top:292px}}.brand-mark{display:none}.brand,body.has-section-nav:not(.login-only) .topbar .brand{justify-content:center;gap:0;text-align:center}.brand-copy,.brand-wordmark{justify-items:center}.brand-wordmark>span{position:relative;color:#f6538c;font-family:"Fredoka","Arial Rounded MT Bold",var(--font-display);font-size:2.05rem;font-weight:800;letter-spacing:.015em;line-height:.82;text-shadow:none}.brand-wordmark>span:after{content:"";position:absolute;top:-4px;right:-18px;width:17px;height:17px;background:radial-gradient(circle at 49% 69%,#f6538c 0 25%,transparent 27%),radial-gradient(circle at 20% 30%,#f7b928 0 13%,transparent 15%),radial-gradient(circle at 47% 16%,#5cc5de 0 13%,transparent 15%),radial-gradient(circle at 76% 28%,#57c87b 0 13%,transparent 15%);transform:rotate(16deg)}.brand-wordmark>em{margin-top:8px;color:#26324d;font-family:"Fredoka","Arial Rounded MT Bold",var(--font-display);font-size:1rem;font-weight:800;letter-spacing:.075em;line-height:1}.brand-copy>small{margin-top:8px;color:#4d4a58;font-size:.61rem;font-weight:700;line-height:1.35}.nav-icon-shell{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;color:#7567ee;border-radius:10px;background:#f2efff}.nav-icon-shell .nav-icon{width:18px;height:18px;padding:0;color:inherit}.nav-icon-home,.nav-icon-calendar,.nav-icon-notes{color:#e6427d;background:#fff0f5}.nav-icon-book,.nav-icon-zoom,.nav-icon-student{color:#3695cc;background:#edf8ff}.nav-icon-progress,.nav-icon-practice,.nav-icon-quiz{color:#7864df;background:#f2efff}.nav-icon-history,.nav-icon-promote,.nav-icon-reschedule{color:#d99110;background:#fff7df}.nav-icon-add{color:#2f9f61;background:#edfaf2}.section-nav button:hover,.section-nav button:focus-visible,.section-nav.student-menu button:hover,.section-nav.student-menu button:focus-visible{color:#443b50;background:#fff2f7}.section-nav button.active,.section-nav.student-menu button.active{color:#fff;background:#f6538c;box-shadow:0 8px 18px #f6538c33}.section-nav button.active .nav-icon-shell,.section-nav.student-menu button.active .nav-icon-shell{color:#fff;background:#ffffff38}.calendar-dot.completed,.calendar-legend-dot.completed{background:#43be68}.calendar-dot.incomplete,.calendar-legend-dot.incomplete{background:#f6538c}.calendar-legend-dot.available{background:#2f9f61;box-shadow:0 0 0 3px #eaf8ef}.calendar-status-legend{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-top:12px;padding:11px 4px 0;color:#6f6878;border-top:1px solid #eee7f2;font-size:.72rem;font-weight:700}.calendar-status-legend>span{display:inline-flex;align-items:center;gap:7px}.calendar-legend-dot{display:inline-block;width:9px;height:9px;flex:0 0 9px;border-radius:999px}.student-item.active>strong,.student-item.active>span{color:#fff}.student-item.active>span{opacity:.9}@media(min-width:901px){body.has-section-nav:not(.login-only) .topbar .brand{min-height:94px;padding:4px 8px}.sidebar-illustration{min-height:172px;background-position:center 36%}.sidebar-illustration span,.sidebar-illustration small{position:absolute;right:7px;width:74px;margin:0}.sidebar-illustration span{top:20px;font-family:"Noto Serif SC",serif;font-size:.96rem}.sidebar-illustration small{top:46px;color:#875f74;font-size:.52rem}.section-nav,.section-nav.student-menu{top:310px}.section-nav button,.section-nav.student-menu button{min-height:46px;padding:8px 10px}.section-nav button .nav-icon,.section-nav.student-menu button .nav-icon,.section-nav button:nth-child(2n) .nav-icon,.section-nav.student-menu button:nth-child(2n) .nav-icon,.section-nav button:nth-child(3n) .nav-icon,.section-nav.student-menu button:nth-child(3n) .nav-icon{color:inherit}}@media(max-width:900px){.brand-wordmark>span{font-size:1.35rem}.brand-wordmark>span:after{right:-15px;width:14px;height:14px}.brand-wordmark>em{margin-top:5px;font-size:.69rem}.nav-icon-shell{width:27px;height:27px;flex-basis:27px;border-radius:9px}.nav-icon-shell .nav-icon{width:16px;height:16px}}.nav-icon-shell,.nav-icon-home,.nav-icon-calendar,.nav-icon-notes,.nav-icon-book,.nav-icon-zoom,.nav-icon-student,.nav-icon-progress,.nav-icon-practice,.nav-icon-quiz,.nav-icon-history,.nav-icon-promote,.nav-icon-reschedule,.nav-icon-add{background:transparent}.nav-icon-shell .nav-icon{width:20px;height:20px;stroke-width:2.2;filter:drop-shadow(0 1px 0 rgba(45,39,57,.14))}.section-nav button:hover:not(.active) .nav-icon,.section-nav button:focus-visible:not(.active) .nav-icon,.section-nav.student-menu button:hover:not(.active) .nav-icon,.section-nav.student-menu button:focus-visible:not(.active) .nav-icon{color:inherit}.section-nav button.active .nav-icon,.section-nav.student-menu button.active .nav-icon{color:#fff;filter:none}#adminRoleAccessPanel[hidden],#teacherWorkspacePanel[hidden],#teacherStudentPicker[hidden],#teacherStudentSummary[hidden],#teacherCalendarDayPanel[hidden],#teacherFeedbackBox[hidden],#teacherAssignmentEmpty[hidden],#workspaceControlHeader[hidden],#resetDemoBtn[hidden]{display:none}body.teacher-without-students #studentDashboard>:not(#teacherWorkspacePanel){display:none!important}body.teacher-without-students #studentDashboard>#teacherWorkspacePanel{grid-column:1 / -1;grid-row:auto}body[data-portal-view=teacher] #studentPracticeShowcase,body[data-portal-view=teacher] #studentPracticeSection,body[data-portal-view=teacher] #studentStats,body[data-portal-view=teacher] .quiz-review-card{display:none!important}.teacher-calendar-date{cursor:pointer}.teacher-calendar-date.is-selected{border-color:#7567ee;background:#f4f1ff;box-shadow:0 0 0 2px #7567ee21}.student-history-card{padding:16px}.student-history-card .card-title-row{margin-bottom:8px}.student-history-card .card-title-row h3{font-size:1rem;line-height:1.2}.student-history-card .timeline{gap:6px}.student-history-card .timeline-item{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px 10px;border-radius:11px}.student-history-card .timeline-item>div{min-width:0}.student-history-card .timeline-item strong{overflow:hidden;font-size:.76rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.student-history-card .timeline-item span{margin-top:2px;font-size:.68rem;line-height:1.3;overflow-wrap:anywhere}.student-history-card .status-label{align-self:center;padding:4px 7px;font-size:.64rem;font-style:normal;white-space:nowrap}.teacher-calendar-day-panel{display:grid;gap:5px;margin-top:7px;padding-top:7px;border-top:1px solid #e8e1ef}.teacher-calendar-day-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px}.teacher-calendar-day-heading>div{display:flex;min-width:0;align-items:baseline;flex-wrap:wrap;gap:3px 7px}.teacher-calendar-day-heading .eyebrow{margin:0;font-size:.59rem}.teacher-calendar-day-heading h4{margin:0;color:#352e40;font-size:.88rem;line-height:1.2}.teacher-calendar-day-count{padding:4px 7px;color:#5c49b8;border:1px solid #ddd4ef;border-radius:999px;background:#f6f3fc;font-size:.62rem;font-weight:800;white-space:nowrap}.teacher-calendar-day-list{display:grid;gap:4px;max-height:170px;padding-right:3px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin}.teacher-calendar-day-list:focus-visible{outline:2px solid rgba(117,103,238,.42);outline-offset:3px}.teacher-agenda-row{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;min-height:54px;min-width:0;gap:8px;padding:5px 6px 5px 8px;border:1px solid #e2d9ee;border-left:1px solid #7567ee;border-radius:9px;background:#faf8ff}.teacher-agenda-row.completed{border-left-color:#43be68;background:#f4fbf6}.teacher-agenda-row.cancelled,.teacher-agenda-row.absent{border-left-color:#d77a6c;background:#fff8f6}.teacher-agenda-time{color:#3d3548;font-size:.7rem;line-height:1.2;white-space:nowrap}.teacher-agenda-student{display:grid;min-width:0;gap:1px}.teacher-agenda-student strong,.teacher-agenda-student small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-agenda-student strong{color:#3f3749;font-size:.72rem}.teacher-agenda-student small{color:#887e92;font-size:.61rem}.teacher-agenda-controls{display:flex;align-items:center;justify-content:flex-end;gap:5px}.teacher-agenda-controls .status-label{padding:3px 6px;font-size:.59rem;font-style:normal;white-space:nowrap}.teacher-agenda-controls button{min-height:44px;padding:6px 9px;font-size:.66rem}.teacher-calendar-day-empty{grid-column:1 / -1;display:grid;gap:3px;padding:10px;color:#81778b;border:1px dashed #dcd2e7;border-radius:14px;background:#fcfaff}.teacher-calendar-day-empty strong{color:#4a4254}.teacher-workspace-panel{overflow:hidden;width:100%;margin-bottom:16px;padding:0;border-color:#ded6eb;background:#fff}body[data-portal-view=teacher] .student-view>#teacherWorkspacePanel{grid-column:8 / -1;grid-row:3;align-self:start;margin-bottom:0}@media(min-width:1281px){body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-workspace-heading{align-items:stretch;flex-direction:column;padding:18px}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-assigned-count{grid-auto-flow:column;align-items:center;align-self:flex-start;min-width:0;gap:6px;text-align:left}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-student-summary{grid-template-columns:48px minmax(0,1fr);margin:14px 14px 0;padding:13px}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-student-picker{grid-column:1 / -1}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-feedback-box,body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-note-form{grid-template-columns:1fr}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-feedback-box{margin:10px 14px 14px;padding:14px}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-note-actions{grid-column:1;align-items:stretch;flex-direction:column}body[data-portal-view=teacher] #teacherWorkspacePanel .teacher-note-actions .secondary-btn{width:100%}}@media(max-width:1280px){body[data-portal-view=teacher] .student-view>#teacherWorkspacePanel{grid-column:1 / -1;grid-row:auto}}.teacher-workspace-heading,.manage-teachers-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.teacher-workspace-heading h3,.manage-teachers-header h3{margin-bottom:5px}.teacher-workspace-heading{align-items:center;padding:22px 24px;border-bottom:1px solid #ece6f2;background:#fbf9fe}.teacher-workspace-heading>div{min-width:0;max-width:680px}.teacher-workspace-heading .muted{margin-bottom:0}.teacher-assigned-count{display:grid;min-width:92px;padding:10px 14px;color:#746a7d;border:1px solid #dfd6ec;border-radius:14px;background:#fff;text-align:center}.teacher-assigned-count strong{color:#5d4bb3;font-size:1.28rem;line-height:1}.teacher-assigned-count span{margin-top:3px;font-size:.66rem;font-weight:750}.teacher-student-summary{display:grid;grid-template-columns:48px minmax(180px,1fr) minmax(250px,.8fr);gap:14px;align-items:center;margin:18px 20px 0;padding:14px 16px;border:1px solid #e5deed;border-radius:16px;background:#fcfbfe}.teacher-selected-avatar{display:inline-grid;width:48px;height:48px;place-items:center;color:#5c49b8;border:1px solid #dcd1ef;border-radius:50%;background:#f0eafb;font-size:.78rem;font-weight:800;letter-spacing:.03em}.teacher-selected-copy{display:grid;min-width:0;gap:2px}.teacher-selected-copy small{color:#8b8294;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.teacher-selected-copy strong,.teacher-selected-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-selected-copy strong{color:#352e40;font-size:1rem}.teacher-selected-copy span{color:#7f7589;font-size:.72rem}.teacher-student-picker{width:100%;min-width:0}.teacher-feedback-box{display:grid;grid-template-columns:minmax(190px,.42fr) minmax(0,1.58fr);gap:18px;margin:12px 20px 20px;padding:16px;border:1px solid #e8e1ef;border-radius:16px;background:#fff}.teacher-feedback-intro{display:grid;align-content:start;gap:5px;min-width:0;padding:2px}.teacher-feedback-intro>span:not(.teacher-feedback-icon),.teacher-assignment-action>span{color:#82788d;font-size:.74rem;line-height:1.45}.teacher-feedback-icon{display:inline-grid;width:34px;height:34px;margin-bottom:4px;place-items:center;color:#5c49b8;border-radius:10px;background:#f0eafb;font-size:1rem;font-weight:800}.teacher-note-form{display:grid;grid-template-columns:minmax(180px,.58fr) minmax(240px,1.42fr);gap:12px;align-items:start}.teacher-note-form textarea{min-height:92px}.teacher-note-form .secondary-btn{min-height:44px;min-width:132px}.teacher-note-actions{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:14px}.teacher-note-actions .form-helper{margin:0}#adminManageTeachersSection,#adminTeacherPayrollSection,#adminBackupSection,#adminCreditBookingSection,#adminRulesSection{display:none}#adminDashboard.admin-manage-teachers-page .dashboard-header,#adminDashboard.admin-manage-teachers-page #adminOverview,#adminDashboard.admin-manage-teachers-page .sidebar-card,#adminDashboard.admin-manage-teachers-page .admin-main>:not(#adminManageTeachersSection){display:none}#adminDashboard.admin-manage-teachers-page .admin-layout{display:block}#adminDashboard.admin-manage-teachers-page #adminManageTeachersSection{display:block;width:100%}#adminDashboard.admin-teacher-payroll-page .dashboard-header,#adminDashboard.admin-teacher-payroll-page #adminOverview,#adminDashboard.admin-teacher-payroll-page .sidebar-card,#adminDashboard.admin-teacher-payroll-page .admin-main>:not(#adminTeacherPayrollSection){display:none}#adminDashboard.admin-teacher-payroll-page .admin-layout{display:block}#adminDashboard.admin-teacher-payroll-page #adminTeacherPayrollSection{display:block;width:100%}#adminDashboard.admin-backup-page .dashboard-header,#adminDashboard.admin-backup-page #adminOverview,#adminDashboard.admin-backup-page .sidebar-card,#adminDashboard.admin-backup-page .admin-main>:not(#adminBackupSection){display:none}#adminDashboard.admin-backup-page .admin-layout{display:block}#adminDashboard.admin-backup-page #adminBackupSection{display:block;width:100%}#adminDashboard.admin-credit-booking-page .dashboard-header,#adminDashboard.admin-credit-booking-page #adminOverview,#adminDashboard.admin-credit-booking-page .sidebar-card,#adminDashboard.admin-credit-booking-page .admin-main>:not(#adminCreditBookingSection),#adminDashboard.admin-rules-page .dashboard-header,#adminDashboard.admin-rules-page #adminOverview,#adminDashboard.admin-rules-page .sidebar-card,#adminDashboard.admin-rules-page .admin-main>:not(#adminRulesSection){display:none}#adminDashboard.admin-credit-booking-page .admin-layout,#adminDashboard.admin-credit-booking-page #adminCreditBookingSection,#adminDashboard.admin-rules-page .admin-layout,#adminDashboard.admin-rules-page #adminRulesSection{display:block;width:100%}.teacher-payroll-card{overflow:hidden;padding:0;border-color:#ded5ef;background:#fff}.teacher-payroll-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:26px;border-bottom:1px solid #ece5f4;background:#fbf9ff}.teacher-payroll-header>div{max-width:680px}.teacher-payroll-header .muted{margin-bottom:0}.teacher-payroll-picker{width:min(340px,100%);margin:0}.teacher-payroll-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:20px 26px;border-bottom:1px solid #eee8f4}.teacher-payroll-summary>span{display:grid;gap:4px;min-width:0;padding:15px 16px;border:1px solid #e6def0;border-radius:14px;background:#fcfbfe}.teacher-payroll-summary small{color:#7e7489;font-size:.68rem;font-weight:750}.teacher-payroll-summary strong{color:#5c49b8;font-size:1.5rem;line-height:1}.teacher-payroll-period{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 26px;padding:18px 0;border-bottom:1px solid #eee8f4}.teacher-payroll-period>div{display:grid;gap:3px;min-width:0}.teacher-payroll-period small,.teacher-payroll-period span{color:#82798c;font-size:.7rem}.teacher-payroll-period strong{color:#3f3749;font-size:.92rem}.teacher-payroll-period span.is-error{color:#9b3f35}.teacher-payroll-reset{flex:0 0 auto;min-height:44px;color:#8d4f16;border-color:#e6c79f;background:#fffaf3;box-shadow:none}.teacher-payroll-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:20px 26px 12px}.teacher-payroll-list-heading h4{margin:0}.teacher-payroll-teacher-label{max-width:48%;overflow:hidden;padding:6px 9px;color:#655b70;border:1px solid #e4ddec;border-radius:999px;background:#fbf9fd;font-size:.68rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.teacher-payroll-table{margin:0 26px 26px;overflow:hidden;border:1px solid #e8e1ef;border-radius:15px}.teacher-payroll-table-head,.teacher-payroll-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 100px;gap:12px;align-items:center}.teacher-payroll-table-head{padding:10px 14px;color:#7c7286;background:#f8f5fb;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.teacher-payroll-table-head span:not(:first-child),.teacher-payroll-row>strong{text-align:right}.teacher-payroll-row{min-height:58px;padding:10px 14px;border-top:1px solid #eee8f4}.teacher-payroll-row>strong{color:#4f4360;font-size:.82rem}.teacher-payroll-student{display:grid;min-width:0;gap:2px}.teacher-payroll-student strong,.teacher-payroll-student small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-payroll-student strong{color:#352e40;font-size:.88rem}.teacher-payroll-student small{color:#887f91;font-size:.66rem}.teacher-payroll-empty{display:grid;gap:3px;padding:20px;color:#81778b;background:#fcfaff}.teacher-payroll-empty strong{color:#4a4254}.backup-restore-card{overflow:hidden;padding:0;border-color:#ded5ef;background:#fff}.backup-restore-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:26px;border-bottom:1px solid #ece5f4;background:#fbf9ff}.backup-restore-header>div{max-width:720px}.backup-restore-header .muted,.backup-section-copy p{margin-bottom:0;line-height:1.55}.backup-private-badge{flex:0 0 auto;padding:7px 11px;color:#5c49a8;border:1px solid #ded5ef;border-radius:999px;background:#fff;font-size:.7rem;font-weight:800}.backup-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:22px 26px;border-bottom:1px solid #eee8f4}.backup-status-grid>div{display:grid;align-content:start;gap:4px;min-width:0;padding:16px;border:1px solid #e6def0;border-radius:14px;background:#fcfbfe}.backup-status-grid small,.backup-status-grid span,.backup-section-copy p,.backup-restore-preview span,.backup-restore-preview small{color:#81778b;font-size:.72rem}.backup-status-grid strong,.backup-restore-preview strong{color:#453b52}.backup-action-section,.backup-restore-section{display:grid;gap:18px;padding:24px 26px}.backup-action-section{grid-template-columns:minmax(0,1fr) minmax(280px,.85fr);align-items:center;border-bottom:1px solid #eee8f4}.backup-section-copy{display:grid;gap:6px}.backup-section-copy h4{margin:0}.backup-button-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.backup-button-group .secondary-btn{min-height:44px;box-shadow:none}#createCloudBackup{grid-column:1 / -1}.backup-restore-section{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);align-items:start;background:#fffdfb}.backup-restore-section .backup-section-copy,.backup-restore-preview,.backup-restore-section .form-helper{grid-column:1 / -1}.backup-file-picker,.backup-confirm-label{display:grid;gap:7px;min-width:0;color:#5d5368;font-size:.74rem;font-weight:750}.backup-file-picker input,.backup-confirm-label input{width:100%;min-height:44px}.backup-file-picker input{padding:9px;border:1px solid #ddd4e7;border-radius:12px;background:#fff}.backup-restore-preview{display:grid;gap:4px;padding:14px 16px;border:1px dashed #d8cde4;border-radius:14px;background:#fbf9fd}.backup-restore-button{align-self:end;min-height:44px;padding:10px 16px;color:#fff;border:1px solid #9b4a43;border-radius:12px;background:#9b4a43;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.backup-restore-button:disabled{color:#958c9c;border-color:#e3dde8;background:#f2eff4;cursor:not-allowed}#backupActionStatus{margin:0}#backupActionStatus.is-error{color:#9b3f35}.manage-teachers-card{overflow:hidden;padding:0;border-color:#ded5ef;background:#fff}.manage-teachers-header{padding:26px;border-bottom:1px solid #ece5f4;background:#fbf9ff}.manage-teachers-header>div:first-child{max-width:680px}.manage-teachers-header .muted{margin-bottom:0;line-height:1.55}.teacher-assignment-stats{display:grid;grid-template-columns:repeat(3,minmax(96px,1fr));gap:10px}.teacher-assignment-stats>span{display:grid;gap:2px;min-width:0;padding:12px 14px;color:#665d72;border:1px solid #e6def0;border-radius:14px;background:#fff}.teacher-assignment-stats>span.needs-attention{color:#8c6209;border-color:#efd999;background:#fffaf0}.teacher-assignment-stats strong{color:#5c49b8;font-size:1.28rem;line-height:1}.teacher-assignment-stats .needs-attention strong{color:#a66e00}.teacher-assignment-stats small{color:inherit;font-size:.68rem;font-weight:750;white-space:nowrap}.teacher-roster-overview{padding:22px 26px;border-bottom:1px solid #eee8f4;background:#fff}.teacher-roster-heading,.teacher-assignment-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.teacher-roster-heading h4,.teacher-assignment-list-heading h4{margin:0}.teacher-roster-heading>.muted{margin:0;font-size:.72rem}.teacher-roster-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px}.teacher-roster-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:11px;align-items:center;min-width:0;padding:13px;border:1px solid #e8e1ef;border-radius:15px;background:#fcfbfe}.teacher-avatar,.student-assignment-avatar{display:inline-grid;place-items:center;flex:0 0 auto;color:#5c49b8;border:1px solid #ded4ef;border-radius:50%;background:#f1ecfb;font-weight:800;letter-spacing:.02em}.teacher-avatar{width:44px;height:44px;font-size:.78rem}.student-assignment-avatar{width:40px;height:40px;font-size:.72rem}.teacher-roster-card>div,.teacher-assignment-student>div{min-width:0}.teacher-roster-card>div{display:grid;gap:2px}.teacher-roster-card>div strong,.teacher-roster-card>div small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-roster-card>div strong{color:#342e40;font-size:.9rem}.teacher-roster-card>div small{color:#83798c;font-size:.68rem}.teacher-load{display:grid;gap:1px;justify-items:end;color:#746b7d}.teacher-load strong{color:#5c49b8;font-size:1.08rem;line-height:1}.teacher-load small{font-size:.64rem}.teacher-roster-empty{grid-column:1 / -1;display:grid;gap:4px;padding:17px;color:#80768b;border:1px dashed #dcd2e7;border-radius:15px;background:#fcfaff}.teacher-assignment-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:20px 26px;border-bottom:1px solid #eee8f4;background:#fbfafc}.teacher-assignment-search{display:grid;width:min(500px,100%);margin:0}.teacher-assignment-filters{display:grid;grid-template-columns:repeat(3,auto);gap:6px;padding:4px;border:1px solid #e4ddec;border-radius:13px;background:#fff}.teacher-assignment-filters button{min-height:40px;padding:8px 12px;color:#716777;border:0;border-radius:9px;background:transparent;font:inherit;font-size:.74rem;font-weight:750;cursor:pointer}.teacher-assignment-filters button:hover,.teacher-assignment-filters button:focus-visible{color:#4f3fa5;background:#f3effb}.teacher-assignment-filters button.active{color:#fff;background:#6754bd}.teacher-assignment-list-heading{padding:22px 26px 14px}.teacher-assignment-visible-count{padding:7px 10px;color:#655b70;border:1px solid #e4ddec;border-radius:999px;background:#fbf9fd;font-size:.68rem;font-weight:750;white-space:nowrap}.teacher-assignment-list{display:grid;gap:12px;padding:0 26px 26px}.teacher-assignment-row{display:grid;grid-template-columns:minmax(210px,1fr) minmax(150px,.62fr) minmax(220px,.9fr) minmax(160px,.62fr);gap:16px;align-items:center;min-width:0;padding:16px;border:1px solid #ebe4f1;border-left-width:1px;border-radius:16px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.teacher-assignment-row.is-assigned{border-left-color:#78a98b}.teacher-assignment-row.is-unassigned{border-left-color:#d8a63c;background:#fffdf8}.teacher-assignment-row.has-pending-change{border-color:#8a75d2;border-left-color:#6754bd;background:#fdfcff;box-shadow:0 8px 22px #533d9614}.teacher-assignment-student,.teacher-assignment-current,.teacher-assignment-action{display:grid;gap:4px;min-width:0}.teacher-assignment-student{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:11px}.teacher-assignment-student strong{color:#342e40;font-size:.98rem}.teacher-assignment-student>div span{color:#8a8293;font-size:.72rem}.teacher-assignment-student strong,.teacher-assignment-student>div span,.teacher-assignment-current strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-assignment-current small{color:#8a8293;font-size:.68rem}.teacher-assignment-current strong{color:#3c3546;font-size:.86rem}.assignment-status{width:fit-content;padding:3px 7px;border-radius:999px;font-size:.63rem;font-weight:800}.assignment-status.assigned{color:#2f7250;background:#eaf6ef}.assignment-status.unassigned{color:#986600;background:#fff2cf}.teacher-assignment-picker{min-width:0}.teacher-assignment-picker select{width:100%}.teacher-assignment-action{justify-items:stretch}.teacher-assignment-save-hint{min-height:1.9em;color:#887f91;font-size:.66rem;line-height:1.35}.teacher-assignment-action .secondary-btn{min-height:44px}.teacher-assignment-row.has-pending-change .teacher-assignment-action .secondary-btn{color:#fff;border-color:#6754bd;background:#6754bd}.teacher-assignment-empty{display:grid;place-content:center;gap:4px;min-height:120px;padding:24px;color:#80768b;border:1px dashed #dcd2e7;border-radius:16px;background:#fcfaff;text-align:center}#teacherAssignmentEmpty{margin:18px 20px 20px}@media(max-width:1180px){.manage-teachers-header,.teacher-payroll-header,.backup-restore-header{flex-direction:column;align-items:stretch}.teacher-assignment-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.teacher-assignment-student,.teacher-assignment-current{align-self:start}}@media(max-width:900px){.teacher-feedback-box{grid-template-columns:1fr}}@media(max-width:720px){.teacher-workspace-heading,.teacher-roster-heading,.teacher-assignment-toolbar,.teacher-assignment-list-heading{align-items:stretch;flex-direction:column}.teacher-calendar-day-list{grid-template-columns:1fr}.teacher-calendar-day-heading{align-items:center;flex-direction:row}.teacher-agenda-row{grid-template-columns:80px minmax(0,1fr) auto;gap:6px}.teacher-agenda-controls{gap:4px}.teacher-assigned-count{grid-auto-flow:column;align-items:center;align-self:flex-start;min-width:0;gap:6px;text-align:left}.teacher-student-summary{grid-template-columns:48px minmax(0,1fr)}.teacher-student-picker{grid-column:1 / -1}.teacher-note-form{grid-template-columns:1fr}.teacher-note-actions{grid-column:1;align-items:stretch;flex-direction:column}.teacher-note-actions .secondary-btn{width:100%}.teacher-assignment-filters{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.teacher-assignment-filters button{padding-inline:8px;white-space:normal}.teacher-assignment-row{grid-template-columns:1fr}.teacher-assignment-stats{width:100%}.teacher-payroll-summary,.backup-status-grid,.backup-action-section,.backup-restore-section{grid-template-columns:1fr}.backup-restore-section>*,.backup-action-section>*{grid-column:1}.teacher-payroll-period,.teacher-payroll-list-heading{align-items:stretch;flex-direction:column}.teacher-payroll-reset,.teacher-payroll-picker{width:100%}.teacher-payroll-teacher-label{max-width:100%;width:fit-content}}@media(max-width:640px){.teacher-workspace-heading{padding:18px 16px}.teacher-student-summary{margin:14px 14px 0;padding:13px}.teacher-feedback-box{margin:10px 14px 14px}#teacherAssignmentEmpty{margin:14px}.manage-teachers-header,.teacher-payroll-header,.teacher-payroll-summary,.teacher-payroll-list-heading,.backup-restore-header,.backup-status-grid,.backup-action-section,.backup-restore-section,.teacher-roster-overview,.teacher-assignment-toolbar,.teacher-assignment-list-heading{padding-left:16px;padding-right:16px}.teacher-payroll-period,.teacher-payroll-table{margin-left:16px;margin-right:16px}.teacher-payroll-table-head,.teacher-payroll-row{grid-template-columns:minmax(0,1fr) 64px 70px;gap:8px}.backup-button-group{grid-template-columns:1fr}#createCloudBackup{grid-column:1}.teacher-assignment-list{padding:0 16px 18px}.teacher-feedback-box,.teacher-assignment-row{padding:14px}}.workspace-switch-host.is-hidden,.workspace-switcher[hidden]{display:none}.management-header-actions{display:grid;width:min(520px,100%);gap:10px;justify-items:end}.control-room-header{flex-wrap:wrap}.control-room-header>:first-child{flex:1 1 320px}.workspace-switch-host,.workspace-switcher{width:100%}.workspace-control-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:center;margin-bottom:18px}.workspace-switcher{display:grid;gap:7px;padding:12px;color:var(--ink);border:1px solid #e3daf4;border-radius:16px;background:#fffffff0;box-shadow:0 8px 22px #5b457014}.workspace-switch-label{color:#665b74;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.workspace-switch{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px}.workspace-switch .pill{min-height:44px;padding:8px 10px;color:#6f667a;border-color:#e8e1ef;background:#fff;line-height:1.15}.workspace-switch .pill:hover,.workspace-switch .pill:focus-visible{color:#5f46c7;border-color:#cfc2ef;background:#f8f5ff}.workspace-switch .pill.active{color:#fff;border-color:#7567ee;background:#7567ee;box-shadow:none}.workspace-switch-hint{color:#81778b;font-size:.7rem;line-height:1.35}@media(max-width:1180px){.workspace-control-header{grid-template-columns:1fr}.management-header-actions{width:100%;align-self:stretch;justify-items:stretch}}@media(max-width:640px){.management-header-actions{width:100%}.workspace-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-switcher{padding:10px;border-radius:14px}#adminOverview,.admin-student-grid{grid-template-columns:1fr}}.role-rules-page,.credit-booking-admin-card,.teacher-booking-tools{position:relative;overflow:hidden;border-color:#e5dff0;background:#fffdf9}.role-rules-page:before,.credit-booking-admin-card:before,.teacher-booking-tools:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:5px;background:#d6c8ef}.rules-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.rules-page-heading h3{margin:4px 0 8px;font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1}.rules-page-heading .muted{max-width:720px;margin:0;line-height:1.65}.rules-gentle-badge{flex:0 0 auto;padding:8px 12px;border:1px solid #e7d9c7;border-radius:999px;color:#725d44;background:#fff8ed;font-size:.76rem;font-weight:800}.rules-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rules-groups{display:grid}.rules-group{display:grid;gap:14px;padding:22px 0;border-top:1px solid #eee7f2}.rules-group:first-of-type{padding-top:0;border-top:0}.rules-group-heading{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);align-items:end;gap:24px}.rules-group-heading small{color:#8065a5;font-size:.69rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.rules-group-heading h4{margin:4px 0 0;color:#403548;font-family:var(--font-display);font-size:1.18rem}.rules-group-heading p{max-width:620px;margin:0;color:#7a7182;font-size:.84rem;line-height:1.55}.rules-story-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:15px;min-height:0;padding:20px;border:1px solid #ece6f1;border-radius:20px;background:#fff;box-shadow:0 10px 24px #523f630e}.rules-story-card:nth-child(3n+2){background:#fffaf6}.rules-story-card:nth-child(3n){background:#fbf9ff}.rules-story-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;color:#67559b;background:#f2edfb;font-size:1.1rem;font-weight:900}.rules-story-card h5{margin:5px 0 7px;color:#3f3448;font-size:1.02rem;line-height:1.25}.rules-story-card p{margin:0;color:#746b7e;font-size:.88rem;line-height:1.6}.rules-story-kicker{color:#8065a5;font-size:.68rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.rules-help-note{display:flex;gap:14px;align-items:center;margin-top:18px;padding:16px 18px;border:1px solid #eadfce;border-radius:18px;background:#fff9ef;color:#675743}.rules-help-note>span{font-size:1.7rem;line-height:1}.rules-help-note p{margin:4px 0 0;font-size:.85rem;line-height:1.5}.booking-admin-summary,.booking-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px}.booking-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:4px}.booking-admin-summary>span,.booking-context-grid>span{display:grid;gap:5px;padding:14px 16px;border:1px solid #e7e0ed;border-radius:16px;background:#fff}.booking-admin-summary small,.booking-context-grid small{color:#827889;font-size:.72rem;font-weight:700}.booking-admin-summary strong,.booking-context-grid strong{color:#443653;overflow-wrap:anywhere;font-size:1rem;line-height:1.25}.booking-context-grid .wide{grid-column:1 / -1}.booking-context-grid .teacher{grid-template-columns:auto 1fr;align-items:center;gap:5px 12px;background:#f8f5fc}.booking-context-grid .teacher small{grid-column:1 / -1}.booking-admin-grid,.booking-ledger-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.booking-ledger-layout{margin-top:18px}.booking-admin-panel,.booking-ledger-layout>section,.booking-management-list>section{padding:18px;border:1px solid #ece6f0;border-radius:19px;background:#fff}.booking-admin-panel h4,.booking-list-heading h4{margin:3px 0 12px}.booking-stack-form,.booking-inline-form,.booking-settings-form{display:grid;gap:12px}.booking-stack-form label,.booking-inline-form label,.booking-settings-form label{display:grid;gap:6px;color:#6d6375;font-size:.78rem;font-weight:700}.booking-inline-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;margin-bottom:18px;padding:16px;border:1px solid #e9e2ee;border-radius:18px;background:#fff}.booking-inline-form .span-2{grid-column:span 2}.booking-settings-form{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid #ece6ef}.booking-list-heading,.booking-management-row,.booking-row-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-list-heading>span{color:#8a7e91;font-size:.74rem}.booking-management-list{display:grid;gap:10px}.booking-management-row{padding:13px 14px;border:1px solid #ece6ef;border-radius:15px;background:#fff}.booking-management-row>div:first-child{display:grid;gap:4px}.booking-management-row span,.booking-management-row em{color:#83788a;font-size:.76rem;font-style:normal}.booking-management-row.is-expired{opacity:.7;background:#faf8fb}.booking-empty-state{display:grid;gap:5px;padding:18px;border:1px dashed #ddd2e6;border-radius:16px;color:#756b7c;background:#fbf9fc}.booking-empty-state span{font-size:.82rem;line-height:1.5}.booking-empty-state.is-warning{border-color:#e5cfa9;color:#715a34;background:#fff9ed}.booking-default-open-note{display:grid;gap:4px;margin-bottom:12px;padding:13px 15px;border:1px solid #d5e6da;border-radius:15px;color:#41614a;background:#f2f8f3}.booking-default-open-note span{font-size:.78rem;line-height:1.45}.weekly-booking-notice{display:flex;align-items:center;gap:12px;margin:4px 0 16px;padding:13px 15px;border:1px solid #e6d6bd;border-radius:16px;color:#66543e;background:#fff8ed}.weekly-booking-notice.is-complete{border-color:#d5e6da;color:#41614a;background:#f2f8f3}.weekly-booking-notice>span{display:grid;flex:0 0 auto;width:30px;height:30px;place-items:center;border-radius:50%;background:#fffc;font-weight:900}.weekly-booking-notice p{margin:3px 0 0;font-size:.8rem;line-height:1.45}.booking-drawer-backdrop{position:fixed;z-index:1200;top:0;right:0;bottom:0;left:0;background:#241c2a47;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.booking-drawer{display:flex;flex-direction:column;position:fixed;z-index:1201;inset:0 0 0 auto;width:min(520px,100%);overflow:hidden;padding:28px;border:0;border-left:1px solid #e4dce9;background:#fffdf9;box-shadow:-18px 0 55px #36284229}.booking-drawer[hidden],.booking-drawer-backdrop[hidden]{display:none}.booking-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.booking-drawer-header,#bookingDrawerDescription,.booking-drawer-status,.booking-drawer-actions{flex:0 0 auto}.booking-drawer-header h2{margin:4px 0 8px;font-family:var(--font-display);font-size:1.8rem;line-height:1.14}#bookingDrawerDescription{margin:4px 0 0;max-width:430px;color:#756b7d;font-size:.88rem;line-height:1.55}.booking-drawer-handle{display:none}.booking-drawer-status{margin:14px 0}.booking-drawer-content{display:grid;min-height:0;gap:14px;overflow-y:auto;padding:14px 4px 8px 0;overscroll-behavior:contain}.booking-drawer-actions{display:flex;flex-wrap:wrap;gap:9px;margin:10px -4px -4px;padding:16px 4px 4px;border-top:1px solid #eee7f1;background:#fffdf9}.booking-drawer-actions:empty{display:none}.booking-slot-section{padding:18px;border:1px solid #e8e0ed;border-radius:20px;background:#fff}.booking-slot-section .booking-list-heading{align-items:flex-start;margin-bottom:14px}.booking-slot-section .booking-list-heading small{color:#8a7d91;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.booking-slot-section .booking-list-heading h3{margin:4px 0 0;color:#403548;font-size:1.05rem;line-height:1.3}.booking-duration-list{display:grid;gap:10px}.booking-reschedule-date{display:grid;gap:6px;margin-bottom:12px;color:#6c5e74;font-size:.78rem;font-weight:800}.booking-reschedule-date input{min-height:44px;padding:9px 11px;border:1px solid #dfd5e5;border-radius:12px;background:#fff}.booking-duration-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 16px;width:100%;min-height:76px;padding:15px 16px;border:1px solid #e4dbe9;border-radius:16px;color:#403548;background:#fffdfb;text-align:left}.booking-duration-option:not(:disabled):hover,.booking-duration-option:not(:disabled):focus-visible{border-color:#bfa8ca;background:#fbf7fc}.booking-duration-option:disabled{cursor:not-allowed;opacity:.52}.booking-duration-option span{display:grid;gap:3px}.booking-duration-option small,.booking-duration-warning{color:#817588;font-size:.76rem}.booking-duration-option em{color:#6c5478;font-size:.78rem;font-style:normal;font-weight:800}.booking-duration-warning{grid-column:1 / -1;color:#98535c}.booking-hold-note{margin:12px 0 0;color:#6b5578;font-size:.8rem;font-weight:700}.booking-timezone{flex:0 0 auto;padding:6px 9px;border-radius:999px;color:#69567f!important;background:#f2edfa;font-weight:800}.booking-slot-list{display:grid;gap:16px}.booking-availability-loading{display:grid;min-height:150px;place-items:center;align-content:center;gap:8px;color:#675a70;text-align:center}.booking-availability-loading>span{width:28px;height:28px;border:3px solid #e7dff0;border-top-color:#78609a;border-radius:50%;animation:booking-availability-spin .8s linear infinite}.booking-availability-loading small{color:#8a7d91}@keyframes booking-availability-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-availability-loading>span{animation:none}}.booking-time-group{display:grid;gap:8px}.booking-time-group+.booking-time-group{padding-top:14px;border-top:1px solid #eee7f2}.booking-time-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 2px}.booking-time-group-heading strong{color:#4b3e55;font-size:.86rem}.booking-time-group-heading span{color:#84798b;font-size:.72rem;font-weight:700}.booking-slot-option{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:68px;padding:14px 15px;border:1px solid #e5ddea;border-radius:16px;color:#4f435b;background:#fff;text-align:left;cursor:pointer}.booking-slot-option:hover,.booking-slot-option:focus-visible{border-color:#bba9da;background:#f8f5fc}.booking-slot-option.is-selected{border-color:#7567ee;color:#43365a;background:#f5f2ff;box-shadow:0 0 0 2px #7567ee1f}.booking-slot-option.is-selected em{color:#fff;background:#7567ee}.booking-slot-option>span{display:grid;gap:4px}.booking-slot-option small,.booking-slot-option em{color:#84798b;font-size:.76rem;font-style:normal}.booking-slot-option strong{color:#44364f;font-size:1rem}.booking-slot-option em{flex:0 0 auto;padding:5px 8px;border-radius:999px;color:#604c7a;background:#f2edfa;font-weight:800}body.booking-drawer-open{overflow:hidden}.booking-detail-card,.booking-confirm-card,.booking-policy-note{padding:17px;border:1px solid #e8e0ed;border-radius:18px;background:#fff}.booking-detail-card h3,.booking-confirm-card h3{margin:8px 0}.booking-confirm-card dl{display:grid;gap:9px;margin:16px 0}.booking-confirm-card dl>div{display:flex;justify-content:space-between;gap:18px}.booking-confirm-card dt{color:#817686}.booking-confirm-card dd{margin:0;font-weight:800;text-align:right}.booking-policy-note{display:grid;gap:5px;color:#675741;background:#fff9ef}.booking-policy-note span{font-size:.8rem;line-height:1.5}.teacher-assignment-row{grid-template-columns:minmax(180px,1.1fr) minmax(145px,.8fr) minmax(160px,1fr) minmax(170px,1fr) minmax(180px,1.1fr) minmax(135px,.75fr)}@media(max-width:900px){.booking-admin-grid,.booking-ledger-layout{grid-template-columns:1fr}.rules-group-heading{grid-template-columns:1fr;gap:6px}.booking-admin-summary,.booking-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-inline-form,.booking-settings-form{grid-template-columns:1fr 1fr}}@media(max-width:640px){.rules-page-heading{display:grid;gap:12px}.rules-gentle-badge{justify-self:start}.rules-story-card{grid-template-columns:36px minmax(0,1fr);min-height:0;padding:16px}.rules-story-grid{grid-template-columns:1fr;gap:12px}.rules-group{padding:18px 0}.rules-story-icon{width:36px;height:36px;border-radius:12px}.booking-inline-form,.booking-settings-form{grid-template-columns:1fr}.booking-inline-form .span-2{grid-column:auto}.booking-drawer{inset:auto 0 0;width:100%;max-height:88dvh;padding:12px 18px max(22px,env(safe-area-inset-bottom));border-top:1px solid #e4dce9;border-left:0;border-radius:24px 24px 0 0;box-shadow:0 -18px 55px #36284229}.booking-drawer-header h2{font-size:1.5rem}#bookingDrawerDescription{font-size:.82rem}.booking-context-grid{gap:8px}.booking-context-grid>span{padding:11px 12px}.booking-slot-section{padding:14px}.booking-slot-section .booking-list-heading{display:grid;gap:8px}.booking-timezone{justify-self:start}.booking-time-group-heading{display:grid;gap:2px}.booking-drawer-handle{display:block;width:44px;height:4px;margin:0 auto 14px;border-radius:999px;background:#d6cedb}.booking-drawer-actions>button{flex:1 1 150px}.booking-management-row{align-items:flex-start;flex-direction:column}.booking-row-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}}:root{--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--text-caption: .75rem;--text-secondary: .875rem;--text-body: 1rem;--text-subheading: 1.125rem;--text-heading: 1.375rem;--text-class-time: 2rem;--primary: #c82d68;--primary-dark: #a91f53}body{font-size:1rem;line-height:1.55;font-kerning:normal;background:#fffaf9}body:before{display:none}h1,h2,h3,h4{letter-spacing:-.012em;line-height:1.2}[lang=th]{letter-spacing:normal}.eyebrow,.calendar-status-legend,.booking-list-heading small,.booking-time-group-heading small,.student-class-history-card .status-label,.teacher-calendar-day-count{font-size:var(--text-caption);font-weight:700}.class-time,.welcome-metric strong,#hoursPercent,#scheduleChangeText,.month-date,.calendar-controls,.booking-slot-option strong,.booking-confirm-card dd{font-variant-numeric:tabular-nums lining-nums}.spatial-dashboard-header{grid-template-columns:minmax(0,1fr);min-height:auto;margin-bottom:var(--space-lg);border-color:var(--line);background:#fff;box-shadow:var(--shadow-soft)}.spatial-dashboard-header:before,.spatial-dashboard-header:after,#studentDashboard .welcome-metrics,#studentDashboard .student-status{display:none}.spatial-greeting-copy{padding:var(--space-lg)}.spatial-greeting-copy h2{margin:var(--space-2xs) 0 var(--space-xs);font-size:var(--text-heading);font-weight:800}.student-dashboard-copy{display:grid;gap:var(--space-2xs);max-width:65ch!important;line-height:1.55}.student-dashboard-copy [lang=en]{font-size:var(--text-secondary)}.student-view{gap:var(--space-lg)}#studentOverview{grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr);gap:var(--space-lg)}#studentOverview>.primary-class-card{min-height:320px}#studentOverview>.course-card{min-height:0}.student-view .card:hover,.student-view .card:focus-within{transform:none}.student-view .card:hover{border-color:#d6c9e6a8;box-shadow:var(--shadow-soft)}.primary-class-card .class-time{font-size:var(--text-class-time);line-height:1.05}.next-class-access{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);max-width:34rem;margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid rgba(48,43,63,.12)}.next-class-access>div{min-width:0;display:grid;gap:var(--space-2xs)}.next-class-access .eyebrow,.next-class-access strong,.next-class-access span{margin:0}.next-class-access>div>span{max-width:44ch;color:#625b6d;font-size:var(--text-secondary);line-height:1.45}.zoom-btn:disabled,.zoom-btn.is-disabled{cursor:not-allowed;color:#655f6d;border-color:#dcd5df;background:#eeeaf0;box-shadow:none}.course-card .meter-block{min-height:0}.calendar-guidance{max-width:65ch;margin:calc(var(--space-xs) * -1) 0 var(--space-md);color:#625b6d;font-size:var(--text-secondary);line-height:1.5}.spatial-calendar-card{padding:var(--space-lg)}.spatial-calendar-card .month-day{min-width:44px;min-height:64px}.teacher-calendar-day-panel{margin-top:var(--space-md)}.student-agenda-book{justify-self:start;min-height:44px}.icon-btn,.secondary-btn,.text-btn{min-height:44px}.calendar-availability-badge{min-height:18px;font-size:var(--text-caption);line-height:1.2}.student-class-history-card .timeline-item strong,.teacher-agenda-class strong{font-size:var(--text-secondary)}.student-class-history-card .timeline-item span,.teacher-agenda-class span{font-size:var(--text-caption);line-height:1.45}@media(max-width:980px){#studentOverview{grid-template-columns:1fr}#studentOverview>.primary-class-card,#studentOverview>.course-card{grid-column:1}}@media(max-width:720px){.spatial-greeting-copy{padding:var(--space-md)}.primary-class-card{min-height:0!important;padding:var(--space-md) var(--space-md) 168px}.next-class-illustration{height:190px}.next-class-access{align-items:flex-start;flex-direction:column}}.student-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);margin:var(--space-lg) 0}.student-account-grid>div{display:flex;flex-direction:column;gap:2px}.student-account-grid small{color:var(--muted);font-size:.85rem}.student-account-grid strong{font-size:1.05rem}.student-account-actions{display:flex;justify-content:flex-end;padding-top:var(--space-md);border-top:1px solid var(--border)}@media(max-width:640px){.section-nav.student-menu{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;overflow:visible}.section-nav.student-menu>button{min-width:0;min-height:56px;padding:var(--space-xs) var(--space-2xs);font-size:var(--text-caption)}.student-nav-more-menu{position:absolute;right:0;bottom:calc(100% + var(--space-xs));display:grid;width:min(19rem,calc(100vw - 20px));gap:var(--space-2xs);padding:var(--space-xs);border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.student-nav-more-menu[hidden]{display:none}.section-nav.student-menu .student-nav-more-menu button{min-width:0;min-height:44px;justify-content:flex-start;flex-direction:row;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:var(--text-secondary);text-align:left}.spatial-calendar-card{padding:var(--space-md);overflow-x:auto}.spatial-calendar-card .month-calendar{min-width:350px;grid-template-columns:repeat(7,minmax(44px,1fr))}.month-heading{font-size:var(--text-caption)}.spatial-calendar-card .calendar-availability-badge{min-width:0;font-size:var(--text-caption)}.spatial-calendar-card .calendar-availability-badge i{display:none}.booking-drawer-header h2{font-size:var(--text-heading)}#bookingDrawerDescription{max-width:60ch;font-size:var(--text-secondary)}}#studentPracticeSection{padding:var(--space-lg)}#studentPracticeSection>.card-title-row{align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-md)}#studentPracticeSection>.card-title-row h3,.practice-setup-panel h2{font-size:var(--text-heading);line-height:1.15}.quick-quiz-context{max-width:34ch;color:#625b6d;font-size:var(--text-secondary);line-height:1.5}.practice-library-intro{display:grid;gap:var(--space-2xs);margin-bottom:var(--space-md)}.practice-library-intro strong{font-size:var(--text-subheading)}.practice-library-intro span{color:#625b6d;font-size:var(--text-secondary);line-height:1.5}.quick-quiz-mode-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:var(--space-md);margin:0}.quick-quiz-mode,.sentence-builder-mode,.character-match-mode,.character-choice-mode,.radical-builder-mode{grid-column:auto;grid-template-columns:104px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;min-height:190px;gap:0 var(--space-md);padding:0 var(--space-md) var(--space-md) 0;overflow:hidden;border-color:var(--line);border-radius:16px;box-shadow:none}.quick-quiz-mode:hover,.quick-quiz-mode:focus-visible,.sentence-builder-mode:hover,.sentence-builder-mode:focus-visible,.character-match-mode:hover,.character-match-mode:focus-visible,.character-choice-mode:hover,.character-choice-mode:focus-visible,.radical-builder-mode:hover,.radical-builder-mode:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.quick-quiz-mode-art{grid-row:1 / 3;min-height:190px}.quick-quiz-mode>span:nth-child(2){align-self:center;padding-top:var(--space-md)}.quick-quiz-mode-kicker,.quick-quiz-mode-time{font-size:var(--text-caption);font-weight:700}.quick-quiz-mode strong,.character-match-mode strong,.character-choice-mode strong,.radical-builder-mode strong,.sentence-builder-mode strong{color:var(--ink);font-size:var(--text-subheading);font-weight:700;line-height:1.25}.quick-quiz-mode small,.character-match-mode small,.character-choice-mode small,.radical-builder-mode small,.sentence-builder-mode small{margin-top:var(--space-2xs);overflow:visible;color:#625b6d;font-size:var(--text-secondary);line-height:1.55;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.quick-quiz-mode-time{margin-top:var(--space-xs);color:#376b63}.quick-quiz-mode-cta{grid-column:2;align-self:end;justify-self:start;min-height:0;gap:var(--space-xs);padding:var(--space-xs) 0 0;color:var(--primary-dark);background:transparent;font-size:var(--text-secondary);font-weight:700}#studentStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-xs)}#studentStats .stat-card{min-height:0;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;gap:0 var(--space-sm);padding:var(--space-sm);border-color:var(--line);background:#fff;box-shadow:none}#studentStats .stat-icon{grid-row:1 / 3;width:36px;height:36px;font-size:1rem}#studentStats .stat-card small{font-size:var(--text-caption);line-height:1.35}#studentStats .stat-card strong{font-size:var(--text-subheading);font-weight:700;font-variant-numeric:tabular-nums lining-nums}.quiz-review-card{margin-top:var(--space-xs);border-width:1px 0 0;border-radius:0;box-shadow:none}.practice-setup-panel{padding:var(--space-xl);background:#fff}.practice-setup-instructions{max-width:65ch;color:#625b6d}.practice-setup-panel fieldset{margin-top:var(--space-lg)}.practice-setup-panel legend{margin-bottom:var(--space-sm);font-size:var(--text-subheading);font-weight:700}.practice-setup-options{gap:var(--space-xs)}#practiceSetupLevels{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-setup-options.question-counts{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-setup-options button{min-width:0;min-height:48px;padding:var(--space-xs) var(--space-sm);border-radius:12px;font-weight:600;overflow-wrap:anywhere}.practice-setup-availability{min-height:24px;margin-top:var(--space-md);color:#625b6d;font-size:var(--text-secondary);font-variant-numeric:tabular-nums lining-nums}.practice-setup-actions{position:sticky;bottom:0;z-index:2;gap:var(--space-xs);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--line);background:#fff}@media(max-width:720px){#studentPracticeSection{padding:var(--space-md)}#studentPracticeSection>.card-title-row{display:grid}.quick-quiz-context{max-width:65ch;text-align:left}.quick-quiz-mode-grid{grid-template-columns:1fr}.quick-quiz-mode,.sentence-builder-mode,.character-match-mode,.character-choice-mode,.radical-builder-mode{grid-template-columns:96px minmax(0,1fr);min-height:156px;padding-right:var(--space-sm);padding-bottom:var(--space-sm)}.quick-quiz-mode-art{min-height:156px}.quick-quiz-mode-cta{grid-column:2;justify-content:flex-start;margin:0}.practice-setup-panel{padding:var(--space-lg) var(--space-md)}.practice-setup-options.question-counts,.practice-setup-options.scope-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){#studentStats{grid-template-columns:1fr}.quick-quiz-mode,.sentence-builder-mode,.character-match-mode,.character-choice-mode,.radical-builder-mode{grid-template-columns:80px minmax(0,1fr)}.practice-setup-options.scope-options{grid-template-columns:1fr}}.admin-overview-heading{grid-column:1 / -1;display:flex;align-items:end;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xs)}.admin-overview-heading h3,.admin-overview-heading p{margin:0}.admin-overview-heading h3{font-size:var(--text-heading)}.admin-overview-heading>p{max-width:48ch;color:#625b6d;font-size:var(--text-secondary);line-height:1.5;text-align:right}#adminOverview{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-sm)}#adminOverview .stat-card{min-height:112px;align-content:center;border-color:var(--line);background:#fff;box-shadow:none}#adminOverview .admin-metric-priority{grid-column:span 5;background:#fff4f7}#adminOverview .admin-metric-attention{grid-column:span 3;background:#fff9e9}#adminOverview .admin-metric-routine{grid-column:span 2}#adminOverview .stat-card a{margin-top:var(--space-xs);color:var(--primary-dark);font-size:var(--text-secondary);font-weight:700;text-underline-offset:3px}.reset-demo-btn{justify-self:end;color:#7a4055}.admin-access-panel{padding:0;overflow:hidden}.admin-access-panel>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);cursor:pointer;font-weight:700;list-style-position:inside}.admin-access-panel>summary small{color:#625b6d;font-size:var(--text-caption);font-weight:600}.admin-access-content{display:grid;gap:var(--space-md);padding:0 var(--space-sm) var(--space-sm);border-top:1px solid var(--line)}.admin-access-content .profile-list{margin-top:var(--space-sm)}.admin-field-label{display:block;margin-bottom:var(--space-xs);color:#625b6d;font-size:var(--text-caption);font-weight:700}.teacher-assignment-filters button{min-height:44px}.admin-view .card:hover,.admin-view .card:focus-within{transform:none}.admin-view .card:hover{border-color:#d6c9e6a8;box-shadow:var(--shadow-soft)}@media(max-width:1180px){#adminOverview{grid-template-columns:repeat(2,minmax(0,1fr))}#adminOverview .admin-metric-priority,#adminOverview .admin-metric-attention,#adminOverview .admin-metric-routine{grid-column:auto}}@media(max-width:640px){.admin-overview-heading{display:grid;gap:var(--space-xs)}.admin-overview-heading>p{text-align:left}#adminOverview{grid-template-columns:1fr}.reset-demo-btn{width:100%;justify-self:stretch}}@media(min-width:901px){body.has-section-nav:not(.login-only) .topbar,body.has-student-section-menu:not(.login-only) .topbar{height:100dvh;display:flex;flex-direction:column;gap:0;padding:18px 14px 14px;overflow:hidden}body.has-section-nav:not(.login-only) .topbar .brand{flex:0 0 auto}body.has-section-nav:not(.login-only) .topbar .sidebar-illustration{flex:0 0 auto;margin:12px 0 14px}body.has-section-nav:not(.login-only) .topbar #sectionNav,body.has-student-section-menu:not(.login-only) .topbar #sectionNav{position:static;top:auto;right:auto;bottom:auto;left:auto;z-index:auto;flex:1 1 auto;min-height:0;width:100%;margin:0;padding:4px 2px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(246,83,140,.32) transparent}body.has-section-nav:not(.login-only) .topbar #sectionNav::-webkit-scrollbar{width:6px}body.has-section-nav:not(.login-only) .topbar #sectionNav::-webkit-scrollbar-thumb{background:#f6538c52;border-radius:999px}body.has-section-nav:not(.login-only) .topbar #sectionNav::-webkit-scrollbar-track{background:transparent}body.has-section-nav:not(.login-only) .topbar .topbar-actions{flex:0 0 auto;width:100%;margin-top:12px;padding-top:12px;border-top:1px solid #f0e6f2}body.has-section-nav:not(.login-only) .topbar #sectionNav button,body.has-student-section-menu:not(.login-only) .topbar #sectionNav button{min-height:44px;padding:9px 12px;color:#4a4458;background:transparent;border:0;border-radius:13px;text-align:left;transition:background-color .12s ease,color .12s ease}body.has-section-nav:not(.login-only) .topbar #sectionNav button:not(.active),body.has-student-section-menu:not(.login-only) .topbar #sectionNav button:not(.active){color:#4a4458;background:transparent}body.has-section-nav:not(.login-only) .topbar #sectionNav button:not(.active):hover,body.has-student-section-menu:not(.login-only) .topbar #sectionNav button:not(.active):hover{color:#2c2738;background:#fff2f7}body.has-section-nav:not(.login-only) .topbar #sectionNav button:not(.active):focus-visible,body.has-student-section-menu:not(.login-only) .topbar #sectionNav button:not(.active):focus-visible{color:#2c2738;background:#fff2f7;outline:3px solid rgba(117,103,238,.34);outline-offset:2px}body.has-section-nav:not(.login-only) .topbar #sectionNav button.active,body.has-student-section-menu:not(.login-only) .topbar #sectionNav button.active{color:#fff;background:#f6538c;box-shadow:0 8px 18px #f6538c33}body.has-section-nav:not(.login-only) .topbar #sectionNav button.active .nav-icon-shell,body.has-student-section-menu:not(.login-only) .topbar #sectionNav button.active .nav-icon-shell{color:#fff;background:#ffffff38}body.has-section-nav:not(.login-only) .topbar #sectionNav button:not(.active) .nav-icon-shell,body.has-student-section-menu:not(.login-only) .topbar #sectionNav button:not(.active) .nav-icon-shell{background:transparent}}@media(min-width:901px){body.has-section-nav:not(.login-only) .app-shell,body.has-student-section-menu:not(.login-only) .app-shell{width:min(1640px,calc(100% - 44px));max-width:none}}.student-view{grid-template-columns:minmax(0,1fr)}.student-view>*{grid-column:1 / -1;width:100%;min-width:0}.student-view>#studentOverview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);gap:var(--space-lg, 24px);align-items:stretch}.student-view>#studentOverview>.primary-class-card,.student-view>#studentOverview>.course-card{grid-column:auto;width:100%;min-width:0}.student-view>#studentCalendarSection,.student-view>#studentPracticeSection,.student-view>#studentStats,.student-view>#studentDetails,.student-view>#studentRulesPage,.student-view>#teacherBookingTools,.student-view>.quiz-review-card,.student-view>#teacherWorkspacePanel{grid-column:1 / -1;width:100%}@media(max-width:1080px){.student-view>#studentOverview{grid-template-columns:1fr}}.app-shell{min-width:0}main{min-width:0}#studentDashboard,#adminDashboard{min-width:0}
