html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
:root{--font-inter:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", sans-serif;--font-jetbrains:"JetBrains Mono", "Cascadia Code", "Fira Code", monospace;--font-kalam:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", sans-serif;--font-patrick-hand:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", sans-serif;--bg-primary:#060a14;--bg-secondary:#0a0e1a;--bg-tertiary:#0f1629;--bg-card:#0f1629b3;--bg-card-hover:#141e37cc;--bg-glass:#0f162980;--bg-glass-strong:#0f1629d9;--bg-input:#0f162999;--bg-overlay:#060a14cc;--border-subtle:#3b82f61a;--border-default:#3b82f633;--border-strong:#3b82f659;--border-accent:#3b82f680;--text-primary:#f0f4ff;--text-secondary:#94a3c0;--text-tertiary:#5a6a8a;--text-inverse:#060a14;--accent-blue:#3b82f6;--accent-blue-glow:#3b82f640;--accent-blue-dim:#1d4ed8;--accent-indigo:#6366f1;--accent-purple:#8b5cf6;--accent-cyan:#06b6d4;--success:#10b981;--success-glow:#10b98133;--success-dim:#059669;--warning:#f59e0b;--warning-glow:#f59e0b33;--warning-dim:#d97706;--error:#f43f5e;--error-glow:#f43f5e33;--error-dim:#e11d48;--info:#3b82f6;--gradient-hero:linear-gradient(135deg, #3b82f6 0%, #8b5cf6 50%, #06b6d4 100%);--gradient-hero-subtle:linear-gradient(135deg, #3b82f626 0%, #8b5cf61a 50%, #06b6d426 100%);--gradient-card:linear-gradient(145deg, #3b82f614, #8b5cf60a);--gradient-success:linear-gradient(135deg, #10b981, #059669);--gradient-danger:linear-gradient(135deg, #f43f5e, #e11d48);--gradient-warm:linear-gradient(135deg, #f59e0b, #ef4444);--font-body:var(--font-inter), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:var(--font-jetbrains), "Fira Code", "Cascadia Code", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-xl:0 16px 48px #0009;--shadow-glow-blue:0 0 30px #3b82f64d;--shadow-glow-purple:0 0 30px #8b5cf633;--shadow-glow-success:0 0 20px #10b9814d;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--z-base:1;--z-dropdown:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-toast:50;--max-width:1280px;--sidebar-width:260px;--header-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;will-change:auto;background-image:radial-gradient(circle at 25% 25%,#3b82f608 0%,#0000 50%),radial-gradient(circle at 75% 75%,#8b5cf608 0%,#0000 50%);position:fixed;inset:0}a{color:var(--accent-blue);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-cyan)}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}ul,ol{list-style:none}.container{max-width:var(--max-width);padding:0 var(--space-6);margin:0 auto}.mono{font-family:var(--font-mono)}.text-gradient{background:var(--gradient-hero);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.glass-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(20px);transition:background var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base)}.glass-card:hover{background:var(--bg-card-hover);border-color:var(--border-default);box-shadow:var(--shadow-md)}.glass-card-static{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(20px)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-weight:600;font-size:var(--text-sm);border-radius:var(--radius-lg);transition:all var(--transition-base);white-space:nowrap;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);background:linear-gradient(#ffffff1a,#0000);position:absolute;inset:0}.btn:hover:after{opacity:1}.btn-primary{background:var(--gradient-hero);color:#fff;box-shadow:var(--shadow-glow-blue)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 40px #3b82f666}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-glass);border:1px solid var(--border-default);color:var(--text-primary)}.btn-secondary:hover{border-color:var(--border-strong);background:var(--bg-card-hover)}.btn-ghost{color:var(--text-secondary);padding:var(--space-2) var(--space-4)}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0d}.btn-success{background:var(--gradient-success);color:#fff;box-shadow:var(--shadow-glow-success)}.btn-danger{background:var(--gradient-danger);color:#fff}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base);border-radius:var(--radius-xl)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-icon{border-radius:var(--radius-md);width:40px;height:40px;padding:0}.input{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--text-sm);transition:all var(--transition-base);outline:none}.input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.input::placeholder{color:var(--text-tertiary)}.badge{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;font-weight:600;display:inline-flex}.badge-blue{color:var(--accent-blue);background:#3b82f626;border:1px solid #3b82f640}.badge-green{color:var(--success);background:#10b98126;border:1px solid #10b98140}.badge-amber{color:var(--warning);background:#f59e0b26;border:1px solid #f59e0b40}.badge-red{color:var(--error);background:#f43f5e26;border:1px solid #f43f5e40}.badge-purple{color:var(--accent-purple);background:#8b5cf626;border:1px solid #8b5cf640}.progress-track{border-radius:var(--radius-full);background:#ffffff0f;width:100%;height:8px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow);background:var(--gradient-hero)}.progress-fill.success{background:var(--gradient-success)}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--gradient-danger)}.tooltip-wrapper{position:relative}.tooltip{padding:var(--space-2) var(--space-3);background:var(--bg-glass-strong);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-primary);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:var(--z-tooltip,100);position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-8px)}.tooltip-wrapper:hover .tooltip{opacity:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px #3b82f633}50%{box-shadow:0 0 40px #3b82f666}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease forwards}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease forwards}.animate-fade-in-down{animation:fadeInDown var(--transition-slow) ease forwards}.animate-slide-left{animation:slideInLeft var(--transition-slow) ease forwards}.animate-slide-right{animation:slideInRight var(--transition-slow) ease forwards}.animate-scale-in{animation:scaleIn var(--transition-spring) forwards}.animate-float{animation:3s ease-in-out infinite float}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-spin{animation:1s linear infinite spin}.delay-1{opacity:0;animation-delay:.1s}.delay-2{opacity:0;animation-delay:.2s}.delay-3{opacity:0;animation-delay:.3s}.delay-4{opacity:0;animation-delay:.4s}.delay-5{opacity:0;animation-delay:.5s}.delay-6{opacity:0;animation-delay:.6s}.delay-7{opacity:0;animation-delay:.7s}.delay-8{opacity:0;animation-delay:.8s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#5e75a04d}::-webkit-scrollbar-thumb:hover{background:#5e75a080}*{scrollbar-width:thin;scrollbar-color:#5e75a04d transparent}::selection{color:var(--text-primary);background:#3b82f64d}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-subtle);z-index:var(--z-sticky);transition:transform var(--transition-base);will-change:transform;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translateZ(0)}.sidebar-header{padding:var(--space-6);border-bottom:1px solid var(--border-subtle)}.sidebar-logo{font-size:var(--text-xl);align-items:center;gap:var(--space-3);font-weight:800;display:flex}.sidebar-logo span{background:var(--gradient-hero);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.sidebar-nav{padding:var(--space-4);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-section-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-4) var(--space-3) var(--space-2);font-weight:600}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;font-weight:500;display:flex}.nav-item:hover{color:var(--text-primary);background:#3b82f614}.nav-item.active{color:var(--accent-blue);background:#3b82f61f;font-weight:600}.nav-item .nav-icon{font-size:var(--text-lg);text-align:center;flex-shrink:0;width:24px}.nav-item .nav-badge{color:var(--accent-blue);font-size:var(--text-xs);border-radius:var(--radius-full);background:#3b82f633;margin-left:auto;padding:2px 8px;font-weight:600}.main-content{margin-left:var(--sidebar-width);isolation:isolate;flex:1;min-height:100vh}.page-header{padding:var(--space-8) var(--space-8) var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary)}.page-header h1{font-size:var(--text-2xl);margin-bottom:var(--space-2);font-weight:700}.page-header p{color:var(--text-secondary);font-size:var(--text-sm)}.page-body{padding:var(--space-8)}.grid{gap:var(--space-6);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.stat-card{padding:var(--space-6);position:relative;overflow:hidden}.stat-card:before{content:"";opacity:.1;width:80px;height:80px;transition:opacity var(--transition-base);border-radius:0 0 0 80px;position:absolute;top:0;right:0}.stat-card:hover:before{opacity:.18}.stat-card .stat-icon{font-size:var(--text-2xl);margin-bottom:var(--space-3)}.stat-card .stat-value{font-size:var(--text-3xl);font-weight:800;font-family:var(--font-mono);margin-bottom:var(--space-1);line-height:1.1}.stat-card .stat-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.stat-card .stat-change{font-size:var(--text-xs);margin-top:var(--space-2);align-items:center;gap:var(--space-1);font-weight:600;display:flex}.stat-change.positive{color:var(--success)}.stat-change.negative{color:var(--error)}.timer-display{font-family:var(--font-mono);font-size:var(--text-4xl);letter-spacing:.05em;text-align:center;font-weight:700}.timer-display.warning{color:var(--warning)}.timer-display.danger{color:var(--error);animation:1s ease-in-out infinite pulse}.question-card{padding:var(--space-8)}.question-number{font-size:var(--text-xs);color:var(--accent-blue);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-4);font-weight:600}.question-text{font-size:var(--text-lg);margin-bottom:var(--space-6);font-weight:500;line-height:1.7}.options-list{gap:var(--space-3);flex-direction:column;display:flex}.option-item{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--bg-input);border:2px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-base);display:flex}.option-item:hover{border-color:var(--accent-blue);background:#3b82f60d}.option-item.selected{border-color:var(--accent-blue);box-shadow:0 0 0 1px var(--accent-blue);background:#3b82f61a}.option-item.correct{border-color:var(--success);box-shadow:0 0 0 1px var(--success);background:#10b9811a}.option-item.incorrect{border-color:var(--error);box-shadow:0 0 0 1px var(--error);background:#f43f5e1a}.option-letter{border-radius:var(--radius-md);width:32px;height:32px;font-weight:700;font-size:var(--text-sm);transition:all var(--transition-fast);background:#ffffff0f;flex-shrink:0;justify-content:center;align-items:center;display:flex}.option-item.selected .option-letter{background:var(--accent-blue);color:#fff}.option-item.correct .option-letter{background:var(--success);color:#fff}.option-item.incorrect .option-letter{background:var(--error);color:#fff}.option-text{padding-top:4px;line-height:1.5}.chat-container{height:calc(100vh - var(--header-height) - 140px);flex-direction:column;display:flex}.chat-messages{padding:var(--space-6);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-bubble{max-width:80%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);font-size:var(--text-sm);line-height:1.7;animation:.3s forwards fadeInUp}.chat-bubble.user{background:var(--accent-blue);color:#fff;border-bottom-right-radius:var(--radius-sm);align-self:flex-end}.chat-bubble.assistant{background:var(--bg-card);border:1px solid var(--border-subtle);border-bottom-left-radius:var(--radius-sm);align-self:flex-start}.chat-bubble.assistant code{border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);background:#0000004d;padding:2px 6px}.chat-bubble.assistant pre{padding:var(--space-4);border-radius:var(--radius-md);margin:var(--space-3) 0;background:#0000004d;overflow-x:auto}.chat-bubble.assistant pre code{background:0 0;padding:0}.chat-input-area{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);background:var(--bg-secondary)}.chat-input-wrapper{gap:var(--space-3);align-items:flex-end;display:flex}.chat-input-wrapper textarea{padding:var(--space-3) var(--space-4);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--text-sm);resize:none;min-height:44px;max-height:120px;transition:border-color var(--transition-fast);font-family:var(--font-body);outline:none;flex:1}.chat-input-wrapper textarea:focus{border-color:var(--accent-blue)}.chat-send-btn{background:var(--gradient-hero);border-radius:var(--radius-lg);width:44px;height:44px;font-size:var(--text-lg);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send-btn:hover{box-shadow:var(--shadow-glow-blue);transform:scale(1.05)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.heatmap-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:3px;display:grid}.heatmap-cell{aspect-ratio:1;border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;position:relative}.heatmap-cell:hover{z-index:2;transform:scale(1.2)}.heat-0{background:#ffffff08}.heat-1{background:#3b82f626}.heat-2{background:#3b82f64d}.heat-3{background:#3b82f680}.heat-4{background:#3b82f6b3}.heat-5{background:#3b82f6e6}.tabs{gap:var(--space-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-6);display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;border-bottom:2px solid #0000;font-weight:500}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.tag{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;font-weight:500;display:inline-flex}.tag:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.tag.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#3b82f61f}.streak-counter{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--warning);font-weight:700;display:flex}.streak-fire{font-size:var(--text-xl);animation:2s ease-in-out infinite float}.mastery-chip{padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-xs);align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.mastery-chip.beginner{color:var(--error);background:#f43f5e1f;border:1px solid #f43f5e33}.mastery-chip.learning{color:var(--warning);background:#f59e0b1f;border:1px solid #f59e0b33}.mastery-chip.proficient{color:var(--accent-blue);background:#3b82f61f;border:1px solid #3b82f633}.mastery-chip.mastered{color:var(--success);background:#10b9811f;border:1px solid #10b98133}.empty-state{text-align:center;padding:var(--space-16) var(--space-8)}.empty-state .empty-icon{margin-bottom:var(--space-4);opacity:.3;font-size:4rem}.empty-state h3{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:600}.empty-state p{color:var(--text-secondary);font-size:var(--text-sm);max-width:400px;margin:0 auto var(--space-6)}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,#ffffff08 0%,#ffffff14 50%,#ffffff08 100%) 0 0/200% 100%;animation:1.5s infinite shimmer}@media (max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.page-header{padding:var(--space-6)}.page-body{padding:var(--space-4)}.question-card{padding:var(--space-5)}.chat-bubble{max-width:90%}}@media (max-width:480px){html{font-size:14px}.stat-card .stat-value{font-size:var(--text-2xl)}.timer-display{font-size:var(--text-3xl)}}html{scroll-behavior:auto}body{overscroll-behavior-y:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.sketch-app-shell{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-glass:#ffffffeb;--bg-glass-strong:#fff;--bg-input:#fff;--border-subtle:#94a3b840;--border-default:#94a3b873;--border-strong:#334155;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-inverse:#fff;--accent-blue:#2563eb;--accent-indigo:#4f46e5;--accent-purple:#7c3aed;--accent-cyan:#0891b2;--success:#059669;--warning:#d97706;--error:#dc2626;--gradient-hero:linear-gradient(135deg, #2563eb 0%, #4f46e5 100%);--gradient-hero-subtle:linear-gradient(135deg, #2563eb14 0%, #4f46e514 100%);--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", monospace;color:#0f172a;background-color:#f8fafc}.sketch-app-shell h1,.sketch-app-shell h2,.sketch-app-shell h3,.sketch-app-shell h4,.sketch-app-shell h5,.sketch-app-shell h6{color:#0f172a;letter-spacing:-.02em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif}.sketch-app-shell .page-header{border-bottom:1px solid var(--border-subtle);background:#fff;padding:1.5rem 2rem}.sketch-app-shell .page-body{background:0 0}.sketch-app-shell .card,.sketch-app-shell .stat-card,.sketch-app-shell .question-card{border:1px solid var(--border-subtle);background:#fff;border-radius:12px;transition:all .18s;box-shadow:0 1px 3px #0000000d,0 1px 2px #00000008}.sketch-app-shell .card:hover,.sketch-app-shell .stat-card:hover{border-color:var(--border-default);box-shadow:0 4px 12px #0000000f}.sketch-app-shell .input,.sketch-app-shell input:not([type=checkbox]):not([type=radio]),.sketch-app-shell textarea,.sketch-app-shell select{border:1px solid var(--border-default);color:#0f172a;background:#fff;border-radius:8px;padding:.6rem .85rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s}.sketch-app-shell .input:focus,.sketch-app-shell input:not([type=checkbox]):not([type=radio]):focus,.sketch-app-shell textarea:focus,.sketch-app-shell select:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 3px #2563eb1f}.sketch-app-shell .btn,.sketch-app-shell button:not(.sketch-app-menu):not(.sketch-app-signout):not(.ui-tab-btn):not(.ui-modal-close-btn):not(.ui-search-clear-btn):not(.ui-announcement-close){border-radius:8px;font-family:inherit;font-weight:600;transition:all .15s cubic-bezier(.4,0,.2,1)}.sketch-app-shell .dashboard-page,.sketch-app-shell .onboarding{color:#0f172a!important;background:0 0!important}.sketch-app-shell .onboarding-card,.sketch-app-shell .dashboard-card,.sketch-app-shell .stat-box,.sketch-app-shell .section-card{border:1px solid var(--border-subtle)!important;background:#fff!important;border-radius:12px!important;box-shadow:0 1px 3px #0000000d!important}.sketch-app-shell .stat-box:hover{transform:translateY(-2px);border-color:var(--border-default)!important;box-shadow:0 6px 16px #0000000f!important}.sketch-app-shell .mode-card{cursor:pointer;position:relative;border:1.5px solid var(--border-subtle)!important;background:#fff!important;border-radius:12px!important;transition:all .18s!important}.sketch-app-shell .mode-card:hover{transform:translateY(-2px);border-color:var(--accent-blue)!important}.sketch-app-shell .mode-card.active{border:2px solid var(--accent-blue)!important;background:#eff6ff!important;box-shadow:0 4px 12px #2563eb26!important}.ui-btn{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:8px;outline:none;justify-content:center;align-items:center;font-family:inherit;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.ui-btn-sm{gap:.35rem;min-height:32px;padding:.35rem .65rem;font-size:.78rem}.ui-btn-md{gap:.5rem;min-height:40px;padding:.55rem .95rem;font-size:.88rem}.ui-btn-lg{gap:.6rem;min-height:46px;padding:.75rem 1.35rem;font-size:1rem}.ui-btn-primary{color:#fff!important;background:#2563eb!important;border:1px solid #1d4ed8!important;box-shadow:0 2px 4px #2563eb33!important}.ui-btn-primary:hover{transform:translateY(-1px);background:#1d4ed8!important;box-shadow:0 4px 8px #2563eb4d!important}.ui-btn-secondary{color:#1e293b!important;background:#f1f5f9!important;border:1px solid #cbd5e1!important}.ui-btn-secondary:hover{color:#0f172a!important;background:#e2e8f0!important}.ui-btn-outline{color:#334155!important;background:0 0!important;border:1px solid #cbd5e1!important}.ui-btn-outline:hover{background:#f8fafc!important;border-color:#94a3b8!important}.ui-btn-ghost{color:#475569!important;background:0 0!important;border:1px solid #0000!important}.ui-btn-ghost:hover{color:#0f172a!important;background:#f1f5f9!important}.ui-btn-danger{color:#dc2626!important;background:#fef2f2!important;border:1px solid #fca5a5!important}.ui-btn-danger:hover{color:#b91c1c!important;background:#fee2e2!important}.ui-btn-success{color:#059669!important;background:#ecfdf5!important;border:1px solid #a7f3d0!important}.ui-btn-success:hover{background:#d1fae5!important}.ui-btn-spinner{animation:.8s linear infinite spin}.ui-badge{border-radius:9999px;align-items:center;gap:.35rem;padding:.18rem .55rem;font-size:.75rem;font-weight:600;line-height:1.2;display:inline-flex}.ui-badge-sm{padding:.12rem .4rem;font-size:.68rem}.ui-badge-md{padding:.2rem .55rem;font-size:.75rem}.ui-badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.ui-badge-blue{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.ui-badge-green{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.ui-badge-amber{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.ui-badge-red{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.ui-badge-purple{color:#5b21b6;background:#ede9fe;border:1px solid #ddd6fe}.ui-badge-gray{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.ui-badge-teal{color:#115e59;background:#ccfbf1;border:1px solid #99f6e4}.ui-card{background:#fff;border-radius:12px;transition:all .18s;overflow:hidden}.ui-card-bordered{border:1px solid #e2e8f0}.ui-card-hoverable:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 14px #0000000f}.ui-card-header{border-bottom:1px solid #f1f5f9;padding:1.25rem 1.5rem}.ui-card-title{color:#0f172a;margin:0;font-size:1.1rem;font-weight:700}.ui-card-desc{color:#64748b;margin:.25rem 0 0;font-size:.82rem}.ui-card-body{padding:1.5rem}.ui-card-footer{background:#fafafa;border-top:1px solid #f1f5f9;padding:1rem 1.5rem}.ui-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172aa6;justify-content:center;align-items:center;padding:1.25rem;animation:.18s ui-fade-in;display:flex;position:fixed;inset:0}.ui-modal-container{background:#fff;border:1px solid #cbd5e1;border-radius:16px;width:100%;max-height:90vh;animation:.2s cubic-bezier(.16,1,.3,1) ui-scale-in;overflow-y:auto;box-shadow:0 20px 35px -10px #0003}.ui-modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem;display:flex}.ui-modal-title{color:#0f172a;margin:0;font-size:1.25rem;font-weight:700}.ui-modal-desc{color:#64748b;margin:.25rem 0 0;font-size:.85rem}.ui-modal-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.35rem;transition:all .12s;display:flex}.ui-modal-close-btn:hover{color:#0f172a;background:#f1f5f9}.ui-modal-body{padding:1.5rem}.ui-search-wrapper{align-items:center;width:100%;display:flex;position:relative}.ui-search-icon{color:#94a3b8;pointer-events:none;position:absolute;left:.85rem}.ui-search-input{outline:none;width:100%;font-size:.88rem;transition:border-color .15s,box-shadow .15s;color:#0f172a!important;background:#fff!important;border:1px solid #cbd5e1!important;border-radius:8px!important;padding:.6rem 2.25rem .6rem 2.35rem!important}.ui-search-input:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb1f!important}.ui-search-clear-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.2rem;display:flex;position:absolute;right:.75rem}.ui-search-clear-btn:hover{color:#0f172a;background:#f1f5f9}.ui-search-shortcut{color:#94a3b8;pointer-events:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:.1rem .35rem;font-size:.7rem;position:absolute;right:.75rem}.ui-tabs-container{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:.25rem;max-width:100%;padding:.25rem;display:inline-flex;overflow-x:auto}.ui-tab-btn{cursor:pointer;white-space:nowrap;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex;color:#64748b!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:7px!important}.ui-tab-btn:hover{color:#0f172a!important;background:#fff9!important}.ui-tab-btn.active{color:#2563eb!important;background:#fff!important;box-shadow:0 1px 3px #00000014!important}.ui-tab-badge{color:#475569;background:#e2e8f0;border-radius:9999px;padding:.1rem .4rem;font-size:.68rem;font-weight:700}.ui-tab-badge.active{color:#1e40af;background:#dbeafe}.ui-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem 1.5rem;transition:all .18s;box-shadow:0 1px 3px #0000000a}.ui-stat-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.ui-stat-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.ui-stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.ui-stat-icon-wrap{border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.ui-stat-value{font-size:1.85rem;font-weight:800;font-family:var(--font-jetbrains), monospace;margin-bottom:.35rem;line-height:1.1}.ui-stat-footer{color:#64748b;align-items:center;gap:.5rem;font-size:.78rem;display:flex}.ui-stat-trend{font-weight:700}.ui-stat-trend-pos{color:#059669}.ui-stat-trend-neg{color:#dc2626}.ui-toast-container{z-index:2000;pointer-events:none;flex-direction:column;gap:.65rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.ui-toast-item{pointer-events:auto;color:#f8fafc;background:#0f172a;border:1px solid #ffffff1a;border-radius:10px;align-items:flex-start;gap:.75rem;min-width:300px;max-width:420px;padding:.85rem 1rem;animation:.22s ui-toast-enter;display:flex;box-shadow:0 10px 25px -5px #0000004d}.ui-toast-title{margin:0 0 .15rem;font-size:.88rem;font-weight:700}.ui-toast-message{color:#cbd5e1;margin:0;font-size:.82rem;line-height:1.4}.ui-toast-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.15rem}.ui-toast-close:hover{color:#fff}.ui-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:3rem 1.5rem;display:flex}.ui-empty-icon-wrap{color:#64748b;background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:1rem;display:flex}.ui-empty-title{color:#0f172a;margin:0 0 .35rem;font-size:1.1rem;font-weight:700}.ui-empty-desc{color:#64748b;max-width:360px;margin:0;font-size:.85rem;line-height:1.5}.ui-announcement-banner{color:#fff;border-bottom:1px solid #ffffff26;justify-content:space-between;align-items:center;padding:.55rem 1.25rem;font-size:.85rem;animation:.2s ui-fade-in;display:flex}.ui-announcement-content{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ui-announcement-title{letter-spacing:.02em;font-weight:700}.ui-announcement-sep{opacity:.5}.ui-announcement-msg{opacity:.95}.ui-announcement-link{color:#fff;align-items:center;gap:.25rem;margin-left:.5rem;font-weight:700;text-decoration:underline;display:inline-flex}.ui-announcement-close{color:#fffc;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;display:flex}.ui-announcement-close:hover{color:#fff;background:#ffffff26}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-scale-in{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes ui-toast-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
