:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--brand:#7c3aed;--brand-dark:#5b21b6;--brand-light:#ede9fe;--brand-ultra-light:#f5f3ff;--success:#16a34a;--success-light:#dcfce7;--warning:#dc2626;--warning-light:#fee2e2;--info:#0284c7;--info-light:#e0f2fe;--a1:#22c55e;--a1-light:#dcfce7;--a2:#0ea5e9;--a2-light:#e0f2fe;--b1:#7c3aed;--b1-light:#ede9fe;--b2:#f59e0b;--b2-light:#fef3c7;--c1:#ec4899;--c1-light:#fce7f3;--background:#f8f7fc;--surface:#fff;--surface-soft:#f7f6fa;--text:#18181b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e7e5ee}:root[data-theme=dark]{--background:#0f0d16;--surface:#18151f;--surface-soft:#211d2a;--text:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#8f8a9b;--border:#312b3d;--brand:#8b5cf6;--brand-dark:#6d28d9;--brand-light:#3b2863;--brand-ultra-light:#241a38;--success:#4ade80;--success-light:#173525;--warning:#f87171;--warning-light:#3c1d22;--info:#38bdf8;--info-light:#172d3b;--a1:#4ade80;--a1-light:#183728;--a2:#38bdf8;--a2-light:#172e3b;--b1:#a78bfa;--b1-light:#30234d;--b2:#fbbf24;--b2-light:#3a3016;--c1:#f472b6;--c1-light:#3b1d30}*{box-sizing:border-box}body{background:radial-gradient(circle at top left, #7c3aed14 0, transparent 34%), var(--background);min-width:320px;min-height:100vh;color:var(--text);margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background .25s,color .25s}button,input,select{font:inherit}button{cursor:pointer}.app{width:min(1180px,100% - 40px);margin:0 auto;padding:52px 0 80px}.topbar{justify-content:space-between;align-items:center;gap:28px;margin-bottom:36px;display:flex}.eyebrow{letter-spacing:.2em;color:var(--text-secondary);margin:0 0 9px;font-size:11px;font-weight:900}h1{letter-spacing:-.055em;color:var(--text);margin:0;font-size:clamp(38px,5vw,60px);line-height:.98}.subtitle{color:var(--text-secondary);margin:14px 0 0;font-size:16px;font-weight:600}.dashboard-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.add-button{background:var(--brand);color:#fff;white-space:nowrap;box-shadow:0 8px 20px color-mix(in srgb, var(--brand) 20%, transparent);border:0;border-radius:15px;padding:12px 18px;font-weight:900}.add-button:hover{background:var(--brand-dark)}.backup-button{background:var(--brand-light);color:var(--brand-dark);cursor:pointer;border:0;border-radius:15px;padding:12px 16px;font-weight:900;transition:transform .18s,background .18s}.backup-button:hover{background:var(--brand-light);transform:translateY(-2px)}.stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}.stat-card{background:#ffffffe0;border:1px solid #94a3b82e;border-radius:22px;flex-direction:column;gap:7px;padding:20px 22px;display:flex;box-shadow:0 12px 30px #0f172a0d}.stat-card span{color:var(--text-secondary);font-size:13px;font-weight:800}.stat-card strong{color:var(--text);letter-spacing:-.03em;font-size:25px}.student-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.student-card{text-align:center;background:#fffffff5;border:1px solid #94a3b824;border-radius:30px;padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:0 16px 44px #0f172a12}.student-card:before{content:"";background:var(--brand);border-radius:0 0 999px 999px;height:4px;position:absolute;top:0;left:28px;right:28px}.student-card-a1:before{background:var(--a1)}.student-card-a2:before{background:var(--a2)}.student-card-b1:before{background:var(--b1)}.student-card-b2:before{background:var(--b2)}.student-card-c1:before{background:var(--c1)}.student-card:hover{border-color:color-mix(in srgb, var(--brand) 28.0%, transparent);transform:translateY(-6px);box-shadow:0 24px 54px #0f172a1c}.avatar,.student-photo{border:6px solid var(--brand-ultra-light);width:92px;height:92px;box-shadow:0 8px 22px color-mix(in srgb, var(--brand) 12%, transparent), 0 0 0 2px color-mix(in srgb, var(--brand) 6%, transparent);border-radius:50%;margin:0 auto 18px}.avatar{background:linear-gradient(145deg, var(--brand-ultra-light), var(--brand-light));color:var(--brand-dark);place-items:center;font-size:26px;font-weight:900;display:grid}.student-photo{object-fit:cover;display:block}.student-card h2{color:var(--text);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:900}.level-badge{border-radius:999px;margin-top:11px;padding:7px 12px;font-size:12px;font-weight:900;display:inline-block}.level-a1{background:var(--a1-light);color:#15803d}.level-a2{background:var(--a2-light);color:#0369a1}.level-b1{background:var(--b1-light);color:var(--brand-dark)}.level-b2{background:var(--b2-light);color:#b45309}.level-c1{background:var(--c1-light);color:#be185d}.grammar-topic{min-height:50px;color:var(--text-secondary);margin:17px 0 20px;font-size:14px;font-weight:750;line-height:1.4}.week-row{color:var(--text-secondary);justify-content:space-between;margin-bottom:8px;font-size:12px;font-weight:800;display:flex}.progress-track{background:var(--border);border-radius:999px;height:11px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, #a78bfa, var(--brand));height:100%}.profile-button{background:var(--brand-ultra-light);width:100%;color:var(--brand-dark);border:0;border-radius:15px;margin-top:22px;padding:13px 18px;font-weight:900;transition:transform .18s,background .18s}.profile-button:hover{background:var(--brand-light);transform:translateY(-2px)}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0f172a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:30px;width:min(650px,100%);max-height:calc(100vh - 40px);padding:30px;overflow-y:auto;box-shadow:0 30px 80px #0f172a40}.modal-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;display:flex}.modal-header h2{margin:0;font-size:32px}.close-button{background:var(--surface-soft);width:42px;height:42px;color:var(--text-secondary);border:0;border-radius:50%;font-size:26px}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.form-grid label{color:var(--text-secondary);flex-direction:column;gap:8px;font-size:14px;font-weight:800;display:flex}.full-width{grid-column:1/-1}input,select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:14px;outline:none;padding:13px 14px}input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 15%, transparent)}.photo-preview-wrapper{justify-content:center;margin-top:22px;display:flex}.photo-preview{object-fit:cover;border:6px solid var(--brand-ultra-light);border-radius:50%;width:110px;height:110px}.modal-actions{justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.secondary-button,.save-button{border:0;border-radius:15px;padding:13px 20px;font-weight:900}.save-button:hover{background:var(--brand-dark)}.secondary-button{background:var(--surface-soft);color:var(--text-secondary)}.save-button{background:var(--brand);color:#fff}@media (width<=850px){.student-grid,.stats{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}}@media (width<=600px){.app{width:min(100% - 24px,1180px);padding-top:28px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.modal{border-radius:24px;padding:22px}}.profile-hero{background:linear-gradient(135deg,#f5f3ffd9,#fffffffa);border:1px solid #7c3aed1a;border-radius:32px;margin-top:28px;padding:32px;box-shadow:0 18px 50px #0f172a14}.profile-identity{align-items:center;gap:26px;display:flex}.profile-photo-large,.profile-avatar-large{color:var(--brand-dark);background:linear-gradient(145deg,#f5f3ff,#ede9fe);place-items:center;font-size:34px;font-weight:900;display:grid}.profile-photo-large{object-fit:cover}.profile-avatar-large{background:linear-gradient(145deg, var(--brand-light), var(--brand-light));color:var(--brand-dark);border:7px solid var(--brand-ultra-light);place-items:center;font-size:34px;font-weight:900;display:grid}.profile-summary-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;display:grid}.profile-summary-card{border:1px solid var(--border);background:#fffc;border-radius:20px;flex-direction:column;gap:8px;padding:20px;display:flex}.profile-summary-card span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900}.profile-summary-card strong{color:var(--text);font-size:19px;line-height:1.3}.journey-tabs{background:#ece9f4;border-radius:18px;gap:6px;margin:28px 0 18px;padding:5px;display:inline-flex}.tab{color:var(--text-secondary);background:0 0;border:0;border-radius:14px;padding:12px 20px;font-weight:900;transition:background .18s,color .18s,transform .18s,box-shadow .18s}.tab.active{color:var(--brand);background:#fff;box-shadow:0 5px 14px #0f172a14}.journey-panel{background:#fffffff7;border:1px solid #94a3b824;border-radius:32px;padding:32px;box-shadow:0 18px 50px #0f172a12}.journey-panel h2{margin:0;font-size:30px}.journey-main-text{color:var(--text-secondary);margin-top:10px;font-size:18px;font-weight:700}.roadmap-placeholder{flex-direction:column;align-items:center;min-height:560px;padding:50px 0;display:flex}.roadmap-node{border-radius:50%;place-items:center;width:82px;height:82px;font-size:24px;font-weight:900;display:grid;box-shadow:0 10px 24px #0f172a1f}.roadmap-node.completed{background:var(--brand-light);color:var(--brand-dark)}.roadmap-node.current{background:var(--brand);color:#fff;width:96px;height:96px;box-shadow:0 16px 34px color-mix(in srgb, var(--brand) 30%, transparent)}.roadmap-node.future{background:var(--border);color:var(--text-muted)}.roadmap-line{background:var(--brand-light);border-radius:999px;width:8px;height:70px}.placeholder-note{text-align:center;color:var(--text-secondary);font-weight:700}@media (width<=850px){.profile-summary-grid{grid-template-columns:1fr}}@media (width<=600px){.profile-identity{flex-direction:column;align-items:flex-start}.journey-tabs{flex-direction:column}}.roadmap-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.movement-controls{gap:10px;display:flex}.movement-controls button:disabled{opacity:.4;cursor:not-allowed}.world-selector{flex-wrap:wrap;justify-content:center;gap:10px;margin:34px 0 20px;display:flex}.world-button{color:var(--text-secondary);background:#eceaf1;border:0;border-radius:999px;padding:11px 22px;font-weight:900}.world-button:hover{transform:translateY(-2px)}.world-button.active{background:var(--brand);color:#fff}.world-title{text-align:center;margin:35px 0 45px}.world-title span{letter-spacing:.2em;color:var(--text-muted);font-size:11px;font-weight:900}.world-title h3{letter-spacing:-.05em;margin:4px 0;font-size:46px;transition:color .18s}.world-title p{color:var(--text-secondary);margin:0;font-weight:700}.world-title-a1 h3{color:var(--a1)}.world-title-a2 h3{color:var(--a2)}.world-title-b1 h3{color:var(--b1)}.world-title-b2 h3{color:var(--b2)}.world-title-c1 h3{color:var(--c1)}.grammar-path{width:min(620px,100%);margin:0 auto;padding:10px 0 70px;position:relative}.grammar-path-svg{pointer-events:none;z-index:0;width:100%;height:calc(100% - 70px);position:absolute;inset:0;overflow:visible}.grammar-connector{fill:none;stroke:#ddd6fe;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.grammar-stage-row{z-index:1;flex-direction:column;align-items:center;min-height:125px;display:flex;position:relative}.grammar-stage-row.center{transform:translate(0)}.grammar-stage-row.left{transform:translate(-120px)}.grammar-stage-row.right{transform:translate(120px)}.grammar-stage-node{z-index:2;color:#a1a1aa;background:#f7f6fa;border:7px solid #e7e5ee;border-radius:50%;width:72px;height:72px;font-size:16px;font-weight:900;position:relative;box-shadow:0 8px #d4d4d8}.grammar-stage-node:hover{transform:translateY(-4px)scale(1.04)}.grammar-stage-node.past{background:var(--success-light);color:var(--success);border-color:#bbf7d0;box-shadow:0 8px #86efac}.grammar-stage-node.current{background:var(--brand);border-color:var(--brand-light);color:#fff;width:90px;height:90px;box-shadow:0 9px 0 var(--brand-dark), 0 18px 34px #7c3aed47;font-size:28px}.stage-label{text-align:center;z-index:3;background:var(--surface);flex-direction:column;gap:5px;width:230px;margin-top:18px;padding:0 6px;display:flex;position:relative}.stage-label span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:900}.stage-label strong{color:var(--text-secondary);font-size:14px;line-height:1.3}@media (width<=700px){.grammar-path-svg{display:none}.roadmap-header{flex-direction:column}.movement-controls{width:100%}.movement-controls button{flex:1}.grammar-stage-row.center,.grammar-stage-row.left,.grammar-stage-row.right{transform:translate(0)}}.week-editor-modal{width:min(760px,100%)}.week-date-range{color:var(--text-secondary);margin:8px 0 0;font-weight:700}.week-form{gap:18px;display:grid}.week-form label{color:var(--text-secondary);flex-direction:column;gap:8px;font-size:14px;font-weight:800;display:flex}.week-form textarea{resize:vertical;border:1px solid var(--border);width:100%;min-height:105px;font:inherit;color:var(--text);background:var(--surface);border-radius:14px;outline:none;padding:13px 14px}.week-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 15%, transparent)}.import-button{justify-content:center;align-items:center;display:inline-flex}@media (width<=850px){.dashboard-actions{width:100%}.dashboard-actions button,.dashboard-actions label{text-align:center;flex:1}}.profile-summary-card strong,.journey-panel h2,.stage-label strong{color:var(--text)}.student-options-button{background:var(--surface-soft);width:36px;height:36px;color:var(--text-secondary);opacity:0;border:0;border-radius:50%;place-items:center;font-size:16px;font-weight:900;transition:opacity .18s,background .18s,transform .18s;display:grid;position:absolute;top:18px;right:18px}.student-card:hover .student-options-button{opacity:1}.student-options-button:hover{background:var(--brand-light);color:var(--brand-dark);transform:scale(1.08)}.archive-button{width:100%;color:var(--text-muted);background:0 0;border:0;border-radius:13px;margin-top:10px;padding:10px;font-size:12px;font-weight:800}.archive-button:hover{color:#be123c;background:#fff1f2}.archived-section{border-top:1px solid var(--border);margin-top:55px;padding-top:30px}.archived-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.archived-heading h2{color:var(--text);margin:0;font-size:25px}.archived-heading>span{color:var(--text-muted);font-size:13px;font-weight:800}.archived-list{gap:10px;display:grid}.archived-student{border:1px solid var(--border);background:#ffffffb3;border-radius:17px;justify-content:space-between;align-items:center;gap:20px;padding:15px 18px;display:flex}.archived-student>div{flex-direction:column;gap:3px;display:flex}.archived-student strong{color:var(--text-secondary)}.archived-student span{color:var(--text-muted);font-size:12px;font-weight:700}.restore-button{background:var(--info-light);color:var(--info);border:0;border-radius:12px;padding:9px 15px;font-weight:900}.restore-button:hover{background:#bae6fd}@media (width<=600px){.student-options-button{opacity:1}.archived-heading{flex-direction:column;align-items:flex-start}}.student-search-section{justify-content:space-between;align-items:center;gap:18px;margin:0 0 26px;display:flex}.student-search-box{width:min(540px,100%);position:relative}.student-search-box input{width:100%;color:var(--text);background:#ffffffeb;border:1px solid #94a3b838;border-radius:18px;padding:14px 48px 14px 45px;font-size:14px;font-weight:650;box-shadow:0 10px 25px #0f172a0a}.student-search-box input:focus{border-color:var(--brand-light);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 12%, transparent), 0 10px 25px #0f172a0a}.search-icon{color:var(--text-muted);pointer-events:none;font-size:22px;position:absolute;top:50%;left:17px;transform:translateY(-50%)}.clear-search-button{background:var(--surface-soft);width:30px;height:30px;color:var(--text-secondary);border:0;border-radius:50%;place-items:center;font-size:18px;font-weight:700;display:grid;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.clear-search-button:hover{background:var(--border)}.search-result-count{color:var(--text-muted);font-size:13px;font-weight:800}.class-preview-section{background:var(--surface-soft);text-align:left;border-radius:18px;margin-top:22px;padding:17px}.class-preview-block{flex-direction:column;gap:5px;display:flex}.class-preview-block span{color:var(--text-muted);letter-spacing:.12em;font-size:9px;font-weight:900}.class-preview-block strong{color:var(--text-secondary);font-size:12px;line-height:1.45}.class-preview-divider{background:var(--border);height:1px;margin:13px 0}.no-search-results{text-align:center;border:1px dashed var(--border);background:#ffffffa6;border-radius:28px;padding:70px 20px}.no-search-results>div{color:var(--text-muted);font-size:42px}.no-search-results h3{color:var(--text-secondary);margin:12px 0 5px;font-size:20px}.no-search-results p{color:var(--text-muted);margin:0;font-size:14px}@media (width<=700px){.student-search-section{flex-direction:column;align-items:stretch}.student-search-box{width:100%}}.school-roadmap-topbar{flex-direction:column;gap:28px;margin-bottom:30px;display:flex}.school-roadmap-heading h1{margin-top:0}.school-roadmap-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0;display:grid}.school-roadmap-stats .stat-card{border:1px solid var(--border);background:#ffffffeb;box-shadow:0 12px 30px #0f172a0d}.school-roadmap-panel{background:linear-gradient(#fffffffa,#faf8fffa);border:1px solid #7c3aed14;border-radius:32px;margin-top:22px;padding:34px;box-shadow:0 18px 50px #0f172a12}.school-grammar-path{width:min(620px,100%);margin:0 auto;padding:10px 0 80px;position:relative}.school-roadmap-svg{pointer-events:none;z-index:0;width:100%;height:calc(100% - 80px);position:absolute;inset:0;overflow:visible}.school-roadmap-svg .grammar-connector{stroke:#e9e3ff;stroke-width:5px}.school-stage-row{z-index:1;flex-direction:column;align-items:center;min-height:140px;display:flex;position:relative}.school-stage-row.center{transform:translate(0)}.school-stage-row.left{transform:translate(-120px)}.school-stage-row.right{transform:translate(120px)}.school-stage-node{z-index:2;width:74px;height:74px;color:var(--text-muted);background:#faf9fc;border:7px solid #eceaf1;border-radius:50%;place-items:center;font-size:15px;font-weight:900;transition:transform .18s,box-shadow .18s;display:grid;position:relative;box-shadow:0 8px #d8d4df,0 12px 24px #0f172a0d}.school-stage-row:hover .school-stage-node{transform:translateY(-3px);box-shadow:0 9px #d8d4df,0 16px 28px #0f172a14}.school-stage-node.occupied{background:var(--brand);border-color:var(--brand-light);color:#fff;width:80px;height:80px;box-shadow:0 9px 0 var(--brand-dark), 0 16px 30px #7c3aed3d}.school-stage-label{z-index:3;text-align:center;background:var(--surface);flex-direction:column;gap:5px;width:240px;margin-top:18px;padding:0 7px;display:flex;position:relative}.school-stage-label span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:900}.school-stage-label strong{color:var(--text-secondary);font-size:14px;line-height:1.35}.school-stage-label small{background:var(--brand-ultra-light);color:var(--brand-dark);border-radius:999px;align-self:center;margin-top:6px;padding:5px 10px;font-size:9px;font-weight:900;display:inline-flex}.student-position-stack{z-index:5;display:flex;position:absolute;top:-28px;left:50%;transform:translate(-50%)}.roadmap-student{background:var(--brand);color:#fff;border:4px solid #fff;border-radius:50%;place-items:center;width:46px;height:46px;margin-left:-9px;padding:0;font-size:11px;font-weight:900;transition:transform .18s,box-shadow .18s;display:grid;overflow:hidden;box-shadow:0 6px 18px #0f172a2e,0 0 0 2px #7c3aed1f}.roadmap-student:first-child{margin-left:0}.roadmap-student:hover{z-index:10;box-shadow:0 10px 24px #0f172a38, 0 0 0 3px var(--brand-light);transform:translateY(-6px)scale(1.14)}.roadmap-student img{object-fit:cover;width:100%;height:100%}@media (width<=850px){.school-roadmap-stats{grid-template-columns:1fr}}@media (width<=700px){.school-roadmap-svg{display:none}.school-stage-row.center,.school-stage-row.left,.school-stage-row.right{transform:translate(0)}}.app-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #94a3b82e;border-radius:22px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:42px;padding:12px 14px 12px 12px;display:flex;box-shadow:0 10px 30px #0f172a0d}.app-nav-brand{align-items:center;gap:11px;display:flex}.app-nav-logo{background:var(--brand);color:#fff;width:42px;height:42px;box-shadow:0 7px 15px color-mix(in srgb, var(--brand) 20%, transparent);border-radius:14px;place-items:center;font-size:19px;font-weight:900;display:grid}.app-nav-brand>div:last-child{flex-direction:column;display:flex}.app-nav-brand strong{color:var(--text);font-size:13px;line-height:1.2}.app-nav-brand span{color:var(--text-muted);font-size:11px;font-weight:700}.app-nav-links{align-items:center;gap:6px;display:flex}.app-nav-link{color:var(--text-secondary);border-radius:13px;padding:10px 15px;font-size:13px;font-weight:850;text-decoration:none;transition:background .18s,color .18s,transform .18s}.app-nav-link:hover{background:var(--surface-soft);color:var(--text-secondary);transform:translateY(-1px)}.app-nav-link.active{background:var(--brand-light);color:var(--brand-dark)}@media (width<=650px){.app-nav{flex-direction:column;align-items:stretch}.app-nav-links{width:100%}.app-nav-link{text-align:center;flex:1}}.record-status-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.record-status-row>div:first-child{flex-direction:column;gap:5px;display:flex}.record-status-row span{color:var(--text-muted);letter-spacing:.12em;font-size:9px;font-weight:900}.record-status-row strong{color:var(--text-secondary);font-size:12px;line-height:1.4}.last-updated-badge{background:var(--info-light);color:var(--info);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 9px;font-size:9px;font-weight:900}.student-tools-section{margin-bottom:26px}.student-tools-section .student-search-section{margin-bottom:14px}.student-filter-tabs{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.student-filter-button{background:var(--surface-soft);color:var(--text-secondary);cursor:pointer;border:0;border-radius:14px;align-items:center;gap:8px;padding:10px 13px;font-size:12px;font-weight:900;transition:transform .18s,background .18s,color .18s;display:inline-flex}.student-filter-button:hover{background:var(--border);transform:translateY(-1px)}.student-filter-button span{background:#fffc;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:10px;display:grid}.student-filter-button.active{background:var(--brand-light);color:var(--brand-dark)}.student-filter-button.attention.active{background:var(--warning-light);color:var(--warning)}.needs-update-badge{z-index:4;background:var(--warning-light);color:var(--warning);letter-spacing:.04em;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;position:absolute;top:18px;left:18px}@media (width<=700px){.student-filter-tabs{width:100%}.student-filter-button{flex:1;justify-content:center}}.week-modal-actions{justify-content:space-between;align-items:center}.week-save-actions{gap:12px;display:flex}.delete-record-button{color:#be123c;background:#fff1f2;border:0;border-radius:14px;padding:12px 16px;font-weight:900}.delete-record-button:hover{background:#ffe4e6}@media (width<=600px){.week-modal-actions{flex-direction:column;align-items:stretch;gap:14px}.delete-record-button,.week-save-actions{width:100%}.week-save-actions button{flex:1}}.backup-status-card{border:1px solid;border-radius:18px;align-items:center;gap:14px;margin-bottom:24px;padding:14px 16px;display:flex}.backup-status-card.good{border-color:var(--success-light);background:#f0fdf4}.backup-status-card.warning{background:snow;border-color:#fecaca}.backup-status-icon{border-radius:14px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:18px;font-weight:900;display:grid}.backup-status-card.good .backup-status-icon{background:var(--success-light);color:var(--success)}.backup-status-card.warning .backup-status-icon{background:var(--warning-light);color:var(--warning)}.backup-status-copy{flex-direction:column;flex:1;gap:2px;display:flex}.backup-status-copy span{color:var(--text-muted);letter-spacing:.12em;font-size:9px;font-weight:900}.backup-status-copy strong{color:var(--text);font-size:14px}.backup-status-copy p{color:var(--text-secondary);margin:0;font-size:12px;font-weight:650}.backup-status-action{background:var(--surface);color:var(--text-secondary);border:0;border-radius:13px;padding:10px 14px;font-size:11px;font-weight:900;box-shadow:0 4px 12px #0f172a0d}.backup-status-action:hover{transform:translateY(-1px)}@media (width<=650px){.backup-status-card{flex-direction:column;align-items:stretch}.backup-status-action{width:100%}}.profile-level-card.level-a1{background:var(--a1-light)}.profile-level-card.level-a2{background:var(--a2-light)}.profile-level-card.level-b1{background:var(--b1-light)}.profile-level-card.level-b2{background:var(--b2-light)}.profile-level-card.level-c1{background:var(--c1-light)}.tab:hover{color:var(--brand-dark)}.movement-controls .save-button{background:var(--brand);color:#fff;box-shadow:0 7px 18px #7c3aed2e}.movement-controls .save-button:hover{background:var(--brand-dark)}.week-grid{grid-template-columns:repeat(8,1fr);gap:14px;margin-top:28px;display:grid}.week-node{border:1px solid var(--border);min-height:112px;color:var(--text-muted);background:#f8f7fc;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;display:flex;position:relative}.week-node:hover{border-color:var(--brand-light);transform:translateY(-3px);box-shadow:0 10px 22px #7c3aed14}.week-node-label{letter-spacing:.12em;color:var(--text-muted);font-size:9px;font-weight:900}.week-node strong{color:var(--text-secondary);font-size:22px}.week-node-date{color:var(--text-muted);font-size:9px;font-weight:700}.week-node.past-week{background:#fff}.week-node.has-record{background:var(--success-light);border-color:#bbf7d0}.week-node.has-record strong{color:var(--success)}.week-node.has-record .week-node-label,.week-node.has-record .week-node-date{color:#15803d}.week-node.current-week{background:linear-gradient(145deg, #8b5cf6, var(--brand));border-color:var(--brand-light);color:#fff;box-shadow:0 8px 0 var(--brand-dark), 0 16px 28px #7c3aed3d;transform:scale(1.05)}.week-node.current-week strong,.week-node.current-week .week-node-label,.week-node.current-week .week-node-date{color:#fff}.week-saved-mark{background:var(--success);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:900;display:grid;position:absolute;top:9px;right:9px}.week-node.current-week .week-saved-mark{color:var(--brand);background:#fff}.weekly-history-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:10px;display:flex}.weekly-history-summary{gap:10px;display:flex}.weekly-history-summary>div{background:var(--brand-ultra-light);border-radius:16px;flex-direction:column;align-items:center;gap:4px;min-width:82px;padding:12px 14px;display:flex}.weekly-history-summary span{color:var(--text-muted);letter-spacing:.1em;font-size:8px;font-weight:900}.weekly-history-summary strong{color:var(--brand-dark);font-size:18px}@media (width<=850px){.week-grid{grid-template-columns:repeat(5,1fr)}.weekly-history-header{flex-direction:column}}@media (width<=600px){.week-grid{grid-template-columns:repeat(3,1fr)}.weekly-history-summary{width:100%}.weekly-history-summary>div{flex:1}}.app-nav-right{align-items:center;gap:10px;display:flex}.theme-toggle{border:1px solid var(--border);background:var(--surface-soft);height:40px;color:var(--text-secondary);border-radius:13px;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:900;transition:transform .18s,background .18s,color .18s;display:flex}.theme-toggle:hover{color:var(--brand);transform:translateY(-1px)}.theme-toggle-icon{font-size:17px;line-height:1}@media (width<=650px){.app-nav-right{flex-direction:column;align-items:stretch;width:100%}.theme-toggle{justify-content:center}}:root[data-theme=dark] body{background:radial-gradient(circle at top left, #7c3aed21 0, transparent 34%), var(--background)}:root[data-theme=dark] .app-nav{border-color:var(--border);background:#18151fe6}:root[data-theme=dark] .app-nav-brand strong,:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] .student-card h2{color:var(--text)}:root[data-theme=dark] .subtitle,:root[data-theme=dark] .grammar-topic,:root[data-theme=dark] .journey-main-text{color:var(--text-secondary)}:root[data-theme=dark] .stat-card,:root[data-theme=dark] .student-card,:root[data-theme=dark] .profile-hero,:root[data-theme=dark] .journey-panel,:root[data-theme=dark] .school-roadmap-panel,:root[data-theme=dark] .modal{background:var(--surface);border-color:var(--border)}:root[data-theme=dark] .profile-hero{background:linear-gradient(135deg, #33244d99, var(--surface))}:root[data-theme=dark] .profile-summary-card{background:var(--surface-soft);border-color:var(--border)}:root[data-theme=dark] .student-search-box input,:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:var(--surface-soft);border-color:var(--border);color:var(--text)}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:var(--text-muted)}:root[data-theme=dark] .class-preview-section{background:var(--surface-soft)}:root[data-theme=dark] .class-preview-divider{background:var(--border)}:root[data-theme=dark] .backup-button,:root[data-theme=dark] .secondary-button{background:var(--surface-soft);color:var(--text-secondary)}:root[data-theme=dark] .backup-button:hover,:root[data-theme=dark] .secondary-button:hover{background:#2b2635}:root[data-theme=dark] .progress-track{background:#302b39}:root[data-theme=dark] .student-filter-button{background:var(--surface-soft);color:var(--text-secondary)}:root[data-theme=dark] .student-filter-button span{background:#302a3b}:root[data-theme=dark] .journey-tabs{background:#211d2a}:root[data-theme=dark] .tab{color:var(--text-secondary)}:root[data-theme=dark] .tab.active{color:#c4b5fd;background:#322547}:root[data-theme=dark] .world-button{color:var(--text-secondary);background:#292431}:root[data-theme=dark] .world-button.active{background:var(--brand);color:#fff}:root[data-theme=dark] .stage-label,:root[data-theme=dark] .school-stage-label{background:var(--surface)}:root[data-theme=dark] .stage-label strong,:root[data-theme=dark] .school-stage-label strong{color:var(--text-secondary)}:root[data-theme=dark] .grammar-stage-node{color:#8f8a9b;background:#292530;border-color:#393342;box-shadow:0 8px #1d1923}:root[data-theme=dark] .grammar-stage-node.past{background:var(--success-light);color:var(--success);border-color:#24583a;box-shadow:0 8px #12301f}:root[data-theme=dark] .grammar-stage-node.current{background:linear-gradient(145deg, #a78bfa, var(--brand));box-shadow:0 9px 0 var(--brand-dark), 0 18px 36px #7c3aed52;border-color:#4c3473}:root[data-theme=dark] .grammar-connector{stroke:#392c50}:root[data-theme=dark] .week-node{border-color:var(--border);background:#211e27}:root[data-theme=dark] .week-node.past-week{background:#1c1922}:root[data-theme=dark] .week-node.has-record{background:var(--success-light);border-color:#27593b}:root[data-theme=dark] .school-stage-node{color:var(--text-muted);background:#292530;border-color:#393342;box-shadow:0 8px #1d1923,0 12px 24px #00000029}:root[data-theme=dark] .school-stage-node.occupied{background:var(--brand);color:#fff;box-shadow:0 8px 0 var(--brand-dark), 0 15px 30px #7c3aed47;border-color:#4c3473}:root[data-theme=dark] .archived-student,:root[data-theme=dark] .no-search-results{background:var(--surface);border-color:var(--border)}:root[data-theme=dark] .close-button{background:var(--surface-soft);color:var(--text-secondary)}:root[data-theme=dark] .backup-status-card.good{background:#14271c;border-color:#245536}:root[data-theme=dark] .backup-status-card.warning{background:#291719;border-color:#5b292d}:root[data-theme=dark] .backup-status-copy strong{color:var(--text)}:root[data-theme=dark] .backup-status-action{background:var(--surface-soft);color:var(--text-secondary)}:root[data-theme=dark] .modal-backdrop{background:#030207b3}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .profile-level-card.level-a1{background:var(--a1-light)}:root[data-theme=dark] .profile-level-card.level-a2{background:var(--a2-light)}:root[data-theme=dark] .profile-level-card.level-b1{background:var(--b1-light)}:root[data-theme=dark] .profile-level-card.level-b2{background:var(--b2-light)}:root[data-theme=dark] .profile-level-card.level-c1{background:var(--c1-light)}:root[data-theme=dark] .level-a1{color:var(--a1)}:root[data-theme=dark] .level-a2{color:var(--a2)}:root[data-theme=dark] .level-b1{color:var(--b1)}:root[data-theme=dark] .level-b2{color:var(--b2)}:root[data-theme=dark] .level-c1{color:var(--c1)}:root[data-theme=dark] .profile-avatar-large{background:linear-gradient(145deg, var(--brand-ultra-light), var(--brand-light))}:root[data-theme=dark] .avatar,:root[data-theme=dark] .profile-avatar-large,:root[data-theme=dark] .profile-button,:root[data-theme=dark] .app-nav-link.active,:root[data-theme=dark] .weekly-history-summary strong,:root[data-theme=dark] .school-stage-label small{color:#c4b5fd}:root[data-theme=dark] .student-filter-button.active{background:var(--brand-light);color:#c4b5fd}:root[data-theme=dark] .student-filter-button.attention.active{background:var(--warning-light);color:var(--warning)}:root[data-theme=dark] .grammar-stage-node.current{color:#fff}:root[data-theme=dark] .week-node.has-record .week-node-label,:root[data-theme=dark] .week-node.has-record .week-node-date{color:var(--success)}:root[data-theme=dark] .week-node.current-week{background:linear-gradient(145deg, #8b5cf6, var(--brand));border-color:var(--brand-light)}:root[data-theme=dark] .week-node.current-week strong,:root[data-theme=dark] .week-node.current-week .week-node-label,:root[data-theme=dark] .week-node.current-week .week-node-date{color:#fff}.backup-button:disabled,.backup-status-action:disabled{opacity:.5;cursor:not-allowed}.backup-button:disabled:hover,.backup-status-action:disabled:hover{transform:none}.form-error{color:var(--warning);margin:16px 0 0;font-weight:600}.other-records{margin-top:28px}.organization-admin-members{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:22px}.organization-admin-members h2{margin:0 0 14px}.organization-admin-error{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.organization-admin-error p{margin:0}.organization-admin-invite,.organization-admin-invitations{margin-top:20px}.invite-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.invite-form label{flex:220px;gap:6px;font-weight:700;display:grid}.invite-form select{min-height:42px}.member-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.member-actions .secondary-button{padding:6px 12px;font-size:13px}.member-action-error{flex-basis:100%;margin:4px 0 0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.invitation-offers{margin:12px 0;padding-left:20px}.member-table{border-collapse:collapse;width:100%}.member-table th,.member-table td{text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:12px 10px}.member-table th{color:var(--text-secondary);font-size:13px;font-weight:800}.member-table tbody tr:last-child td{border-bottom:none}.member-you{color:var(--text-secondary);font-weight:700}.member-role,.member-status{background:var(--surface-soft);color:var(--text-secondary);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-block}.member-role-owner,.member-role-admin{background:var(--brand-light);color:var(--brand)}.member-status-suspended{background:var(--warning-light);color:var(--warning)}@media (width<=640px){.member-table thead{display:none}.member-table tr{border-bottom:1px solid var(--border);gap:6px;padding:12px 0;display:grid}.member-table td{border-bottom:none;justify-content:space-between;gap:12px;padding:0;display:flex}.member-table td:before{content:attr(data-label);color:var(--text-secondary);font-size:13px;font-weight:800}}.account-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.account-card{background:var(--surface);border:1px solid var(--border);border-radius:30px;width:min(460px,100%);padding:30px;box-shadow:0 30px 80px #0f172a1f}.account-card h1{margin:4px 0 6px}.account-form{grid-template-columns:1fr;margin-top:20px}.account-link-button{color:var(--brand);cursor:pointer;background:0 0;border:none;margin-top:12px;padding:0;font-weight:700}.account-link-button:hover{text-decoration:underline}.account-error,.account-notice{border-radius:14px;margin:16px 0 0;padding:12px 14px;font-weight:700}.account-error{background:var(--warning-light);color:var(--warning)}.account-notice{background:var(--info-light);color:var(--info)}.account-options{gap:10px;margin-top:20px;display:grid}.account-option{border:1px solid var(--border);background:var(--surface-soft);color:var(--text);text-align:left;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.account-option:hover{border-color:var(--brand)}.account-option span{color:var(--text-secondary);text-transform:capitalize}.account-bar{color:var(--text-secondary);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 14px;padding:10px 16px;font-size:14px;display:flex}.account-bar-button{background:var(--surface-soft);color:var(--text-secondary);border:0;border-radius:10px;padding:6px 10px;font-weight:800}.account-bar-button:hover{color:var(--brand)}.organization-switcher{min-width:0;margin-right:auto;position:relative}.organization-switcher-current{align-items:center;gap:8px;min-width:0;max-width:100%;display:inline-flex}.organization-switcher-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.organization-switcher-role{background:var(--surface-soft);color:var(--text-secondary);border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:800}.organization-switcher-button{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:12px;padding:5px 10px}.organization-switcher-button:hover:not(:disabled){border-color:var(--brand)}.organization-switcher-button:disabled{cursor:progress;opacity:.7}.organization-switcher-caret{color:var(--text-secondary);flex:none}.organization-switcher-menu{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:6px;width:max-content;min-width:260px;max-width:min(420px,100vw - 32px);max-height:60vh;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 20px 50px #0f172a29}.organization-switcher-option{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.organization-switcher-option strong{overflow-wrap:anywhere}.organization-switcher-option span{color:var(--text-secondary);flex:none;font-size:13px}.organization-switcher-option:hover{border-color:var(--brand)}.organization-switcher-option.current{background:var(--surface-soft)}.organization-notice,.organization-switching{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;padding:10px 16px;font-size:14px;font-weight:700;display:flex}.organization-notice{background:var(--info-light);color:var(--info)}.organization-switching{background:var(--surface-soft);color:var(--text-secondary)}.organization-workspace{display:contents}.organization-workspace[inert]>*{opacity:.5}.account-secondary-action{color:var(--text-secondary);margin:18px 0 0;font-size:14px}.account-secondary-action .account-link-button{margin-top:0}@media (width<=600px){.organization-switcher{flex-basis:100%;margin-right:0}.organization-switcher-button{justify-content:space-between;width:100%}.organization-switcher-menu{width:auto;min-width:0;max-width:none;right:0}}
