@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;600&display=swap";:root{--bg-deep: #0a0e1a;--bg-primary: #0f1729;--bg-secondary: #151d33;--bg-card: rgba(21, 29, 51, .7);--bg-glass: rgba(15, 23, 41, .6);--bg-hover: rgba(30, 41, 74, .6);--accent-primary: #00d4ff;--accent-secondary: #a855f7;--accent-gradient: linear-gradient(135deg, #00d4ff, #a855f7);--accent-gradient-hover: linear-gradient(135deg, #22d3ee, #c084fc);--accent-glow: 0 0 20px rgba(0, 212, 255, .15);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-accent: #22d3ee;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--info: #3b82f6;--border-subtle: rgba(51, 65, 85, .5);--border-accent: rgba(0, 212, 255, .2);--font-sans: "Sora", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 30px rgba(0, 212, 255, .1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--glass-blur: blur(16px);--glass-border: 1px solid rgba(255, 255, 255, .06)}:root[data-theme=light]{--bg-deep: #eef0f3;--bg-primary: #f4f5f7;--bg-secondary: #eaedf1;--bg-card: rgba(248, 249, 251, .96);--bg-glass: rgba(242, 244, 247, .92);--bg-hover: rgba(148, 163, 184, .14);--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--border-subtle: rgba(148, 163, 184, .36);--border-accent: rgba(100, 116, 139, .36);--glass-border: 1px solid rgba(2, 6, 23, .12);--shadow-sm: 0 2px 12px rgba(2, 6, 23, .1);--shadow-md: 0 6px 24px rgba(2, 6, 23, .15);--shadow-lg: 0 12px 48px rgba(2, 6, 23, .2);--accent-glow: 0 0 24px rgba(2, 132, 199, .25)}:root[data-theme=light] .app{background:radial-gradient(ellipse at 20% 50%,rgba(148,163,184,.08) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(203,213,225,.13) 0%,transparent 60%),var(--bg-deep)}:root[data-theme=light] .workspace-sidebar,:root[data-theme=light] .workspace-sidebar-right,:root[data-theme=light] .workspace-main,:root[data-theme=light] .chat-header,:root[data-theme=light] .chat-input-area,:root[data-theme=light] .workspace-topbar{background:var(--bg-glass)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-deep);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow:hidden}#root{min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes bounceIn{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes viewIn{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes viewOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.app{min-height:100vh;display:flex;flex-direction:column;position:relative;isolation:isolate;background:radial-gradient(ellipse at 20% 50%,rgba(0,212,255,.03) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(168,85,247,.03) 0%,transparent 60%),var(--bg-deep)}.app:before,.app:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1}.app:before{background:radial-gradient(circle at 10% 20%,rgba(0,212,255,.1),transparent 38%),radial-gradient(circle at 85% 10%,rgba(16,185,129,.08),transparent 35%),radial-gradient(circle at 70% 90%,rgba(168,85,247,.12),transparent 40%);filter:blur(10px);animation:auraDrift 16s ease-in-out infinite alternate}.app:after{background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at 50% 40%,black 20%,transparent 78%);opacity:.6}@keyframes auraDrift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(0,-14px,0) scale(1.04)}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--bg-glass);backdrop-filter:var(--glass-blur);border-bottom:var(--glass-border);z-index:10}.app-logo{display:flex;align-items:center;gap:var(--space-sm)}.app-logo h1{font-size:1.25rem;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-logo-icon{font-size:1.5rem}.app-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.theme-toggle{display:inline-flex;align-items:center;cursor:pointer}.theme-toggle input{display:none}.theme-toggle-track{width:56px;height:32px;border-radius:var(--radius-full);border:var(--glass-border);background:var(--bg-card);display:inline-flex;align-items:center;padding:4px;transition:all var(--transition-fast)}.theme-toggle-thumb{width:24px;height:24px;border-radius:9999px;background:var(--accent-gradient);display:inline-flex;align-items:center;justify-content:center;color:#fff;transform:translate(0);transition:transform var(--transition-fast);font-size:.85rem}:root[data-theme=light] .theme-toggle-thumb{transform:translate(24px)}.icon-btn{width:38px;height:38px;border-radius:var(--radius-sm);border:var(--glass-border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.icon-btn:hover{transform:translateY(-1px);border-color:var(--border-accent);box-shadow:var(--shadow-md)}.icon-btn:active{transform:translateY(0)}.settings-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:110;padding:var(--space-lg);animation:fadeIn .2s ease}.settings-panel{background:var(--bg-primary);border:var(--glass-border);border-radius:var(--radius-xl);width:100%;max-width:720px;max-height:90vh;overflow-y:auto;padding:var(--space-xl);box-shadow:var(--shadow-lg)}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.settings-header h2{font-size:1.25rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-close{width:36px;height:36px;border-radius:var(--radius-sm);border:var(--glass-border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.settings-close:hover{color:var(--error);border-color:var(--error)}.settings-note{padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#3b82f614;color:var(--text-secondary);margin-bottom:var(--space-lg)}.settings-section{margin-bottom:var(--space-xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle)}.settings-section:last-of-type{border-bottom:none;padding-bottom:0}.settings-section h3{font-size:1rem;font-weight:700;margin-bottom:var(--space-md)}.settings-divider{height:1px;background:var(--border-subtle);margin:var(--space-lg) 0}.settings-field{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.settings-field label{font-size:.85rem;color:var(--text-secondary)}.settings-field input{width:100%;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);outline:none;transition:border-color var(--transition-fast)}.settings-field input:focus{border-color:#22d3ee99;box-shadow:0 0 0 3px #22d3ee1f}.settings-hint{font-size:.8rem;color:var(--text-muted)}.settings-row{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center;margin-bottom:var(--space-md)}.settings-radio{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;user-select:none}.settings-radio input{accent-color:var(--accent-primary)}.settings-checkbox{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.85rem;color:var(--text-secondary);cursor:pointer;user-select:none}.settings-checkbox input{accent-color:var(--accent-primary)}.settings-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg)}.settings-btn{padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.settings-btn.primary{border-color:#22d3ee66;background:#22d3ee24}.settings-btn.secondary:hover{border-color:var(--text-muted)}.settings-btn.primary:hover{border-color:#22d3eecc;box-shadow:var(--accent-glow)}.settings-btn:disabled{opacity:.6;cursor:not-allowed}.math-workspace{display:grid;grid-template-columns:260px 1fr 300px;height:calc(100vh - 60px);gap:1px;background:var(--border-subtle)}.math-workspace.sidebar-collapsed{grid-template-columns:64px 1fr 300px}.workspace-sidebar{background:var(--bg-primary);overflow-y:auto;position:relative;transition:width var(--transition-base);padding:var(--space-md)}.workspace-sidebar.closed{width:64px;min-width:64px;padding:var(--space-sm);overflow:hidden}.workspace-sidebar.open{width:260px;min-width:260px}.sidebar-toggle{position:absolute;top:var(--space-md);right:var(--space-sm);background:var(--bg-card);border:var(--glass-border);color:var(--text-secondary);width:28px;height:28px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;z-index:2;transition:all var(--transition-fast)}.sidebar-toggle:hover{background:var(--bg-hover);color:var(--accent-primary)}.workspace-sidebar-right{background:var(--bg-primary);overflow-y:auto;padding:var(--space-md);min-width:320px}.side-rail{display:grid;gap:12px}.side-rail-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px;background:var(--bg-card)}.side-rail-card h4{font-size:.9rem;margin-bottom:8px}.side-rail-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--text-secondary);margin-bottom:6px}.side-rail-btn{width:100%;text-align:left;margin-bottom:8px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer}.side-rail-btn:hover{border-color:var(--border-accent);background:var(--bg-hover)}.side-rail-input{width:100%;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);margin-bottom:8px}.side-rail-input:focus{outline:none;border-color:var(--border-accent);box-shadow:0 0 0 3px #22d3ee14}.side-rail-actions,.side-rail-topics{display:grid;gap:8px}.side-rail-topic{width:100%;display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-primary);cursor:pointer}.side-rail-topic:hover{border-color:var(--border-accent);background:var(--bg-hover)}.side-rail-empty{font-size:.82rem;color:var(--text-muted)}.focus-timer{font-size:2rem;font-weight:800;letter-spacing:.06em;text-align:center;margin:8px 0 10px;color:var(--text-accent);text-shadow:0 0 18px rgba(34,211,238,.35)}.focus-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.focus-preset-btn{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);padding:7px 8px;cursor:pointer;font-size:.78rem;font-weight:700}.focus-preset-btn.active{color:var(--text-primary);border-color:#22d3eecc;background:#22d3ee24}.focus-custom-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-bottom:10px}.focus-custom-input{min-width:0;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);padding:7px 10px;font-size:.8rem;outline:none}.focus-custom-input:focus{border-color:var(--border-accent);box-shadow:0 0 0 2px #22d3ee1f}.focus-custom-btn{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);padding:7px 10px;cursor:pointer;font-size:.78rem;font-weight:700}.focus-custom-btn.active{color:var(--text-primary);border-color:#22d3eecc;background:#22d3ee24}.focus-custom-btn:hover{border-color:var(--border-accent);color:var(--text-primary)}.focus-actions{display:grid;gap:8px}.momentum-row{display:flex;align-items:center;justify-content:space-between;font-size:.84rem;color:var(--text-secondary);margin-bottom:8px}.momentum-bar{height:8px;border-radius:var(--radius-full);background:#0f1729a6;border:1px solid var(--border-subtle);overflow:hidden;margin-bottom:8px}.momentum-fill{height:100%;background:linear-gradient(90deg,#10b981,#06b6d4,#f59e0b);border-radius:inherit;transition:width .4s ease}.sidebar-nav{margin-top:44px;display:flex;flex-direction:column;gap:var(--space-sm)}.sidebar-nav-items{display:flex;flex-direction:column;gap:var(--space-xs)}.sidebar-nav-item{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left}.sidebar-nav-item:hover{background:var(--bg-hover);border-color:var(--border-accent)}.sidebar-nav-item.active{background:#22d3ee1a;border-color:#22d3ee59;box-shadow:0 0 0 3px #22d3ee14}.sidebar-nav-icon{width:24px;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem}.sidebar-nav-label{font-size:.9rem;font-weight:600}.sidebar-nav.collapsed .sidebar-nav-item{justify-content:center;padding:10px 0}.chat-sessions{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.chat-sessions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.chat-sessions-title{font-weight:800;font-size:.9rem}.chat-sessions-new{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer}.chat-sessions-new:hover{border-color:var(--border-accent);background:var(--bg-hover)}.chat-sessions-list{display:grid;gap:6px}.chat-sessions-empty{color:var(--text-muted);font-size:.85rem;padding:6px 0}.chat-session{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}.chat-session-edit{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.chat-session-input{flex:1;min-width:0;width:100%;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);outline:none}.chat-session-btn{min-width:0;display:flex;align-items:center;gap:8px;width:auto;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer;text-align:left}.chat-session.active .chat-session-btn{border-color:var(--border-accent);background:var(--bg-hover)}.chat-session-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.chat-session-dot{color:var(--text-muted);font-size:.65rem}.chat-session-text{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-session-btn-icon{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer}.chat-session-btn-icon:hover{border-color:var(--border-accent);background:var(--bg-hover)}.chat-session-save{border-color:#22c55e59;background:#22c55e1f}.chat-session-save:hover{background:#22c55e2e}.chat-session-del{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid rgba(239,68,68,.35);background:#ef444414;color:var(--text-primary);cursor:pointer}.chat-session-del:hover{background:#ef444424}.topic-map{padding:var(--space-lg) var(--space-xl);overflow-y:auto;flex:1}.topic-map-header h3{font-size:1.1rem;margin-bottom:var(--space-xs)}.topic-map-subtitle{color:var(--text-muted);font-size:.85rem;margin-bottom:var(--space-md)}.topic-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-sm);margin-bottom:var(--space-lg)}.topic-map-canvas{border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--bg-card);padding:var(--space-md);overflow:auto;min-height:min(72vh,840px);margin-bottom:var(--space-lg);display:flex;justify-content:flex-start}.topic-map-canvas svg{max-width:none;height:auto;object-fit:contain}.topic-map-svg{display:block}.topic-map-link{fill:none;stroke:#94a3b859;stroke-width:2}.topic-map-link.active{stroke:#22d3eebf;stroke-width:2.5}.topic-map-link.dim{opacity:.25}.topic-map-arrow{fill:#94a3b8a6}.topic-map-link.active+.topic-map-arrow{fill:#22d3eed9}.topic-map-nodeg{cursor:pointer}.topic-map-nodeg.dim{opacity:.25}.topic-map-rect{fill:#0f172980;stroke:#3341558c;stroke-width:1}:root[data-theme=light] .topic-map-rect{fill:#ffffffeb;stroke:#94a3b8a6}.topic-map-nodeg.in-path .topic-map-rect{stroke:#a855f7a6}.topic-map-nodeg.selected .topic-map-rect{stroke:#22d3eee6;stroke-width:2;filter:drop-shadow(0 8px 20px rgba(34,211,238,.18))}.topic-map-badge{fill:#22d3ee2e;stroke:#22d3ee40}.topic-map-badge-text{fill:var(--text-primary);font-weight:900;font-size:12px}.topic-map-title{fill:var(--text-primary);font-weight:800;font-size:13px}.topic-map-meta{fill:var(--text-muted);font-weight:600;font-size:11px}.topic-map-node{display:flex;gap:var(--space-sm);padding:12px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left}.topic-map-node:hover{background:var(--bg-hover);border-color:var(--border-accent)}.topic-map-node.selected{border-color:#a855f773;box-shadow:0 0 0 3px #a855f71a}.topic-map-node-badge{width:42px;height:42px;border-radius:var(--radius-md);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-weight:800;color:#061018}.topic-map-node-label{font-weight:700}.topic-map-node-meta{font-size:.8rem;color:var(--text-muted)}.topic-map-detail{border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--bg-card);padding:var(--space-lg)}.topic-map-detail-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-sm) 0 var(--space-md)}.pill{padding:6px 10px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);color:var(--text-secondary);background:#151d3359;font-size:.8rem}.topic-map-detail-text{color:var(--text-secondary);font-size:.9rem;margin-top:var(--space-sm)}.topic-map-mini{margin-top:var(--space-md);display:grid;gap:8px}.topic-map-edge{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid rgba(51,65,85,.45);background:#0a0e1a40}.edge-from,.edge-to{color:var(--text-primary);font-size:.85rem}.edge-arrow,.topic-map-empty{color:var(--text-muted)}.workspace-main{display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden;position:relative}.workspace-topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--bg-glass);backdrop-filter:var(--glass-blur);border-bottom:var(--glass-border);gap:var(--space-md);flex-shrink:0}.workflow-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:58%}.workflow-pill{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:linear-gradient(140deg,#0f1729bf,#1e293b8c);color:var(--text-secondary);font-size:.74rem;font-weight:600;padding:6px 10px;cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.workflow-pill:hover{transform:translateY(-1px);border-color:#22d3ee8c;box-shadow:0 8px 18px #00d4ff29}.workflow-pill.active{color:var(--text-primary);border-color:#22d3eecc;background:linear-gradient(145deg,#22d3ee33,#38bdf814)}.workflow-pill.command-launcher{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em}.workflow-status{margin-left:6px;font-size:.72rem;color:var(--text-muted);white-space:nowrap}.coach-nudge{margin:10px 14px 0;padding:10px 12px;border-radius:var(--radius-lg);border:1px solid rgba(251,191,36,.4);background:linear-gradient(160deg,#f59e0b24,#0f172952);display:flex;align-items:center;gap:10px;font-size:.83rem;animation:fadeInUp .35s ease}.coach-nudge-btn,.coach-nudge-dismiss{border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:6px 10px;font-size:.75rem;cursor:pointer;background:#0f17298c;color:var(--text-primary)}.coach-nudge-btn{border-color:#22d3ee8c}.coach-nudge-btn:hover,.coach-nudge-dismiss:hover{border-color:var(--border-accent)}.workspace-view-stage{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.workspace-view-stage.in{animation:viewIn .22s cubic-bezier(.16,1,.3,1)}.workspace-view-stage.out{animation:viewOut .16s ease}.workspace-view-stage.in .panel,.workspace-view-stage.in .chat-message,.workspace-view-stage.in .quiz-q,.workspace-view-stage.in .mistake-row,.workspace-view-stage.in .side-rail-card{animation:fadeInUp .3s ease both}.workspace-view-stage.in .side-rail-card:nth-child(1){animation-delay:40ms}.workspace-view-stage.in .side-rail-card:nth-child(2){animation-delay:80ms}.workspace-view-stage.in .side-rail-card:nth-child(3){animation-delay:.12s}.workspace-view-stage.in .side-rail-card:nth-child(4){animation-delay:.16s}.view-loader{display:grid;place-items:center;height:100%;color:var(--text-muted);font-size:.9rem}.app-loading{display:grid;place-items:center;min-height:calc(100vh - 64px);color:var(--text-muted);font-size:.95rem}.command-palette-overlay{position:fixed;inset:0;z-index:220;background:#020617a8;backdrop-filter:blur(8px);display:grid;place-items:start center;padding:80px 14px 20px}.command-palette{width:min(760px,100%);border-radius:var(--radius-xl);border:1px solid rgba(56,189,248,.25);background:linear-gradient(170deg,#0f1729f2,#0f1729e0);box-shadow:0 30px 70px #02061799;overflow:hidden;animation:fadeInUp .18s ease}.command-palette-head{padding:12px;border-bottom:1px solid var(--border-subtle);display:grid;gap:8px}.command-kbd{width:fit-content;font-size:.7rem;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:4px 8px;font-family:var(--font-mono)}.command-input{width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;background:#0f1729bf;color:var(--text-primary);font-size:.92rem;outline:none}.command-input:focus{border-color:#22d3eeb3;box-shadow:0 0 0 3px #22d3ee26}.command-list{max-height:min(64vh,520px);overflow-y:auto;display:grid;gap:6px;padding:10px}.command-item{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 12px;background:#0f172973;color:var(--text-primary);display:grid;gap:4px;text-align:left;cursor:pointer}.command-item.active,.command-item:hover{border-color:#22d3eeb3;background:#22d3ee1f}.command-item-label{font-size:.9rem;font-weight:700}.command-item-meta{font-size:.72rem;color:var(--text-accent);text-transform:uppercase;letter-spacing:.04em}.command-item-hint{font-size:.78rem;color:var(--text-muted)}.command-empty{text-align:center;color:var(--text-muted);padding:24px 8px}.panel{padding:var(--space-xl);overflow-y:auto;flex:1}.panel-header h3{font-size:1.2rem;margin-bottom:var(--space-xs)}.panel-header p{color:var(--text-secondary);font-size:.95rem}.panel-actions{margin-top:var(--space-lg);display:flex;gap:var(--space-sm);flex-wrap:wrap}.panel-btn{padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#0f172959;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.panel-btn:hover{background:var(--bg-hover);border-color:var(--border-accent)}.panel-btn.primary{border-color:#22d3ee73;background:#22d3ee1f}.panel-btn.primary:hover{border-color:#22d3eed9;box-shadow:var(--accent-glow)}.panel-btn:disabled{opacity:.6;cursor:not-allowed}.quiz-view{padding:var(--space-xl);overflow-y:auto}.quiz-header h3{font-size:1.2rem;margin-bottom:var(--space-xs)}.quiz-subtitle{color:var(--text-secondary);font-size:.9rem;margin-bottom:var(--space-lg)}.quiz-section{margin-bottom:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:#0f172940}.quiz-section h4{margin-bottom:var(--space-md)}.quiz-q-title{font-weight:700;margin-bottom:var(--space-sm);line-height:1.6}.quiz-questions{display:grid;gap:18px}.quiz-q{padding:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#0f172929}.quiz-options{display:grid;gap:10px;margin-top:10px}.quiz-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#0f17292e;cursor:pointer}.quiz-option.selected{border-color:#22d3ee8c;background:#22d3ee1a}.quiz-option input{accent-color:var(--accent-primary)}.quiz-input{width:100%;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);outline:none}.quiz-count-input{max-width:130px;font-family:var(--font-mono)}.quiz-config-row{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.quiz-count-hint{color:var(--text-muted);font-size:.82rem}.quiz-proof-file{color:var(--text-muted);font-size:.85rem;margin-top:6px}.quiz-proof-note{margin-top:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px dashed rgba(34,211,238,.4);background:#22d3ee14;color:var(--text-secondary);font-size:.9rem}.quiz-photo-analysis{margin-top:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#0f172933}.quiz-photo-analysis.correct{border-color:#10b98173;background:#10b9811a}.quiz-photo-analysis.incorrect{border-color:#ef444473;background:#ef44441a}.quiz-photo-analysis.pending{border-color:#f59e0b73;background:#f59e0b1f}.step-breakdown{margin-top:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid rgba(148,163,184,.28);background:#0f172933}.step-breakdown-inline{margin-top:8px}.step-breakdown-title{display:block;color:var(--text-secondary);font-size:.85rem;margin-bottom:8px}.step-breakdown-list{margin:0;padding-left:18px;display:grid;gap:8px}.step-breakdown-item{padding:8px 10px;border-radius:var(--radius-md);border:1px solid rgba(100,116,139,.35);background:#0f172947}.step-breakdown-item.correct{border-color:#10b98173;background:#10b9811a}.step-breakdown-item.partial{border-color:#f59e0b73;background:#f59e0b1f}.step-breakdown-item.incorrect,.step-breakdown-item.unreadable{border-color:#ef444473;background:#ef44441f}.step-breakdown-line{color:var(--text-primary);font-size:.9rem;line-height:1.45}.step-breakdown-meta{margin-top:6px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.step-status-chip,.step-loss-chip{font-size:.72rem;font-weight:700;border-radius:var(--radius-full);padding:3px 8px;border:1px solid transparent}.step-status-chip.correct{color:#86efac;background:#10b98133;border-color:#10b98166}.step-status-chip.partial{color:#fcd34d;background:#f59e0b3d;border-color:#f59e0b73}.step-status-chip.incorrect,.step-status-chip.unreadable{color:#fca5a5;background:#ef44443d;border-color:#ef444473}.step-loss-chip{color:#f8fafcf2;background:#0f172973;border-color:#94a3b859}.step-breakdown-note{margin-top:5px;color:var(--text-secondary);font-size:.82rem}.ocr-debug-panel{margin-top:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px dashed rgba(251,191,36,.45);background:#fbbf2414}.ocr-debug-head{font-size:.78rem;font-weight:800;color:#fde68a;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.ocr-debug-meta{font-size:.76rem;color:var(--text-secondary);margin-bottom:6px}.ocr-debug-mismatch{margin-bottom:8px;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid rgba(251,191,36,.35);background:#0f172933;font-size:.78rem;color:#fef3c7;display:grid;gap:3px}.ocr-debug-grid{display:grid;gap:8px}.ocr-debug-col{border:1px solid rgba(148,163,184,.28);border-radius:var(--radius-sm);background:#0f172947;padding:8px}.ocr-debug-col strong{display:block;font-size:.76rem;color:#fde68a;margin-bottom:5px}.ocr-debug-col pre{margin:0;font-size:.74rem;line-height:1.35;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;color:var(--text-primary);font-family:var(--font-mono)}.quiz-error{margin-top:var(--space-md);padding:10px 12px;border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.35);background:#ef44441f;color:#fecaca;font-size:.9rem}.quiz-actions{display:flex;gap:var(--space-sm)}.quiz-proof-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-md)}.pill.pill-ok{border-color:#10b98173;background:#10b98124}.quiz-result{margin-top:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-xl);border:1px solid rgba(16,185,129,.35);background:#10b9811a}.quiz-result-note{color:var(--text-secondary);margin-top:6px}.plan-table{display:grid;gap:8px}.plan-row{display:grid;grid-template-columns:160px 100px 1fr;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#0f17292e}.plan-row.header{font-weight:800;background:#22d3ee14;border-color:#22d3ee40}.plan-view{flex:1;overflow-y:auto;padding:var(--space-xl)}.quiz-view,.topic-map,.mistakes-panel{flex:1}.mistakes-panel{padding:var(--space-xl);overflow-y:auto}.mistakes-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.mistakes-list{display:grid;gap:10px}.mistake-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px;border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:#0f17292e}.mistake-row.corrected{opacity:.7}.mistake-desc{font-weight:700;margin-bottom:6px}.mistake-question{color:var(--text-secondary);margin-bottom:8px;line-height:1.5}.mistake-breakdown{display:grid;gap:6px;margin-bottom:8px}.mistake-line{font-size:.88rem;color:var(--text-secondary)}.mistake-line strong{color:var(--text-primary)}.mistake-wrong{color:#fca5a5}.mistake-right{color:#86efac}.mistake-how{padding:8px 10px;border-radius:var(--radius-md);border:1px solid rgba(34,211,238,.3);background:#22d3ee14;color:var(--text-secondary);font-size:.84rem;line-height:1.45}.mistake-meta{display:flex;flex-wrap:wrap;gap:8px}.mistake-fix{width:34px;height:34px;border-radius:var(--radius-md);border:1px solid rgba(16,185,129,.35);background:#10b9811a;color:var(--text-primary);cursor:pointer}.mistake-fix:hover{background:#10b98129}.chat-assistant{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-glass);backdrop-filter:var(--glass-blur);border-bottom:var(--glass-border)}.route-badge{margin-left:auto;font-size:.75rem;padding:6px 10px;border-radius:var(--radius-full);border:1px solid rgba(245,158,11,.35);background:#f59e0b1f;color:#fbbf24;white-space:nowrap}.chat-header-avatar{font-size:1.75rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--accent-gradient);border-radius:var(--radius-md)}.chat-header-info h2{font-size:1rem;font-weight:600}.chat-header-status{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.online{background:var(--success);box-shadow:0 0 6px var(--success)}.status-dot.active{background:var(--warning);box-shadow:0 0 6px var(--warning);animation:pulse 1.5s infinite}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.chat-welcome{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-2xl) var(--space-lg);animation:fadeInUp .6s ease}.welcome-icon{font-size:3rem;margin-bottom:var(--space-md);animation:bounceIn .8s ease}.chat-welcome h3{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-sm);background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.chat-welcome p{color:var(--text-secondary);margin-bottom:var(--space-xl);max-width:480px}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md);width:100%;max-width:640px}.quick-action-btn{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-md);background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);transition:all var(--transition-base);text-align:left;backdrop-filter:var(--glass-blur)}.quick-action-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--accent-glow)}.qa-icon{font-size:1.25rem;margin-bottom:var(--space-xs)}.qa-label{font-weight:600;font-size:.875rem}.qa-desc{font-size:.75rem;color:var(--text-muted);margin-top:2px}.chat-message{display:flex;gap:var(--space-md);animation:fadeIn .3s ease;max-width:85%}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.1rem;background:var(--bg-card);border:var(--glass-border)}.chat-message.assistant .message-avatar{background:var(--accent-gradient)}.message-content{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);line-height:1.65;font-size:.9375rem}.chat-message.user .message-content{background:#00d4ff1a;border:1px solid rgba(0,212,255,.15);border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg)}.chat-message.assistant .message-content{background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 4px;backdrop-filter:var(--glass-blur)}.message-text h2,.message-text h3,.message-text h4{margin:var(--space-sm) 0;color:var(--accent-primary)}.message-text .message-list{padding-left:var(--space-lg);margin:var(--space-sm) 0}.message-text .message-list-item{margin:var(--space-xs) 0}.solution-step-box{margin:var(--space-sm) 0;padding:10px 12px;background:#0206176b;border:1px solid rgba(51,65,85,.72);border-left:3px solid rgba(0,212,255,.55);border-radius:var(--radius-sm)}.solution-step-index{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-accent);margin-bottom:4px;font-weight:700}.solution-step-body{color:var(--text-primary);line-height:1.6}.message-text code{background:#00d4ff1a;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.85em;color:var(--accent-primary)}.message-text strong{color:var(--text-primary);font-weight:600}.message-text em{color:var(--text-secondary)}.message-text-streaming{white-space:pre-wrap;word-break:break-word}.math-display{margin:var(--space-md) 0;padding:var(--space-md);background:#0003;border-radius:var(--radius-sm);overflow-x:auto;text-align:center}.graph-tag{margin:var(--space-sm) 0;padding:var(--space-sm) var(--space-md);background:#a855f71a;border:1px solid rgba(168,85,247,.2);border-radius:var(--radius-sm);font-size:.85rem;color:var(--accent-secondary)}.xp-notification{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);background:#10b98126;border:1px solid rgba(16,185,129,.25);border-radius:var(--radius-full);font-size:.8rem;font-weight:600;color:var(--success);display:inline-block;animation:bounceIn .5s ease}.typing-cursor{animation:blink 1s infinite;color:var(--accent-primary);margin-left:2px}.typing-indicator{display:flex;gap:4px;padding:var(--space-sm)}.typing-indicator span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:pulse 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-input-area{display:flex;align-items:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--bg-glass);backdrop-filter:var(--glass-blur);border-top:var(--glass-border)}.upload-error-inline{margin:0 var(--space-lg) var(--space-md);padding:10px 12px;border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.35);background:#ef44441f;color:#fecaca;font-size:.85rem}.attachment-row{display:flex;align-items:center;gap:8px;margin:0 var(--space-lg) var(--space-md)}.attachment-pill{flex:1;padding:8px 10px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:#0f172938;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}.attachment-remove{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.35);background:#ef44441a;color:var(--text-primary);cursor:pointer}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:200;padding:12px 14px;border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:#0f1729d9;backdrop-filter:var(--glass-blur);color:var(--text-primary);box-shadow:var(--shadow-lg);max-width:560px;width:calc(100% - 24px)}:root[data-theme=light] .math-display{background:#0000000d;border:1px solid var(--border-subtle)}:root[data-theme=light] .attachment-pill{background:#f1f5f9cc;border:1px solid var(--border-subtle)}:root[data-theme=light] .chat-message.assistant .message-content{box-shadow:var(--shadow-sm)}:root[data-theme=light] .chat-message.user .message-content{box-shadow:var(--shadow-sm)}.chat-input{flex:1;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);color:var(--text-primary);font-family:var(--font-sans);font-size:.9375rem;resize:none;min-height:44px;max-height:120px;outline:none;transition:border-color var(--transition-fast)}.chat-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #00d4ff1a}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn,.chat-upload-btn{width:44px;height:44px;border-radius:var(--radius-md);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.chat-stop-btn{width:44px;height:44px;border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.35);background:#ef44441f;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.chat-stop-btn:hover{background:#ef44442e;border-color:#ef4444a6}.chat-send-btn{background:var(--accent-gradient);color:#fff}.chat-send-btn:hover:not(:disabled){background:var(--accent-gradient-hover);transform:scale(1.05)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-upload-btn{background:var(--bg-card);border:1px solid var(--border-subtle);font-size:1.1rem;color:var(--text-secondary)}.chat-upload-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.hidden-input{display:none}.mode-toggle{display:flex;gap:var(--space-lg)}.toggle-group{display:flex;align-items:center;gap:var(--space-sm)}.toggle-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.toggle-switch{display:flex;background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-sm);overflow:hidden}.toggle-btn{padding:6px 12px;font-size:.8rem;font-weight:500;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans)}.toggle-btn.active{background:var(--accent-gradient);color:#fff;font-weight:600}.toggle-btn:hover:not(.active){background:var(--bg-hover);color:var(--text-primary)}.level-badge{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-md);backdrop-filter:var(--glass-blur)}.level-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center}.level-number{font-weight:800;font-size:1rem;color:#fff}.level-info{display:flex;flex-direction:column;min-width:100px}.level-title{font-size:.8rem;font-weight:600;color:var(--text-primary)}.xp-bar{height:4px;background:var(--bg-deep);border-radius:var(--radius-full);margin:3px 0;overflow:hidden}.xp-fill{height:100%;background:var(--accent-gradient);border-radius:var(--radius-full);transition:width var(--transition-slow)}.xp-text{font-size:.7rem;color:var(--text-muted);font-family:var(--font-mono)}.total-xp{font-size:.75rem;font-weight:600;color:var(--warning);white-space:nowrap}.topic-selector-title{font-size:1rem;font-weight:700;margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.topic-category{margin-bottom:var(--space-lg)}.category-title{font-size:.8rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:var(--space-xs);letter-spacing:.04em}.topic-list{display:flex;flex-direction:column;gap:2px}.topic-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-primary);cursor:pointer;font-family:var(--font-sans);font-size:.85rem;text-align:left;width:100%;transition:all var(--transition-fast)}.topic-item:hover:not(:disabled){background:var(--bg-hover)}.topic-item.selected{background:#00d4ff1a;border-color:#00d4ff33}.topic-item.locked{opacity:.45;cursor:not-allowed}.topic-item.mastered{color:var(--success)}.topic-item.in-progress{color:var(--accent-primary)}.topic-icon{font-size:.9rem;flex-shrink:0}.topic-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-tier{font-size:.65rem;color:var(--text-muted);font-family:var(--font-mono)}.marks-dashboard{animation:fadeIn .4s ease}.marks-dashboard.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--text-muted)}.dashboard-icon{font-size:2.5rem;margin-bottom:var(--space-md);opacity:.5}.score-circle-container{position:relative;width:120px;height:120px;margin:var(--space-md) auto}.score-circle{width:100%;height:100%;transform:rotate(-90deg)}.score-bg{fill:none;stroke:var(--bg-deep);stroke-width:8}.score-fill{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s ease}.score-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-number{font-size:1.5rem;font-weight:800}.score-label{font-size:.75rem;color:var(--text-muted)}.score-grade{font-size:.85rem;font-weight:700;color:var(--accent-primary)}.step-results{margin-top:var(--space-lg)}.step-results h4{font-size:.85rem;font-weight:600;margin-bottom:var(--space-md);color:var(--text-secondary)}.step-result-item{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);border-left:3px solid;background:var(--bg-card);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.step-header{display:flex;align-items:center;gap:var(--space-sm);font-size:.85rem;font-weight:500}.step-marks{margin-left:auto;font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted)}.step-feedback{font-size:.8rem;color:var(--text-secondary);margin-top:var(--space-xs)}.overall-feedback{margin-top:var(--space-md);padding:var(--space-md);background:var(--bg-card);border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-secondary);border:var(--glass-border)}.exam-history{margin-top:var(--space-xl)}.exam-history h4{font-size:.85rem;font-weight:600;margin-bottom:var(--space-md);color:var(--text-secondary)}.history-item{display:grid;grid-template-columns:1fr auto 60px;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:.8rem}.history-topic{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-score{color:var(--text-muted);font-family:var(--font-mono)}.history-bar{height:4px;background:var(--bg-deep);border-radius:var(--radius-full);overflow:hidden}.history-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.graph-panel{position:relative;padding:var(--space-md);border-top:var(--glass-border)}.graph-close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:28px;height:28px;background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.graph-plotter{background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-md);overflow:hidden}.graph-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:var(--glass-border);font-size:.85rem}.graph-equation{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);color:var(--accent-primary)}.graph-action-btn{border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-sm);padding:4px 8px;font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.graph-action-btn:hover{border-color:var(--border-accent);color:var(--text-primary)}.graph-canvas-container{height:250px;padding:var(--space-sm)}.graph-controls{padding:10px var(--space-md) 6px;border-bottom:var(--glass-border);background:#02061738}.graph-input-label{display:block;font-size:.74rem;color:var(--text-muted);margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}.graph-input-row{display:flex;gap:8px;align-items:center}.graph-input{flex:1;min-width:0;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:.84rem;padding:8px 10px;outline:none}.graph-input:focus{border-color:var(--border-accent);box-shadow:0 0 0 2px #22d3ee24}.graph-action-apply{background:#22d3ee1f;border-color:#22d3ee66;color:var(--text-primary);font-weight:700}.graph-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.graph-preset-btn{border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-full);padding:4px 10px;font-size:.76rem;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast)}.graph-preset-btn:hover{border-color:var(--border-accent);color:var(--text-primary);transform:translateY(-1px)}.graph-help{padding:0 var(--space-md) var(--space-sm);color:var(--text-muted);font-size:.78rem}.graph-error{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--warning);border:1px dashed rgba(245,158,11,.4);border-radius:var(--radius-sm);background:#f59e0b14;padding:var(--space-md)}:root[data-theme=light] .solution-step-box{background:#f1f5f9f2;border:1px solid rgba(148,163,184,.45);border-left:3px solid rgba(14,116,144,.65)}:root[data-theme=light] .graph-controls{background:#f8fafce6}.image-upload{border-radius:var(--radius-md);overflow:hidden}.dropzone{padding:var(--space-xl);border:2px dashed var(--border-subtle);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all var(--transition-base)}.image-upload.drag-active .dropzone{border-color:var(--accent-primary);background:#00d4ff0d}.upload-icon{font-size:2rem;display:block;margin-bottom:var(--space-sm)}.upload-title{font-weight:600;margin-bottom:var(--space-xs)}.upload-subtitle{font-size:.8rem;color:var(--text-muted)}.preview-container{position:relative}.preview-image{max-width:100%;max-height:200px;border-radius:var(--radius-sm)}.processing-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0009;border-radius:var(--radius-sm);gap:var(--space-sm);color:var(--text-primary);font-size:.85rem}.spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.webcam-container{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:#0003}.webcam-video{border-radius:var(--radius-md);background:#000;max-width:100%}.webcam-buttons{display:flex;gap:var(--space-sm);flex-wrap:wrap}.webcam-btn{margin-top:var(--space-md)}.quiz-input{font-size:1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.quiz-input:focus{border-color:#22d3ee99;box-shadow:0 0 0 3px #22d3ee1f;outline:none}.quiz-section:has(input[placeholder*=final]),.quiz-section:has(input[placeholder*=answer]){border-color:#22d3ee59;background:#22d3ee0d}.quiz-section:has(input[placeholder*=answer]) .quiz-input{border-color:#22d3ee66;background:#22d3ee0f}.quiz-section:has(.quiz-input:focus){border-color:#22d3ee99;box-shadow:0 0 12px #22d3ee26}.student-report-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-lg);animation:fadeIn .3s ease}.student-report{background:var(--bg-primary);border:var(--glass-border);border-radius:var(--radius-xl);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;padding:var(--space-xl);box-shadow:var(--shadow-lg)}.report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xl)}.report-header h2{font-size:1.25rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.report-close{width:36px;height:36px;border-radius:var(--radius-sm);border:var(--glass-border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.report-close:hover{color:var(--error);border-color:var(--error)}.report-section{margin-bottom:var(--space-xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle)}.report-section h3{font-size:1rem;font-weight:600;margin-bottom:var(--space-md)}.student-info-section{display:flex;align-items:center;gap:var(--space-lg)}.student-avatar-large{font-size:2.5rem;width:64px;height:64px;background:var(--accent-gradient);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.xp-total{color:var(--warning);font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.stat-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-md);background:var(--bg-card);border:var(--glass-border);border-radius:var(--radius-md)}.stat-value{font-size:1.5rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.75rem;color:var(--text-muted);text-align:center}.mastery-heatmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-sm);margin-bottom:var(--space-md)}.heatmap-cell{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:2px;transition:transform var(--transition-fast)}.heatmap-cell:hover{transform:scale(1.05)}.heatmap-label{font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.heatmap-status{font-size:.65rem;color:#ffffffb3}.heatmap-legend{display:flex;flex-wrap:wrap;gap:var(--space-md);font-size:.7rem;color:var(--text-muted)}.legend-item{display:flex;align-items:center;gap:var(--space-xs)}.legend-color{width:12px;height:12px;border-radius:3px}.forensic-narrative{font-size:.9rem;line-height:1.7;color:var(--text-secondary);margin-bottom:var(--space-md)}.forensic-strong,.forensic-weak{font-size:.85rem;margin-bottom:var(--space-xs)}.report-actions{display:flex;justify-content:center;padding-top:var(--space-md)}.btn-print{padding:var(--space-sm) var(--space-xl);background:var(--accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans)}.btn-print:hover{transform:scale(1.03);box-shadow:var(--accent-glow)}@media print{body{background:#fff;color:#000}.app-header,.workspace-sidebar,.workspace-sidebar-right,.workspace-topbar,.chat-assistant,.report-close,.report-actions,.btn-print{display:none!important}.student-report-overlay{position:static;background:#fff;padding:0}.student-report{max-height:none;box-shadow:none;border:none}.stat-value,.report-header h2{-webkit-text-fill-color:#0f1729;color:#0f1729}}.quiz-result-complete{padding:var(--space-xl);animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.quiz-result-complete h3{font-size:1.4rem;margin-bottom:var(--space-lg);color:var(--accent-primary)}.result-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.score-box{padding:var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:#0f172940;text-align:center}.score-box.high{border-color:#22d3ee80;background:#22d3ee1a}.score-label{font-size:.85rem;color:var(--text-secondary);margin-bottom:4px}.score-value{font-size:1.8rem;font-weight:800;color:var(--accent-primary)}.score-percentage{font-size:.9rem;color:var(--text-secondary);margin-top:2px}.solve-details{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.solve-details h4{margin-bottom:var(--space-md)}.solve-detail-item{margin-bottom:var(--space-md);padding:var(--space-md);border-radius:var(--radius-lg);border-left:4px solid var(--border-subtle);background:#0f17292e}.solve-detail-item.correct{border-left-color:#10b98180;background:#10b98114}.solve-detail-item.incorrect{border-left-color:#ef444480;background:#ef444414}.solve-detail-item.pending{border-left-color:#f59e0b8c;background:#f59e0b1a}.detail-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.detail-num{font-weight:800;color:var(--accent-primary);min-width:30px}.status-badge{padding:4px 8px;border-radius:var(--radius-md);font-size:.8rem;font-weight:700}.status-badge.correct{background:#10b98133;color:#86efac}.status-badge.incorrect{background:#ef444433;color:#fca5a5}.status-badge.pending{background:#f59e0b40;color:#fcd34d}.difficulty-badge{padding:4px 8px;border-radius:var(--radius-md);font-size:.75rem;font-weight:700;background:#22d3ee26;color:#22d3eecc;text-transform:uppercase}.pill.difficulty{background:#22d3ee26;color:#22d3eecc}.detail-question,.detail-answer,.detail-expected{margin:var(--space-sm) 0;font-size:.95rem}.detail-feedback{margin:var(--space-sm) 0;padding:10px 12px;border-radius:var(--radius-md);border:1px solid rgba(34,211,238,.2);background:#22d3ee12}.detail-student-work{margin:var(--space-sm) 0;padding:10px 12px;border-radius:var(--radius-md);border:1px dashed rgba(34,211,238,.35);background:#0f172938}.detail-student-work strong{display:block;color:var(--text-secondary);margin-bottom:6px;font-size:.85rem}.detail-student-work-body{color:var(--text-primary);line-height:1.5}.detail-feedback-line{margin:4px 0;font-size:.9rem}.detail-question strong,.detail-answer strong,.detail-expected strong{display:block;color:var(--text-secondary);margin-bottom:4px;font-size:.85rem}.solve-question-container{padding:var(--space-md);border-radius:var(--radius-lg);background:#22d3ee0d;border:1px solid rgba(34,211,238,.2)}.solve-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.solve-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg);padding:var(--space-md);border-top:1px solid var(--border-subtle)}.solve-nav .panel-btn:disabled{opacity:.55}.nav-indicator{font-size:.9rem;color:var(--text-secondary);min-width:150px;text-align:center}.quiz-proof-section{margin-top:var(--space-md);padding:var(--space-md);background:#0f172926;border-radius:var(--radius-md)}.proof-label{display:block;margin-bottom:var(--space-sm);font-weight:600;color:var(--text-primary)}.panel-btn.small{padding:6px 10px;font-size:.85rem;height:auto}.mistake-actions{display:flex;gap:var(--space-sm)}.mistake-main{flex:1}@media (max-width: 1024px){.math-workspace{grid-template-columns:1fr;grid-template-rows:1fr}.workspace-sidebar,.workspace-sidebar-right{display:none}.stats-grid{grid-template-columns:repeat(2,1fr)}.workflow-strip{max-width:100%}.workflow-status{width:100%;margin-left:0}.coach-nudge{flex-wrap:wrap}}@media (max-width: 680px){.app-header{padding:10px 12px}.app-logo h1{font-size:1rem}.chat-header{padding:10px 12px}.quick-actions{grid-template-columns:1fr}.workflow-pill{font-size:.7rem;padding:6px 8px}}
