:root{--bg: #0a0a0c;--surface: #12121a;--surface-hover: #1a1a24;--border: #2a2a36;--text: #e8e8ed;--text-muted: #9898a6;--accent: #a855f7;--accent-hover: #c084fc;--accent-dim: #7c3aed;--purple-glow: rgba(168, 85, 247, .35);--success: #34d399;--error: #f87171;--radius: 12px;--font-sans: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--transition-fast: .18s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .35s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(168,85,247,.08),transparent),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(124,58,237,.05),transparent);pointer-events:none;z-index:0}#root{min-height:100vh;position:relative;z-index:1}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:#12121acc;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);position:sticky;top:0;z-index:100;transition:background var(--transition-smooth)}.logo{font-weight:700;font-size:1.25rem;color:var(--text);display:flex;align-items:center;gap:.5rem;transition:color var(--transition-fast)}.logo:hover{color:var(--accent)}.logo-img{height:80px;display:block;filter:drop-shadow(0 0 14px var(--purple-glow)) drop-shadow(0 0 30px var(--purple-glow)) brightness(1.2) contrast(1.1);transition:transform var(--transition-spring),filter var(--transition-smooth)}.logo:hover .logo-img{transform:scale(1.1) rotate(-2deg);filter:drop-shadow(0 0 20px var(--purple-glow)) drop-shadow(0 0 40px var(--purple-glow)) brightness(1.4) contrast(1.15)}.logo-text{font-size:1.4rem;font-weight:700;letter-spacing:.08em;color:var(--text)}.header nav a{color:var(--text-muted);font-size:.9rem;position:relative;padding:.25rem 0;transition:color var(--transition-fast)}.header nav a:after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:var(--accent);border-radius:1px;transition:width var(--transition-smooth),left var(--transition-smooth)}.header nav a:hover{color:var(--text)}.header nav a:hover:after{width:100%;left:0}.nav-user{font-size:.85rem;color:var(--text-muted);margin-right:.75rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.main{flex:1;padding:2rem;max-width:900px;margin:0 auto;width:100%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulseGlow{0%,to{box-shadow:0 0 15px #a855f726}50%{box-shadow:0 0 30px #a855f74d}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.trusted-by{margin-top:5rem;margin-bottom:4rem;overflow:hidden;animation:fadeIn 1s var(--transition-smooth) .8s both}.trusted-by-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:0 0 2rem;padding-top:.5rem}.trusted-by-track-wrap{overflow:hidden;mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent)}.trusted-by-track{display:flex;gap:2.5rem;width:max-content;animation:trusted-by-scroll 35s linear infinite}.trusted-by-item{flex-shrink:0;font-size:1rem;font-weight:500;color:var(--text-muted);white-space:nowrap;padding:.5rem 0}@keyframes trusted-by-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.trusted-by-track{animation:none}.trusted-by-track-wrap{mask-image:none;-webkit-mask-image:none}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.home{text-align:center;padding:3rem 0}.hero-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.2;margin:0 0 1rem;animation:fadeInUp .7s var(--transition-smooth) both}.hero-title .highlight{color:var(--accent);background:linear-gradient(135deg,var(--accent-dim),var(--accent),var(--accent-hover));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s ease infinite}.hero-tagline{color:var(--accent);font-size:1.3rem;font-weight:600;margin:0 0 1rem;letter-spacing:.04em;animation:fadeInUp .7s var(--transition-smooth) .1s both}.hero-sub{color:var(--text-muted);font-size:1.1rem;max-width:480px;margin:0 auto 2rem;line-height:1.5;animation:fadeInUp .7s var(--transition-smooth) .2s both}.cta{display:inline-block;background:linear-gradient(135deg,var(--accent-dim),var(--accent));color:#fff;font-weight:600;padding:.875rem 1.75rem;border-radius:var(--radius);border:none;font-size:1rem;transition:transform var(--transition-spring),box-shadow var(--transition-smooth);position:relative;overflow:hidden}.cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);background-size:200% 100%;animation:shimmer 3s ease-in-out infinite}.cta:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 30px var(--purple-glow),0 0 60px #a855f726;color:#fff}.cta:active{transform:translateY(0) scale(.98)}.cta.cta-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.cta.cta-secondary:before{display:none}.cta.cta-secondary:hover{background:var(--border);color:var(--text);box-shadow:0 4px 16px #2a2a3666;transform:translateY(-2px)}.home-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;animation:fadeInUp .7s var(--transition-smooth) .3s both}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-top:3rem;text-align:left}.feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:transform var(--transition-spring),border-color var(--transition-smooth),box-shadow var(--transition-smooth);animation:fadeInUp .6s var(--transition-smooth) both}.feature:nth-child(1){animation-delay:.4s}.feature:nth-child(2){animation-delay:.5s}.feature:nth-child(3){animation-delay:.6s}.feature:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 8px 32px #a855f71f,0 0 0 1px #a855f71a}.feature-icon{font-size:1.5rem;display:inline-block;margin-bottom:.5rem;transition:transform var(--transition-spring);transform-origin:center center}.feature:hover .feature-icon{transform:scale(1.3) translate(6px)}.feature h3{margin:0 0 .5rem;font-size:1rem}.feature p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.4}.muted{color:var(--text-muted);font-size:.95rem}.error{color:var(--error);margin:.5rem 0;animation:slideDown .3s ease}.loading{color:var(--text-muted);position:relative}.loading:after{content:"";display:inline-block;width:16px;height:16px;margin-left:8px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.btn{padding:.6rem 1.2rem;border-radius:var(--radius);font-weight:500;border:none;font-size:.95rem;margin-right:.5rem;margin-bottom:.5rem;transition:all var(--transition-fast);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),rgba(255,255,255,.15),transparent 60%);opacity:0;transition:opacity .4s}.btn:active:after{opacity:1}.btn.primary{background:linear-gradient(135deg,var(--accent-dim),var(--accent));color:#fff}.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent),var(--accent-hover));transform:translateY(-1px);box-shadow:0 4px 16px var(--purple-glow)}.btn.secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.btn.secondary:hover:not(:disabled){background:var(--border);border-color:var(--text-muted);transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(0) scale(.97)}.upload-page h1{margin:0 0 .25rem;animation:fadeInUp .5s var(--transition-smooth) both}.upload-form{margin-top:1.5rem;animation:fadeInUp .5s var(--transition-smooth) .15s both}.file-label{display:block;margin-bottom:1rem}.file-label input{display:none}.file-box{display:block;padding:2rem 1.5rem;border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition-smooth),background var(--transition-smooth),box-shadow var(--transition-smooth),transform var(--transition-fast)}.file-label:hover .file-box{border-color:var(--accent);background:#a855f70a;box-shadow:0 0 30px #a855f714;transform:scale(1.01)}.file-label input:focus+.file-box{outline:2px solid var(--accent);outline-offset:2px}.test-page h1{margin:0 0 .5rem}.adaptive-note{background:var(--surface);border-left:4px solid var(--accent);padding:.75rem 1rem;border-radius:0 var(--radius) var(--radius) 0;margin:1rem 0;font-size:.9rem;color:var(--text-muted)}.questions{margin:1.5rem 0}.question-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;transition:border-color var(--transition-smooth),box-shadow var(--transition-smooth),transform var(--transition-fast);animation:fadeInUp .4s var(--transition-smooth) both}.question-card:nth-child(1){animation-delay:.05s}.question-card:nth-child(2){animation-delay:.1s}.question-card:nth-child(3){animation-delay:.15s}.question-card:nth-child(4){animation-delay:.2s}.question-card:nth-child(5){animation-delay:.25s}.question-card:hover{border-color:#a855f74d;box-shadow:0 2px 12px #a855f70f}.q-num{margin:0 0 .5rem;font-size:.85rem;color:var(--text-muted);font-weight:600}.q-text{margin:0 0 .75rem;line-height:1.5}.q-topic{font-size:.75rem;color:var(--accent);background:#a855f733;padding:.2rem .5rem;border-radius:6px}.options{display:flex;flex-direction:column;gap:.5rem}.option{display:flex;align-items:flex-start;gap:.75rem;padding:.6rem .75rem;background:var(--bg);border-radius:8px;cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast)}.option:hover{background:var(--surface-hover);border-color:#a855f733;transform:translate(4px)}.option input{margin-top:.2rem;accent-color:var(--accent)}.option span{flex:1}.test-actions{margin-top:1.5rem}.results-page h1{margin:0 0 .5rem}.score-card{background:linear-gradient(135deg,#7c3aed33,#a855f733);border:1px solid rgba(168,85,247,.3);border-radius:var(--radius);padding:2rem;text-align:center;margin:1.5rem 0;animation:scaleIn .5s var(--transition-smooth) both;position:relative;overflow:hidden}.score-card:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(135deg,var(--accent-dim),var(--accent),var(--accent-hover),var(--accent-dim));background-size:300% 300%;animation:gradientShift 4s ease infinite;border-radius:var(--radius);z-index:-1;opacity:.15}.score-big{font-size:3.5rem;font-weight:700;color:var(--accent);background:linear-gradient(135deg,var(--accent),var(--accent-hover));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fadeInUp .6s var(--transition-smooth) .2s both}.score-detail{color:var(--text-muted);margin-top:.25rem;animation:fadeIn .5s .4s both}.weak-section{margin:2rem 0;animation:fadeInUp .5s var(--transition-smooth) .3s both}.weak-section h2{font-size:1.1rem;margin:0 0 .25rem}.weak-list{margin:.5rem 0 1rem;padding-left:1.25rem;color:var(--text-muted)}.topic-bars{margin-top:1rem}.topic-row{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;margin-bottom:.5rem;font-size:.9rem}.topic-name{color:var(--text-muted)}.topic-pct{font-family:var(--font-mono);color:var(--text)}.topic-bar-wrap{grid-column:1 / -1;height:6px;background:var(--surface-hover);border-radius:3px;overflow:hidden}.topic-bar{height:100%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));border-radius:3px;transition:width .8s cubic-bezier(.4,0,.2,1)}.results-detail{margin:2rem 0}.results-detail h2{font-size:1.1rem;margin:0 0 1rem}.result-item{padding:1rem;border-radius:var(--radius);margin-bottom:.75rem;border-left:4px solid var(--border);transition:transform var(--transition-fast),box-shadow var(--transition-smooth);animation:fadeInUp .4s var(--transition-smooth) both}.result-item:hover{transform:translate(4px)}.result-item.correct{border-left-color:var(--success);background:#34d39914}.result-item.incorrect{border-left-color:var(--error);background:#f8717114}.result-item h4{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.result-answer{margin:0;font-size:.9rem;color:var(--text-muted)}.correct-ans{display:block;margin-top:.25rem;color:var(--success)}.result-topic{font-size:.75rem;color:var(--accent);margin-top:.25rem;display:inline-block}.results-actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.5rem}.auth-page{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;max-width:400px;width:100%;animation:scaleIn .4s var(--transition-smooth) both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-card h1{margin:0 0 .25rem;font-size:1.5rem}.auth-form{margin-top:1.25rem}.auth-form label{display:block;margin-bottom:1rem;font-size:.9rem;color:var(--text-muted)}.auth-form input{display:block;width:100%;margin-top:.35rem;padding:.65rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #a855f726}.btn.full{width:100%;margin-right:0;margin-bottom:0}.auth-divider{text-align:center;margin:1.25rem 0;color:var(--text-muted);font-size:.85rem}.auth-divider span{background:var(--surface);padding:0 .5rem}.google-btn{background:var(--surface-hover);color:var(--text);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all var(--transition-fast)}.google-btn:hover:not(:disabled){background:var(--border);transform:translateY(-1px)}.google-icon{font-weight:700;font-size:1.1rem;color:#4285f4}.auth-switch{margin-top:1.25rem;font-size:.9rem;color:var(--text-muted);text-align:center}.link-btn{background:none;border:none;color:var(--accent);padding:0;cursor:pointer;font-size:inherit;text-decoration:underline;transition:color var(--transition-fast)}.link-btn:hover{color:var(--accent-hover)}.auth-back{display:inline-block;margin-top:1rem;font-size:.9rem;color:var(--text-muted)}.auth-back:hover{color:var(--accent)}.pricing-page{text-align:center;padding:2rem 0}.pricing-page h1{margin:0 0 .5rem;animation:fadeInUp .5s var(--transition-smooth) both}.pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:2rem;max-width:900px;margin-left:auto;margin-right:auto}.pricing-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;text-align:left;display:flex;flex-direction:column;transition:transform var(--transition-spring),border-color var(--transition-smooth),box-shadow var(--transition-smooth);animation:fadeInUp .5s var(--transition-smooth) both}.pricing-card:nth-child(1){animation-delay:.1s}.pricing-card:nth-child(2){animation-delay:.2s}.pricing-card:nth-child(3){animation-delay:.3s}.pricing-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px #0000004d}.pricing-card ul{flex:1}.pricing-card.featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);animation:pulseGlow 3s ease-in-out infinite,fadeInUp .5s var(--transition-smooth) .2s both}.pricing-card.featured:hover{box-shadow:0 0 0 1px var(--accent),0 12px 40px #a855f733}.pricing-card h2{margin:0 0 .25rem;font-size:1.25rem}.pricing-card .price{font-size:1.75rem;font-weight:700;color:var(--accent);margin:.5rem 0 1rem}.pricing-card .price span{font-size:.9rem;font-weight:400;color:var(--text-muted)}.pricing-card ul{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.95rem;line-height:1.6}.pricing-card .btn{margin-top:1rem}.flashcards-page h1{margin:0 0 .5rem}.flashcard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:1.5rem 0}.flashcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;min-height:140px;cursor:pointer;transition:transform var(--transition-spring),box-shadow var(--transition-smooth),border-color var(--transition-smooth);animation:fadeInUp .4s var(--transition-smooth) both;position:relative;overflow:hidden}.flashcard:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(168,85,247,.05),transparent);transition:left .6s ease}.flashcard:hover:before{left:100%}.flashcard:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px var(--purple-glow);border-color:#a855f766}.flashcard.flipped{border-color:var(--accent);background:linear-gradient(135deg,var(--surface),rgba(168,85,247,.05))}.flashcard.flipped .flashcard-front{display:none}.flashcard.flipped .flashcard-back{display:block;animation:fadeIn .3s ease}.flashcard:not(.flipped) .flashcard-back{display:none}.flashcard-front,.flashcard-back{font-size:.95rem;line-height:1.5}.flashcard-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.flashcards-actions{margin-top:1.5rem}.flashcard-grid .flashcard:nth-child(1){animation-delay:.05s}.flashcard-grid .flashcard:nth-child(2){animation-delay:.1s}.flashcard-grid .flashcard:nth-child(3){animation-delay:.15s}.flashcard-grid .flashcard:nth-child(4){animation-delay:.2s}.flashcard-grid .flashcard:nth-child(5){animation-delay:.25s}.flashcard-grid .flashcard:nth-child(6){animation-delay:.3s}.flashcard-grid .flashcard:nth-child(7){animation-delay:.35s}.flashcard-grid .flashcard:nth-child(8){animation-delay:.4s}.flashcard-grid .flashcard:nth-child(9){animation-delay:.45s}.flashcard-grid .flashcard:nth-child(10){animation-delay:.5s}.lesson-page h1{margin:0 0 .5rem;animation:fadeInUp .5s var(--transition-smooth) both}.lesson-section{margin-top:2.5rem;animation:fadeInUp .5s var(--transition-smooth) .1s both}.section-heading{font-size:1.25rem;font-weight:700;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);position:relative}.section-heading:after{content:"";position:absolute;bottom:-1px;left:0;width:60px;height:2px;background:var(--accent);border-radius:1px}.lesson-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;margin:0;text-align:left;line-height:1.7;color:var(--text);animation:fadeIn .4s ease}.lesson-content h2{font-size:1.1rem;margin:1.25rem 0 .5rem}.lesson-content h2:first-child{margin-top:0}.lesson-content p{margin:.5rem 0}.lesson-actions{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border);animation:fadeIn .5s .3s both}.inline-results{margin-top:1rem;animation:fadeInUp .5s var(--transition-smooth) both}.step-indicator{display:flex;align-items:center;gap:0;margin:1.5rem 0 .5rem;position:relative;background:#12121a99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;overflow:hidden;animation:slideDown .4s var(--transition-smooth) both}.step-indicator .step-progress{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--accent-dim),var(--accent),var(--accent-hover));background-size:200% 100%;animation:gradientShift 3s ease infinite;border-radius:0 3px 3px 0;transition:width .5s cubic-bezier(.4,0,.2,1)}.step-dot{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:none;border:none;color:var(--text-muted);font-size:.9rem;padding:.4rem .5rem;cursor:pointer;transition:color var(--transition-fast),transform var(--transition-fast);position:relative;z-index:1}.step-dot:hover{color:var(--text);transform:scale(1.05)}.step-dot.active{color:var(--accent);font-weight:600}.step-dot.done{color:var(--success)}.step-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:.75rem;font-weight:700;background:var(--surface-hover);border:2px solid var(--border);flex-shrink:0;transition:all var(--transition-smooth)}.step-dot.active .step-num{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 16px var(--purple-glow)}.step-dot.done .step-num{background:var(--success);border-color:var(--success);color:#fff;box-shadow:0 0 12px #34d3994d}.step-label{white-space:nowrap}.step-nav{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);animation:fadeIn .4s .2s both}.dashboard-page{animation:fadeIn .3s ease both}.dashboard-page h1{margin:0;animation:fadeInUp .5s var(--transition-smooth) both}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;animation:fadeInUp .5s var(--transition-smooth) both}.dashboard-header .btn{flex-shrink:0;margin:0}.dashboard-empty{text-align:center;margin-top:4rem;animation:fadeInUp .5s var(--transition-smooth) .2s both}.dashboard-empty .empty-icon{font-size:3rem;margin-bottom:1rem;animation:float 3s ease-in-out infinite}.dashboard-empty h2{margin:0 0 .5rem;font-size:1.3rem}.dashboard-empty p{color:var(--text-muted);margin-bottom:1.5rem;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.5}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem;animation:fadeInUp .5s var(--transition-smooth) .1s both}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:center;transition:transform var(--transition-spring),border-color var(--transition-smooth),box-shadow var(--transition-smooth);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent-dim),var(--accent));opacity:0;transition:opacity var(--transition-smooth)}.stat-card:hover{transform:translateY(-3px);border-color:#a855f74d}.stat-card:hover:after{opacity:1}.stat-value{font-size:1.75rem;font-weight:700;color:var(--accent);font-family:var(--font-mono);line-height:1.2}.stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:.25rem}.stat-sub{font-size:.75rem;color:var(--text-muted);margin-top:.35rem;font-style:italic}.dashboard-toolbar{margin-top:1.5rem;animation:fadeInUp .5s var(--transition-smooth) .15s both}.filter-tabs{display:flex;gap:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px;width:fit-content}.filter-tab{display:flex;align-items:center;gap:.4rem;padding:.45rem .9rem;border:none;border-radius:8px;background:none;color:var(--text-muted);font-size:.85rem;font-weight:500;transition:all var(--transition-fast)}.filter-tab:hover{color:var(--text);background:var(--surface-hover)}.filter-tab.active{color:#fff;background:var(--accent);box-shadow:0 2px 8px var(--purple-glow)}.filter-count{font-size:.7rem;font-weight:700;background:#ffffff26;padding:.1rem .4rem;border-radius:6px;min-width:18px;text-align:center}.filter-tab:not(.active) .filter-count{background:var(--surface-hover)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;margin-top:1rem}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:transform var(--transition-spring),border-color var(--transition-smooth),box-shadow var(--transition-smooth);animation:fadeInUp .4s var(--transition-smooth) both;position:relative;overflow:hidden}.dashboard-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity var(--transition-smooth)}.dashboard-card:hover:before{opacity:1}.dashboard-card:nth-child(1){animation-delay:.05s}.dashboard-card:nth-child(2){animation-delay:.1s}.dashboard-card:nth-child(3){animation-delay:.15s}.dashboard-card:nth-child(4){animation-delay:.2s}.dashboard-card:nth-child(5){animation-delay:.25s}.dashboard-card:nth-child(6){animation-delay:.3s}.dashboard-card:hover{transform:translateY(-4px);border-color:#a855f766;box-shadow:0 8px 32px #a855f71f}.dashboard-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.dashboard-card-info{flex:1;min-width:0}.dashboard-card-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}.dashboard-card-title{margin:0;font-size:1rem;font-weight:600;word-break:break-word;line-height:1.3}.dashboard-card-meta{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted);flex-wrap:wrap}.meta-dot{width:3px;height:3px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:6px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.badge-new{background:#a855f726;color:var(--accent)}.badge-progress{background:#facc1526;color:#facc15}.badge-done{background:#34d39926;color:var(--success)}.score-ring{flex-shrink:0}.dashboard-card-scores{display:flex;gap:1.25rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.mini-stat{display:flex;align-items:center;gap:.4rem}.mini-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.mini-stat-value{font-size:.85rem;font-weight:600;font-family:var(--font-mono);color:var(--text)}.mini-stat-value.best{color:var(--success)}.dashboard-card-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}::selection{background:#a855f74d;color:var(--text)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.footer{border-top:1px solid var(--border);background:#12121a99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:1.5rem 2rem;margin-top:auto}.footer-inner{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.footer-left{display:flex;align-items:center;gap:1rem}.footer-brand{font-weight:700;font-size:.95rem;letter-spacing:.08em;color:var(--text)}.footer-brand:hover{color:var(--accent)}.footer-copy{font-size:.8rem;color:var(--text-muted)}.footer-links{display:flex;gap:1.25rem}.footer-links a{font-size:.85rem;color:var(--text-muted);transition:color var(--transition-fast)}.footer-links a:hover{color:var(--text)}.footer-social{display:flex;gap:.75rem}.footer-social a{color:var(--text-muted);transition:color var(--transition-fast),transform var(--transition-fast);display:flex;align-items:center}.footer-social a:hover{color:var(--accent);transform:translateY(-2px)}.legal-page{max-width:700px;margin:0 auto;animation:fadeInUp .5s var(--transition-smooth) both}.legal-page h1{margin:0 0 .25rem;font-size:1.75rem}.legal-page section{margin-top:2rem}.legal-page h2{font-size:1.1rem;margin:0 0 .5rem}.legal-page p{color:var(--text-muted);line-height:1.7;margin:.5rem 0}.legal-page ul{color:var(--text-muted);line-height:1.7;padding-left:1.25rem}@media (max-width: 640px){.step-label{display:none}.step-indicator{padding:.5rem .75rem}.step-dot{padding:.4rem .25rem}.stats-row,.dashboard-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column}.filter-tabs{width:100%}.filter-tab{flex:1;justify-content:center}.footer-inner{flex-direction:column;text-align:center}.footer-left{flex-direction:column;gap:.5rem}}
