@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-sky-blue: #5BA3D1;--color-sky-blue-dark: #4A8FBD;--color-sky-blue-light: #8CC4E8;--color-sky-blue-pale: #E8F4FA;--color-navy: #2B4B6F;--color-navy-light: #3D6490;--color-accent-green: #7AC943;--color-accent-green-dark: #65B036;--color-accent-green-light: #C5E8A8;--color-white: #FFFFFF;--color-off-white: #F8FAFC;--color-slate-50: #F1F5F9;--color-slate-100: #E2E8F0;--color-slate-200: #CBD5E1;--color-slate-300: #94A3B8;--color-slate-400: #64748B;--color-slate-500: #475569;--color-slate-600: #334155;--color-slate-700: #1E293B;--color-error: #DC2626;--color-error-light: #FEE2E2;--color-success: #16A34A;--color-success-light: #DCFCE7;--color-processing: #5BA3D1;--color-processing-light: #E8F4FA;--font-heading: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--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: 2rem;--font-size-4xl: 2.5rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--letter-spacing-wider: .1em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3rem;--space-9: 4rem;--space-10: 5rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(43, 75, 111, .05);--shadow-md: 0 4px 6px -1px rgba(43, 75, 111, .1), 0 2px 4px -2px rgba(43, 75, 111, .1);--shadow-lg: 0 10px 15px -3px rgba(43, 75, 111, .1), 0 4px 6px -4px rgba(43, 75, 111, .1);--shadow-glass: 0 8px 32px rgba(43, 75, 111, .12);--shadow-button: 0 4px 14px rgba(91, 163, 209, .3);--shadow-button-green: 0 4px 14px rgba(122, 201, 67, .3);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-strong: rgba(255, 255, 255, .85);--glass-border: rgba(255, 255, 255, .5);--glass-blur: 12px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-slate-700);background:linear-gradient(135deg,var(--color-sky-blue-pale) 0%,var(--color-off-white) 50%,#F0FDF4 100%);min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:var(--line-height-tight);color:var(--color-slate-700)}p{margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}a{color:var(--color-sky-blue-dark);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-sky-blue)}::selection{background:var(--color-sky-blue-light);color:var(--color-navy)}:focus-visible{outline:2px solid var(--color-sky-blue);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-slate-100)}::-webkit-scrollbar-thumb{background:var(--color-slate-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-slate-400)}.glass-card{background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-glass);border-radius:var(--radius-xl)}@media(max-width:640px){:root{--font-size-3xl: 1.75rem;--font-size-2xl: 1.375rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem}}.landing{min-height:100vh;display:flex;flex-direction:column}.landing-header{position:sticky;top:0;z-index:100;background:var(--color-white);border-bottom:1px solid var(--color-slate-100);box-shadow:var(--shadow-sm)}.landing-header-content{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.landing-logo-group{display:flex;align-items:center;gap:.75rem}.landing-logo{width:40px;height:40px;object-fit:contain}.landing-logo-text{font-family:var(--font-heading);font-size:var(--font-size-xl);font-weight:700;color:var(--color-navy)}.landing-nav{display:flex;gap:2rem}.landing-nav a{font-size:var(--font-size-sm);font-weight:500;color:var(--color-slate-600);text-decoration:none;transition:color var(--transition-fast)}.landing-nav a:hover{color:var(--color-sky-blue-dark)}.landing-signin-btn{padding:.5rem 1.25rem;background:transparent;color:var(--color-sky-blue-dark);border:2px solid var(--color-sky-blue-dark);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.landing-signin-btn:hover{background:var(--color-sky-blue-dark);color:var(--color-white)}.landing-hero{padding:5rem 2rem 4rem;background:var(--color-white);border-bottom:1px solid var(--color-slate-100)}.landing-hero-content{max-width:800px;margin:0 auto;text-align:center}.landing-hero-badge{display:inline-block;padding:.5rem 1rem;background:var(--color-sky-blue-pale);color:var(--color-sky-blue-dark);font-size:var(--font-size-sm);font-weight:600;border-radius:var(--radius-full);margin-bottom:1.5rem}.landing-hero-title{font-size:3.25rem;font-weight:700;color:var(--color-navy);margin-bottom:1.5rem;letter-spacing:var(--letter-spacing-tight);line-height:1.15}.landing-hero-highlight{color:var(--color-sky-blue)}.landing-hero-subtitle{font-size:var(--font-size-lg);color:var(--color-slate-500);margin-bottom:2.5rem;line-height:var(--line-height-relaxed);max-width:640px;margin-left:auto;margin-right:auto}.landing-hero-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:3rem}.landing-hero-stats{display:flex;justify-content:center;align-items:center;gap:2rem;padding-top:2rem;border-top:1px solid var(--color-slate-100)}.landing-stat{text-align:center}.landing-stat-number{display:block;font-family:var(--font-heading);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-navy);margin-bottom:.25rem}.landing-stat-label{font-size:var(--font-size-sm);color:var(--color-slate-500)}.landing-stat-divider{width:1px;height:40px;background:var(--color-slate-200)}.landing-cta-primary{padding:.875rem 2rem;background:var(--color-sky-blue);color:var(--color-white);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-button)}.landing-cta-primary:hover{background:var(--color-sky-blue-dark)}.landing-cta-large{padding:1rem 2.5rem;font-size:var(--font-size-lg)}.landing-cta-secondary{display:inline-flex;align-items:center;padding:.875rem 2rem;background:transparent;color:var(--color-slate-600);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.landing-cta-secondary:hover{border-color:var(--color-slate-400);color:var(--color-slate-700)}.landing-features{padding:5rem 2rem;background:var(--color-slate-50)}.landing-section-content{max-width:1200px;margin:0 auto}.landing-section-title{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-navy);text-align:center;margin-bottom:.75rem}.landing-section-subtitle{font-size:var(--font-size-lg);color:var(--color-slate-500);text-align:center;margin-bottom:3rem}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.landing-feature-card{position:relative;background:var(--color-white);border:1px solid var(--color-slate-100);border-radius:var(--radius-lg);padding:2rem;text-align:center;transition:all var(--transition-normal)}.landing-feature-card:hover{border-color:var(--color-sky-blue-light);box-shadow:var(--shadow-md)}.landing-feature-step{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:28px;height:28px;background:var(--color-sky-blue);color:var(--color-white);font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.landing-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--color-sky-blue-pale);color:var(--color-sky-blue-dark);border-radius:var(--radius-lg);margin-bottom:1.5rem}.landing-feature-icon-accent{background:var(--color-accent-green-light);color:var(--color-accent-green-dark)}.landing-feature-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-slate-700);margin-bottom:.75rem}.landing-feature-description{font-size:var(--font-size-base);color:var(--color-slate-500);line-height:var(--line-height-relaxed)}.landing-pdf-highlight{padding:5rem 2rem;background:var(--color-white);border-bottom:1px solid var(--color-slate-100)}.landing-pdf-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.landing-pdf-text .landing-section-title{text-align:left;margin-bottom:1rem}.landing-pdf-description{font-size:var(--font-size-lg);color:var(--color-slate-600);margin-bottom:2rem}.landing-pdf-list{list-style:none;margin-bottom:2rem}.landing-pdf-list li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--color-slate-100)}.landing-pdf-list li:last-child{border-bottom:none}.landing-pdf-list li .landing-check-icon{margin-top:.25rem}.landing-pdf-list li div{display:flex;flex-direction:column;gap:.25rem}.landing-pdf-list li strong{font-weight:600;color:var(--color-slate-700)}.landing-pdf-list li span{font-size:var(--font-size-sm);color:var(--color-slate-500)}.landing-pdf-preview{display:flex;justify-content:center}.landing-pdf-mockup{width:100%;max-width:320px;background:var(--color-white);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.landing-pdf-mockup-header{display:flex;gap:6px;padding:12px 16px;background:var(--color-slate-50);border-bottom:1px solid var(--color-slate-200)}.landing-pdf-mockup-dot{width:10px;height:10px;border-radius:50%;background:var(--color-slate-300)}.landing-pdf-mockup-content{padding:1.5rem}.landing-pdf-mockup-title{font-family:var(--font-heading);font-size:var(--font-size-base);font-weight:600;color:var(--color-navy);margin-bottom:1.5rem;text-align:center}.landing-pdf-mockup-section{margin-bottom:1.25rem}.landing-pdf-mockup-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-sky-blue-dark);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.landing-pdf-mockup-line{height:8px;background:var(--color-slate-100);border-radius:4px;margin-bottom:.5rem}.landing-pdf-mockup-line.short{width:70%}.landing-pdf-mockup-option{height:24px;background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:4px;margin-bottom:.5rem}.landing-pdf-mockup-vocab{height:20px;background:var(--color-accent-green-light);border-radius:4px;margin-bottom:.5rem;opacity:.6}.landing-benefits{padding:5rem 2rem;background:var(--color-slate-50)}.landing-benefits-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.landing-benefit-card{background:var(--color-white);border:1px solid var(--color-slate-100);border-radius:var(--radius-lg);padding:2rem;transition:all var(--transition-normal)}.landing-benefit-card:hover{border-color:var(--color-sky-blue-light);box-shadow:var(--shadow-md)}.landing-benefit-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-accent-green-light);color:var(--color-accent-green-dark);border-radius:var(--radius-md);margin-bottom:1rem}.landing-benefit-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-slate-700);margin-bottom:.5rem}.landing-benefit-description{font-size:var(--font-size-base);color:var(--color-slate-500);line-height:var(--line-height-relaxed)}.landing-pricing{padding:5rem 2rem;background:var(--color-white)}.landing-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;align-items:start}.landing-pricing-card{position:relative;background:var(--color-white);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);padding:2rem;text-align:center;transition:all var(--transition-normal)}.landing-pricing-card:hover{border-color:var(--color-sky-blue-light);box-shadow:var(--shadow-md)}.landing-pricing-card-featured{border:2px solid var(--color-sky-blue);box-shadow:var(--shadow-lg);transform:scale(1.02)}.landing-pricing-card-featured:hover{border-color:var(--color-sky-blue-dark)}.landing-pricing-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:.375rem 1rem;background:var(--color-sky-blue);color:var(--color-white);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);border-radius:var(--radius-full)}.landing-pricing-header{padding-bottom:1.5rem;border-bottom:1px solid var(--color-slate-100);margin-bottom:1.5rem}.landing-pricing-name{font-size:var(--font-size-xl);font-weight:600;color:var(--color-slate-700);margin-bottom:.5rem}.landing-pricing-price{margin-bottom:.5rem}.landing-price-amount{font-size:var(--font-size-4xl);font-weight:700;color:var(--color-navy)}.landing-price-period{font-size:var(--font-size-base);color:var(--color-slate-400)}.landing-pricing-description{font-size:var(--font-size-sm);color:var(--color-slate-500)}.landing-pricing-features{list-style:none;text-align:left;margin-bottom:2rem}.landing-pricing-features li{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;font-size:var(--font-size-sm);color:var(--color-slate-600);border-bottom:1px solid var(--color-slate-50)}.landing-pricing-features li:last-child{border-bottom:none}.landing-check-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--color-accent-green-light);color:var(--color-accent-green-dark);font-size:12px;font-weight:700;border-radius:var(--radius-full);flex-shrink:0}.landing-pricing-btn{width:100%;padding:.875rem 1.5rem;background:var(--color-white);color:var(--color-sky-blue-dark);border:2px solid var(--color-sky-blue-dark);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.landing-pricing-btn:hover{background:var(--color-sky-blue-pale)}.landing-pricing-btn-featured{background:var(--color-sky-blue);color:var(--color-white);border-color:var(--color-sky-blue);box-shadow:var(--shadow-button)}.landing-pricing-btn-featured:hover{background:var(--color-sky-blue-dark);border-color:var(--color-sky-blue-dark)}.landing-final-cta{padding:5rem 2rem;background:var(--color-navy);text-align:center}.landing-final-cta-title{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-white);margin-bottom:1rem}.landing-final-cta-subtitle{font-size:var(--font-size-lg);color:var(--color-slate-300);margin-bottom:2rem;max-width:600px;margin-left:auto;margin-right:auto}.landing-final-cta .landing-cta-primary{background:var(--color-accent-green);box-shadow:var(--shadow-button-green)}.landing-final-cta .landing-cta-primary:hover{background:var(--color-accent-green-dark)}.landing-footer{margin-top:auto;padding:2rem;background:var(--color-slate-50);border-top:1px solid var(--color-slate-100)}.landing-footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.landing-footer-brand{display:flex;align-items:center;gap:.5rem}.landing-footer-logo{width:28px;height:28px;object-fit:contain}.landing-footer-name{font-family:var(--font-heading);font-size:var(--font-size-base);font-weight:600;color:var(--color-navy)}.landing-footer-copyright{font-size:var(--font-size-sm);color:var(--color-slate-400);margin:0}@media(max-width:1024px){.landing-features-grid,.landing-pricing-grid{grid-template-columns:repeat(2,1fr)}.landing-pricing-card-featured{transform:none}.landing-pdf-content{grid-template-columns:1fr;gap:3rem}.landing-pdf-text .landing-section-title,.landing-pdf-description{text-align:center}.landing-pdf-text .landing-cta-primary{display:block;width:fit-content;margin:0 auto}}@media(max-width:768px){.landing-nav{display:none}.landing-header-content{padding:1rem}.landing-hero{padding:3rem 1.5rem 2.5rem}.landing-hero-title{font-size:2.25rem}.landing-hero-subtitle{font-size:var(--font-size-base)}.landing-hero-stats{flex-direction:column;gap:1.5rem}.landing-stat-divider{width:40px;height:1px}.landing-features,.landing-pricing,.landing-benefits,.landing-pdf-highlight{padding:3rem 1.5rem}.landing-section-title{font-size:var(--font-size-2xl)}.landing-benefits-grid{grid-template-columns:1fr}.landing-final-cta{padding:3rem 1.5rem}.landing-final-cta-title{font-size:var(--font-size-2xl)}}@media(max-width:640px){.landing-features-grid,.landing-pricing-grid{grid-template-columns:1fr}.landing-hero-actions{flex-direction:column;align-items:stretch}.landing-cta-primary,.landing-cta-secondary{width:100%;justify-content:center}.landing-footer-content{flex-direction:column;gap:1rem;text-align:center}.landing-pdf-mockup{max-width:280px}}.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-slate-50);padding:var(--space-6);position:relative}.login-back-btn{position:absolute;top:var(--space-6);left:var(--space-6);display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-white);color:var(--color-slate-600);border:1px solid var(--color-slate-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.login-back-btn:hover{background:var(--color-slate-50);border-color:var(--color-slate-300);color:var(--color-slate-700)}.login-brand{text-align:center;margin-bottom:var(--space-7)}.brand-logo{display:block;width:80px;height:80px;margin:0 auto var(--space-4);object-fit:contain;filter:drop-shadow(0 4px 12px rgba(91,163,209,.3))}.brand-name{font-family:var(--font-heading);font-size:var(--font-size-3xl);font-weight:700;color:var(--color-navy);margin:0 0 var(--space-2);letter-spacing:var(--letter-spacing-tight)}.brand-tagline{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-slate-400);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;margin:0}.login-form{background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:var(--space-8);border-radius:var(--radius-xl);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass);width:100%;max-width:380px;position:relative;overflow:hidden}.login-form:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-sky-blue)}.form-title{font-family:var(--font-heading);font-size:var(--font-size-2xl);font-weight:600;color:var(--color-navy);margin:0 0 var(--space-6);text-align:center}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;margin-bottom:var(--space-2);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:500;color:var(--color-slate-500);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.form-group input{width:100%;padding:var(--space-4);border:1px solid var(--color-slate-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-slate-700);background:var(--color-white);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.form-group input::placeholder{color:var(--color-slate-400)}.form-group input:focus{outline:none;border-color:var(--color-sky-blue);box-shadow:0 0 0 3px #5ba3d133}.login-form button[type=submit]{width:100%;padding:var(--space-4);background:var(--color-sky-blue);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:600;cursor:pointer;margin-top:var(--space-4);box-shadow:var(--shadow-button);transition:all var(--transition-normal)}.login-form button[type=submit]:hover:not(:disabled){background:var(--color-sky-blue-dark);box-shadow:0 6px 20px #5ba3d166;transform:translateY(-1px)}.login-form button[type=submit]:active:not(:disabled){transform:translateY(0)}.login-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:var(--color-error-light);color:var(--color-error);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5);text-align:center;font-size:var(--font-size-sm);border:1px solid rgba(220,38,38,.2)}@media(max-width:640px){.login-container{padding:var(--space-4)}.login-form{padding:var(--space-6)}.login-brand{margin-bottom:var(--space-5)}}.workspace{max-width:700px;margin:0 auto}.upload-zone{margin-bottom:2rem}.upload-zone input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.upload-zone label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;border:2px dashed var(--color-sky-blue);border-radius:var(--radius-xl);background:#5ba3d108;cursor:pointer;transition:all .2s ease}.upload-zone label:hover{background:#5ba3d114;border-color:var(--color-sky-blue-dark);border-style:solid}.upload-zone label:focus-within{outline:2px solid var(--color-sky-blue);outline-offset:2px}.upload-icon{font-size:2.5rem;font-weight:300;color:var(--color-sky-blue);line-height:1;margin-bottom:.75rem}.upload-text{font-size:1.125rem;font-weight:500;color:var(--color-slate-700)}.upload-hint{font-size:.8rem;color:var(--color-slate-400);margin-top:.5rem}.error-banner{padding:1rem 1.25rem;background:var(--color-error-light);color:var(--color-error);border-left:3px solid var(--color-error);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:1.5rem;font-size:.9rem}.error-banner p{margin:0}.error-banner details{margin-top:.75rem}.error-banner summary{cursor:pointer;font-weight:500;font-size:.85rem}.error-banner pre{margin-top:.5rem;padding:.75rem;background:var(--color-white);border-radius:4px;overflow-x:auto;font-family:var(--font-mono);font-size:.75rem;white-space:pre-wrap;word-break:break-word}.processing{display:flex;align-items:center;gap:1rem;padding:1.5rem;color:var(--color-slate-600);font-size:.95rem;background:var(--color-white);border-radius:var(--radius-lg);border:1px solid var(--color-slate-100);box-shadow:var(--shadow-sm)}.spinner{width:20px;height:20px;border:2px solid var(--color-slate-200);border-top-color:var(--color-sky-blue);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.loading-message{animation:fadeIn .4s ease}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.preview{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--color-slate-200);margin-bottom:2rem}.preview img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.preview-name{font-size:.85rem;color:var(--color-slate-400)}.exercises-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--color-slate-200)}.exercises-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.download-pdf-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--color-white);background:linear-gradient(135deg,var(--color-accent-green) 0%,var(--color-accent-green-dark) 100%);border:none;border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-button-green);transition:all .2s ease}.download-pdf-btn:hover{box-shadow:0 6px 20px #7ac94366;transform:translateY(-1px)}.download-pdf-btn:focus{outline:none}.download-pdf-btn:focus-visible{outline:2px solid var(--color-accent-green);outline-offset:2px}.download-pdf-btn:active{transform:translateY(0)}.download-pdf-btn svg{flex-shrink:0}.language-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent-green-dark);background:var(--color-accent-green-light);padding:.25rem .75rem;border-radius:100px}.topics{display:flex;flex-wrap:wrap;gap:.5rem}.topic{font-size:.8rem;color:var(--color-slate-500)}.topic:not(:last-child):after{content:"·";margin-left:.5rem;color:var(--color-slate-300)}.vocab-section{margin-bottom:2.5rem}.section-title{font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-slate-400);margin:0 0 1rem}.vocab-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin:0}.vocab-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-slate-100);transition:all .15s ease}.vocab-item:hover{border-color:var(--color-sky-blue-light);box-shadow:0 2px 8px #5ba3d11a}.vocab-list dt{font-weight:600;font-size:.95rem;color:var(--color-navy)}.vocab-list dd{color:var(--color-slate-500);font-size:.875rem;margin:0;line-height:1.4}.exercise-list{display:flex;flex-direction:column;gap:2.5rem}.exercise-type{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-navy);margin:0;padding-bottom:.5rem;border-bottom:2px solid var(--color-navy);display:inline-block}.exercise-instruction{font-style:italic;color:var(--color-slate-400);margin:.75rem 0 1.25rem;font-size:.9rem;line-height:1.5}.questions{display:flex;flex-direction:column}.question{padding:1rem 0 1rem 1.5rem;border-bottom:1px solid var(--color-slate-100);cursor:pointer;position:relative;transition:background .15s ease}.question:hover{background:#5ba3d10a}.question:focus{outline:none;background:#5ba3d10f}.question:focus-visible{outline:2px solid var(--color-sky-blue);outline-offset:-2px}.question:before{content:"+";position:absolute;left:0;top:1rem;font-size:1rem;font-weight:500;color:var(--color-sky-blue);transition:transform .2s ease}.question.revealed:before{content:"−"}.question-content{display:flex;gap:.5rem;line-height:1.6}.q-num{font-weight:600;color:var(--color-sky-blue-dark);flex-shrink:0}.q-text{color:var(--color-slate-700)}.options{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.75rem;padding-left:1.5rem}.option{font-size:.9rem;color:var(--color-slate-500)}.answer{max-height:0;overflow:hidden;opacity:0;transition:all .25s ease;margin-top:0}.question.revealed .answer{max-height:150px;opacity:1;margin-top:1rem;padding:.875rem 1rem;background:var(--color-accent-green-light);border-radius:var(--radius-md);color:var(--color-accent-green-dark);font-size:.9rem;line-height:1.5}.answer strong{font-weight:600}.results-summary{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--color-white);border-radius:var(--radius-lg);border:1px solid var(--color-slate-100);margin-bottom:2rem}.results-thumbnail{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.results-meta{display:flex;flex-direction:column;gap:.5rem;min-width:0;flex:1}.results-meta .topics{flex-wrap:wrap}.results-summary .download-pdf-btn{flex-shrink:0;align-self:center}.floating-download-btn{position:fixed;bottom:1.5rem;right:1.5rem;display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:var(--font-body);font-size:.9rem;font-weight:600;color:var(--color-white);background:linear-gradient(135deg,var(--color-accent-green) 0%,var(--color-accent-green-dark) 100%);border:none;border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 4px 20px #7ac94359;transition:box-shadow .2s ease,transform .2s ease;z-index:100;animation:floatBtnIn .3s ease-out}@keyframes floatBtnIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.floating-download-btn:hover{box-shadow:0 6px 24px #7ac94373;transform:translateY(-2px)}.floating-download-btn:focus{outline:none}.floating-download-btn:focus-visible{outline:2px solid var(--color-accent-green);outline-offset:2px}.floating-download-btn:active{transform:translateY(0)}.floating-download-btn svg{flex-shrink:0}.upload-zone--compact{margin-top:2.5rem;margin-bottom:4rem;animation:fadeSlideIn .4s ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.upload-zone--compact label{padding:1.5rem;border-style:dashed;background:transparent}.upload-zone--compact .upload-icon{font-size:1.5rem;margin-bottom:.5rem}.upload-zone--compact .upload-text{font-size:.95rem}.upload-zone--compact .upload-hint{font-size:.75rem}@media(max-width:600px){.workspace{padding:0 1rem}.upload-zone label{padding:2rem 1.5rem}.exercises-header{flex-direction:column;align-items:flex-start}.download-pdf-btn{width:100%;justify-content:center;padding:.75rem 1rem}.vocab-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.options{flex-direction:column;gap:.25rem}.results-summary{flex-direction:column;align-items:center;text-align:center}.results-meta{align-items:center}.results-meta .topics{justify-content:center}.results-summary .download-pdf-btn{width:100%;justify-content:center;margin-top:.5rem}.floating-download-btn{left:1rem;right:1rem;bottom:1rem;justify-content:center}.upload-zone--compact{margin-bottom:5rem}}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--color-sky-blue-pale) 0%,var(--color-off-white) 50%,#F0FDF4 100%)}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.5);box-shadow:0 1px 3px #2b4b6f0d;position:sticky;top:0;z-index:100}.brand{display:flex;align-items:center;gap:.625rem}.brand-logo{width:36px;height:36px;object-fit:contain}.brand-name{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-navy)}.user-section{display:flex;align-items:center;gap:1rem}.user-email{font-size:.85rem;color:var(--color-slate-400)}.sign-out{padding:.375rem .875rem;background:transparent;color:var(--color-slate-500);border:1px solid var(--color-slate-200);border-radius:6px;font-family:var(--font-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.sign-out:hover{background:var(--color-slate-50);border-color:var(--color-sky-blue);color:var(--color-sky-blue-dark)}.main{flex:1;padding:3rem 2rem}@media(max-width:600px){.header{padding:.75rem 1rem}.user-email{display:none}.main{padding:1.5rem 0}}
