@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&family=DM+Serif+Display&display=swap";@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap";#or-root{--paper:#f5f2ee;--ink:#1c1917;--ink-soft:#6f6759;--line:#1c191717;--blue:#2563eb;--orange:#e87b35;--taupe:#96856b;--green:#2f9e6f;--c-student:#e9f0fe;--c-parent:#f2ece1;--c-tutor:#fceee1;--font:"Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ease:cubic-bezier(.22,.61,.36,1);--settle:cubic-bezier(.34,1.28,.5,1)}#or-root,#or-root *{box-sizing:border-box}#or-root{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;width:100%;height:100vh;position:relative;overflow:hidden}.or-splash{z-index:30;cursor:pointer;transition:opacity .65s var(--ease);background:radial-gradient(115% 85% at 82% 10%, #2563eb33, transparent 55%), radial-gradient(100% 80% at 14% 88%, #e87b3538, transparent 55%), radial-gradient(70% 62% at 50% 48%, #fffffff0, transparent 72%), var(--paper);place-items:center;display:grid;position:absolute;inset:0}.or-splash:before{content:"";pointer-events:none;background:radial-gradient(40% 40% at 30% 30%,#2563eb1a,#0000 60%),radial-gradient(45% 45% at 72% 68%,#e87b351f,#0000 60%);animation:16s ease-in-out infinite alternate or-drift;position:absolute;inset:-20%}@keyframes or-drift{0%{transform:translate(-2%,-1%)scale(1.02)}to{transform:translate(3%,2%)scale(1.08)}}.or-splash.is-gone{opacity:0;pointer-events:none}.or-lockup{z-index:1;align-items:center;gap:clamp(16px,2.4vw,34px);padding:0 24px;display:flex}.or-mark{filter:drop-shadow(0 6px 20px #2563eb2e);width:clamp(74px,8vw,120px);height:auto;animation:or-mark-in 1s var(--ease) both;flex:none}@keyframes or-mark-in{0%{opacity:0;transform:scale(.82)translateY(8px)}to{opacity:1;transform:none}}.or-star{fill:var(--ink)}.or-belt{fill:var(--blue)}.or-line{stroke:var(--ink);stroke-width:1.4px;opacity:.28}.or-belt-line{stroke:var(--blue);stroke-width:1.8px;opacity:.5}.or-word-wrap{perspective:900px;min-width:clamp(220px,30vw,460px)}.or-word{letter-spacing:-.04em;color:var(--ink);transform-origin:50% 100%;transition:transform .34s var(--ease), opacity .34s var(--ease);animation:or-word-in 1s var(--ease) both;will-change:transform,opacity;font-size:clamp(52px,9vw,132px);font-weight:700;line-height:.9}@keyframes or-word-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.or-word.flipping{opacity:0;transform:rotateX(90deg)translateY(-6px)}.or-word[data-role=student]{color:var(--blue)}.or-word[data-role=parent]{color:var(--taupe)}.or-word[data-role=tutor]{color:var(--orange)}.or-skip{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);opacity:0;pointer-events:none;font-size:12px;animation:.6s 2.6s forwards or-skip-in;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}@keyframes or-skip-in{to{opacity:.65}}.or-cols{z-index:10;opacity:0;visibility:hidden;transition:opacity .4s var(--ease);display:flex;position:absolute;inset:0}.or-cols.is-live{opacity:1;visibility:visible}.or-col{border:0;border-right:1px solid var(--line);min-width:0;font-family:var(--font);text-align:left;cursor:pointer;color:var(--ink);transition:flex-grow .62s var(--ease), background-color .2s ease-out;flex-direction:column;flex:1 1 0;justify-content:flex-end;gap:12px;padding:clamp(26px,4.5vh,56px) clamp(26px,3vw,54px);display:flex;position:relative;overflow:hidden}.or-col[data-p=student]{--accent:var(--blue);background:radial-gradient(62% 30% at 22% 5%, #2563eb21, transparent 72%), linear-gradient(180deg,#eef3fe,var(--c-student))}.or-col[data-p=parent]{--accent:var(--taupe);background:radial-gradient(62% 30% at 22% 5%, #96856b29, transparent 72%), linear-gradient(180deg,#f6f0e6,var(--c-parent))}.or-col[data-p=tutor]{--accent:var(--orange);background:radial-gradient(62% 30% at 22% 5%, #e87b3526, transparent 72%), linear-gradient(180deg,#fdf2e8,var(--c-tutor));border-right:0}.or-col:hover,.or-col:focus-visible{background-color:#ffffff38;outline:none}.or-col:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.or-col:hover .or-enter,.or-col:focus-visible .or-enter{color:var(--accent);gap:14px}.or-flow{z-index:1;pointer-events:none;opacity:0;filter:blur(3px);will-change:opacity;transition:opacity .9s .15s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 3%,#000 17% 66%,#0000 90%);mask-image:linear-gradient(#0000 3%,#000 17% 66%,#0000 90%)}.or-cols.is-live .or-flow{opacity:1}.or-phrase{z-index:4;opacity:0;transition:opacity .85s var(--ease) .25s, transform .85s var(--settle) .25s;position:absolute;top:clamp(78px,15vh,150px);left:clamp(26px,3vw,54px);right:clamp(26px,3vw,54px);transform:translateY(18px)}.or-cols.is-live .or-phrase{opacity:1;transform:none}.or-belt-mini{gap:8px;margin-bottom:20px;display:flex}.or-belt-mini i{background:var(--accent);opacity:.85;border-radius:50%;width:7px;height:7px}.or-belt-mini i:nth-child(2){width:9px;height:9px;margin-top:-1px}.or-quote{letter-spacing:-.02em;color:var(--ink);text-wrap:balance;max-width:16ch;margin:0;font-size:clamp(26px,2.7vw,42px);font-weight:400;line-height:1.16}.or-sign{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-top:18px;font-size:12px;font-weight:600;display:inline-block}.or-textblock{z-index:5;flex-direction:column;gap:12px;display:flex;position:relative}.or-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);opacity:.82;font-size:12px;font-weight:700}.or-title{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(30px,3vw,46px);font-weight:700;line-height:1.02}.or-pitch{color:var(--ink-soft);max-width:30ch;margin:0;font-size:clamp(15px,1.05vw,17px);line-height:1.5}.or-enter{color:var(--ink);align-items:center;gap:8px;margin-top:6px;font-size:14px;font-weight:600;transition:gap .15s ease-out,color .15s ease-out;display:inline-flex}.or-enter svg{width:16px;height:16px}.or-cols.is-selected .or-col:not(.chosen){opacity:0;pointer-events:none;border-right:0;flex-grow:0;padding:0}.or-cols.is-selected .or-col.chosen{flex-grow:3}.or-cols.is-selected .or-col.chosen .or-phrase{top:clamp(88px,16vh,180px)}.or-cols.is-selected .or-col.chosen .or-phrase .or-quote{max-width:18ch;font-size:clamp(34px,3.6vw,58px)}.or-cols.is-selected .or-col.chosen .or-title{font-size:clamp(40px,4.6vw,80px)}.or-cols.is-selected .or-col.chosen .or-pitch{max-width:42ch;font-size:clamp(17px,1.3vw,21px)}.or-cols.is-selected .or-col.chosen .or-enter{display:none}.or-login{border-left:1px solid var(--line);min-width:0;transition:flex-grow .62s var(--ease), padding .62s var(--ease);background:#fffdfa;flex-direction:column;flex:0 0 0;justify-content:center;padding:0;display:flex;overflow:hidden}.or-cols.is-selected .or-login{flex-grow:1;padding:clamp(32px,5vw,60px) clamp(28px,3vw,46px)}.or-login-inner{opacity:0;text-align:center;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:340px;margin:0 auto;transition:opacity .4s .25s;display:flex}.or-cols.is-selected .or-login-inner{opacity:1}.or-login-brand{align-items:center;gap:9px;margin-bottom:2px;display:flex}.or-login-brand svg{width:22px;height:auto}.or-login-brand span{letter-spacing:-.02em;font-size:17px;font-weight:700}.or-welcome{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(25px,2.2vw,31px);font-weight:700;line-height:1.12}.or-welcome b{color:var(--login-accent,var(--blue));text-transform:capitalize}.or-sub{color:var(--ink-soft);max-width:30ch;margin:0;font-size:15px;line-height:1.5}.or-gbtn{background:var(--blue);color:#fff;width:100%;font-family:var(--font);cursor:pointer;border:0;border-radius:12px;margin-top:2px;padding:15px 18px;font-size:15.5px;font-weight:700;transition:transform .15s ease-out,box-shadow .15s ease-out,filter .15s ease-out}.or-gbtn:hover{filter:brightness(1.03);transform:translateY(-1px);box-shadow:0 8px 22px #2563eb47}.or-gbtn:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.or-dev{border-top:1px dashed #1c191729;flex-direction:column;align-items:center;gap:11px;width:100%;margin-top:6px;padding-top:20px;display:flex}.or-dev-label{color:var(--ink-soft);font-size:12.5px}.or-dev-row{gap:8px;width:100%;display:flex}.or-dev-input{border:1px solid var(--line);min-width:0;font-family:var(--font);color:var(--ink);background:#fff;border-radius:9px;flex:1;padding:10px 12px;font-size:13.5px}.or-dev-input:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.or-dev-btn{font-family:var(--font);color:var(--ink);cursor:pointer;background:#fff;border:1px solid #1c191733;border-radius:9px;flex:none;padding:10px 14px;font-size:13.5px;font-weight:600;transition:background .15s ease-out,border-color .15s ease-out}.or-dev-btn:hover{background:#f3f0eb;border-color:#1c191752}.or-dev-btn:disabled{opacity:.55;cursor:default}.or-back{cursor:pointer;font-family:var(--font);color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:6px;margin-top:8px;font-size:13px;font-weight:600;transition:color .15s ease-out;display:inline-flex}.or-back:hover{color:var(--ink)}.or-back svg{width:14px;height:14px}.or-err{color:#c0392b;min-height:1em;margin:2px 0 0;font-size:13px}@media (width<=820px){.or-phrase{display:none}.or-cols{flex-direction:column}.or-col{border-right:0;border-bottom:1px solid var(--line);justify-content:center}.or-cols.is-selected .or-col.chosen{flex-grow:4}.or-cols.is-selected .or-login{border-left:0;border-top:1px solid var(--line);flex-grow:3}}@media (prefers-reduced-motion:reduce){.or-splash:before,.or-mark,.or-word{animation:none}.or-word{transition:none}.or-col{transition:flex-grow .3s,background-color .15s}}.dash{flex-direction:column;gap:22px;max-width:1040px;display:flex}.dash-head{flex-direction:column;gap:2px;display:flex}.dash-hello{color:var(--ink-muted);margin:0;font-size:14px;font-weight:600}.dash-title{font-family:var(--font-display);color:var(--ink);font-size:38px;font-weight:700;line-height:1.05}.dash-stats{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.dash-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);align-items:center;gap:16px;padding:20px 22px;display:flex}.dash-burst{width:52px;height:52px;color:var(--ink);clip-path:polygon(50% 0%,60% 12%,75% 6%,78% 23%,94% 25%,86% 40%,100% 50%,86% 60%,94% 75%,78% 77%,75% 94%,60% 88%,50% 100%,40% 88%,25% 94%,22% 77%,6% 75%,14% 60%,0% 50%,14% 40%,6% 25%,22% 23%,25% 6%,40% 12%);flex:none;place-items:center;display:grid}.dash-burst--lilac{background:var(--lilac)}.dash-burst--yellow{background:var(--yellow)}.dash-burst--pink{background:#f6c0cb}.dash-stat-body{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-stat-num{font-family:var(--font-display);color:var(--ink);font-size:30px;font-weight:700;line-height:1}.dash-stat-label{color:var(--ink-muted);font-size:13px;font-weight:500}.dash-list{background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;gap:12px;padding:18px;display:flex}.dash-muted{color:var(--ink-muted);margin:6px 4px;font-size:14px}.dash-error{color:#c0362c;margin:6px 4px;font-size:14px}.dash-lesson{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color .12s,box-shadow .12s;overflow:hidden}.dash-lesson:hover{border-color:var(--primary);box-shadow:var(--shadow-card)}.dash-lesson--open{border-color:var(--primary)}.dash-lesson-row{align-items:center;gap:12px;padding:6px 14px 6px 6px;display:flex}.dash-lesson-main{text-align:left;border-radius:var(--r-md);background:0 0;border:0;flex:auto;align-items:center;gap:12px;min-width:0;padding:12px 10px;transition:background .12s;display:flex}.dash-lesson-main:hover{background:var(--surface-sunk)}.dash-chevron{background:var(--surface-sunk);width:30px;height:30px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;transition:transform .15s,background .12s,color .12s;display:grid}.dash-lesson-main:hover .dash-chevron{background:var(--primary-soft);color:var(--primary)}.dash-chevron--open{transform:rotate(180deg)}.dash-lesson-text{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-lesson-name{font-family:var(--font-display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.dash-lesson-meta{color:var(--ink-muted);font-size:12px;font-weight:500}.dash-lesson-cue{color:var(--primary);font-weight:600}.dash-continue{background:var(--yellow);color:var(--ink);border-radius:var(--r-pill);border:0;flex:none;align-items:center;gap:7px;padding:10px 16px;font-size:14px;font-weight:600;transition:background .12s,transform .12s;display:inline-flex}.dash-continue:hover:not(:disabled){background:var(--yellow-hover);transform:translate(1px)}.dash-continue:disabled{opacity:.45;cursor:not-allowed}.dash-sublist{border-top:1px solid var(--border);flex-direction:column;gap:14px;padding:4px 16px 16px 40px;display:flex}.dash-section{flex-direction:column;gap:2px;display:flex}.dash-section-name{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin:8px 0 4px;font-size:12px;font-weight:700}.dash-slide{border-radius:var(--r-md);text-align:left;color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;transition:background .12s,color .12s;display:flex}.dash-slide:hover{background:var(--primary-soft);color:var(--ink)}.dash-slide-dot{background:var(--ink-muted);border-radius:50%;flex:none;width:7px;height:7px}.dash-pace-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);width:100%;box-shadow:var(--shadow-card);cursor:pointer;align-items:center;gap:14px;margin:0 0 22px;padding:16px 18px;transition:transform .12s,box-shadow .12s;display:flex}.dash-pace-card:hover{box-shadow:var(--shadow-rail);transform:translateY(-1px)}.dash-pace-icon{background:var(--sage-soft);width:42px;height:42px;color:var(--ink);border-radius:12px;flex:none;place-items:center;display:grid}.dash-pace-text{flex-direction:column;flex:auto;gap:2px;display:flex}.dash-pace-title{font-family:var(--font-display);color:var(--ink);font-weight:600}.dash-pace-sub{color:var(--ink-muted);font-size:.85rem}.dash-pace-arrow{color:var(--ink-muted);flex:none}@media (width<=720px){.dash-stats{grid-template-columns:1fr}.dash-lesson-row{flex-wrap:wrap}}.revision-shell-host{--primary:#6366f1;--primary-hover:#4f46e5;--primary-soft:#e0e7ff;--primary-softer:#eef2ff;--primary-text:#4338ca;--accent:#f59e0b;--accent-hover:#d97706;--accent-soft:#fef3c7;--accent-text:#92400e;--page-bg:#f5f2ed;--surface:#fff;--surface-raised:#fff;--border:#d6d3d1;--border-light:#e7e5e4;--border-glass:#ffffffb3;--text-primary:#1c1917;--text-secondary:#44403c;--text-muted:#78716c;--hook:#0891b2;--hook-soft:#0891b21f;--hook-text:#155e75;--surprise:#7c3aed;--surprise-soft:#7c3aed12;--surprise-text:#5b21b6;--success:#22c55e;--success-soft:#dcfce7;--success-text:#15803d;--error:#ef4444;--error-soft:#fee2e2;--error-text:#dc2626;--warning:#f59e0b;--warning-soft:#fef3c7;--warning-text:#92400e;--font-main:"Outfit", "Inter", -apple-system, system-ui, sans-serif;--font-display:"DM Serif Display", Georgia, serif;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:24px;--radius-pill:100px;--shadow-card:0 2px 8px -2px #0000000f;--shadow-hover:0 8px 24px -8px #0000001a;--shadow-glow:0 8px 32px -8px #6366f159;--shadow-glow-success:0 8px 24px -8px #22c55e4d;--shadow-glow-error:0 8px 24px -8px #ef44444d;--shadow-glow-accent:0 8px 24px -8px #f59e0b4d;--transition:.2s ease-out;--transition-bounce:.2s cubic-bezier(.34, 1.4, .64, 1);--hover-lift:translateY(-2px)}.revision-shell-host *,.revision-shell-host :before,.revision-shell-host :after{box-sizing:border-box;margin:0;padding:0}.revision-shell-host{font-family:var(--font-main);color:var(--text-primary);background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;font-size:14px;line-height:1.55}.revision-shell-host h1,.revision-shell-host h2,.revision-shell-host h3{font-family:var(--font-main);font-weight:700;line-height:1.2}.revision-shell-host a{color:var(--primary);text-decoration:none}.revision-shell-host .card{-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);transition:transform var(--transition), box-shadow var(--transition);background:#fff9;padding:20px}.revision-shell-host .card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-hover)}.revision-shell-host .btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;border-radius:var(--radius-pill);font-family:var(--font-main);cursor:pointer;box-shadow:var(--shadow-glow);transition:all var(--transition-bounce);border:none;justify-content:center;align-items:center;gap:8px;padding:14px 28px;font-size:15px;font-weight:600;display:inline-flex}.revision-shell-host .btn-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 12px 40px -8px #6366f180}.revision-shell-host .btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.revision-shell-host .btn-secondary{color:var(--primary-hover);border:2px solid var(--primary-soft);border-radius:var(--radius-pill);font-family:var(--font-main);cursor:pointer;transition:all var(--transition-bounce);background:#fff;justify-content:center;align-items:center;gap:8px;padding:14px 28px;font-size:15px;font-weight:600;display:inline-flex}.revision-shell-host .btn-secondary:hover{border-color:var(--primary);background:var(--primary-softer);transform:translateY(-1px)}.revision-shell-host .text-input,.revision-shell-host .text-area{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);font-family:var(--font-main);color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition);outline:none;padding:11px 14px;font-size:14px}.revision-shell-host .text-input:focus,.revision-shell-host .text-area:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.revision-shell-host .text-input::placeholder,.revision-shell-host .text-area::placeholder{color:var(--text-muted)}.revision-shell-host .chip{border-radius:var(--radius-pill);border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:#fff;padding:8px 16px;font-size:13px;font-weight:600}.revision-shell-host .chip:hover{color:var(--primary-hover);border-color:#a5b4fc}.revision-shell-host .chip.active{border-color:var(--primary);color:#fff;background:var(--primary);box-shadow:var(--shadow-glow)}.revision-shell-host .badge{border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.02em;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.revision-shell-host .badge-primary{background:var(--primary-soft);color:var(--primary-text)}.revision-shell-host .badge-success{background:var(--success-soft);color:var(--success-text)}.revision-shell-host .badge-error{background:var(--error-soft);color:var(--error-text)}.revision-shell-host .badge-warning{background:var(--warning-soft);color:var(--warning-text)}.revision-shell-host .badge-muted{background:var(--border-light);color:var(--text-secondary)}.revision-shell-host .feedback{border-radius:var(--radius-lg);padding:18px 20px;animation:.35s ease-out slideUp}.revision-shell-host .feedback.correct{border:1.5px solid var(--success);background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.revision-shell-host .feedback.incorrect{border:1.5px solid var(--error);background:linear-gradient(135deg,#fee2e2,#fecaca)}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.revision-shell-host .option{border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);background:#fff;padding:16px 18px}.revision-shell-host .option:hover{background:var(--primary-softer);border-color:#a5b4fc;transform:translate(4px)}.revision-shell-host .option.selected{border-color:var(--primary);background:var(--primary-softer);box-shadow:var(--shadow-glow)}.revision-shell-host .option.correct{border-color:var(--success);background:var(--success-soft);box-shadow:var(--shadow-glow-success)}.revision-shell-host .option.incorrect{border-color:var(--error);background:var(--error-soft);box-shadow:var(--shadow-glow-error)}.revision-shell-host .progress-track{background:var(--border-light);border-radius:var(--radius-pill);height:6px;overflow:hidden}.revision-shell-host .progress-fill{background:linear-gradient(90deg, #818cf8, var(--primary));border-radius:var(--radius-pill);height:100%;transition:width .6s ease-out}.revision-shell-host .page{max-width:480px;margin:0 auto;padding:24px 16px}@media (width>=640px){.revision-shell-host .page{max-width:800px;padding:28px 20px}}@media (width>=1024px){.revision-shell-host .page{max-width:1080px;padding:32px 24px}}.revision-shell-host .revision-page{--page-bg:#f8f7f4;--surface:#ffffffa6;--surface-raised:#fff;--border:#d6d3d1;--border-light:#e7e5e4;--border-glass:#fffc;--text-primary:#1c1917;--text-secondary:#44403c;--text-muted:#78716c;--primary:#6366f1;--primary-hover:#4f46e5;--primary-soft:#e0e7ff;--primary-softer:#eef2ff;--primary-text:#4338ca;--accent:#f59e0b;--accent-soft:#fef3c7;--accent-text:#92400e;--hook:#0891b2;--hook-soft:#0891b21f;--hook-text:#155e75;--surprise:#7c3aed;--surprise-soft:#7c3aed12;--surprise-text:#5b21b6;--success:#22c55e;--success-soft:#dcfce7;--success-text:#15803d;--error:#ef4444;--error-soft:#fee2e2;--error-text:#dc2626;--shadow-card:0 2px 8px -2px #0000000f;--shadow-hover:0 8px 24px -8px #0000001a;--shadow-glow:0 8px 32px -8px #6366f159}.revision-shell-host .revision-page[data-rev-theme=dark]{--page-bg:#0e0e0e;--surface:#1a1a1a;--surface-raised:#262626;--border:#333;--border-light:#3a3a3a;--border-glass:#ffffff14;--text-primary:#e4e4e4;--text-secondary:#a8a8a8;--text-muted:#707070;--primary:#818cf8;--primary-hover:#6366f1;--primary-soft:#818cf838;--primary-softer:#818cf81a;--primary-text:#a5b4fc;--accent:#fbbf24;--accent-soft:#fbbf241f;--accent-text:#fcd34d;--hook:#22d3ee;--hook-soft:#22d3ee29;--hook-text:#67e8f9;--surprise:#a78bfa;--surprise-soft:#a78bfa1f;--surprise-text:#c4b5fd;--success:#4ade80;--success-soft:#4ade801a;--success-text:#6ee7a0;--error:#f87171;--error-soft:#f871711a;--error-text:#fca5a5;--shadow-card:0 2px 8px #00000080;--shadow-hover:0 4px 14px #0009;--shadow-glow:0 8px 32px -8px #818cf84d}.revision-shell-host[data-rev-theme=dark]{--page-bg:#0e0e0e;--surface:#1a1a1a;--surface-raised:#262626;--border:#333;--border-light:#3a3a3a;--border-glass:#ffffff14;--text-primary:#e4e4e4;--text-secondary:#a8a8a8;--text-muted:#707070;--primary:#818cf8;--primary-hover:#6366f1;--primary-soft:#818cf838;--primary-softer:#818cf81a;--primary-text:#a5b4fc;--accent:#fbbf24;--accent-hover:#d97706;--accent-soft:#fbbf241f;--accent-text:#fcd34d;--hook:#22d3ee;--hook-soft:#22d3ee29;--hook-text:#67e8f9;--surprise:#a78bfa;--surprise-soft:#a78bfa1f;--surprise-text:#c4b5fd;--success:#4ade80;--success-soft:#4ade801a;--success-text:#6ee7a0;--error:#f87171;--error-soft:#f871711a;--error-text:#fca5a5;--warning:#fbbf24;--warning-soft:#fbbf241f;--warning-text:#fcd34d;--shadow-card:0 2px 8px #00000080;--shadow-hover:0 4px 14px #0009;--shadow-glow:0 8px 32px -8px #818cf84d}.revision-shell-host .revision-page{background:var(--page-bg);min-height:100vh;display:flex}.revision-shell-host .revision-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.revision-shell-host .rev-sidebar{background:var(--page-bg);border-right:1px solid var(--border-light);z-index:100;flex-direction:column;flex-shrink:0;transition:width .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-collapsed{cursor:pointer;align-items:center;width:56px;padding:16px 0}.revision-shell-host .rev-sidebar-collapsed:hover{background:var(--surface)}.revision-shell-host .rev-sidebar-collapsed-inner{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.revision-shell-host .rev-sidebar-pill{border-radius:var(--radius-md);width:32px;height:32px;font-size:12px;font-weight:700;font-family:var(--font-main);color:var(--text-muted);background:var(--border-light);justify-content:center;align-items:center;transition:all .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-pill.active{background:var(--primary);color:#fff}.revision-shell-host .rev-sidebar-expand-hint{color:var(--text-muted);opacity:.5;margin-top:12px}.revision-shell-host .rev-sidebar-expanded{z-index:210;background:var(--surface);width:min(240px,80vw);height:100vh;position:fixed;top:0;left:0;overflow-y:auto;box-shadow:4px 0 16px #00000014}.revision-shell-host .rev-sidebar-scrim{z-index:205;background:#0003;position:fixed;inset:0}.revision-shell-host .rev-sidebar-header{border-bottom:1px solid var(--border-light);flex-shrink:0;padding:16px 16px 12px}.revision-shell-host .rev-sidebar-header-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.revision-shell-host .rev-sidebar-home{color:var(--primary);font-family:var(--font-main);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;font-weight:600;display:flex}.revision-shell-host .rev-sidebar-collapse-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:0 0;justify-content:center;align-items:center;transition:border-color .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-collapse-btn:hover{border-color:var(--primary);color:var(--primary)}.revision-shell-host .rev-sidebar-back-chapters{background:var(--primary-softer);border:1px solid var(--primary-soft);border-radius:var(--radius-md);width:100%;color:var(--primary);font-family:var(--font-main);cursor:pointer;align-items:center;gap:6px;margin-bottom:10px;padding:8px 10px;font-size:12px;font-weight:600;transition:all .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-back-chapters:hover{background:var(--primary-soft);border-color:var(--primary)}.revision-shell-host .rev-sidebar-module-info{flex-direction:column;gap:2px;display:flex}.revision-shell-host .rev-sidebar-chapter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.revision-shell-host .rev-sidebar-module-title{color:var(--text-primary);margin:0;font-size:14px;font-weight:700;line-height:1.3}.revision-shell-host .rev-sidebar-chapters-title{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:18px;font-weight:400}.revision-shell-host .rev-sidebar-chapter-list{flex-direction:column;flex:1;gap:6px;padding:8px 12px 24px;display:flex;overflow-y:auto}.revision-shell-host .rev-sidebar-chapter-card{background:var(--page-bg);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;width:100%;font-family:var(--font-main);text-align:left;align-items:center;gap:10px;padding:12px;transition:all .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-chapter-card:hover{background:var(--primary-softer);border-color:var(--primary-soft);transform:translate(2px)}.revision-shell-host .rev-sidebar-chapter-card.active{background:var(--primary-softer);border-color:var(--primary)}.revision-shell-host .rev-sidebar-chapter-card.locked{opacity:.6}.revision-shell-host .rev-sidebar-chapter-card.locked:hover{opacity:.8;background:var(--page-bg);border-color:var(--border);transform:none}.revision-shell-host .rev-sidebar-chapter-card .rev-sidebar-chapter-num{border-radius:var(--radius-sm);background:var(--border-light);width:28px;height:28px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.revision-shell-host .rev-sidebar-chapter-card.active .rev-sidebar-chapter-num{background:var(--primary-soft);color:var(--primary-text)}.revision-shell-host .rev-sidebar-chapter-card.locked .rev-sidebar-chapter-num{background:var(--border-light);color:var(--text-muted)}.revision-shell-host .rev-sidebar-chapter-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.revision-shell-host .rev-sidebar-chapter-name{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.3}.revision-shell-host .rev-sidebar-chapter-card.active .rev-sidebar-chapter-name{color:var(--primary)}.revision-shell-host .rev-sidebar-chapter-meta{color:var(--text-muted);font-size:11px;font-weight:500}.revision-shell-host .rev-sidebar-chapter-meta.locked{font-style:italic}.revision-shell-host .rev-sidebar-chapter-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .15s ease-out}.revision-shell-host .rev-sidebar-chapter-card:hover .rev-sidebar-chapter-arrow{color:var(--primary);transform:translate(2px)}.revision-shell-host .rev-sidebar-tree{flex:1;padding:8px 0 24px}.revision-shell-host .rev-sidebar-section{margin-bottom:2px}.revision-shell-host .rev-sidebar-section-btn{cursor:pointer;width:100%;font-family:var(--font-main);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:10px 16px;transition:background .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-section-btn:hover{background:var(--border-light)}.revision-shell-host .rev-sidebar-section-num{border-radius:var(--radius-sm);background:var(--border-light);width:20px;height:20px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.revision-shell-host .rev-sidebar-section-btn.expanded .rev-sidebar-section-num{background:var(--primary-soft);color:var(--primary-text)}.revision-shell-host .rev-sidebar-section-title{color:var(--text-secondary);flex:1;min-width:0;font-size:12px;font-weight:700;line-height:1.3}.revision-shell-host .rev-sidebar-section-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s ease-out}.revision-shell-host .rev-sidebar-section-btn.expanded .rev-sidebar-section-chevron{transform:rotate(180deg)}.revision-shell-host .rev-sidebar-topics{padding:2px 0 4px}.revision-shell-host .rev-sidebar-topic{cursor:pointer;width:100%;font-family:var(--font-main);text-align:left;background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:8px;padding:7px 16px 7px 44px;transition:all .15s ease-out;display:flex}.revision-shell-host .rev-sidebar-topic:hover{background:var(--border-light)}.revision-shell-host .rev-sidebar-topic.active{border-left-color:var(--primary);background:var(--primary-softer)}.revision-shell-host .rev-sidebar-topic.flat{padding-left:16px}.revision-shell-host .rev-sidebar-topic-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:5px;height:5px}.revision-shell-host .rev-sidebar-topic-dot.active{background:var(--primary)}.revision-shell-host .rev-sidebar-topic-title{color:var(--text-secondary);flex:1;min-width:0;font-size:12px;font-weight:500;line-height:1.4}.revision-shell-host .rev-sidebar-topic.active .rev-sidebar-topic-title{color:var(--primary);font-weight:600}.revision-shell-host .revision-top-bar{background:var(--surface-raised);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:6px 20px;display:flex;position:relative}.revision-shell-host .revision-hamburger{border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;width:30px;height:30px;color:var(--text-primary);font-size:14px;font-family:var(--font-main);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:none}.revision-shell-host .revision-top-bar-info{flex-shrink:1;min-width:0}.revision-shell-host .revision-top-bar-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.revision-shell-host .revision-top-bar-subtitle{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:11px;overflow:hidden}.revision-shell-host .revision-slide-nav{align-items:center;gap:16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.revision-shell-host .revision-nav-btn{border-radius:var(--radius-sm);font-size:12px;font-weight:600;font-family:var(--font-main);cursor:pointer;white-space:nowrap;border:none;padding:5px 14px;transition:all .15s ease-out}.revision-shell-host .revision-nav-prev{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.revision-shell-host .revision-nav-prev:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text-primary)}.revision-shell-host .revision-nav-prev:disabled{opacity:.35;cursor:default}.revision-shell-host .revision-nav-next{background:var(--primary);color:#fff}.revision-shell-host .revision-nav-next:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #2563eb40}.revision-shell-host .revision-nav-next:disabled{opacity:.5;cursor:default}.revision-shell-host .revision-nav-dots{align-items:center;gap:5px;display:flex}.revision-shell-host .revision-nav-dot{background:var(--border);border-radius:50%;width:7px;height:7px}.revision-shell-host .revision-nav-dot.active{background:var(--primary);border-radius:4px;width:20px}.revision-shell-host .revision-slide{flex:1;grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vmin,22px) clamp(14px,2vmin,28px);width:90%;min-height:100%;margin:0 auto;padding:20px 0;transition:opacity .15s ease-out,transform .15s ease-out;display:grid}.revision-shell-host .revision-slide:has(.revision-questions-wrap){grid-template-rows:auto auto auto}.revision-shell-host .revision-slide .slide-left,.revision-shell-host .revision-slide .slide-right,.revision-shell-host .revision-slide .revision-questions-wrap{min-height:0}.revision-shell-host .revision-slide.slide-visible{opacity:1;transform:translateY(0)}.revision-shell-host .revision-slide.slide-hidden{opacity:0;transform:translateY(6px)}.revision-shell-host .revision-slide:has(.slide-title){padding-top:6px}.revision-shell-host .revision-slide .slide-title{text-align:center;grid-area:1/1/auto/-1;padding:0 0 6px}.revision-shell-host .revision-slide:has(.slide-title) .slide-left{grid-row:2/4}.revision-shell-host .revision-slide:has(.slide-title) .slide-right{grid-row:2}.revision-shell-host .revision-slide:has(.slide-title) .revision-questions-wrap{grid-row:3}.revision-shell-host .revision-slide .slide-left{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;grid-area:1/1/3;gap:clamp(12px,1.6vmin,20px);padding:clamp(20px,2.6vmin,32px);display:flex}.revision-shell-host .revision-slide .slide-right{background:var(--surface);border:1px solid var(--border);border-radius:14px;grid-area:1/2;padding:clamp(20px,2.6vmin,32px)}.revision-shell-host .revision-slide .slide-right canvas,.revision-shell-host .revision-slide .slide-right img,.revision-shell-host .revision-slide .slide-right svg,.revision-shell-host .revision-slide .slide-right video{object-fit:contain;display:block;width:100%!important;height:auto!important;max-height:clamp(200px,34vh,360px)!important}.revision-shell-host .revision-questions-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-area:2/2;padding:18px 22px 22px}.revision-shell-host .revision-interest-wrap{grid-column:1/-1;justify-content:center;align-items:flex-start;padding-top:40px;display:flex}@media (width<=768px){.revision-shell-host .rev-sidebar-collapsed{display:none}.revision-shell-host .revision-hamburger{display:flex}.revision-shell-host .revision-top-bar{padding:6px 12px}:is(.revision-shell-host .revision-slide,.revision-shell-host .revision-slide:has(.revision-questions-wrap)){grid-template-rows:none;grid-template-columns:1fr;gap:16px;width:100%;height:auto;padding:12px;overflow:visible}.revision-shell-host .revision-slide .slide-left,.revision-shell-host .revision-slide .slide-right,.revision-shell-host .revision-slide .revision-questions-wrap{overflow:visible}.revision-shell-host .revision-slide .slide-title{grid-area:auto/1}:is(.revision-shell-host .revision-slide:has(.slide-title) .slide-left,.revision-shell-host .revision-slide:has(.slide-title) .slide-right,.revision-shell-host .revision-slide:has(.slide-title) .revision-questions-wrap){grid-row:auto}.revision-shell-host .revision-slide .slide-left,.revision-shell-host .revision-slide .slide-right{border:1px solid var(--border);border-radius:12px;grid-row:auto;padding:16px}.revision-shell-host .revision-questions-wrap{border-radius:12px;grid-column:1;padding:16px}.revision-shell-host .revision-slide-nav{gap:8px}.revision-shell-host .revision-nav-btn{padding:6px 12px;font-size:12px}.revision-shell-host .revision-nav-dots{display:none}}.revision-shell-host .revision-question-card{background:var(--surface-raised);border:1px solid var(--border);border-top:2px solid var(--primary-soft);border-radius:var(--radius-xl);padding:20px}.revision-shell-host .revision-question-card+.revision-question-card{margin-top:16px}.revision-shell-host .revision-question-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.revision-shell-host .revision-question-label{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:11px;font-weight:700}.revision-shell-host .revision-question-count{color:var(--text-muted);font-size:11px;font-weight:600}.revision-shell-host .revision-question-text{color:var(--text-primary);margin-bottom:12px;font-size:14px;font-weight:500;line-height:1.55}.revision-shell-host .revision-question-options{flex-direction:column;gap:7px;margin-bottom:10px;display:flex}.revision-shell-host .revision-question-option{background:var(--surface-raised);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-family:var(--font-main);color:var(--text-primary);text-align:left;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;line-height:1.45;transition:all .15s ease-out;display:flex}.revision-shell-host .revision-question-option:hover:not(.correct):not(.incorrect):not(:disabled),.revision-shell-host .revision-question-option.selected{border-color:var(--primary);background:var(--primary-softer)}.revision-shell-host .revision-question-option.correct{border-color:var(--success);background:var(--success-soft);cursor:default}.revision-shell-host .revision-question-option.incorrect{border-color:var(--error);background:var(--error-soft);cursor:default}.revision-shell-host .revision-question-option-letter{background:var(--border-light);width:22px;height:22px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:11px;font-weight:700;display:inline-flex}.revision-shell-host .revision-question-option.correct .revision-question-option-letter{background:var(--success);color:#fff}.revision-shell-host .revision-question-option.incorrect .revision-question-option-letter{background:var(--error);color:#fff}.revision-shell-host .revision-question-check-btn{border-radius:var(--radius-md);background:var(--primary);color:#fff;width:100%;font-size:13px;font-weight:700;font-family:var(--font-main);cursor:pointer;border:none;margin-top:4px;padding:9px 16px;transition:background .15s ease-out;display:block}.revision-shell-host .revision-question-check-btn:disabled{opacity:.6;cursor:default}.revision-shell-host .revision-question-explanation{background:var(--primary-softer);border:1px solid var(--primary-soft);border-radius:var(--radius-md);color:var(--primary-text);margin-top:12px;padding:12px 14px;font-size:13px;line-height:1.6}.revision-shell-host .revision-question-explanation-title{margin-bottom:4px;font-weight:700}.revision-shell-host .revision-question-completed-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--success-text);background:var(--success-soft);border:1px solid var(--success);border-radius:var(--radius-pill);padding:2px 8px;font-size:10px;font-weight:700;line-height:14px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@keyframes ctaEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes strikeThrough{0%{width:0}to{width:100%}}@keyframes cursorBlink{50%{opacity:0}}@keyframes dieShake{0%{transform:rotate(-7deg)scale(1.04)}to{transform:rotate(7deg)scale(.97)}}@keyframes dieLand{0%{transform:scale(1.18)}60%{transform:scale(.93)}to{transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.revision-shell-host .home-card-enter{animation:.4s ease-out both fadeInUp}.revision-shell-host .collapse-section{grid-template-rows:0fr;transition:grid-template-rows .35s ease-out;display:grid}.revision-shell-host .collapse-section.is-open{grid-template-rows:1fr}.revision-shell-host .collapse-section>.collapse-content{min-height:0;overflow:hidden}.revision-shell-host .collapse-section .collapse-fade{opacity:0;transition:opacity .3s ease-out}.revision-shell-host .collapse-section.is-open .collapse-fade{opacity:1;transition:opacity .28s ease-out 70ms}.revision-shell-host .chapter-morph{border-radius:var(--radius-xl);will-change:height;transition:height .42s cubic-bezier(.4,0,.2,1),border-color .3s ease-out,background-color .3s ease-out,box-shadow .3s ease-out;position:relative}.revision-shell-host .chapter-morph.morph-has-border{border:1.5px solid var(--primary);background:var(--primary-softer);box-shadow:var(--shadow-card);overflow:hidden}.revision-shell-host .chapter-morph.morph-no-border{box-shadow:none;background:0 0;border:1.5px solid #0000}.revision-shell-host .chapter-morph-layer{width:100%;transition:opacity .38s ease-out}.revision-shell-host .chapter-morph-layer.morph-visible{opacity:1}.revision-shell-host .chapter-morph-layer.morph-hidden{opacity:0}.revision-shell-host .chapter-morph-layer.morph-abs{position:absolute;top:0;left:0;right:0}.revision-shell-host .chapter-morph-layer.morph-measure{visibility:hidden;pointer-events:none;position:absolute;top:0;left:0;right:0}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.revision-shell-host .scale-in{animation:.2s ease-out both scaleIn}@keyframes questionEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(-14px)}65%{transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes gradeSettle{0%{transform:scale(1.3)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes thoughtPop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes notif-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.revision-shell-host .question-enter{animation:.35s cubic-bezier(.4,0,.2,1) both questionEnter}.revision-shell-host .page-title{color:var(--text-primary);margin-bottom:4px;font-size:24px;font-weight:700}.revision-shell-host .page-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:15px}.revision-shell-host .revision-page.voice-active~a[aria-label="Chat on WhatsApp"]{left:20px!important;right:auto!important}.revision-shell-host:has(.revision-page.voice-active) a[aria-label="Chat on WhatsApp"]{left:20px!important;right:auto!important}.revision-shell-host .revision-page.voice-active .rev-sidebar{display:none}.revision-shell-host .revision-page.voice-active .revision-slide{padding-left:16px;padding-right:16px}.revision-shell-host .revision-page.voice-active .revision-nav-btn{pointer-events:none;opacity:.3}.revision-shell-host .revision-page.voice-active .revision-main{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.revision-shell-host .revision-page.voice-active .voice-layout-row{flex:1;min-height:0;display:flex;overflow:hidden}.revision-shell-host .revision-page.voice-active .voice-layout-row .revision-slide{flex:1;min-width:0;overflow-y:auto}.revision-shell-host .voice-panel{border-left:2px solid var(--primary);background:var(--surface);flex-direction:column;flex-shrink:0;width:380px;height:100%;display:flex}.revision-shell-host .voice-panel-center{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.revision-shell-host .voice-panel-muted{color:var(--text-muted);margin:0;font-size:14px}.revision-shell-host .voice-panel-error{color:var(--error-text);margin:0;font-size:14px}.revision-shell-host .voice-panel-dismiss-btn{background:var(--surface-raised);border:1.5px solid var(--border);font-size:13px;font-weight:700;font-family:var(--font-main,Inter, sans-serif);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:8px 20px;transition:border-color .15s ease-out}.revision-shell-host .voice-panel-dismiss-btn:hover{border-color:var(--primary)}.revision-shell-host .voice-wb-section{flex-direction:column;flex-shrink:0;gap:8px;height:50%;padding:12px;display:flex}.revision-shell-host .voice-wb-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:0 4px;display:flex}.revision-shell-host .voice-wb-label{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);font-size:11px;font-weight:700}.revision-shell-host .voice-wb-nav{align-items:center;gap:6px;display:flex}.revision-shell-host .voice-wb-nav-btn{border:1px solid var(--border);background:var(--surface-raised);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:16px;font-weight:700;line-height:1;transition:border-color .15s ease-out;display:flex}.revision-shell-host .voice-wb-nav-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.revision-shell-host .voice-wb-nav-btn:disabled{opacity:.3;cursor:default}.revision-shell-host .voice-wb-nav-count{color:var(--text-muted);text-align:center;min-width:36px;font-size:11px;font-weight:600}.revision-shell-host .voice-wb-body{background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:10px;flex:1;position:relative;overflow:hidden}.revision-shell-host .voice-wb-body.voice-wb-empty{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.revision-shell-host .voice-wb-empty-icon{color:var(--text-muted);opacity:.4}.revision-shell-host .voice-wb-empty-text{color:var(--text-muted);margin:0;font-size:13px;font-style:italic}.revision-shell-host .voice-wb-card{flex-direction:column;justify-content:center;gap:8px;height:100%;padding:20px;animation:.2s ease-out wbCardIn;display:flex;overflow-y:auto}@keyframes wbCardIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.revision-shell-host .voice-wb-card.slide-prev{animation:.2s ease-out wbCardInPrev}@keyframes wbCardInPrev{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.revision-shell-host .voice-wb-card-title{color:var(--text-primary);text-align:center;margin:0;font-size:15px;font-weight:700}.revision-shell-host .voice-wb-card-latex{text-align:center;padding:8px 0;overflow-x:auto}.revision-shell-host .voice-wb-card-latex .katex{color:var(--primary-text);font-size:1.3em}.revision-shell-host .voice-wb-card-steps{counter-reset:wb-step;flex-direction:column;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.revision-shell-host .voice-wb-card-steps li{color:var(--text-primary);counter-increment:wb-step;padding-left:24px;font-size:13px;line-height:1.5;position:relative}.revision-shell-host .voice-wb-card-steps li:before{content:counter(wb-step) ".";color:var(--primary);font-size:13px;font-weight:700;position:absolute;left:0}.revision-shell-host .voice-wb-card-text{color:var(--text-primary);margin:0;font-size:13px;line-height:1.5}.revision-shell-host .voice-transcript-section{flex-direction:column;flex:1;gap:8px;min-height:0;padding:0 12px 12px;display:flex}.revision-shell-host .voice-transcript-header{background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:8px;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.revision-shell-host .voice-transcript-state{align-items:center;gap:6px;display:flex}.revision-shell-host .voice-transcript-body{background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:10px;flex-direction:column;flex:1;gap:8px;padding:14px;display:flex;overflow-y:auto}.revision-shell-host .voice-transcript-empty{color:var(--text-muted);align-self:center;margin:0;padding-top:20px;font-size:13px;font-style:italic}.revision-shell-host .voice-bubble{border-radius:12px;max-width:88%;padding:10px 14px;font-size:13px;line-height:1.5;animation:.15s ease-out bubbleIn}.revision-shell-host .voice-bubble.bot{background:var(--surface);color:var(--text-primary);border-bottom-left-radius:4px;align-self:flex-start}.revision-shell-host .voice-bubble.user{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}@keyframes bubbleIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.revision-shell-host .voice-wb-marker{color:var(--primary);background:var(--primary-softer);border:1px solid var(--primary-soft);border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:flex}.revision-shell-host .voice-wb-marker svg{flex-shrink:0}.revision-shell-host .voice-state-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.revision-shell-host .voice-state-dot.listening{background:var(--success);animation:2s ease-in-out infinite statePulse}.revision-shell-host .voice-state-dot.speaking{background:var(--primary);animation:1s ease-in-out infinite statePulse}.revision-shell-host .voice-state-dot.thinking{background:var(--warning);animation:.6s ease-in-out infinite statePulse}.revision-shell-host .voice-state-dot.disconnected{background:var(--text-muted)}@keyframes statePulse{0%,to{opacity:1}50%{opacity:.35}}.revision-shell-host .voice-state-label{color:var(--text-primary);font-size:13px;font-weight:600}.revision-shell-host .voice-controls{background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:8px;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.revision-shell-host .voice-controls-state{align-items:center;gap:6px;min-width:100px;display:flex}.revision-shell-host .voice-controls-buttons{align-items:center;gap:12px;display:flex}.revision-shell-host .voice-mic-btn{border:1.5px solid var(--border);background:var(--surface-raised);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:border-color .15s ease-out,background .15s ease-out;display:flex}.revision-shell-host .voice-mic-btn:hover{border-color:var(--primary)}.revision-shell-host .voice-mic-btn.muted{border-color:var(--error);background:var(--error-soft);color:var(--error-text)}.revision-shell-host .voice-end-btn{background:var(--error);color:#fff;font-size:13px;font-weight:700;font-family:var(--font-main,Inter, sans-serif);cursor:pointer;border:none;border-radius:20px;align-items:center;gap:6px;padding:8px 18px;transition:background .15s ease-out;display:flex}.revision-shell-host .voice-end-btn:hover{opacity:.9}.revision-shell-host .voice-coldstart{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:48px 24px;display:flex}.revision-shell-host .voice-coldstart-anim{width:80px;height:64px;position:relative}.revision-shell-host .voice-coldstart-board{background:var(--surface-raised);border:2px solid var(--border);border-radius:6px;width:80px;height:56px;position:relative;overflow:hidden}.revision-shell-host .voice-coldstart-chalk{background:var(--primary);transform-origin:0;border-radius:1px;height:2px;animation:2.4s ease-in-out infinite chalkDraw;position:absolute}.revision-shell-host .voice-coldstart-chalk.chalk-1{width:50px;animation-delay:0s;top:14px;left:10px}.revision-shell-host .voice-coldstart-chalk.chalk-2{width:38px;animation-delay:.4s;top:26px;left:10px}.revision-shell-host .voice-coldstart-chalk.chalk-3{width:55px;animation-delay:.8s;top:38px;left:10px}@keyframes chalkDraw{0%{opacity:0;transform:scaleX(0)}10%{opacity:.6}40%{opacity:.6;transform:scaleX(1)}70%{opacity:0;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.revision-shell-host .voice-coldstart-dust{background:var(--primary);opacity:0;border-radius:50%;width:4px;height:4px;animation:2.4s ease-out infinite dustFloat;position:absolute}.revision-shell-host .voice-coldstart-dust.dust-1{animation-delay:.2s;bottom:12px;right:8px}.revision-shell-host .voice-coldstart-dust.dust-2{animation-delay:.8s;bottom:16px;right:20px}.revision-shell-host .voice-coldstart-dust.dust-3{animation-delay:1.4s;bottom:10px;right:32px}@keyframes dustFloat{0%{opacity:0;transform:translateY(0)}20%{opacity:.5}to{opacity:0;transform:translateY(-18px)}}.revision-shell-host .voice-coldstart-line{color:var(--text-secondary);margin:0;font-size:15px;animation:2.2s ease-in-out infinite fadeRotate}@keyframes fadeRotate{0%,to{opacity:.6}50%{opacity:1}}.revision-shell-host .voice-coldstart-error{color:var(--error-text);margin:0;font-size:15px}.revision-shell-host .voice-coldstart-dismiss{background:var(--surface-raised);border:1.5px solid var(--border);font-size:13px;font-weight:700;font-family:var(--font-main,Inter, sans-serif);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:8px 20px}.revision-shell-host .voice-mode-picker{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:32px 24px;display:flex}.revision-shell-host .voice-mode-picker-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.revision-shell-host .voice-mode-picker-cards{flex-direction:column;gap:10px;width:100%;max-width:320px;display:flex}.revision-shell-host .voice-mode-card{background:var(--surface-raised);border:1.5px solid var(--border);cursor:pointer;text-align:left;font-family:var(--font-main,Inter, sans-serif);border-radius:12px;flex-direction:column;gap:4px;padding:14px 18px;transition:border-color .15s ease-out;display:flex}.revision-shell-host .voice-mode-card:hover{border-color:var(--primary)}.revision-shell-host .voice-mode-card-label{color:var(--text-primary);font-size:15px;font-weight:700}.revision-shell-host .voice-mode-card-desc{color:var(--text-secondary);font-size:13px;line-height:1.4}.revision-shell-host .voice-mode-cancel{color:var(--text-muted);font-size:13px;font-weight:600;font-family:var(--font-main,Inter, sans-serif);cursor:pointer;background:0 0;border:none;padding:4px 8px}.revision-shell-host .voice-mode-cancel:hover{color:var(--text-secondary)}.revision-shell-host .voice-mode-card.disabled{opacity:.5;cursor:not-allowed}.revision-shell-host .voice-mode-card.disabled:hover{box-shadow:none;transform:none}.revision-shell-host .voice-mode-card-note{color:var(--text-muted);margin-top:4px;font-size:.7rem;display:block}.revision-shell-host .voice-postcall{flex-direction:column;height:100%;padding:20px 16px 16px;display:flex}.revision-shell-host .voice-postcall-scroll{flex:1;min-height:0;overflow-y:auto}.revision-shell-host .voice-postcall-score-section{justify-content:center;align-items:baseline;gap:4px;margin-bottom:4px;display:flex}.revision-shell-host .voice-postcall-score{font-size:3rem;font-weight:700;line-height:1}.revision-shell-host .voice-postcall-score.low{color:var(--error)}.revision-shell-host .voice-postcall-score.mid{color:var(--warning)}.revision-shell-host .voice-postcall-score.high{color:var(--success)}.revision-shell-host .voice-postcall-score-label{color:var(--text-muted);font-size:1.2rem;font-weight:500}.revision-shell-host .voice-postcall-explanation{text-align:center;color:var(--text-secondary);margin:0 0 16px;font-size:.85rem}.revision-shell-host .voice-postcall-list{border-radius:var(--radius-md);margin-bottom:12px;padding:10px 12px}.revision-shell-host .voice-postcall-list.understood{background:var(--success-soft)}.revision-shell-host .voice-postcall-list.gaps{background:var(--warning-soft)}.revision-shell-host .voice-postcall-list h4{margin:0 0 6px;font-size:.8rem;font-weight:600}.revision-shell-host .voice-postcall-list.understood h4{color:var(--success-text)}.revision-shell-host .voice-postcall-list.gaps h4{color:var(--warning-text)}.revision-shell-host .voice-postcall-list ul{margin:0;padding-left:18px}.revision-shell-host .voice-postcall-list li{color:var(--text-primary);font-size:.82rem;line-height:1.5}.revision-shell-host .voice-postcall-summary{color:var(--text-secondary);margin:8px 0 0;font-size:.82rem;line-height:1.5}.revision-shell-host .voice-postcall-done{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;margin-top:12px;padding:10px 0;font-size:.85rem;font-weight:600;transition:background .15s ease-out}.revision-shell-host .voice-postcall-done:hover{background:var(--primary-hover)}.revision-shell-host .voice-polling-spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;margin:0 auto 12px;animation:.8s linear infinite voice-spin}@keyframes voice-spin{to{transform:rotate(360deg)}}@media (width<=768px){.revision-shell-host .voice-panel{border-left:none;border-top:2px solid var(--primary);width:100%;height:55vh}.revision-shell-host .revision-page.voice-active .voice-layout-row{flex-direction:column}.revision-shell-host .revision-page.voice-active .voice-layout-row .revision-slide{flex:1;max-height:45vh}}.revision-shell-host .voice-topbar-group{align-items:center;gap:8px;display:flex}.revision-shell-host .voice-topbar-btn{background:var(--primary);cursor:pointer;color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;transition:background .15s ease-out;display:flex}.revision-shell-host .voice-history-link{border:1px solid var(--border);font-size:12px;font-weight:600;font-family:var(--font-main);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:3px 10px;transition:border-color .15s ease-out,color .15s ease-out}.revision-shell-host .voice-history-link:hover{border-color:var(--primary);color:var(--primary)}.revision-shell-host .voice-history-dropdown{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:320px;max-height:360px;display:flex;position:absolute;top:52px;right:16px;overflow:hidden;box-shadow:0 4px 16px #0000001a}.revision-shell-host .voice-history-dropdown-header{border-bottom:1px solid var(--border);color:var(--text-primary);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.revision-shell-host .voice-history-dropdown-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.revision-shell-host .voice-history-dropdown-list{flex:1;overflow-y:auto}.revision-shell-host .voice-history-item{border:none;border-bottom:1px solid var(--border-light,var(--border));cursor:pointer;width:100%;font-family:var(--font-main);color:var(--text-primary);text-align:left;background:0 0;align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:background .15s ease-out;display:flex}.revision-shell-host .voice-history-item:last-child{border-bottom:none}.revision-shell-host .voice-history-item:hover{background:var(--primary-soft,#2563eb0f)}.revision-shell-host .voice-history-mode-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.revision-shell-host .voice-history-mode-badge.overview{background:var(--primary-soft,#e0ecff);color:var(--primary)}.revision-shell-host .voice-history-mode-badge.test{color:#92400e;background:#fef3c7}.revision-shell-host .voice-history-mode-badge.doubt{color:#166534;background:#f0fdf4}.revision-shell-host .voice-history-item-date{color:var(--text-secondary);flex:1;font-size:12px}.revision-shell-host .voice-history-item-duration{color:var(--text-muted);flex-shrink:0;font-size:12px}.revision-shell-host .voice-history-item-score{flex-shrink:0;font-size:12px;font-weight:700}.revision-shell-host .voice-history-item-score.high{color:var(--success,#16a34a)}.revision-shell-host .voice-history-item-score.mid{color:var(--warning,#d97706)}.revision-shell-host .voice-history-item-score.low{color:var(--error,#dc2626)}.revision-shell-host .voice-review{flex-direction:column;height:100%;display:flex;overflow:hidden}.revision-shell-host .voice-review-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 14px}.revision-shell-host .voice-review-back{font-family:var(--font-main);color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:6px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.revision-shell-host .voice-review-back:hover{text-decoration:underline}.revision-shell-host .voice-review-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.revision-shell-host .voice-review-mode-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.revision-shell-host .voice-review-mode-badge.overview{background:var(--primary-soft,#e0ecff);color:var(--primary)}.revision-shell-host .voice-review-mode-badge.test{color:#92400e;background:#fef3c7}.revision-shell-host .voice-review-mode-badge.doubt{color:#166534;background:#f0fdf4}.revision-shell-host .voice-review-date,.revision-shell-host .voice-review-duration{color:var(--text-muted)}.revision-shell-host .voice-review-scroll{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;overflow-y:auto}.revision-shell-host .voice-review-score-card{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.revision-shell-host .voice-review-score{font-size:36px;font-weight:800;line-height:1}.revision-shell-host .voice-review-score.high{color:var(--success,#16a34a)}.revision-shell-host .voice-review-score.mid{color:var(--warning,#d97706)}.revision-shell-host .voice-review-score.low{color:var(--error,#dc2626)}.revision-shell-host .voice-review-score-label{color:var(--text-muted);font-size:18px;font-weight:600}.revision-shell-host .voice-review-score-explanation{width:100%;color:var(--text-secondary);margin:4px 0 0;font-size:13px;line-height:1.5}.revision-shell-host .voice-review-analysis{flex-direction:column;gap:10px;display:flex}.revision-shell-host .voice-review-summary{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.revision-shell-host .voice-review-list h4{text-transform:uppercase;letter-spacing:.3px;margin:0 0 4px;font-size:12px;font-weight:700}.revision-shell-host .voice-review-list ul{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.revision-shell-host .voice-review-list.understood{color:var(--success-text,#166534)}.revision-shell-host .voice-review-list.understood h4{color:var(--success,#16a34a)}.revision-shell-host .voice-review-list.gaps{color:var(--error-text,#991b1b)}.revision-shell-host .voice-review-list.gaps h4{color:var(--error,#dc2626)}.revision-shell-host .voice-review-list.covered{color:var(--text-primary)}.revision-shell-host .voice-review-list.covered h4{color:var(--primary)}.revision-shell-host .voice-review-list.questions{color:var(--text-primary)}.revision-shell-host .voice-review-list.questions h4{color:var(--text-secondary)}.revision-shell-host .voice-review-audio{flex-direction:column;gap:6px;display:flex}.revision-shell-host .voice-review-audio h4{text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);margin:0;font-size:12px;font-weight:700}.revision-shell-host .voice-review-audio audio{border-radius:6px;width:100%;height:36px}.revision-shell-host .voice-review-transcript{flex-direction:column;gap:6px;display:flex}.revision-shell-host .voice-review-transcript h4{text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);margin:0;font-size:12px;font-weight:700}.revision-shell-host .voice-review-transcript-body{flex-direction:column;gap:6px;display:flex}.revision-shell-host .voice-review-wb-card{background:var(--surface-raised,#fff);border:1px solid var(--border);border-radius:8px;margin:2px 0;padding:10px 12px}.revision-shell-host .voice-review-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:13px}@media (width<=768px){.revision-shell-host .voice-history-dropdown{width:auto;left:8px;right:8px}}.nadi-iframe{--nadi-bg:#fff;--nadi-fg:#1a1a1a;--nadi-muted:#6b7280;--nadi-border:#e5e7eb;--nadi-accent:#2563eb;--nadi-accent-fg:#fff;--nadi-surface:#f9fafb;--nadi-font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--nadi-font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--nadi-text-sm:.875rem;--nadi-text-base:1rem;--nadi-text-lg:1.125rem;--nadi-text-xl:1.5rem;--nadi-space-1:.25rem;--nadi-space-2:.5rem;--nadi-space-3:.75rem;--nadi-space-4:1rem;--nadi-space-6:1.5rem;--nadi-space-8:2rem;--nadi-radius:8px;--nadi-radius-lg:12px;--nadi-shadow-sm:0 1px 2px #0000000d;--nadi-shadow:0 4px 12px #00000014;--nadi-z-chrome:10;--nadi-z-overlay:20;font-family:var(--nadi-font);color:var(--nadi-fg);background:var(--nadi-bg)}@media (prefers-color-scheme:dark){.nadi-iframe{--nadi-bg:#0f172a;--nadi-fg:#f1f5f9;--nadi-muted:#94a3b8;--nadi-border:#1e293b;--nadi-surface:#1e293b}}.nadi-iframe{border-radius:var(--nadi-radius-lg);flex-direction:column;width:100%;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.nadi-iframe[data-fullscreen=true]{z-index:var(--nadi-z-overlay);border-radius:0;position:fixed;inset:0}.nadi-iframe__chrome{justify-content:space-between;align-items:center;gap:var(--nadi-space-3);padding:var(--nadi-space-2) var(--nadi-space-3);background:var(--nadi-surface);border-bottom:1px solid var(--nadi-border);z-index:var(--nadi-z-chrome);flex:none;display:flex}.nadi-iframe__title{font-size:var(--nadi-text-sm);color:var(--nadi-fg);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.nadi-iframe__controls{align-items:center;gap:var(--nadi-space-1);display:flex}.nadi-iframe__btn{appearance:none;border-radius:var(--nadi-radius);color:var(--nadi-fg);cursor:pointer;padding:var(--nadi-space-1) var(--nadi-space-2);font:inherit;font-size:var(--nadi-text-sm);background:0 0;border:1px solid #0000;line-height:1}.nadi-iframe__btn:hover{background:var(--nadi-border)}.nadi-iframe__btn:focus-visible{outline:2px solid var(--nadi-accent);outline-offset:1px}.nadi-iframe__btn[aria-pressed=true]{background:var(--nadi-accent);color:var(--nadi-accent-fg)}.nadi-iframe__viewport{flex:auto;min-height:0;position:relative;overflow:auto}.nadi-iframe__zoom{transform-origin:0 0;width:100%;height:100%;transition:transform .15s ease-out}.nadi-iframe__error{padding:var(--nadi-space-6);color:var(--nadi-fg);background:var(--nadi-surface);border:1px solid var(--nadi-border);border-radius:var(--nadi-radius);margin:var(--nadi-space-4);font-family:var(--nadi-font-mono);font-size:var(--nadi-text-sm);white-space:pre-wrap}.nadi-iframe .nadi-stage{min-height:100%;padding:var(--nadi-space-8);gap:var(--nadi-space-4);font-size:var(--nadi-text-base);flex-direction:column;line-height:1.6;display:flex}.nadi-iframe .nadi-stage__blocks{gap:var(--nadi-space-4);flex-direction:column;display:flex}.nadi-iframe .nadi-block{margin:0}.nadi-iframe .nadi-heading{font-weight:700;line-height:1.25}.nadi-iframe .nadi-heading--1{font-size:var(--nadi-text-xl)}.nadi-iframe .nadi-heading--2{font-size:var(--nadi-text-lg)}.nadi-iframe .nadi-heading--3{font-size:var(--nadi-text-base);color:var(--nadi-muted);text-transform:uppercase;letter-spacing:.04em}.nadi-iframe .nadi-prose{color:var(--nadi-fg)}.nadi-iframe .nadi-math-block{margin:var(--nadi-space-2) 0;text-align:center}.nadi-iframe .nadi-math-display{font-size:var(--nadi-text-lg);overflow-x:auto}.nadi-iframe .nadi-math-caption{margin-top:var(--nadi-space-1);font-size:var(--nadi-text-sm);color:var(--nadi-muted)}.nadi-iframe .nadi-math-inline math{font-size:1.05em}.nadi-iframe .nadi-image{align-items:center;gap:var(--nadi-space-2);flex-direction:column;display:flex}.nadi-iframe .nadi-image__img{border-radius:var(--nadi-radius);max-width:100%;height:auto}.nadi-iframe .nadi-image__caption{font-size:var(--nadi-text-sm);color:var(--nadi-muted)}.nadi-iframe .nadi-callout{border:1px solid var(--nadi-border);border-radius:var(--nadi-radius);padding:var(--nadi-space-3) var(--nadi-space-4);background:var(--nadi-surface);border-left-width:4px}.nadi-iframe .nadi-callout__title{margin-bottom:var(--nadi-space-1);font-weight:600}.nadi-iframe .nadi-callout--note{border-left-color:var(--nadi-accent)}.nadi-iframe .nadi-callout--tip{border-left-color:#16a34a}.nadi-iframe .nadi-callout--warning{border-left-color:#d97706}.nadi-iframe .nadi-callout--key{border-left-color:#9333ea}.nadi-iframe .nadi-list{padding-left:var(--nadi-space-6);gap:var(--nadi-space-1);flex-direction:column;display:flex}.nadi-iframe .nadi-list--bullet{list-style:outside}.nadi-iframe .nadi-list--number{list-style:decimal}.nadi-iframe .nadi-step-reveal{border:1px solid var(--nadi-border);border-radius:var(--nadi-radius);padding:var(--nadi-space-4);background:var(--nadi-surface);gap:var(--nadi-space-2);flex-direction:column;display:flex}.nadi-iframe .nadi-step-reveal__steps{padding-left:var(--nadi-space-6);gap:var(--nadi-space-2);flex-direction:column;margin:0;display:flex}.nadi-iframe .nadi-step-reveal__label{font-weight:600}.nadi-iframe .nadi-step-reveal__done{font-size:var(--nadi-text-sm);color:var(--nadi-muted)}.nadi-iframe .nadi-stage__footer{padding-top:var(--nadi-space-4);align-items:center;gap:var(--nadi-space-3);margin-top:auto;display:flex}.nadi-iframe .nadi-stage__hint{font-size:var(--nadi-text-sm);color:var(--nadi-muted)}.nadi-iframe .nadi-btn{appearance:none;font:inherit;cursor:pointer;padding:var(--nadi-space-2) var(--nadi-space-4);border:1px solid var(--nadi-border);border-radius:var(--nadi-radius);background:var(--nadi-bg);color:var(--nadi-fg)}.nadi-iframe .nadi-btn:hover{background:var(--nadi-surface)}.nadi-iframe .nadi-btn--primary{background:var(--nadi-accent);color:var(--nadi-accent-fg);border-color:var(--nadi-accent)}.nadi-iframe .nadi-btn--primary:hover{filter:brightness(1.05);background:var(--nadi-accent)}.nadi-iframe .nadi-btn:disabled{opacity:.5;cursor:not-allowed}.qc-root{--qc-correct:#2f9e44;--qc-correct-bg:#ebfbee;--qc-incorrect:#e03131;--qc-incorrect-bg:#fff5f5}.qc-loading{color:var(--ink-muted);font-size:13px}.qc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:24px}.qc-progress{gap:4px;margin-bottom:18px;display:flex}.qc-seg{border-radius:var(--r-pill);background:var(--border);flex:1;height:5px;transition:background .2s}.qc-seg--current{background:var(--primary)}.qc-seg--correct{background:var(--qc-correct)}.qc-seg--incorrect{background:var(--qc-incorrect)}.qc-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.qc-label{font-family:var(--font-display);color:var(--primary);font-size:14px;font-weight:600}.qc-count{color:var(--ink-muted);font-size:12px}.qc-question{color:var(--ink);margin:0 0 18px;font-size:17px;font-weight:600;line-height:1.45}.qc-options{flex-direction:column;gap:10px;display:flex}.qc-option{text-align:left;border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--page-bg);width:100%;color:var(--ink-soft);cursor:pointer;align-items:center;gap:12px;padding:13px 16px;font-size:15px;transition:all .15s;display:flex}.qc-option:hover:not(:disabled){border-color:var(--primary-soft);color:var(--ink)}.qc-option:disabled{cursor:default}.qc-option-letter{border-radius:var(--r-pill);background:var(--surface);border:1.5px solid var(--border);width:26px;height:26px;color:var(--ink-soft);flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.qc-option.is-selected{border-color:var(--primary);background:var(--primary-soft);color:var(--ink)}.qc-option.is-selected .qc-option-letter{border-color:var(--primary);color:var(--primary)}.qc-option.is-correct{border-color:var(--qc-correct);background:var(--qc-correct-bg);color:var(--ink)}.qc-option.is-correct .qc-option-letter{border-color:var(--qc-correct);background:var(--qc-correct);color:#fff}.qc-option.is-incorrect{border-color:var(--qc-incorrect);background:var(--qc-incorrect-bg);color:var(--ink)}.qc-option.is-incorrect .qc-option-letter{border-color:var(--qc-incorrect);background:var(--qc-incorrect);color:#fff}.qc-check-btn{color:#fff;background:var(--primary);border:1.5px solid var(--primary);border-radius:var(--r-md);cursor:pointer;margin-top:18px;padding:11px 22px;font-size:14px;font-weight:600;transition:background .15s}.qc-check-btn:hover:not(:disabled){background:var(--primary-hover)}.qc-check-btn:disabled{opacity:.6;cursor:default}.qc-feedback{border-radius:var(--r-md);border:1px solid var(--border);margin-top:18px;padding:16px}.qc-feedback--correct{background:var(--qc-correct-bg);border-color:var(--qc-correct)}.qc-feedback--incorrect{background:var(--qc-incorrect-bg);border-color:var(--qc-incorrect)}.qc-feedback-title{color:var(--ink);margin:0 0 6px;font-size:15px;font-weight:700}.qc-feedback-text{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.qc-feedback-foot{justify-content:flex-end;margin-top:14px;display:flex}.qc-next-btn{color:#fff;background:var(--primary);border:1.5px solid var(--primary);border-radius:var(--r-md);cursor:pointer;padding:9px 20px;font-size:13px;font-weight:600}.qc-next-btn:hover{background:var(--primary-hover)}.qc-done{color:var(--qc-correct);margin:0;font-size:13px;font-weight:600}.voice-fab{z-index:60;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:10px;display:flex;position:fixed;bottom:12px;left:88px}.voice-avatar{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;line-height:0;display:block;position:relative}.voice-avatar-img{z-index:1;transform-origin:bottom;filter:drop-shadow(0 6px 10px #15162b29);width:138px;height:auto;transition:filter .15s ease-out;animation:2.8s ease-in-out infinite voice-bob;position:relative}.voice-avatar:hover .voice-avatar-img{filter:drop-shadow(0 9px 14px #15162b3d)}.voice-avatar-shadow{z-index:0;pointer-events:none;background:radial-gradient(#15162b2e,#15162b00 70%);width:96px;height:14px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.voice-avatar-dot{z-index:2;background:var(--ink-muted);opacity:0;border:2px solid #fff;border-radius:50%;width:12px;height:12px;transition:opacity .15s ease-out,background .15s ease-out;position:absolute;top:4px;right:10px}.voice-avatar-dot.is-live{opacity:1;background:#34c759;animation:1.6s ease-in-out infinite voice-dot-pulse}.voice-avatar-dot.is-live.is-speaking{background:var(--primary)}.voice-fab[data-phase=connecting] .voice-avatar-img{animation:1.1s ease-in-out infinite voice-bob}.voice-fab[data-phase=live][data-speaking="0"] .voice-avatar-img{animation:2.2s ease-in-out infinite voice-listen}.voice-fab[data-speaking="1"] .voice-avatar-img{animation:.52s ease-in-out infinite voice-talk}@keyframes voice-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes voice-listen{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-4px)scale(1.015)}}@keyframes voice-talk{0%{transform:translateY(0)scaleX(1)scaleY(1)}35%{transform:translateY(-7px)scaleX(.97)scaleY(1.06)}70%{transform:translateY(1px)scaleX(1.05)scaleY(.95)}to{transform:translateY(0)scaleX(1)scaleY(1)}}@keyframes voice-dot-pulse{0%,to{box-shadow:0 0 #34c75973}50%{box-shadow:0 0 0 5px #34c75900}}.voice-hub{display:none}.voice-hub.is-open{flex-direction:column;align-items:flex-start;gap:8px;animation:.16s ease-out voice-pop;display:flex}.voice-hub-caption{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink-soft);background:#ffffffe6;border-radius:999px;align-self:flex-start;padding:3px 11px;font-size:12px;font-weight:600;box-shadow:0 4px 12px #15162b1a}.voice-hub-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.voice-btn{cursor:pointer;border:1px solid #0000;border-radius:999px;flex:none;padding:8px 15px;font-size:13px;font-weight:600;transition:transform .15s ease-out,background .15s ease-out,border-color .15s ease-out;box-shadow:0 4px 14px #15162b24}.voice-btn:hover:not(:disabled){transform:translateY(-1px)}.voice-btn:disabled{opacity:.55;cursor:default}.voice-btn--start{background:var(--primary);color:#fff}.voice-btn--start:hover:not(:disabled){background:var(--primary-hover)}.voice-btn--end{color:var(--ink-soft);border-color:var(--border);background:#fff}.voice-btn--end:hover:not(:disabled){border-color:var(--ink-muted)}.voice-btn--ghost{color:var(--ink-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffeb}.voice-btn--ghost:hover:not(:disabled){color:var(--ink);background:#fff}.voice-signal{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffdb;border-radius:999px;align-items:center;gap:4px;height:34px;padding:0 14px;animation:.16s ease-out voice-pop;display:flex;box-shadow:0 6px 16px #15162b1f}.voice-signal span{background:var(--ink-muted);opacity:.5;border-radius:2px;width:4px;height:6px}.voice-signal.is-live span{opacity:1;background:#34c759;animation:1.2s ease-in-out infinite voice-bar}.voice-signal.is-speaking span{background:var(--primary);animation-duration:.78s}.voice-signal span:nth-child(2){animation-delay:.11s}.voice-signal span:nth-child(3){animation-delay:.22s}.voice-signal span:nth-child(4){animation-delay:.33s}.voice-signal span:nth-child(5){animation-delay:.44s}@keyframes voice-bar{0%,to{height:6px}50%{height:22px}}.voice-error{background:var(--error-soft,#fdecec);color:var(--error-text,#b3261e);border-radius:8px;margin:10px 0 0;padding:8px 12px;font-size:12.5px}.voice-drawer{border:1px solid var(--border);background:#fff;border-radius:14px;flex-direction:column;width:340px;max-height:min(56vh,440px);animation:.16s ease-out voice-pop;display:none;overflow:hidden;box-shadow:0 12px 34px #15162b29}.voice-drawer.is-open{display:flex}.voice-drawer-head{border-bottom:1px solid var(--border);background:#fafafb;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;display:flex}.voice-drawer-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.voice-drawer-close{width:26px;height:26px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:none;place-items:center;transition:background .15s ease-out,color .15s ease-out;display:grid}.voice-drawer-close:hover{color:var(--ink-soft);background:#eceef3}.voice-transcript{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.voice-transcript-hint{color:var(--ink-muted);margin:6px 0;font-size:13px;font-style:italic}.voice-turn{border-radius:12px;max-width:86%;padding:8px 12px;font-size:13.5px;line-height:1.5}.voice-turn-role{letter-spacing:.03em;text-transform:uppercase;opacity:.7;margin-bottom:2px;font-size:10.5px;font-weight:700;display:block}.voice-turn-text{margin:0}.voice-turn--student{background:var(--primary-soft);color:var(--ink);border-bottom-right-radius:4px;align-self:flex-end}.voice-turn--tutor{color:var(--ink);background:#f4f4f8;border-bottom-left-radius:4px;align-self:flex-start}.voice-turn.is-partial{opacity:.72}@keyframes voice-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.voice-avatar-img,.voice-fab[data-phase] .voice-avatar-img,.voice-avatar-dot.is-live,.voice-signal span,.voice-hub,.voice-drawer{animation:none!important}}.revision-head{margin-bottom:22px}.revision-eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px;font-size:13px;font-weight:600}.revision-head h1{color:var(--ink);font-size:34px;font-weight:700}.subtopic-nav{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.subtopic-chip{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:var(--r-pill);padding:9px 16px;font-size:14px;font-weight:500;transition:all .15s}.subtopic-chip:hover{border-color:var(--primary-soft);color:var(--ink)}.subtopic-chip.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.revision-stage{position:relative}.version-badge{z-index:2;background:var(--yellow);color:var(--ink);font-family:var(--font-display);border-radius:var(--r-pill);padding:3px 10px;font-size:12px;font-weight:600;position:absolute;top:-12px;right:4px}.revision-muted{color:var(--ink-muted);font-size:15px}.revision-error{color:#b42318;font-size:14px}.rev-layout{grid-template-columns:288px minmax(0,1fr);align-items:start;gap:24px;display:grid}.rev-layout.is-collapsed{grid-template-columns:52px minmax(0,1fr)}.rev-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);align-self:start;max-height:calc(100vh - 40px);position:sticky;top:16px;overflow:auto}.is-collapsed .rev-nav{padding:8px}.rev-nav-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 12px;display:flex}.rev-nav-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:16px;font-weight:600;line-height:1.3}.rev-nav-collapse,.rev-nav-expand{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--page-bg);width:30px;height:30px;color:var(--ink-soft);cursor:pointer;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.rev-nav-collapse:hover,.rev-nav-expand:hover{border-color:var(--primary-soft);color:var(--primary)}.rev-nav-expand{width:100%;height:36px}.rev-nav-tree{padding:8px}.rev-nav-section+.rev-nav-section{margin-top:2px}.rev-nav-section-btn{text-align:left;border-radius:var(--r-md);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 10px;transition:background .15s;display:flex}.rev-nav-section-btn:hover{background:var(--page-bg)}.rev-nav-section-num{border-radius:var(--r-pill);background:var(--sage-soft);width:22px;height:22px;color:var(--ink);flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.rev-nav-section-title{color:var(--ink-soft);flex:1;font-size:14px;font-weight:600;line-height:1.35}.rev-nav-section-btn.is-open .rev-nav-section-title{color:var(--ink)}.rev-nav-chevron{color:var(--ink-muted);flex-shrink:0;place-items:center;display:grid}.rev-nav-slides{padding:2px 0 6px 16px}.rev-nav-slide{text-align:left;border-radius:var(--r-md);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:7px 10px;transition:background .15s;display:flex}.rev-nav-slide:hover{background:var(--page-bg)}.rev-nav-slide.is-active{background:var(--primary-soft)}.rev-nav-dot{border-radius:var(--r-pill);background:var(--border);flex-shrink:0;width:7px;height:7px}.rev-nav-dot.is-active{background:var(--primary)}.rev-nav-slide-title{color:var(--ink-muted);font-size:13px;line-height:1.4}.rev-nav-slide.is-active .rev-nav-slide-title{color:var(--ink);font-weight:600}.rev-main{min-width:0}.rev-topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.rev-topbar-eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 4px;font-size:12px;font-weight:600}.rev-topbar-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:28px;font-weight:700;line-height:1.2}.rev-topbar-nav{align-items:center;gap:12px;display:flex}.rev-topbar-count{color:var(--ink-muted);text-align:center;min-width:56px;font-size:13px;font-weight:600}.rev-nav-btn{color:var(--ink-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.rev-nav-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.rev-nav-btn:disabled{opacity:.45;cursor:default}.prac-wrap{width:100%;max-width:760px;margin:0 auto}.prac-head{margin-bottom:22px}.prac-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin:0 0 6px;font-size:13px;font-weight:600}.prac-title{color:var(--ink);margin:0 0 8px;font-size:30px}.prac-sub{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.5}.prac-muted{color:var(--ink-muted);font-size:15px}.prac-note{background:var(--primary-soft);color:var(--primary-hover);border-radius:var(--r-md);margin:0 0 14px;padding:12px 14px;font-size:14px}.prac-error{color:#b42318;margin:12px 0 0;font-size:14px}.prac-picklist{margin-top:8px}.prac-browse-title{color:var(--ink-soft);margin:0 0 12px;font-size:16px;font-weight:600}.prac-pick-ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.prac-pick{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;flex-direction:column;gap:3px;width:100%;padding:14px 16px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.prac-pick:hover:not(:disabled){border-color:var(--primary);box-shadow:var(--shadow-card);transform:translateY(-1px)}.prac-pick:disabled{opacity:.6;cursor:default}.prac-pick-name{color:var(--ink);font-size:15px;font-weight:600}.prac-pick-topic{color:var(--ink-muted);font-size:13px}.prac-stage{margin-top:4px}.prac-progress{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.prac-link{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:14px;font-weight:500}.prac-link:hover{color:var(--primary)}.prac-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.prac-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:24px}.prac-qhead{margin-bottom:12px}.prac-axis{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--r-pill);background:var(--surface-sunk);color:var(--ink-soft);padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.prac-axis--conceptual{background:var(--lilac);color:#4b3b7a}.prac-axis--procedural{background:var(--sage-soft);color:#3c5a2e}.prac-axis--both{background:var(--periwinkle);color:#34386b}.prac-stem{color:var(--ink);margin:0 0 18px;font-size:18px;font-weight:500;line-height:1.5}.prac-figure{border:1px solid var(--border);border-radius:var(--r-md);background:#fff;width:auto;max-width:100%;height:auto;max-height:360px;margin:0 auto 18px;display:block}.prac-answer{border:1px solid var(--border);border-radius:var(--r-md);width:100%;font-family:var(--font-body);color:var(--ink);resize:vertical;background:var(--surface-sunk);padding:12px 14px;font-size:15px;line-height:1.5}.prac-answer:focus{border-color:var(--primary);background:var(--surface);outline:none}.prac-confidence{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 4px;display:flex}.prac-conf-label{color:var(--ink-soft);font-size:14px;font-weight:500}.prac-conf-scale{gap:6px;display:flex}.prac-conf-dot{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--ink-soft);cursor:pointer;font-size:14px;font-weight:600;transition:all .15s}.prac-conf-dot:hover{border-color:var(--primary)}.prac-conf-dot.is-on{background:var(--primary);border-color:var(--primary);color:#fff}.prac-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.prac-btn{border-radius:var(--r-pill);font-family:var(--font-body);cursor:pointer;border:1px solid #0000;padding:10px 20px;font-size:15px;font-weight:600;transition:background .15s,transform .15s,opacity .15s}.prac-btn:disabled{opacity:.5;cursor:default}.prac-btn-primary{background:var(--primary);color:#fff}.prac-btn-primary:hover:not(:disabled){background:var(--primary-hover)}.prac-btn-ghost{border-color:var(--border);color:var(--ink-soft);background:0 0}.prac-btn-ghost:hover:not(:disabled){border-color:var(--ink-muted)}.prac-reveal{margin-top:8px}.prac-reveal-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px;font-size:12px;font-weight:600}.prac-yours{background:var(--surface-sunk);border-radius:var(--r-md);margin-bottom:14px;padding:14px 16px}.prac-yours-text{color:var(--ink-soft);white-space:pre-wrap;margin:0;font-size:15px;line-height:1.5}.prac-model{background:var(--sage-soft);border-radius:var(--r-md);padding:16px 18px}.prac-model-text{color:var(--ink);white-space:pre-wrap;margin:0;font-size:15px;line-height:1.55}.prac-explain{color:var(--ink-soft);margin:12px 0 0;font-size:14px;font-style:italic;line-height:1.5}.prac-done{text-align:center}.prac-done-title{color:var(--ink);margin:0 0 10px;font-size:24px}.prac-done .prac-actions{justify-content:center;margin-top:18px}.prac-assigned{background:var(--primary-soft);border:1px solid var(--primary);border-radius:var(--r-card);margin-bottom:28px;padding:18px 20px}.prac-assigned-eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--primary-hover);margin:0 0 4px;font-size:12px;font-weight:700}.prac-assigned-title{color:var(--ink);align-items:center;gap:10px;margin:0 0 14px;font-size:20px;display:flex}.prac-assigned-count{color:#fff;background:var(--primary);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:13px;font-weight:700;display:inline-flex}.prac-assigned-list{flex-direction:column;gap:12px;display:flex}.prac-assigned-card{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--r-md);background:var(--surface);padding:14px 16px}.prac-assigned-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.prac-assigned-mode{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-pill);color:var(--primary-hover);background:var(--primary-soft);padding:2px 8px;font-size:12px;font-weight:600}.prac-assigned-mode--blocked{color:var(--ink-soft);background:var(--sage-soft)}.prac-assigned-scope{color:var(--ink);font-size:14px;font-weight:600}.prac-assigned-progress{color:var(--ink-muted);margin-left:auto;font-size:13px}.prac-assigned-sts{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.prac-assigned-st{border:1px solid var(--border);border-radius:var(--r-md);background:var(--page-bg);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:transform .15s ease-out,border-color .15s ease-out;display:flex}.prac-assigned-st:hover:not(:disabled){border-color:var(--primary);transform:translateY(-1px)}.prac-assigned-st:disabled{opacity:.6;cursor:default}.prac-assigned-st.is-done{opacity:.7}.prac-assigned-st-name{color:var(--ink);flex-direction:column;gap:2px;font-size:15px;font-weight:600;display:flex}.prac-assigned-st-crumb{color:var(--ink-muted);font-size:12px;font-weight:500}.prac-assigned-st-status{color:var(--primary);white-space:nowrap;font-size:13px;font-weight:600}.prac-assigned-st.is-done .prac-assigned-st-status{color:var(--sage)}.ins{flex-direction:column;gap:22px;max-width:920px;display:flex}.ins-head{flex-direction:column;gap:2px;display:flex}.ins-hello{color:var(--ink-muted);margin:0;font-size:14px;font-weight:600}.ins-title{font-family:var(--font-display);color:var(--ink);font-size:38px;font-weight:700;line-height:1.05}.ins-metrics{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.ins-metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);flex-direction:column;gap:3px;padding:16px 20px;display:flex}.ins-metric-num{font-family:var(--font-display);color:var(--ink);font-size:26px;font-weight:700;line-height:1}.ins-metric-label{color:var(--ink-muted);font-size:13px;font-weight:500}.ins-list{flex-direction:column;gap:12px;display:flex}.ins-section-title{font-family:var(--font-display);color:var(--ink);margin:4px 0;font-size:18px;font-weight:700}.ins-muted{color:var(--ink-muted);margin:4px 0;font-size:14px;line-height:1.55}.ins-error{color:#c0362c;margin:4px 0;font-size:14px}.ins-empty{background:var(--surface-sunk);border:1px dashed var(--border);border-radius:var(--r-card);padding:26px 24px}.ins-empty-title{font-family:var(--font-display);color:var(--ink);margin:0 0 6px;font-size:17px;font-weight:700}.ins-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.ins-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ins-card-titles{min-width:0}.ins-card-crumb{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 2px;font-size:12px;font-weight:600}.ins-card-name{font-family:var(--font-display);color:var(--ink);margin:0;font-size:18px;font-weight:600}.ins-chips{flex-wrap:wrap;gap:10px;display:flex}.ins-chip{border-radius:var(--r-pill);border:1px solid #0000;align-items:baseline;gap:8px;padding:7px 14px;display:inline-flex}.ins-chip-axis{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:700}.ins-chip-level{color:var(--ink);font-size:14px;font-weight:700}.ins-chip--getting-started{background:var(--surface-sunk);border-color:var(--border)}.ins-chip--practising{background:color-mix(in srgb, var(--yellow) 38%, white);border-color:color-mix(in srgb, var(--yellow) 60%, white)}.ins-chip--strong{background:color-mix(in srgb, var(--periwinkle) 45%, white);border-color:color-mix(in srgb, var(--periwinkle) 70%, white)}.ins-chip--mastered{background:var(--sage-soft);border-color:var(--sage)}.ins-card-desc{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.6}.ins-trend{border-radius:var(--r-pill);white-space:nowrap;flex:none;padding:5px 12px;font-size:12px;font-weight:700}.ins-trend--up{background:var(--sage-soft);color:#356b1f}.ins-trend--down{color:#c0362c;background:#fbe3e0}.ins-trend--flat{background:var(--surface-sunk);color:var(--ink-muted)}.ins-trend--new{background:var(--lilac);color:#5a40a8}.ins-revisit{border:1px solid var(--border);border-radius:var(--r-pill);color:var(--primary);background:0 0;align-self:flex-start;padding:9px 16px;font-size:14px;font-weight:600;transition:background .12s,border-color .12s}.ins-revisit:hover{background:var(--primary-soft);border-color:var(--primary-soft)}@media (width<=720px){.ins-metrics{grid-template-columns:1fr}}.pace{max-width:780px;margin:0 auto;padding:8px 4px 48px}.pace-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.pace-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.7rem;font-weight:600}.pace-subject-picker{font-family:var(--font-body);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--ink);padding:8px 12px;font-size:.9rem}.pace-muted{color:var(--ink-muted)}.pace-error{color:#b42318;border-radius:var(--r-md);background:#fef3f2;border:1px solid #fecdca;padding:10px 14px}.pace-hint{color:#b54708;margin-top:8px;font-size:.85rem}.pace-setup{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:24px}.pace-setup-intro{margin-bottom:20px}.pace-setup-h{font-family:var(--font-display);color:var(--ink);margin:0 0 6px;font-size:1.2rem;font-weight:600}.pace-setup-dates{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.pace-field{flex-direction:column;gap:6px;display:flex}.pace-field-label{color:var(--ink-soft);font-size:.82rem;font-weight:600}.pace-req{color:var(--primary);font-style:normal;font-weight:500}.pace-field input[type=date],.pace-date-editor input[type=date]{font-family:var(--font-body);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--ink);padding:9px 12px;font-size:.9rem}.pace-setup-order .pace-field-label{margin-bottom:10px;display:block}.pace-order-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pace-order-row{background:var(--surface-sunk);border-radius:var(--r-md);align-items:center;gap:12px;padding:10px 12px;display:flex}.pace-order-num{background:var(--lilac);width:24px;height:24px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:600;display:grid}.pace-order-name{color:var(--ink);flex:auto;font-size:.92rem}.pace-order-weeks{color:var(--ink-muted);flex:none;font-size:.82rem}.pace-reorder{flex:none;gap:4px;display:inline-flex}.pace-reorder button{border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--ink-soft);cursor:pointer;border-radius:8px;line-height:1;transition:background .12s}.pace-reorder button:hover:not(:disabled){background:var(--primary-soft)}.pace-reorder button:disabled{opacity:.35;cursor:default}.pace-primary{font-family:var(--font-body);border-radius:var(--r-pill);background:var(--primary);color:#fff;cursor:pointer;border:none;margin-top:24px;padding:12px 22px;font-size:.95rem;font-weight:600;transition:background .12s}.pace-primary:hover:not(:disabled){background:var(--primary-hover)}.pace-primary:disabled{opacity:.45;cursor:default}.pace-timeline--busy{opacity:.6;pointer-events:none}.pace-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:16px 18px;display:flex}.pace-summary-main{align-items:center;gap:10px;display:flex}.pace-summary-label{font-family:var(--font-display);color:var(--ink);font-weight:600}.pace-summary-dates{align-items:center;gap:10px;font-size:.88rem;display:flex}.pace-window{color:var(--ink-soft)}.pace-linkbtn{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:.85rem;font-weight:600}.pace-linkbtn:hover:not(:disabled){background:var(--primary-soft)}.pace-linkbtn--muted{color:var(--ink-muted)}.pace-linkbtn:disabled{opacity:.4;cursor:default}.pace-date-editor{align-items:center;gap:8px;display:inline-flex}.pace-banner{border-radius:var(--r-md);margin-bottom:16px;padding:12px 16px;font-size:.88rem}.pace-banner--over{color:#92400e;background:#fff8eb;border:1px solid #fed7aa}.pace-banner--under{background:var(--surface-sunk);border:1px solid var(--border);color:var(--ink-muted)}.pace-chapters{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pace-chapter{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card);align-items:center;gap:14px;padding:14px 16px;display:flex}.pace-chapter-num{background:var(--surface-sunk);width:26px;height:26px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:600;display:grid}.pace-chapter-body{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.pace-chapter-name{color:var(--ink);font-size:.95rem;font-weight:500}.pace-chapter-meta{color:var(--ink-muted);font-size:.82rem}.pace-chapter-meta b{color:var(--ink-soft);font-weight:600}.pace-estimate{align-items:center;gap:6px;display:inline-flex}.pace-estimate-chip{border:1px dashed var(--border);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:999px;padding:1px 7px;font-size:.82rem;font-weight:500}.pace-estimate-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pace-estimate-chip--overridden{border-style:solid;border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.pace-estimate-chip:disabled{opacity:.5;cursor:default}.pace-estimate-anchor{color:var(--ink-faint,var(--ink-muted));font-size:.76rem;font-style:italic}.pace-estimate-reset{padding:1px 5px;font-size:.76rem}.pace-estimate-input{border:1px solid var(--primary);border-radius:6px;width:56px;padding:2px 6px;font-family:inherit;font-size:.82rem}.pace-estimate-unit{color:var(--ink-muted);font-size:.82rem}.pace-chapter-signals{flex:none;align-items:center;gap:12px;display:flex}.pace-complete{color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.pace-complete input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.pace-chapter--on_time{border-left-color:#12b76a}.pace-chapter--delay_risk{border-left-color:var(--yellow)}.pace-chapter--amber{border-left-color:#f79009}.pace-chapter--red{border-left-color:#f04438}.pace-chapter--completed{border-left-color:var(--primary);opacity:.72}.pace-pill{border-radius:var(--r-pill);white-space:nowrap;padding:3px 10px;font-size:.76rem;font-weight:600;display:inline-block}.pace-pill--on_time{color:#027a48;background:#e7f8ef}.pace-pill--delay_risk{color:#a16207;background:#fef7e0}.pace-pill--amber{color:#b54708;background:#fff1e3}.pace-pill--red{color:#b42318;background:#fee4e2}.pace-pill--completed{background:var(--primary-soft);color:var(--primary-hover)}.pace-prep{border-radius:var(--r-pill);white-space:nowrap;background:0 0;border:1px solid;padding:2px 9px;font-size:.76rem;font-weight:600;display:inline-block}.pace-prep--strong{color:#027a48}.pace-prep--on_track{color:#1d4ed8}.pace-prep--needs_work{color:#b54708}.pace-prep--not_started{color:#98928a;border-style:dashed}@media (width<=640px){.pace-chapter{flex-wrap:wrap}.pace-setup-dates{flex-direction:column}}.tut-root{background:var(--page,#eef0f3);min-height:100vh;font-family:var(--font-body,Inter, system-ui, sans-serif);color:var(--ink,#15162b);padding:28px clamp(20px,5vw,56px) 64px}.tut-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.tut-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#6b6f80);font-size:12px;font-weight:600}.tut-title{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);margin:2px 0 0;font-size:30px}.tut-signout{border:1px solid var(--line,#d9dbe4);color:var(--ink,#15162b);font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:9px 16px;font-weight:600}.tut-signout:hover{background:#f6f7fa}.tut-section{margin-top:26px}.tut-section-title{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);margin:0 0 14px;font-size:19px}.tut-hint{font-family:var(--font-body,Inter, sans-serif);color:var(--muted,#6b6f80);font-size:12.5px;font-weight:500}.tut-muted{color:var(--muted,#6b6f80);font-size:14.5px}.tut-error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;border-radius:10px;padding:10px 14px;font-size:14px}.tut-student-grid{grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px;display:grid}.tut-student-card{text-align:left;border:1px solid var(--line,#d9dbe4);cursor:pointer;font:inherit;background:#fff;border-radius:14px;align-items:center;gap:13px;padding:16px 18px;transition:transform .12s,box-shadow .12s;display:flex}.tut-student-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #15162b12}.tut-avatar{background:var(--sage,#cfe3d0);color:#15162b;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;font-size:17px;font-weight:700;display:grid}.tut-student-meta{flex-direction:column;min-width:0;display:flex}.tut-student-name{font-size:15.5px;font-weight:650}.tut-student-email{color:var(--muted,#6b6f80);text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.tut-back{color:var(--muted,#6b6f80);font:inherit;cursor:pointer;background:0 0;border:none;padding:4px 0;font-weight:600}.tut-back:hover{color:var(--ink,#15162b)}.tut-student-heading{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);margin:6px 0 4px;font-size:25px}.tut-pending-list{flex-direction:column;gap:10px;display:flex}.tut-pending{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:12px;overflow:hidden}.tut-pending-head{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.tut-pending-head:hover{background:#f6f7fa}.tut-pending-name{flex-direction:column;display:flex}.tut-crumb{color:var(--muted,#6b6f80);font-size:12px;font-weight:500}.tut-pending-st{font-size:15px;font-weight:650}.tut-badge{background:var(--lilac,#e3def7);color:#4b3da8;border-radius:999px;flex:none;padding:4px 11px;font-size:12.5px;font-weight:700}.tut-obs-list{border-top:1px solid var(--line,#d9dbe4);background:#fafbfc;flex-direction:column;gap:0;display:flex}.tut-obs{border-bottom:1px solid #eceef3;padding:13px 18px}.tut-obs:last-child{border-bottom:none}.tut-obs-top{align-items:center;gap:9px;margin-bottom:5px;display:flex}.tut-axis{text-transform:uppercase;letter-spacing:.05em;border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:700}.tut-axis--conceptual{color:#1b47b8;background:#dbe7ff}.tut-axis--procedural{color:#1d7a4d;background:#d8efe0}.tut-level{color:var(--ink,#15162b);font-size:13px;font-weight:700}.tut-calib{color:#9a5b00;background:#fdf0d8;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:600}.tut-obs-date{color:var(--muted,#6b6f80);margin-left:auto;font-size:12px}.tut-obs-reasoning{margin:0;font-size:14px;line-height:1.5}.tut-obs-loading{padding:12px 18px}.tut-mastery-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.tut-mastery-card{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:14px;padding:16px 18px}.tut-mastery-st{margin:2px 0 12px;font-size:16px;font-weight:650}.tut-levels{gap:10px;margin-bottom:12px;display:flex}.tut-axislevel{background:#f6f7fa;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 8px;display:flex}.tut-axislabel{text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#6b6f80);font-size:11px;font-weight:600}.tut-axisnum{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);font-size:26px;font-weight:600;line-height:1}.tut-desc{color:#33364a;margin:0;font-size:13.5px;line-height:1.55}.tut-pending-body{padding:0 14px 14px}.tut-s2-cta{align-items:center;gap:10px;margin-top:12px;display:flex}.tut-assess-btn{background:var(--primary,#2f63ff);color:#fff;cursor:pointer;border:none;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600;transition:filter .15s ease-out,transform .15s ease-out}.tut-assess-btn:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.tut-assess-btn:disabled{opacity:.6;cursor:default}.tut-s2-drafting{margin-top:12px}.tut-s2-done{color:#1f7a4d;background:#e8f6ee;border-radius:9px;margin:12px 0 0;padding:10px 14px;font-size:13.5px;font-weight:600}.tut-s2{border:1px solid var(--line,#e4e6ee);background:#fbfbfd;border-radius:12px;flex-direction:column;gap:14px;margin-top:14px;padding:16px;display:flex}.tut-s2-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tut-s2-field{flex-direction:column;gap:6px;display:flex}.tut-s2-label{color:#33364a;font-size:12px;font-weight:600}.tut-s2-was{color:var(--muted,#6b6f80);font-weight:500}.tut-s2-proposed{color:var(--primary,#2f63ff);font-weight:500}.tut-s2-select,.tut-s2-textarea{border:1px solid var(--line,#d9dbe6);font:inherit;color:#1c1e2a;background:#fff;border-radius:8px;padding:8px 10px;font-size:13.5px}.tut-s2-textarea{resize:vertical;line-height:1.5}.tut-s2-readonly{background:#f6f7fa;border-radius:9px;flex-direction:column;gap:8px;padding:12px;display:flex}.tut-s2-ro-row{gap:10px;font-size:12.5px;display:flex}.tut-s2-ro-key{text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b6f80);flex:0 0 96px;padding-top:2px;font-size:10.5px;font-weight:700}.tut-s2-ro-val{color:#33364a;flex:1;line-height:1.5}.tut-s2-flag{color:#9a5b00;background:#fff3e0;border-radius:6px;margin:0 5px 5px 0;padding:2px 7px;font-size:11.5px;display:inline-block}.tut-s2-log{font-size:12.5px}.tut-s2-log summary{cursor:pointer;color:var(--muted,#6b6f80);font-weight:600}.tut-s2-actions{align-items:center;gap:10px;display:flex}.tut-s2-cancel{border:1px solid var(--line,#d9dbe6);color:#33364a;cursor:pointer;background:#fff;border-radius:9px;padding:9px 14px;font-size:13px}.tut-s2-cancel:disabled{opacity:.6;cursor:default}.tut-sch-groups{flex-direction:column;gap:16px;display:flex}.tut-sch-group{border:1px solid var(--line,#d9dbe6);background:#fff;border-radius:12px;padding:14px 16px}.tut-sch-subject{color:#2a2d3d;margin-bottom:10px;font-size:14px;font-weight:700}.tut-sch-suggest{background:#eef4ff;border:1px solid #d4e2ff;border-radius:9px;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:8px;padding:8px 11px;display:flex}.tut-sch-suggest-blocked{background:#f4f5f8;border-color:#e2e4ee}.tut-sch-suggest-label{text-transform:uppercase;letter-spacing:.04em;color:#3a63c0;font-size:10.5px;font-weight:700}.tut-sch-suggest-blocked .tut-sch-suggest-label{color:#6b6f80}.tut-sch-suggest-list{color:#33364a;font-size:12.5px;font-weight:600}.tut-sch-items{flex-direction:column;gap:6px;margin-top:4px;display:flex}.tut-sch-item{border:1px solid var(--line,#d9dbe6);border-radius:9px;align-items:center;gap:12px;padding:8px 11px;display:flex}.tut-sch-overdue{background:#fff6f4;border-color:#f0b4ad}.tut-sch-due-badge{text-align:center;color:#5a5e70;background:#eef0f3;border-radius:7px;flex:none;min-width:78px;padding:4px 8px;font-size:11px;font-weight:700}.tut-sch-due-badge-loud{color:#fff;background:#e5484d}.tut-sch-item-name{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tut-sch-st{color:#2a2d3d;font-size:13.5px;font-weight:600}.tut-sch-levels{color:#4a4e63;font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:700}.tut-sch-serve{text-transform:uppercase;letter-spacing:.03em;border-radius:7px;flex:none;padding:3px 8px;font-size:10.5px;font-weight:700}.tut-sch-serve-mix{color:#1f7a44;background:#e7f3ec}.tut-sch-serve-block{color:#6b6f80;background:#f4f5f8}.tut-asg-compose{flex-direction:column;gap:8px;display:flex}.tut-asg-chips{flex-wrap:wrap;gap:6px;display:flex}.tut-asg-chip{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--page-bg);color:var(--ink-soft);cursor:pointer;padding:5px 10px;font-size:13px;font-weight:500;transition:border-color .15s ease-out,background .15s ease-out}.tut-asg-chip.is-on{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-hover)}.tut-asg-chip:disabled{opacity:.6;cursor:default}.tut-asg-chip.is-assigned{opacity:1;border-style:dashed;border-color:var(--sage);background:var(--sage-soft);color:var(--ink-soft);align-items:center;gap:6px;display:inline-flex}.tut-asg-chip-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--sage);background:var(--surface);border-radius:var(--r-pill);padding:1px 6px;font-size:10px;font-weight:700}.tut-asg-btn{border-radius:var(--r-md);background:var(--primary);color:#fff;cursor:pointer;border:none;align-self:flex-start;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s ease-out}.tut-asg-btn:hover:not(:disabled){background:var(--primary-hover)}.tut-asg-btn:disabled{opacity:.5;cursor:default}.tut-asg-blocked{flex-direction:column;gap:10px;display:flex}.tut-asg-select{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--ink);align-self:flex-start;padding:7px 10px;font-family:inherit;font-size:14px}.tut-asg-list{flex-direction:column;gap:10px;display:flex}.tut-asg-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:12px 14px}.tut-asg-card-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.tut-asg-mode{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--r-pill);background:var(--primary-soft);color:var(--primary-hover);padding:2px 8px;font-size:11px;font-weight:700}.tut-asg-mode--blocked{background:var(--sage-soft);color:var(--ink-soft)}.tut-asg-scope{color:var(--ink);font-size:14px;font-weight:600}.tut-asg-progress{color:var(--ink-muted);margin-left:auto;font-size:13px}.tut-asg-progress.is-done{color:var(--sage);font-weight:600}.tut-asg-card-sts{flex-wrap:wrap;gap:6px;display:flex}.tut-asg-sttag{border-radius:var(--r-pill);background:var(--page-bg);border:1px solid var(--border);color:var(--ink-soft);padding:3px 8px;font-size:12px}.tut-asg-sttag--completed{border-color:var(--sage);color:var(--sage)}.tut-asg-sttag--active{border-color:var(--primary);color:var(--primary-hover)}.tut-rpt-list{flex-direction:column;gap:12px;display:flex}.tut-rpt-assemble{font-family:var(--font-body,Inter, sans-serif);border-radius:var(--r-pill,999px);border:1px solid var(--primary,#2f63ff);background:var(--primary,#2f63ff);color:#fff;cursor:pointer;align-self:flex-start;padding:8px 14px;font-size:14px;font-weight:600}.tut-rpt-assemble:hover{filter:brightness(1.05)}.tut-rpt-assemble:disabled{opacity:.55;cursor:default}.tut-rpt-rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tut-rpt-row{border:1px solid var(--line,#d9dbe4);cursor:pointer;text-align:left;background:#fff;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.tut-rpt-row:hover{border-color:var(--primary,#2f63ff)}.tut-rpt-rowdate{color:var(--ink,#15162b);flex:1;font-size:14px}.tut-rpt-rowgo{color:var(--muted,#6b6f80)}.tut-rpt-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-pill,999px);border:1px solid var(--line,#d9dbe4);color:var(--muted,#6b6f80);background:var(--page,#eef0f3);padding:3px 9px;font-size:11.5px;font-weight:700}.tut-rpt-badge--published{border-color:var(--sage,#cfe3d0);color:#2f7a47;background:#eaf6ec}.tut-rpt-badge--draft{color:#9a6b1a;background:#fbf3e0;border-color:#e6c98a}.tut-rpt-review{flex-direction:column;gap:14px;display:flex}.tut-rpt-reviewhead{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tut-rpt-frozen{color:var(--muted,#6b6f80);font-size:13px}.tut-rpt-metrics{flex-wrap:wrap;gap:10px;display:flex}.tut-rpt-stat{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:12px;min-width:92px;padding:10px 16px}.tut-rpt-statval{font-family:var(--font-display,Fredoka, sans-serif);color:var(--ink,#15162b);font-size:22px}.tut-rpt-statlabel{color:var(--muted,#6b6f80);font-size:12.5px}.tut-rpt-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.tut-rpt-card{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:12px;padding:14px}.tut-rpt-signoff{border-top:1px solid var(--line,#d9dbe4);flex-direction:column;gap:10px;padding-top:14px;display:flex}.tut-rpt-notelabel{color:var(--muted,#6b6f80);flex-direction:column;gap:6px;font-size:13.5px;display:flex}.tut-rpt-note{font-family:var(--font-body,Inter, sans-serif);color:var(--ink,#15162b);border:1px solid var(--line,#d9dbe4);resize:vertical;border-radius:10px;padding:10px 12px;font-size:14px}.tut-rpt-publish{font-family:var(--font-body,Inter, sans-serif);border-radius:var(--r-pill,999px);color:#fff;cursor:pointer;background:#2f7a47;border:1px solid #2f7a47;align-self:flex-start;padding:10px 18px;font-size:14.5px;font-weight:700}.tut-rpt-publish:hover{filter:brightness(1.05)}.tut-rpt-publish:disabled{opacity:.55;cursor:default}.tut-rpt-published{border-top:1px solid var(--line,#d9dbe4);padding-top:12px}.tut-tabs{z-index:5;background:var(--page,#eef0f3);flex-wrap:wrap;gap:6px;margin-bottom:6px;padding:8px 0 14px;display:flex;position:sticky;top:0}.tut-tab{font-family:var(--font-body,Inter, sans-serif);color:var(--muted,#6b6f80);border-radius:var(--r-pill,999px);border:1px solid var(--line,#d9dbe4);cursor:pointer;background:#fff;align-items:center;gap:7px;padding:8px 16px;font-size:14.5px;font-weight:600;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.tut-tab:hover{color:var(--ink,#15162b);border-color:#c3c6d4}.tut-tab.is-active{color:#fff;background:var(--primary,#2f63ff);border-color:var(--primary,#2f63ff)}.tut-tab-badge{background:var(--lilac,#e3def7);color:#4b3ea8;border-radius:999px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11.5px;font-weight:700;display:inline-flex}.tut-tab.is-active .tut-tab-badge{color:#fff;background:#ffffff47}.tut-header-actions{align-items:center;gap:12px;display:flex}.tut-mode-switch{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.tut-mode-pill{cursor:pointer;color:var(--muted,#6b6f80);font-size:14px;font-weight:600;font-family:var(--font-body,Inter, sans-serif);background:0 0;border:none;border-radius:999px;padding:6px 16px}.tut-mode-pill--on{background:var(--primary,#2f63ff);color:#fff}.tut-auth{max-width:920px}.tut-auth-saved{background:var(--sage,#cfe3d0);color:#1f4d33;border-radius:10px;margin:8px 0;padding:8px 14px;font-size:14px;font-weight:600}.tut-auth-controls{flex-wrap:wrap;gap:14px;margin:16px 0 10px;display:flex}.tut-auth-field{flex-direction:column;flex:1;gap:5px;min-width:220px;display:flex}.tut-auth-field--narrow{flex:0 0 130px;min-width:110px}.tut-auth-field--wide{min-width:100%;margin-bottom:6px}.tut-auth-field>span{color:var(--muted,#6b6f80);font-size:12.5px;font-weight:600}.tut-auth-num,.tut-auth-intent{border:1px solid var(--line,#d9dbe4);font-size:14.5px;font-family:var(--font-body,Inter, sans-serif);color:var(--ink,#15162b);background:#fff;border-radius:10px;padding:9px 12px}.tut-auth-intent{resize:vertical}.tut-auth-actions{align-items:center;gap:14px;margin:6px 0 4px;display:flex}.tut-auth-draft{font-size:15px}.tut-auth-cards{flex-direction:column;flex:1;gap:16px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.tut-auth-card{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:14px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.tut-auth-cardhead{align-items:center;gap:12px;display:flex}.tut-auth-num-badge{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);background:var(--lilac,#e3def7);color:#4b3ea8;border-radius:999px;padding:3px 12px;font-size:14px;font-weight:600}.tut-auth-axis{flex:0 0 150px}.tut-auth-rubric{color:var(--muted,#6b6f80);letter-spacing:.2px;margin-left:auto;font-size:12.5px;font-weight:600}.tut-auth-cardfield{flex-direction:column;gap:5px;display:flex}.tut-auth-cardfield>span{color:var(--muted,#6b6f80);font-size:12.5px;font-weight:600}.tut-auth-ta{border:1px solid var(--line,#d9dbe4);font-size:14.5px;line-height:1.5;font-family:var(--font-body,Inter, sans-serif);color:var(--ink,#15162b);resize:vertical;background:#fff;border-radius:10px;padding:9px 12px}.tut-auth-intent-read,.tut-auth-honest{color:var(--muted,#6b6f80);border-top:1px dashed var(--line,#e4e6ee);padding-top:9px;font-size:13px;line-height:1.5}.tut-auth-intent-label{color:var(--ink,#15162b);text-transform:uppercase;letter-spacing:.4px;margin-right:4px;font-size:11px;font-weight:700}.tut-auth-savebar{justify-content:flex-end;padding-top:4px;display:flex}.tut-chat-start{flex-direction:column;align-items:flex-start;gap:14px;max-width:560px;display:flex}.tut-chat-vendorpick{align-items:center;gap:12px;display:flex}.tut-chat-vendorlabel{color:var(--ink-soft);font-size:13px}.tut-chat-vendortoggle{background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px;display:inline-flex}.tut-chat-vendoropt{border-radius:var(--r-pill);font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:7px 18px;font-size:14px;font-weight:600}.tut-chat-vendoropt.is-on{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #141e3c1a}.tut-chat-vendoropt:disabled{cursor:default;opacity:.6}.tut-chat-chapterpick{align-items:center;gap:12px;display:flex}.tut-chat-chapterpick .tut-asg-select{min-width:280px}.tut-chat-startbtn{align-self:flex-start}.tut-chat{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex}.tut-chat-split{flex:1;gap:14px;min-height:0;display:flex}.tut-chat-main{flex-direction:column;flex:1;gap:14px;min-width:0;min-height:0;display:flex}.tut-chat-canvas{background-color:var(--surface);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);border:1px solid var(--border);border-radius:var(--r-card);background-size:22px 22px;flex-direction:column;flex:1;gap:12px;min-height:0;padding:22px 18px;display:flex;position:relative;overflow-y:auto}.tut-chat-vendorchip{letter-spacing:.04em;text-transform:uppercase;color:var(--primary);background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px 11px;font-size:11px;font-weight:700}.tut-chat-hint{text-align:center;max-width:420px;color:var(--ink-muted);margin:auto;font-size:14px}.tut-chat-row{display:flex}.tut-chat-row--tutor{justify-content:flex-end}.tut-chat-row--ai{justify-content:flex-start}.tut-chat-bubble{white-space:pre-wrap;word-break:break-word;border-radius:16px;max-width:76%;padding:11px 15px;font-size:15px;line-height:1.5}.tut-chat-bubble--ai{background:var(--periwinkle);color:#1f2545;border-bottom-left-radius:5px}.tut-chat-bubble--tutor{background:var(--lilac);color:#2c2640;border-bottom-right-radius:5px}.tut-chat-typing{color:#4a4a6a;font-style:italic}.tut-chat-inputbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex:none;align-items:flex-end;gap:10px;padding:8px 10px;display:flex;box-shadow:0 2px 10px #141e3c0d}.tut-chat-input{resize:none;font:inherit;max-height:140px;color:var(--ink);background:0 0;border:none;outline:none;flex:1;padding:6px 4px;font-size:15px;line-height:1.5}.tut-chat-send{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:16px;display:grid}.tut-chat-send:hover:not(:disabled){background:var(--primary-hover)}.tut-chat-send:disabled{background:var(--border);cursor:default}.tut-chat-topbar{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.tut-chat-scope{align-items:center;gap:10px;min-width:0;display:flex}.tut-chat-scopechap{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.tut-chat-newbtn{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-pill);font:inherit;color:var(--ink-soft);cursor:pointer;flex:none;padding:6px 14px;font-size:13px;font-weight:600}.tut-chat-newbtn:hover:not(:disabled){color:var(--primary);border-color:var(--primary)}.tut-chat-newbtn:disabled{opacity:.5;cursor:default}.tut-chat-authmeta{font-size:13px}.tut-chat-consent{border:1px solid var(--primary);background:var(--surface);border-radius:var(--r-card);flex-direction:column;align-self:stretch;gap:8px;padding:14px 16px;display:flex;box-shadow:0 2px 12px #2563eb1a}.tut-chat-consent-head{letter-spacing:.05em;text-transform:uppercase;color:var(--primary);font-size:11px;font-weight:700}.tut-chat-consent-target{color:var(--ink);font-size:16px;font-weight:700}.tut-chat-consent-why{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.tut-chat-consent-actions{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.tut-chat-consent-count{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.tut-chat-consent-count input{border:1px solid var(--border);border-radius:var(--r-md);width:72px;font:inherit;box-sizing:border-box;padding:7px 10px;font-size:14px}.tut-chat-consent-dismiss{font:inherit;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:8px 4px;font-size:13px;font-weight:600}.tut-chat-consent-dismiss:hover:not(:disabled){color:var(--ink)}.tut-chat-suggest{border:1px solid var(--primary);background:var(--surface);color:var(--primary);border-radius:var(--r-pill);font:inherit;white-space:nowrap;cursor:pointer;flex:none;padding:8px 14px;font-size:13px;font-weight:600}.tut-chat-suggest:hover:not(:disabled){background:var(--primary);color:#fff}.tut-chat-suggest:disabled{opacity:.45;cursor:default}.tut-auth-minichat{border-top:1px dashed var(--border);gap:8px;margin-top:4px;padding-top:10px;display:flex}.tut-auth-minichat-input{border:1px solid var(--border);border-radius:var(--r-md);min-width:0;font:inherit;background:var(--surface-sunk);flex:1;padding:8px 11px;font-size:13px}.tut-auth-minichat-btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-md);font:inherit;color:var(--ink-soft);cursor:pointer;flex:none;padding:8px 14px;font-size:13px;font-weight:600}.tut-auth-minichat-btn:hover:not(:disabled){color:var(--primary);border-color:var(--primary)}.tut-auth-minichat-btn:disabled{opacity:.5;cursor:default}.tut-chat-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;flex:0 0 44%;gap:12px;min-width:0;min-height:0;padding:16px;display:flex}.tut-chat-preview.is-hidden{display:none}.tut-chat-preview-head{flex:none;align-items:flex-start;gap:10px;display:flex}.tut-chat-preview-title{color:var(--ink-soft);flex:1;font-size:13px;font-weight:600;line-height:1.45}.tut-chat-preview-min{border:1px solid var(--border);background:var(--surface-sunk);color:var(--ink-soft);border-radius:var(--r-pill);cursor:pointer;flex:none;padding:4px 12px;font-size:12.5px;font-weight:600}.tut-chat-preview-min:hover{background:var(--border)}.tut-auth-savebar{flex:none}.tut-chat-preview-chip{border:1px solid var(--primary);background:var(--surface);color:var(--primary);border-radius:var(--r-pill);cursor:pointer;padding:4px 13px;font-size:12.5px;font-weight:700}.tut-chat-preview-chip:hover{background:var(--surface-sunk)}.tut-chat-inputbar{box-shadow:0 6px 22px #141e3c1f}@media (width<=880px){.tut-chat-split.is-split{flex-direction:column}.tut-chat-preview{flex:none;max-height:46vh}}.tut-authwrap{flex-direction:column;gap:12px;height:calc(100vh - 200px);min-height:520px;display:flex}.tut-auth-modes{background:#e8eaef;border-radius:10px;align-self:flex-start;gap:4px;padding:3px;display:inline-flex}.tut-auth-mode{cursor:pointer;color:var(--ink-soft,#45485c);background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:6px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.tut-auth-mode:hover{color:var(--ink,#15162b)}.tut-auth-mode.is-on{color:var(--ink,#15162b);background:#fff;box-shadow:0 1px 3px #141e3c1a}.tut-auth-mode-count{text-align:center;min-width:20px;color:var(--ink-soft,#45485c);background:#dfe3ea;border-radius:999px;padding:0 7px;font-size:12px;font-weight:700}.tut-auth-mode.is-on .tut-auth-mode-count{color:var(--primary,#2f63ff);background:#eef2ff}.tut-saved-lede{color:var(--muted,#6b6f80);margin:0 0 12px;font-size:13px}.tut-authored{flex-direction:column;flex:1;min-height:0;display:flex}.tut-authored .tut-saved-lede{flex:none}.tut-authored-split{flex:1;align-items:stretch;gap:16px;min-height:0;display:flex}.tut-authored-nav{flex-direction:column;flex:0 0 240px;gap:4px;display:flex;overflow-y:auto}.tut-authored-navitem{text-align:left;color:var(--ink-soft,#45485c);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-size:13.5px;font-weight:500;display:flex}.tut-authored-navitem:hover{background:var(--surface-sunk,#f0f1f6)}.tut-authored-navitem.is-on{background:var(--surface,#fff);border-color:var(--primary);color:var(--primary);font-weight:700}.tut-authored-navname{flex:1;min-width:0}.tut-authored-navcount{color:var(--muted,#6b6f80);background:var(--surface-sunk,#f0f1f6);border-radius:var(--r-pill,999px);flex:none;padding:1px 8px;font-size:11.5px;font-weight:700}.tut-authored-navitem.is-on .tut-authored-navcount{color:var(--primary);background:var(--lilac,#e3def7)}.tut-authored-detail{flex:1;min-width:0;min-height:0;padding-right:4px;overflow-y:auto}.tut-authored-chaptitle{color:var(--ink,#23252f);margin:2px 0 12px;font-size:15px;font-weight:700}.tut-authored-topic{border:1px solid var(--border);background:var(--surface,#fff);border-radius:12px;margin-bottom:10px;overflow:hidden}.tut-authored-topichead{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:12px 14px;list-style:none;display:flex}.tut-authored-topichead::-webkit-details-marker{display:none}.tut-authored-topichead:before{content:"▸";color:var(--muted,#6b6f80);font-size:12px;transition:transform .15s ease-out}.tut-authored-topic[open]>.tut-authored-topichead:before{transform:rotate(90deg)}.tut-authored-topicname{min-width:0;color:var(--ink,#23252f);flex:1;font-size:13.5px;font-weight:600}.tut-authored-topiccount{color:var(--muted,#6b6f80);flex:none;font-size:12px}.tut-authored-topicbody{border-top:1px solid var(--border);padding:4px 14px 14px}.tut-authored-sub{margin-top:12px}.tut-authored-subhead{text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b6f80);margin:0 0 8px;font-size:12px;font-weight:600}@media (width<=880px){.tut-authored-split{flex-direction:column}.tut-authored-nav{flex:none;width:100%;overflow-y:visible}.tut-authored-detail{overflow-y:visible}}.tut-saved-body{padding:2px}.tut-saved-empty{padding:6px 8px}.tut-saved-group{margin-bottom:14px}.tut-saved-grouphead{text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b6f80);margin:6px 0 8px;font-size:12px;font-weight:600}.tut-saved-q{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:8px;padding:12px 14px}.tut-saved-qhead{gap:8px;margin-bottom:6px;display:flex}.tut-saved-axis{text-transform:capitalize;color:var(--primary,#2f63ff);background:#eef2ff;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.tut-saved-fig{color:var(--ink-soft,#45485c);background:#f2ecff;border-radius:999px;padding:1px 8px;font-size:11px}.tut-saved-badge{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.tut-saved-badge--pass{color:#146c43;background:#d1f0dd}.tut-saved-badge--fail{color:#b02a37;background:#f9d7db}.tut-saved-badge--error{color:#9a6700;background:#fdefc7}.tut-saved-badge--pending{color:#45485c;background:#ececf2}.tut-saved-thumb{border:1px solid var(--border,#e3e3ee);background:#fff;border-radius:8px;width:auto;max-width:220px;height:auto;max-height:220px;margin:0 0 8px;display:block}.tut-saved-stem{color:var(--ink,#15162b);margin:0 0 8px;font-size:14px;line-height:1.5}.tut-saved-ref{font-size:13.5px}.tut-saved-ref summary{cursor:pointer;color:var(--ink-soft,#45485c);font-weight:500}.tut-saved-ref p{color:var(--ink-soft,#45485c);margin:8px 0 0;line-height:1.5}.tut-saved-expl{border-top:1px dashed var(--border);padding-top:8px;font-style:italic}.tut-chat-md>:first-child{margin-top:0}.tut-chat-md>:last-child{margin-bottom:0}.tut-chat-md p{margin:0 0 8px;line-height:1.55}.tut-chat-md strong{font-weight:700}.tut-chat-md em{font-style:italic}.tut-chat-md ul,.tut-chat-md ol{margin:4px 0 10px;padding-left:20px}.tut-chat-md li{margin:2px 0;line-height:1.5}.tut-chat-md h1,.tut-chat-md h2,.tut-chat-md h3{margin:10px 0 6px;font-size:14.5px;font-weight:700}.tut-chat-md code{background:#141e3c0f;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.tut-chat-md a{color:var(--primary,#2f63ff);text-decoration:underline}.tut-chat-actions{align-items:center;gap:8px;display:flex}.tut-chat-start-hist{justify-content:flex-end;margin-bottom:4px;display:flex}.tut-hist{position:relative}.tut-hist-btn{border:1px solid var(--border);color:var(--ink-soft,#45485c);font:inherit;cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.tut-hist-btn:hover{color:var(--ink,#15162b);background:#f6f7fa}.tut-hist-icon{font-size:12px}.tut-hist-scrim{z-index:20;position:fixed;inset:0}.tut-hist-menu{z-index:21;border:1px solid var(--border);background:#fff;border-radius:12px;width:320px;max-height:380px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 10px 30px #141e3c24}.tut-hist-empty{color:var(--muted,#6b6f80);margin:0;padding:14px;font-size:13.5px}.tut-hist-row{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;border-radius:9px;padding:10px 11px;display:block}.tut-hist-row:hover{background:#f6f7fa}.tut-hist-row.is-active{cursor:default;background:#eef2ff}.tut-hist-row-top{align-items:center;gap:8px;margin-bottom:3px;display:flex}.tut-hist-vendor{text-transform:uppercase;letter-spacing:.04em;color:var(--primary,#2f63ff);background:#eef2ff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.tut-hist-chap{color:var(--ink,#15162b);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.tut-hist-current{text-transform:uppercase;color:#1d7a4d;background:#d8efe0;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:700}.tut-hist-row-meta{color:var(--muted,#6b6f80);margin-bottom:3px;font-size:12px}.tut-hist-preview{color:var(--ink-soft,#45485c);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.tut-auth-fig{border-top:1px dashed var(--line,#e4e6ee);flex-direction:column;gap:9px;padding-top:11px;display:flex}.tut-auth-fig-add{border:1px dashed var(--line,#cfd2df);color:var(--muted,#6b6f80);cursor:pointer;background:0 0;border-radius:9px;align-self:flex-start;padding:6px 12px;font-size:13px;font-weight:600}.tut-auth-fig-add:hover:not(:disabled){color:var(--ink,#15162b);border-color:var(--muted,#9a9db0)}.tut-auth-fig-add:disabled{opacity:.5;cursor:default}.tut-auth-fig-head{text-transform:uppercase;letter-spacing:.4px;color:var(--muted,#6b6f80);align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.tut-auth-fig-gen{text-transform:none;letter-spacing:0;color:var(--muted,#6b6f80);font-size:12.5px;font-weight:500}.tut-auth-fig-spec{flex-direction:column;gap:8px;display:flex}.tut-auth-fig-cols{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tut-auth-fig-field{flex-direction:column;gap:4px;display:flex}.tut-auth-fig-field>span{color:var(--muted,#6b6f80);font-size:12px;font-weight:600}.tut-auth-fig-preview{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:10px;padding:8px}.tut-auth-fig-preview img{width:auto;max-width:100%;height:auto;max-height:360px;margin:0 auto;display:block}.tut-auth-fig-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.tut-auth-fig-btn{background:var(--lilac,#e3def7);color:#4b3ea8;cursor:pointer;border:none;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:600}.tut-auth-fig-btn:hover:not(:disabled){filter:brightness(.96)}.tut-auth-fig-btn:disabled{opacity:.5;cursor:default}.tut-auth-fig-link{color:var(--muted,#6b6f80);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.tut-auth-fig-link:hover:not(:disabled){color:var(--ink,#15162b)}.tut-auth-fig-link:disabled{opacity:.5;cursor:default}.tut-auth-fig-regen{flex-direction:column;gap:8px;display:flex}.tut-auth-fig-err{margin:0}.tut-auth-discard{color:#b02a37;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:12.5px;font-weight:600}.tut-auth-discard:hover:not(:disabled){text-decoration:underline}.tut-auth-discard:disabled{opacity:.5;cursor:default}.par-root{background:var(--page,#eef0f3);min-height:100vh;font-family:var(--font-body,Inter, system-ui, sans-serif);color:var(--ink,#15162b);padding:28px clamp(20px,5vw,56px) 64px}.par-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.par-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#6b6f80);font-size:12px;font-weight:600}.par-title{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);margin:2px 0 0;font-size:30px}.par-signout{border:1px solid var(--line,#d9dbe4);color:var(--ink,#15162b);font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:9px 16px;font-weight:600}.par-signout:hover{background:#f6f7fa}.par-section{margin-top:26px}.par-section-title{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);margin:0 0 14px;font-size:19px}.par-muted{color:var(--muted,#6b6f80);font-size:14.5px}.par-error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;border-radius:10px;padding:10px 14px;font-size:14px}.par-back{color:var(--muted,#6b6f80);font:inherit;cursor:pointer;background:0 0;border:none;margin-bottom:6px;padding:0;font-weight:600}.par-back:hover{color:var(--ink,#15162b)}.par-child-heading{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);margin:4px 0 8px;font-size:25px}.par-child-grid{grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px;display:grid}.par-child-card{text-align:left;border:1px solid var(--line,#d9dbe4);cursor:pointer;font:inherit;background:#fff;border-radius:14px;align-items:center;gap:13px;padding:16px 18px;transition:transform .12s,box-shadow .12s;display:flex}.par-child-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #15162b12}.par-avatar{background:var(--sage,#cfe3d4);color:#1f3b29;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-size:18px;font-weight:700;display:grid}.par-child-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.par-child-name{font-weight:600}.par-child-email{color:var(--muted,#6b6f80);font-size:12.5px}.par-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:16px;display:grid}.par-stat{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:14px;padding:16px 18px}.par-stat-value{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);font-size:28px;line-height:1.1}.par-stat-label{color:var(--muted,#6b6f80);margin-top:4px;font-size:12.5px}.par-mastery-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.par-mastery-card{border:1px solid var(--line,#d9dbe4);background:#fff;border-radius:14px;padding:16px 18px}.par-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.par-crumb{color:var(--muted,#6b6f80);font-size:12px;font-weight:600}.par-mastery-st{margin:4px 0 12px;font-size:16px;font-weight:700}.par-trend{white-space:nowrap;border-radius:999px;flex:none;padding:3px 9px;font-size:11.5px;font-weight:700}.par-trend--up{color:#1f7a3d;background:#e7f6ec}.par-trend--down{color:#b42318;background:#fef3f2}.par-trend--flat{color:#6b6f80;background:#eef0f3}.par-trend--new{color:#5b3ec0;background:#efeaff}.par-levels{gap:22px;margin-bottom:12px;display:flex}.par-axislevel{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.par-axislabel{color:var(--muted,#6b6f80);margin-right:4px;font-size:12.5px;font-weight:600}.par-axisnum{font-family:var(--font-display,Fredoka, var(--font-body), sans-serif);font-size:22px;line-height:1}.par-axisscale{color:var(--muted,#6b6f80);font-size:12px}.par-axiswas{color:var(--muted,#6b6f80);font-size:11.5px;font-style:italic}.par-desc{color:#34374a;margin:0;font-size:14px;line-height:1.5}.par-rpt-rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.par-rpt-row{border:1px solid var(--line,#d9dbe4);cursor:pointer;text-align:left;background:#fff;border-radius:12px;align-items:center;gap:12px;width:100%;padding:13px 16px;display:flex}.par-rpt-row:hover{border-color:var(--primary,#2f63ff)}.par-rpt-rowlabel{color:var(--ink,#15162b);font-weight:600}.par-rpt-rowdate{color:var(--muted,#6b6f80);flex:1;font-size:14px}.par-rpt-rowgo{color:var(--muted,#6b6f80)}.par-rpt-open{flex-direction:column;gap:12px;display:flex}.par-rpt-note{color:var(--ink,#15162b);background:var(--lilac,#e3def7);border-radius:12px;margin:0;padding:12px 16px;font-size:15px}.par-rpt-by{color:var(--muted,#6b6f80);font-size:13px}.par-tabs{z-index:5;background:var(--page,#eef0f3);flex-wrap:wrap;gap:6px;margin-bottom:6px;padding:8px 0 14px;display:flex;position:sticky;top:0}.par-tab{font-family:var(--font-body,Inter, sans-serif);color:var(--muted,#6b6f80);border-radius:var(--r-pill,999px);border:1px solid var(--line,#d9dbe4);cursor:pointer;background:#fff;align-items:center;gap:7px;padding:8px 16px;font-size:14.5px;font-weight:600;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.par-tab:hover{color:var(--ink,#15162b);border-color:#c3c6d4}.par-tab.is-active{color:#fff;background:var(--primary,#2f63ff);border-color:var(--primary,#2f63ff)}:root{--page-bg:#eef0f3;--surface:#fff;--surface-sunk:#f5f6f8;--sage:#cfe1bf;--sage-soft:#dcebcf;--primary:#2f63ff;--primary-hover:#1f4fe0;--primary-soft:#e2e9ff;--yellow:#f5d94f;--yellow-hover:#eccb2e;--periwinkle:#c9cdf7;--lilac:#dcd2f0;--ink:#15162b;--ink-soft:#4a4c66;--ink-muted:#8b8da3;--border:#e4e6ec;--grid-line:#788cc81a;--r-card:20px;--r-md:14px;--r-pill:999px;--shadow-card:0 1px 2px #14162b0a, 0 8px 24px #14162b0f;--shadow-rail:0 6px 24px #14162b14;--font-display:"Fredoka", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);color:var(--ink);background:var(--page-bg);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;margin:0}button{font-family:var(--font-body);cursor:pointer}.graph-paper{background-color:var(--page-bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:26px 26px}.app-shell{background:var(--page-bg);gap:14px;height:100%;padding:14px;display:flex}.nav-rail{background:var(--surface);width:68px;box-shadow:var(--shadow-rail);border-radius:28px;flex-direction:column;flex-shrink:0;align-items:center;gap:14px;padding:16px 0;display:flex}.nav-logo{place-items:center;width:40px;height:40px;margin-bottom:6px;display:grid}.nav-group{flex-direction:column;align-items:center;gap:10px;display:flex}.nav-spacer{flex:1}.nav-item{width:44px;height:44px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:14px;place-items:center;transition:background .15s,color .15s;display:grid;position:relative}.nav-item:hover{background:var(--surface-sunk);color:var(--ink-soft)}.nav-item--active,.nav-item--active:hover{background:var(--primary);color:#fff}.nav-item--soon{color:var(--ink-faint,#b6b6c6);cursor:default}.nav-item--soon:hover{color:var(--ink-faint,#b6b6c6);background:0 0}.nav-tip{background:var(--ink,#15162b);color:#fff;white-space:nowrap;box-shadow:var(--shadow-card);opacity:0;pointer-events:none;z-index:50;border-radius:8px;align-items:center;padding:5px 10px;font-size:.8rem;font-weight:500;transition:opacity .12s,transform .12s;display:inline-flex;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)translate(-4px)}.nav-tip:before{content:"";border:5px solid #0000;border-right-color:var(--ink,#15162b);position:absolute;top:50%;right:100%;transform:translateY(-50%)}.nav-item:hover .nav-tip,.nav-item:focus-visible .nav-tip,.nav-avatar:hover .nav-tip,.nav-avatar:focus-visible .nav-tip{opacity:1;transform:translateY(-50%)translate(0)}.nav-tip-soon{letter-spacing:.04em;text-transform:uppercase;background:#ffffff2e;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.66rem;font-style:normal;font-weight:600}.nav-avatar{cursor:pointer;background:var(--lilac);width:40px;height:40px;color:var(--ink);font-family:var(--font-display);border:none;border-radius:50%;place-items:center;margin-top:4px;font-size:16px;font-weight:600;display:grid;position:relative}.nav-avatar:hover{filter:brightness(.97)}.canvas{min-width:0;box-shadow:var(--shadow-card);border-radius:24px;flex:1;position:relative;overflow:auto}.canvas-accent{background:var(--sage-soft);opacity:.55;pointer-events:none;z-index:0;border-radius:40px;width:320px;height:320px;position:absolute}.canvas-accent--tl{top:-120px;left:-120px}.canvas-accent--br{background:var(--sage);opacity:.4;bottom:-140px;right:-120px}.canvas-inner{z-index:1;max-width:920px;margin:0 auto;padding:40px 32px 56px;position:relative}.canvas-inner--wide{max-width:none}.gate{place-items:center;min-height:100%;padding:24px;display:grid}.gate-card{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);text-align:center;width:100%;max-width:380px;padding:40px 36px}.gate-card h2{margin-bottom:8px;font-size:26px;font-weight:700}.gate-sub{color:var(--ink-soft);margin:0 0 24px;font-size:15px}.gate-error{color:#b42318;font-size:14px}.btn-solid{background:var(--primary);color:#fff;border-radius:var(--r-md);border:none;width:100%;padding:12px 18px;font-size:15px;font-weight:600;transition:background .15s}.btn-solid:hover{background:var(--primary-hover)}.btn-ghost{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:var(--r-md);padding:10px 16px;font-size:14px;font-weight:500}.btn-ghost:hover{background:var(--surface-sunk)}.dev-login{border-top:1px dashed var(--border);margin-top:24px;padding-top:18px}.dev-login>p{color:var(--ink-muted);margin:0 0 10px;font-size:12px}.dev-login-row{gap:8px;display:flex}.dev-login-row input{border:1px solid var(--border);border-radius:var(--r-md);min-width:0;font-size:14px;font-family:var(--font-body);flex:1;padding:9px 12px}.dev-login-row input:focus{border-color:var(--primary);outline:none}
