.lego-loader{display:block;margin:auto;width:7rem;height:auto;--lightest300: hsl(220, 75%, 80.8%);--lightest400: hsl(220, 75%, 74.4%);--lightest500: hsl(220, 75%, 68%);--light300: hsl(240, 65%, 76%);--light400: hsl(240, 65%, 68%);--light500: hsl(240, 65%, 60%);--medium300: hsl(260, 55%, 71.2%);--medium400: hsl(260, 55%, 61.6%);--medium500: hsl(260, 55%, 52%);--dark300: hsl(265, 52%, 65.2%);--dark400: hsl(265, 52%, 53.6%);--dark500: hsl(265, 52%, 42%)}.lego-loader__brick--lightest{--brick-left: var(--lightest400);--brick-top: var(--lightest300);fill:var(--lightest500)}.lego-loader__brick--light{--brick-left: var(--light400);--brick-top: var(--light300);fill:var(--light500)}.lego-loader__brick--medium{--brick-left: var(--medium400);--brick-top: var(--medium300);fill:var(--medium500)}.lego-loader__brick--dark{--brick-left: var(--dark400);--brick-top: var(--dark300);fill:var(--dark500)}.lego-loader__brick-group{animation:brick-bounce 6s cubic-bezier(.37,0,.63,1) infinite}.lego-loader__brick-group--1{animation-name:brick-move-1}.lego-loader__brick-group--2{animation-name:brick-move-2}.lego-loader__brick-group--3{animation-name:brick-move-3}.lego-loader__brick-group--4{animation-name:brick-move-4}@keyframes brick-bounce{0%,12%,15%,27%,30%,42%,45%,62%,65%,77%,80%,92%,95%,to{transform:translate(0)}13.5%,28.5%,43.5%,63.5%,78.5%,93.5%{transform:translateY(6px)}}@keyframes brick-move-1{0%,4%,92%,to{transform:translate(0)}12%,19%,77%,84%{transform:translate(17.5px,10px)}27%,34%,62%,69%{transform:translate(35px,20px)}42%,54%{transform:translate(52.5px,30px)}}@keyframes brick-move-2{0%,92%,to{transform:translateY(-47px)}4%{transform:translateY(-87px)}8%{transform:translate(-35px,-87px)}12%,80%{transform:translate(-35px,-67px)}84%{transform:translate(-35px,-107px)}88%{transform:translateY(-67px)}}@keyframes brick-move-3{0%,15%,77%,to{transform:translateY(-47px)}19%{transform:translateY(-87px)}23%{transform:translate(-35px,-87px)}27%,65%{transform:translate(-35px,-67px)}69%{transform:translate(-35px,-107px)}73%{transform:translateY(-67px)}}@keyframes brick-move-4{0%,30%,62%,to{transform:translateY(-47px)}34%{transform:translateY(-87px)}38%{transform:translate(-35px,-87px)}42%,50%{transform:translate(-35px,-67px)}54%{transform:translate(-35px,-107px)}58%{transform:translateY(-67px)}}.rotating-loading-text{display:block;text-align:center;font-size:var(--font-size-base);color:var(--color-text-secondary);font-weight:400}.rotating-message{display:inline-block;animation:fadeIn .25s ease-out}.rotating-message:after{content:"…";animation:dotContent .9s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dotContent{0%,to{content:"…"}33%{content:"."}66%{content:".."}}:root{--nav-height: 80px;--color-background: #fafafa;--color-surface: #ffffff;--color-surface-elevated: #ffffff;--color-border: #e5e7eb;--color-border-subtle: #f3f4f6;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-tertiary: #9ca3af;--color-accent: #0f172a;--color-accent-hover: #1e293b;--color-accent-light: #f8fafc;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-success-border: #a7f3d0;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-info-bg: #e0f2fe;--color-info-border: #b3e5fc;--color-results-title: #374151;--color-results-score: #111827;--color-results-secondary: #6b7280;--color-progress-track: #e5e7eb;--color-progress-fill: #0a84ff;--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;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--font-family-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625}*{margin:0;padding:0;box-sizing:border-box}#root:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse 750px 500px at center 115%,#0573ff8c,#0573ff66 40%,#0573ff00),radial-gradient(circle 700px at center 85%,#ff634759 20%,#ff634733,#fdfaf500);pointer-events:none;z-index:-2}#root:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url(https://i.ibb.co/Gf40BgJj/Nose.png);background-repeat:repeat;background-size:200px 200px;opacity:.14;pointer-events:none;z-index:-1}html{overscroll-behavior:none}body{font-family:var(--font-family-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background:linear-gradient(to bottom,#fff,#fff 8%,#fdfaf5 25%,#fdfaf5);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;padding:0;overscroll-behavior:none}h1{font-family:var(--font-family-heading);font-size:var(--font-size-3xl);font-weight:700;line-height:var(--line-height-tight);color:var(--color-text-primary);text-align:center;margin-bottom:var(--space-6);letter-spacing:-.025em}h2{font-family:var(--font-family-heading);font-size:var(--font-size-2xl);font-weight:700;line-height:var(--line-height-tight);color:var(--color-text-primary);margin-bottom:var(--space-6);letter-spacing:-.025em;text-align:center}h3{font-family:var(--font-family-heading);font-size:var(--font-size-lg);font-weight:600;line-height:var(--line-height-normal);color:var(--color-text-primary);margin-bottom:var(--space-8);text-align:center}p{font-family:var(--font-family-body);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--space-4)}.upload-section,.question-section,.results-section,.review-header,.error-boundary,.modal-body{text-align:center}.homepage-title{font-family:var(--font-family-heading);font-size:var(--font-size-3xl);font-weight:700;background:linear-gradient(0deg,#272727 29.17%,#565656 75%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:var(--space-4);line-height:var(--line-height-tight);letter-spacing:-.02em}.homepage-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:400;text-align:center;margin-bottom:var(--space-10)}main{padding:var(--space-8);min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center}main.generating-state{justify-content:flex-start}.container{width:56rem;margin:-32px auto 0;position:relative;--bg: #ffffff;--contrast: #ffffff;--grey: #93a1a1;padding:9px;background-color:var(--bg);border-radius:35px;box-shadow:#32325d33 0 40px 80px -15px,#00000040 0 25px 50px -25px,#0a25404d 0 -2px 5px inset}.card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-conic-gradient(var(--bg) .0000001%,var(--grey) .000104%) 60% 60%/600% 600%;filter:opacity(10%) contrast(105%);border-radius:inherit}.card-inner{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;overflow:visible;min-height:200px;background-color:var(--contrast);border-radius:30px;padding:var(--space-16);position:relative;z-index:1}.top-nav{background:transparent;border-bottom:none;height:var(--nav-height);padding:var(--space-4) 0;position:sticky;top:0;z-index:200;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:none;backdrop-filter:none}.top-nav.scrolled{background:#fff9;-webkit-backdrop-filter:blur(12px) saturate(180%);backdrop-filter:blur(12px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 1px #0000000d}@supports not (backdrop-filter: blur(12px)){.top-nav.scrolled{background:#fffffff2}}.top-nav-container{display:flex;justify-content:space-between;align-items:center;height:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.nav-left{display:flex;align-items:center}.logo-container{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.app-logo{height:32px;width:32px;flex-shrink:0;color:var(--color-text-primary)}.app-title{margin:0;font-family:Merriweather Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:20px;font-style:normal;font-weight:700;color:var(--color-text-primary);text-decoration:none;letter-spacing:-.05em;line-height:1}.nav-right,.user-section{display:flex;align-items:center;gap:var(--space-3)}.user-email{font-weight:700;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.guest-label,.tier-label{font-weight:700}.credits-count{color:var(--color-text-secondary);font-weight:400}.credits-display{font-size:var(--font-size-base)}.loading-auth{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.nav-button{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-4);text-decoration:none;border-radius:var(--radius-md);font-weight:700;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:var(--space-2)}.login-with-google.btn{background:linear-gradient(to bottom,#f5f5f5,#e5e5e5);color:var(--color-text-primary);border:1px solid #d1d5db;box-shadow:inset 0 1px #fff3;text-shadow:none;height:32px;padding:var(--space-2) 20px;font-size:var(--font-size-sm)}.login-with-google.btn:hover{background:linear-gradient(to bottom,#e5e5e5,#d5d5d5);border-color:#c4c7ca;box-shadow:inset 0 1px #fff3}.login-with-google.btn:active{background:linear-gradient(to bottom,#d5d5d5,#f5f5f5);border-color:#c4c7ca;box-shadow:inset 0 1px 2px #0003;transform:translateY(1px)}.google-icon{width:18px;height:18px;flex-shrink:0}.logout-icon{width:16px;height:16px;flex-shrink:0;color:var(--color-text-primary)}.flash-message{padding:var(--space-3) var(--space-4);margin:var(--space-4) var(--space-4) 0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);animation:slideDown .3s ease-out}.flash-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.flash-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.flash-info{background:var(--color-info-bg);color:#0277bd;border:1px solid var(--color-info-border)}.flash-text{font-weight:700}.flash-dismiss{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit;opacity:.7;padding:0;margin-left:var(--space-3);line-height:1}.flash-dismiss:hover{opacity:1}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.btn,.btn-secondary,.btn-primary,.btn-primary-blue,.btn-primary-red{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) 20px;border-radius:var(--radius-md);font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;user-select:none;-webkit-user-select:none;border:1px solid}.btn:disabled,.btn-secondary:disabled,.btn-primary:disabled,.btn-primary-blue:disabled,.btn-primary-red:disabled{cursor:not-allowed;background:#f5f5f5;color:var(--color-text-tertiary);border-color:#e5e5e5;box-shadow:none}.btn{box-shadow:none}.btn:hover:not(:disabled){box-shadow:none}.btn:active:not(:disabled){transform:translateY(.5px);box-shadow:none}.btn:focus:not(:disabled){box-shadow:none}.btn-secondary{background:linear-gradient(to bottom,#f5f5f5,#e5e5e5);color:var(--color-text-primary);border-color:#d1d5db;box-shadow:inset 0 1px #fff3;text-shadow:none}.btn-secondary:hover:not(:disabled){background:linear-gradient(to bottom,#ececec,#ddd);border-color:#d4d7da;box-shadow:inset 0 1px #fff3}.btn-secondary:active:not(:disabled){background:linear-gradient(to bottom,#d5d5d5,#f5f5f5);border-color:#c4c7ca;box-shadow:inset 0 1px 2px #0003;transform:translateY(1px)}.btn-secondary:focus:not(:disabled){box-shadow:inset 0 1px #fff3}.btn-primary{background:linear-gradient(to bottom,#f9f9f9,#e5e5e5);color:var(--color-text-primary);border-color:#dcdcdc;box-shadow:none}.btn-primary:hover:not(:disabled){background:linear-gradient(to bottom,#f5f5f5,#dfdfdf);box-shadow:none}.btn-primary:active:not(:disabled){transform:translateY(.5px);box-shadow:none}.btn-primary:focus:not(:disabled){box-shadow:none}.btn-primary-blue{background:linear-gradient(to bottom,#4d9eff,#3b82f6);color:#fff;border-color:#2563eb;box-shadow:inset 0 1px #fff3,0 1px 2px #0000001a;text-shadow:none}.btn-primary-blue:hover:not(:disabled){background:linear-gradient(to bottom,#4593f7,#3178f0);border-color:#2a5fd4;box-shadow:inset 0 1px #fff3,0 1px 2px #0000001a}.btn-primary-blue:active:not(:disabled){background:linear-gradient(to bottom,#2563eb,#4d9eff);border-color:#1e40af;box-shadow:inset 0 1px 2px #0003;transform:translateY(1px)}.btn-primary-blue:focus:not(:disabled){box-shadow:inset 0 1px #fff3,0 1px 2px #0000001a}.btn-primary-red{background:linear-gradient(to bottom,#ef5844,#dc2626);color:#fff;border-color:#dc262633;box-shadow:inset 0 1px #fff3;text-shadow:none}.btn-primary-red:hover:not(:disabled){background:linear-gradient(to bottom,#dc2626,#b91c1c);border-color:#dc26264d;box-shadow:inset 0 1px #fff3}.btn-primary-red:active:not(:disabled){background:linear-gradient(to bottom,#b91c1c,#ef5844);box-shadow:inset 0 1px 2px #0003;transform:translateY(1px)}.btn-primary-red:focus:not(:disabled){box-shadow:inset 0 1px #fff3}.btn-primary-red:disabled{opacity:.7}.quiz-actions,.button-container,.btn-container{display:flex;justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-2);text-align:center}form{text-align:center}.upload-section{margin-bottom:var(--space-8);text-align:center}.upload-section label{display:block;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-4);font-size:var(--font-size-lg);text-align:center}.upload-zone{position:relative;width:100%;min-height:12rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);border:1px dashed var(--color-border);border-radius:16px;background-color:#fbfcff;transition:all .3s ease}.upload-zone:hover,.upload-zone.drag-over{background-color:#f8f9fe;border-color:var(--color-text-tertiary)}.upload-icon{width:1.25rem;height:1.25rem;margin-bottom:var(--space-4);opacity:.7;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.upload-icon svg{width:1.25rem;height:1.25rem}.upload-text{margin-bottom:var(--space-2);position:relative;z-index:1}.upload-main-text{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-1)}.upload-sub-text{font-size:var(--font-size-sm);font-weight:400;color:var(--color-text-secondary);margin-bottom:var(--space-3)}.upload-zone input[type=file]{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;cursor:pointer;z-index:2}.options{margin:var(--space-6) 0;display:flex;flex-direction:column;gap:var(--space-3);text-align:left}.option{display:flex;align-items:center;gap:12px;padding:12px 20px;border:1px solid var(--color-border);border-radius:16px;cursor:pointer;transition:background-color .15s ease;background:#fff;position:relative}.option:hover{background:#00000008}.option:focus-within{outline:2px solid #93c5fd;outline-offset:2px}.option input[type=radio]{position:absolute;opacity:0;cursor:pointer;width:0;height:0}.option input[type=radio]:focus-visible{outline:none}.option .radio-visual{position:relative;display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--color-text-tertiary);border-radius:50%;background:#fff;box-shadow:inset 0 1px #ffffffe6,0 1px 1px #0000000f;flex-shrink:0;transition:border-color .15s ease}.option input[type=radio]:checked~.radio-visual{border-color:#3b82f6}.option .radio-visual .dot{width:10px;height:10px;border-radius:50%;background:#3b82f6;opacity:0;transition:opacity .15s ease}.option input[type=radio]:checked~.radio-visual .dot{opacity:1}.option .option-text{flex:1;color:var(--color-accent);font-size:var(--font-size-base);line-height:var(--line-height-normal)}input[type=radio]{accent-color:#3b82f6}.quiz-header{position:relative;margin-bottom:var(--space-8)}.quiz-header h2{margin:0;text-align:left;font-size:var(--font-size-base);font-weight:400;color:var(--color-text-secondary)}.question-counter{position:absolute;top:0;right:0;font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:400;background-color:#f1f5f9;padding:var(--space-2) var(--space-3);border-radius:9999px;white-space:nowrap}.question-section{text-align:center}.question-section h3{font-family:var(--font-family-body);font-size:var(--font-size-lg);font-weight:600}.quiz-question-text{font-family:var(--font-family-body);font-size:var(--font-size-lg);font-weight:400;line-height:var(--line-height-normal);color:var(--color-text-primary);margin-bottom:var(--space-8);max-height:200px;overflow-y:auto;overflow-x:hidden;padding-right:var(--space-2);scroll-behavior:smooth;text-align:left}.quiz-question-text::-webkit-scrollbar{width:6px}.quiz-question-text::-webkit-scrollbar-track{background:transparent}.quiz-question-text::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.quiz-question-text::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.question-section .options{text-align:left}.progress-bar-container,.credits-progress-bar{width:100%;height:8px;background-color:var(--color-progress-track);border-radius:9999px;overflow:hidden;box-shadow:inset 0 1px 2px #0000001a;position:relative}.progress-bar-container{margin-top:var(--space-8);margin-bottom:var(--space-8)}.credits-progress-bar{height:6px}.progress-bar-fill,.credits-progress-fill{height:100%;background:linear-gradient(to bottom,#60a5fa,#3b82f6);border-radius:9999px;box-shadow:0 0 0 .5px #3b82f633;position:relative}.progress-bar-fill{transition:width .8s cubic-bezier(.4,0,.2,1)}.credits-progress-fill{transition:width .3s cubic-bezier(.4,0,.2,1)}.results-section{text-align:center;padding:var(--space-8) 0;display:flex;flex-direction:column;gap:var(--space-6)}.results-section h2{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-results-score);margin-bottom:var(--space-8)}.results-section h2.score-neutral{color:var(--color-text-primary);font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--space-6)}.results-section h2.score-excellent{color:var(--color-success)}.results-section h2.score-good{color:var(--color-warning)}.results-section h2.score-poor{color:var(--color-error)}.results-section p{margin-bottom:var(--space-10);color:var(--color-results-secondary)}.results-actions{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:0;flex-wrap:wrap;text-align:center;width:100%}.score-display{text-align:center;margin-bottom:0}.score-ring-container{display:flex;flex-direction:column;align-items:center;gap:32px;margin:0 auto}.score-ring-wrapper{position:relative;width:192px;height:192px}.score-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-family-heading);font-weight:700;color:var(--color-text-primary);line-height:1}.score-ring-number{font-size:48px;font-family:var(--font-family-heading);font-weight:700;font-style:normal;background:linear-gradient(0deg,#272727 29.17%,#565656 75%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.score-ring-percent{font-size:var(--font-size-base);position:absolute;bottom:6px;left:100%;margin-left:2px;font-family:var(--font-family-heading);font-weight:700;font-style:normal}.score-ring-svg circle{transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion: reduce){.score-ring-svg circle{transition:none}}.score-ring-details{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}.review-header{text-align:center;margin-bottom:0;padding-bottom:var(--space-8)}.review-score{font-size:var(--font-size-base);font-weight:400;color:var(--color-text-secondary);margin:24px 0 0}.review-questions{margin-bottom:0}.review-question-flat{position:relative;margin-bottom:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:24px;padding:var(--space-8);box-shadow:none}.question-header{position:relative;display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.question-number{font-size:var(--font-size-base);font-weight:400;color:var(--color-text-secondary);margin:0}.question-text{font-family:var(--font-family-body);font-size:var(--font-size-lg);font-weight:600;line-height:var(--line-height-normal);color:var(--color-text-primary);margin-bottom:var(--space-6)}.result-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.result-icon.correct{color:var(--color-success)}.result-icon.incorrect{color:var(--color-error)}.result-icon svg{width:20px;height:20px;stroke-width:2.5}.question-header-left{display:flex;align-items:center;gap:8px}.ai-explain-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;font-size:var(--font-size-sm);font-weight:500;line-height:1.5;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;user-select:none;-webkit-user-select:none}.ai-explain-btn:hover{background:var(--color-accent-light);border-color:var(--color-text-tertiary);color:var(--color-text-primary)}.ai-explain-btn:active{transform:translateY(1px)}.ai-explain-btn:focus-visible{outline:none;border-color:#0f172a66;box-shadow:inset 0 0 0 1px #0f172a26}.ai-explain-btn--active{background:#0f172a0a;border-color:#0f172a33}.ai-explain-btn--active:hover{background:#0f172a0f;border-color:#0f172a40}.ai-explain-btn--idle .ai-explain-icon{width:16px;height:16px;stroke-width:1.5}.ai-explain-btn--loading{cursor:wait;opacity:.7}.ai-explain-btn--loading:hover{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.ai-explain-btn--loading .ai-explain-icon{width:16px;height:16px;animation:spin 1s linear infinite}.ai-explain-btn--cached .ai-explain-icon{width:16px;height:16px;stroke-width:1.5}.ai-explain-text{font-size:var(--font-size-sm)}.ai-explain-error{margin-top:12px;font-size:14px}.explanation-popover{position:absolute;top:calc(100% + 8px);right:0;min-width:400px;max-width:600px;background:#fffefc;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-4);z-index:1000;animation:popoverFadeInRight .2s cubic-bezier(.4,0,.2,1);color:var(--color-text-primary)}.explanation-popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.explanation-popover-title{display:flex;align-items:center;font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);margin:0}.popover-title-icon{display:inline-flex;align-items:center;margin-right:8px}.explanation-popover-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.explanation-popover-close:hover{background:var(--color-accent-light);color:var(--color-text-primary)}.explanation-popover-close .close-icon{width:16px;height:16px}.explanation-popover-divider{height:1px;background:var(--color-border-subtle);margin:var(--space-3) 0}.explanation-popover-content{font-size:var(--font-size-sm);line-height:1.6;max-height:400px;overflow-y:auto}.explanation-popover-content p{margin:0 0 var(--space-3) 0;color:inherit}.explanation-popover-content p:last-child{margin-bottom:0}.explanation-popover-content strong{font-weight:600}.explanation-popover-content em{font-style:italic}.explanation-popover-content ul,.explanation-popover-content ol{margin:0 0 var(--space-3) 0;padding-left:var(--space-5)}.explanation-popover-content li{margin-bottom:var(--space-2)}.explanation-popover-content code{background:var(--color-accent-light);padding:2px 6px;border-radius:var(--radius-sm);font-family:Monaco,Courier New,monospace;font-size:.9em}.explanation-popover-content pre{background:var(--color-accent-light);padding:var(--space-3);border-radius:var(--radius-sm);overflow-x:auto;margin:0 0 var(--space-3) 0}.explanation-popover-content pre code{background:transparent;padding:0}.explanation-popover-content blockquote{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-border);background:#f5f4f0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.explanation-popover-content blockquote p{margin:0}.ai-disclaimer{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);text-align:center}.options-review{margin:var(--space-6) 0 var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-3)}.option-review{padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-base);line-height:var(--line-height-normal);transition:all .2s cubic-bezier(.4,0,.2,1)}.option-review.correct-answer{background-color:#f0fdf4;border-color:#bbf7d0;color:#047857}.option-review.user-wrong-answer{background-color:#fef2f2;border-color:#fecaca;color:#b91c1c}.option-review.user-correct-answer{background-color:#f0fdf4;border-color:#bbf7d0;color:#047857}.no-answer{padding:var(--space-4) var(--space-5);background-color:#f9fafb;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-style:italic;text-align:center;font-size:var(--font-size-base);font-weight:400;margin-top:var(--space-3)}.review-actions{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding-top:var(--space-8);margin:0 calc(-1 * var(--space-16)) calc(-1 * var(--space-16)) calc(-1 * var(--space-16));padding-left:var(--space-16);padding-right:var(--space-16);padding-bottom:var(--space-16);flex-wrap:wrap;text-align:center;width:auto}.scroll-progress-bar{position:fixed;top:var(--nav-height);left:0;width:100%;height:3px;background:transparent;z-index:101;pointer-events:none}.scroll-progress-fill{height:100%;background:linear-gradient(to bottom,#60a5fa,#3b82f6);transition:width .1s ease-out;box-shadow:0 0 0 .5px #3b82f633;will-change:width}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:420px;width:100%;max-height:90vh;overflow:hidden;border:1px solid var(--color-border);animation:modalFadeIn .15s cubic-bezier(.4,0,.2,1)}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{padding:var(--space-6) var(--space-6) var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.modal-title{margin:0;font-family:var(--font-family-body);font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary);text-align:center}.modal-body{padding:var(--space-4) var(--space-6) var(--space-6) var(--space-6)}.modal-text{margin:0;color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.modal-actions{display:flex;gap:var(--space-3);padding:0 var(--space-6) var(--space-6) var(--space-6);justify-content:center}.modal-actions button{flex:1;max-width:120px}.recovery-modal{max-width:500px;width:90%}.recovery-info{text-align:left}.quiz-details h4{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600}.quiz-progress{margin:var(--space-1) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:700}.progress-percent{color:var(--color-accent);font-weight:600;margin-left:var(--space-1)}.quiz-timestamp{margin:var(--space-1) 0 var(--space-4) 0;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.recovery-progress{margin:var(--space-4) 0}.recovery-explanation{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius-md);padding:var(--space-3);margin-top:var(--space-4)}.recovery-explanation p{margin:0 0 var(--space-2) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.recovery-explanation p:last-child{margin-bottom:0}.recovery-continue{flex:1}.recovery-discard{flex:0 0 auto;min-width:120px}.notification-container{position:fixed;top:32px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:12px;max-width:420px;width:90%;pointer-events:none}.notification{background:#353535;border:1px solid #6E6E6E;border-radius:var(--radius-md);padding:var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);box-shadow:0 4px 16px #00000040;pointer-events:auto;cursor:pointer;animation:toastFadeIn .3s cubic-bezier(.4,0,.2,1);transition:all .2s ease;word-wrap:break-word;color:#fff}.notification.fade-out{animation:toastFadeOut .3s cubic-bezier(.4,0,.2,1) forwards}.notification:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000059}.notification-error,.notification-success,.notification-warning,.notification-info{background:#353535;border:1px solid #6E6E6E}.notification-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.error-icon,.success-icon,.warning-icon,.info-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:#fff}.error-icon svg,.success-icon svg,.warning-icon svg,.info-icon svg{width:16px;height:16px}.notification-message{flex:1;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:#fff}.notification-close{background:none;border:none;font-size:18px;line-height:1;cursor:pointer;color:#ffffffb3;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;flex-shrink:0}.notification-close:hover{background-color:#ffffff1a;color:#fff}@keyframes toastFadeIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastFadeOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}.user-menu-container{position:relative;display:inline-block}.user-menu-trigger{display:flex;align-items:center;gap:var(--space-2);height:48px;padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);font-family:var(--font-family-body)}.user-menu-trigger:hover{background:#00000008;border-color:#0000000f}.user-menu-trigger[aria-expanded=true]{background:#0000000d;border-color:#0000001a}.trigger-avatar,.popover-avatar{position:relative;flex-shrink:0}.trigger-avatar{width:32px;height:32px}.popover-avatar{width:48px;height:48px}.trigger-profile-picture,.popover-profile-picture{border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.8)}.trigger-profile-picture{width:32px;height:32px;box-shadow:0 1px 3px #0000001a}.popover-profile-picture{width:48px;height:48px;box-shadow:0 2px 4px #0000001a}.trigger-profile-placeholder,.popover-profile-placeholder{border-radius:50%;background:linear-gradient(135deg,#2080ff,#1a6bdb);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;border:2px solid rgba(255,255,255,.8)}.trigger-profile-placeholder{width:32px;height:32px;font-size:var(--font-size-sm);box-shadow:0 1px 3px #0000001a}.popover-profile-placeholder{width:48px;height:48px;font-size:var(--font-size-lg);box-shadow:0 2px 4px #0000001a}.trigger-user-name{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;line-height:1}.plan-badge-pro{background:linear-gradient(135deg,#07f,#c421ff);color:#fff;box-shadow:inset 0 1px #fff3,0 1px 2px #0077ff4d}.plan-badge-free{background:linear-gradient(135deg,#2080ff,#1a6bdb);color:#fff;box-shadow:inset 0 1px #fff3,0 1px 2px #2080ff4d}.user-menu-popover{position:absolute;top:calc(100% + 8px);right:0;min-width:300px;background:#fffefc;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-4);z-index:1000;animation:popoverFadeInRight .2s cubic-bezier(.4,0,.2,1)}@keyframes popoverFadeInRight{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.popover-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.popover-user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.popover-display-name{font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover-email{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover-divider{height:1px;background:var(--color-border-subtle);margin:var(--space-3) 0}.credits-section{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-1) 0}.credits-header{display:flex;justify-content:space-between;align-items:center}.credits-label{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:600}.credits-fraction,.credits-renewal{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:400}.popover-sign-out{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);background:linear-gradient(to bottom,#f5f5f5,#e5e5e5);color:var(--color-text-primary);border:1px solid #d1d5db;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px #fff3}.popover-sign-out:hover{background:linear-gradient(to bottom,#ececec,#ddd);border-color:#c4c7ca}.popover-sign-out:active{background:linear-gradient(to bottom,#d5d5d5,#f5f5f5);box-shadow:inset 0 1px 2px #0003;transform:translateY(1px)}.sign-out-icon{width:16px;height:16px;flex-shrink:0}.custom-prompt-button-wrapper{position:relative}.custom-prompt-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;z-index:999}.custom-prompt-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:400px;max-width:500px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-4);z-index:1000;animation:popoverFadeInCentered .2s cubic-bezier(.4,0,.2,1)}@keyframes popoverFadeInCentered{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.custom-prompt-content{display:flex;flex-direction:column;gap:var(--space-2)}.custom-prompt-textarea{width:100%;min-height:120px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:inherit;color:var(--color-text-primary);background:#fff;resize:vertical;transition:border-color .15s ease}.custom-prompt-textarea:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a}.custom-prompt-textarea::placeholder{color:var(--color-text-secondary)}.custom-prompt-textarea:disabled{background:#f5f5f5;cursor:not-allowed}.custom-prompt-footer{display:flex;justify-content:flex-end;align-items:center}.custom-prompt-counter{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:400}.custom-prompt-counter.over-limit{color:#e74c3c;font-weight:600}.btn-secondary-gray{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) 20px;background:linear-gradient(to bottom,#f5f5f5,#e5e5e5);color:var(--color-text-primary);border:1px solid #d1d5db;border-radius:var(--radius-md);font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px #fff3;white-space:nowrap;position:relative;user-select:none;-webkit-user-select:none}.btn-secondary-gray:hover:not(:disabled){background:linear-gradient(to bottom,#ececec,#ddd);border-color:#c4c7ca}.btn-secondary-gray:active:not(:disabled){background:linear-gradient(to bottom,#d5d5d5,#f5f5f5);box-shadow:inset 0 1px 2px #0003;transform:translateY(1px)}.btn-secondary-gray:disabled{opacity:.5;cursor:not-allowed}.btn-secondary-gray[aria-expanded=true]{background:linear-gradient(to bottom,#e5e5e5,#d5d5d5);border-color:#b8bcc2;box-shadow:inset 0 1px 2px #00000026}.btn-secondary-gray[aria-expanded=true]:hover{background:linear-gradient(to bottom,#ddd,#ccc);border-color:#b8bcc2;box-shadow:inset 0 1px 2px #00000026}@media (max-width: 768px){.custom-prompt-popover{min-width:320px;max-width:calc(100vw - 32px);left:50%;transform:translate(-50%)}}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;margin-right:var(--space-2)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{display:flex;align-items:center;justify-content:center;padding:var(--space-16);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-secondary);gap:var(--space-3)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.loader-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);transform:translateY(-24px)}.error{background-color:var(--color-error-bg);color:var(--color-error);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-error-border);margin-bottom:var(--space-6);font-size:var(--font-size-sm);font-weight:700;text-align:center}.error-boundary{text-align:center;padding:var(--space-6);max-width:600px;margin:0 auto}.error-boundary h1{color:var(--color-error);margin-bottom:var(--space-4)}.error-boundary p{color:var(--color-text-secondary);margin-bottom:var(--space-5);line-height:1.6}.error-details{text-align:left;margin:var(--space-4) 0;padding:var(--space-3);background:var(--color-accent-light);border-radius:var(--radius-md);border:1px solid var(--color-border)}.error-details summary{cursor:pointer;font-weight:600;margin-bottom:var(--space-2);color:var(--color-text-primary)}.error-details pre{font-size:var(--font-size-xs);white-space:pre-wrap;margin:var(--space-2) 0;color:var(--color-text-tertiary);overflow-x:auto}.error-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.rotating-text{display:inline-block;position:relative;height:1.5em;overflow:hidden;vertical-align:top;min-width:160px;text-align:center}.rotating-word{position:absolute;width:100%;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s ease;opacity:1;transform:translateY(0)}.rotating-word.slide-out{transform:translateY(-100%);opacity:0}.rotating-word.slide-in{transform:translateY(100%);opacity:0}.rotating-word.active{transform:translateY(0);opacity:1}.components{display:none}.app-footer{text-align:center;padding:var(--space-8) var(--space-4);color:#fff;font-size:var(--font-size-sm);margin-top:var(--space-16)}*:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (max-width: 60rem){.container{width:calc(100vw - var(--space-8));max-width:56rem;padding:var(--space-8);margin:var(--space-4)}main{padding:var(--space-4)}.top-nav-container{padding:0 var(--space-3)}.app-title{font-size:var(--font-size-lg)}}@media (max-width: 768px){.notification-container{width:95%;max-width:420px}.recovery-modal{width:95%;max-width:none}.modal-actions{flex-direction:column}.recovery-discard{min-width:auto}.error-actions{flex-direction:column;align-items:center}.error-actions .btn{min-width:200px}.user-menu-popover{right:-8px;left:auto;min-width:280px;max-width:calc(100vw - 32px)}.explanation-popover{right:-8px;left:auto;min-width:320px;max-width:calc(100vw - 32px)}.trigger-user-name{display:none}.trigger-avatar{width:28px;height:28px}.trigger-profile-picture,.trigger-profile-placeholder{width:28px;height:28px;font-size:var(--font-size-xs)}}@media (max-width: 480px){.container{width:calc(100vw - var(--space-4));padding:var(--space-6);margin:var(--space-2)}.homepage-title{font-size:var(--font-size-2xl);margin-bottom:var(--space-3)}.homepage-subtitle{margin-bottom:var(--space-8)}main{padding:var(--space-2)}.score-ring-wrapper,.score-ring-svg{width:160px;height:160px}.score-ring-text{font-size:28px}.score-ring-details{font-size:var(--font-size-sm)}.score-ring-container{gap:24px}.modal-container{margin:var(--space-4);max-width:none}.modal-actions{flex-direction:column}.modal-actions button{max-width:none}.user-menu-popover{right:-4px;min-width:260px}.explanation-popover{right:-4px;min-width:300px;max-width:calc(100vw - 24px)}.popover-header{gap:var(--space-2)}.popover-avatar{width:40px;height:40px}.popover-profile-picture,.popover-profile-placeholder{width:40px;height:40px;font-size:var(--font-size-base)}.ai-explain-btn{padding:8px;gap:0}.ai-explain-text{display:none}.ai-explain-icon{margin:0}.question-header-left{gap:6px}.question-number{font-size:var(--font-size-sm)}}
