@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@500;600;700;800&display=swap";.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border-default);width:240px;padding:var(--space-6) var(--space-4);z-index:10;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-logo{align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-6);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-4);display:flex}.sidebar-logo-icon{font-size:28px}.sidebar-logo-text{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--text-heading);font-weight:700}.sidebar-nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);transition:all var(--transition-fast);font-weight:500;text-decoration:none;display:flex}.sidebar-item:hover{background:var(--bg-secondary);color:var(--text-heading)}.sidebar-item.active{background:var(--brand-primary);color:#fff;font-weight:600}.app-main{background:var(--bg-primary);flex:1;min-height:100vh;margin-left:240px}.app-main .page-content{max-width:800px}.bottom-nav-mobile{display:none}@media (width<=768px){.sidebar{display:none}.app-main{margin-left:0;padding-bottom:72px}.app-main .page-content{max-width:100%}.bottom-nav-mobile{background:var(--surface);border-top:1px solid var(--border-default);padding:var(--space-2) 0;padding-bottom:max(var(--space-2), env(safe-area-inset-bottom));z-index:50;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-item{padding:var(--space-1) var(--space-2);color:var(--text-secondary);min-width:56px;transition:color var(--transition-fast);flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.mobile-nav-item.active{color:var(--brand-primary);font-weight:600}}.auth-page{min-height:100vh;padding:var(--space-5);background:linear-gradient(135deg,#1e293b 0%,#0f172a 50%,#1e1b4b 100%);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#f9731626 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:-50%;right:-30%}.auth-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#f973161a 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute;bottom:-40%;left:-20%}.auth-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-8);z-index:1;background:#fffffff7;position:relative;box-shadow:0 20px 60px #0000004d}.auth-logo{text-align:center;margin-bottom:var(--space-8)}.auth-logo-icon{margin-bottom:var(--space-2);font-size:48px;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.auth-app-name{font-size:var(--text-3xl);background:linear-gradient(135deg, var(--brand-primary), var(--cta));-webkit-text-fill-color:transparent;margin-bottom:var(--space-1);-webkit-background-clip:text;background-clip:text;font-weight:800}.auth-tagline{font-size:var(--text-sm);color:var(--text-secondary)}.auth-tabs{background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-6);padding:3px;display:flex}.auth-tab{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);border-radius:calc(var(--radius-md) - 3px);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1;font-weight:600}.auth-tab.active{background:var(--surface);color:var(--text-heading);box-shadow:var(--shadow-sm)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-form h3{font-size:var(--text-xl);text-align:center;margin-bottom:var(--space-2)}.auth-description{font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-2)}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-group label{font-size:var(--text-sm);color:var(--text-heading);font-weight:500}.password-wrapper{position:relative}.password-wrapper input{padding-right:44px}.password-toggle{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text-secondary)}.auth-success-msg{text-align:center;color:var(--success-dark);background:var(--success-light);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm)}.google-btn{margin-top:var(--space-2)}.google-btn svg{flex-shrink:0}.auth-legal{font-size:var(--text-xs);color:var(--text-muted);text-align:center;margin-top:var(--space-4);line-height:1.5}.auth-legal a{color:var(--brand-primary);text-decoration:underline}@media (width<=480px){.auth-container{padding:var(--space-6);border-radius:var(--radius-lg)}.auth-app-name{font-size:var(--text-2xl)}}.onboarding-page{min-height:100vh;padding:var(--space-5);background:linear-gradient(180deg, var(--bg-primary) 0%, #eef2ff 100%);justify-content:center;align-items:center;display:flex}.onboarding-container{width:100%;max-width:480px}.onboarding-progress{justify-content:center;gap:var(--space-3);margin-bottom:var(--space-8);display:flex}.progress-dot{background:var(--border-default);width:10px;height:10px;transition:all var(--transition-base);border-radius:50%}.progress-dot.active{background:var(--brand-primary);border-radius:var(--radius-full);width:28px}.onboarding-back{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;margin-bottom:var(--space-4);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;display:inline-flex}.onboarding-back:hover{color:var(--text-heading);background:var(--bg-secondary)}.onboarding-step{gap:var(--space-5);flex-direction:column;display:flex}.onboarding-title{font-size:var(--text-2xl);text-align:center;color:var(--text-heading)}.language-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.language-card{align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--surface);border:2px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;display:flex;position:relative}.language-card:hover:not(.disabled){border-color:var(--brand-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.language-card.selected{border-color:var(--brand-primary);background:var(--brand-primary-light);box-shadow:0 0 0 3px #f9731626}.language-card.disabled{opacity:.5;cursor:not-allowed}.language-flag{font-size:32px}.language-name{font-size:var(--text-sm);color:var(--text-heading);text-align:center;font-weight:600}.language-soon{font-size:var(--text-xs);color:var(--text-muted);background:var(--bg-secondary);border-radius:var(--radius-full);padding:1px 8px;position:absolute;top:6px;right:6px}.level-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.level-card{align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-3);background:var(--surface);border:2px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;display:flex}.level-card:hover{border-color:var(--cta);box-shadow:var(--shadow-md);transform:translateY(-2px)}.level-card.selected{border-color:var(--cta);background:var(--cta-light)}.level-code{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--text-heading);font-weight:700}.level-desc{font-size:var(--text-xs);color:var(--text-secondary);text-align:center}.onboarding-loading{align-items:center;gap:var(--space-4);color:var(--text-heading);flex-direction:column;display:flex}.onboarding-spinner{color:var(--brand-primary);animation:1s linear infinite spin}.onboarding-error{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--error-light);border-radius:var(--radius-md);color:var(--error-dark);text-align:center;flex-direction:column;display:flex}@media (width<=400px){.level-grid{grid-template-columns:repeat(2,1fr)}}.dash-content{gap:var(--space-6);padding-top:var(--space-8);flex-direction:column;display:flex}.dash-skeleton{gap:var(--space-4);flex-direction:column;display:flex}.dash-header{justify-content:space-between;align-items:flex-start;display:flex}.dash-greeting-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:3px;color:var(--text-muted);margin-bottom:var(--space-1);font-weight:700}.dash-name{font-size:var(--text-4xl);color:var(--text-heading);margin:0 0 var(--space-3);font-weight:800;line-height:1.1}.dash-badges{gap:var(--space-2);display:flex}.dash-badge{text-transform:uppercase;letter-spacing:1px;border-radius:var(--radius-full);border:1px solid #0000;padding:4px 12px;font-size:10px;font-weight:800}.dash-badge-cta{color:var(--cta);background:#fff7ed;border-color:#fed7aa}.dash-badge-neutral{background:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-default)}.dash-streak{align-items:center;gap:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-sm);color:var(--text-muted);font-size:var(--text-xl);background:#fff;font-weight:800;display:flex}.dash-streak-hot{color:var(--cta);background:#fff7ed;border-color:#fed7aa}.dash-hero{border-radius:var(--radius-lg);padding:var(--space-8)}.dash-hero-active{color:#fff;background:linear-gradient(135deg,#c2410c 0%,#f97316 55%,#fb923c 100%);box-shadow:0 8px 32px #f9731659}.dash-hero-active .dash-hero-title,.dash-hero-active .dash-hero-count,.dash-hero-active .dash-hero-stat-num{text-shadow:0 1px 6px #00000026}.dash-hero-done{border:1px solid var(--border-default);box-shadow:var(--shadow-md);background:#fff}.dash-hero-top{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.dash-hero-icon-wrap{padding:var(--space-3);border-radius:var(--radius-md);background:#fff3;display:flex}.dash-hero-label{text-transform:uppercase;letter-spacing:2px;opacity:.8;font-size:10px;font-weight:800}.dash-hero-count-block{margin-bottom:var(--space-8)}.dash-hero-title{font-size:var(--text-2xl);color:#fff;margin:0 0 var(--space-2);font-weight:800}.dash-hero-count-row{align-items:baseline;gap:var(--space-3);display:flex}.dash-hero-count{color:#fff;font-size:72px;font-weight:800;line-height:1}.dash-hero-count-label{font-size:var(--text-base);text-transform:uppercase;letter-spacing:2px;opacity:.7;font-weight:700}.dash-hero-stats{justify-content:center;gap:var(--space-8);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid #ffffff26;display:flex}.dash-hero-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.dash-hero-stat-num{font-size:var(--text-xl);color:#fff;font-weight:800}.dash-hero-stat-label{text-transform:uppercase;letter-spacing:2px;opacity:.6;font-size:9px;font-weight:700}.dash-hero-stat-divider{background:#fff3;align-self:stretch;width:1px}.dash-hero-done-inner{padding:var(--space-6) 0;align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;display:flex}.dash-done-icon{background:var(--success-light);border-radius:var(--radius-lg);border:1px solid #a7f3d0;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.dash-done-title{font-size:var(--text-2xl);color:var(--text-heading);margin:0;font-weight:800}.dash-done-sub{color:var(--text-secondary);max-width:360px;margin:0}.dash-actions{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=600px){.dash-actions{grid-template-columns:repeat(2,1fr)}}.dash-action-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);align-items:center;gap:var(--space-3);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;display:flex}.dash-action-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.dash-action-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:56px;height:56px;display:flex}.dash-action-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-size:11px;font-weight:700}.dash-section{gap:var(--space-3);flex-direction:column;display:flex}.dash-section-header{justify-content:space-between;align-items:center;display:flex}.dash-section-header h3{font-size:var(--text-xl);margin:0;font-weight:800}.btn-link{color:var(--cta);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.dash-continue-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);align-items:center;gap:var(--space-4);cursor:pointer;text-align:left;width:100%;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);background:#fff;display:flex}.dash-continue-card:hover{box-shadow:var(--shadow-md);border-color:var(--brand-primary)}.dash-continue-icon{border-radius:var(--radius-md);border:1px solid var(--border-default);flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.dash-continue-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.dash-continue-tag{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);font-size:10px;font-weight:800}.dash-continue-title{font-size:var(--text-base);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:700;overflow:hidden}.dash-continue-meta{align-items:center;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm);display:flex}.dash-progress-bar{background:var(--bg-secondary);border-radius:var(--radius-full);height:6px;margin-top:4px;overflow:hidden}.dash-progress-fill{background:var(--cta);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.dash-progress-pct{color:var(--text-secondary);flex-shrink:0;font-size:11px;font-weight:800}.dash-continue-empty{color:var(--text-muted);justify-content:center;gap:var(--space-2);font-size:var(--text-sm);border-style:dashed}.dash-progress-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-md);background:#fff}.dash-progress-card-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;display:flex}.dash-progress-card-header h3{font-size:var(--text-xl);margin:0 0 4px;font-weight:800}.dash-progress-card-sub{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin:0;font-size:11px;font-weight:600}.dash-progress-card-icon{background:var(--bg-secondary);padding:var(--space-3);border-radius:var(--radius-md);display:flex}.dash-words-count{align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.dash-words-num{color:var(--text-heading);font-size:56px;font-weight:800;line-height:1}.dash-words-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-weight:600}.dash-level-bar{background:var(--bg-secondary);border-radius:var(--radius-full);border:1px solid var(--border-default);height:10px;margin-bottom:var(--space-3);overflow:hidden}.dash-level-fill{background:linear-gradient(90deg, var(--success) 0%, #059669 100%);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.dash-level-labels{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);justify-content:space-between;font-size:10px;font-weight:700;display:flex}.dash-level-pct{color:var(--success)}.dash-week-badge{align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--success-light);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--success-dark);text-transform:uppercase;letter-spacing:1px;border:1px solid #a7f3d0;font-weight:700;display:flex}.dash-week-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px}.fp-root{background:#f8fafc;flex-direction:column;min-height:100vh;display:flex}.fp-header{z-index:10;background:#fff;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000f}.fp-back-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.fp-back-btn:hover{background:#f1f5f9}.fp-undo-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:99px;flex-shrink:0;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.fp-undo-btn:hover{background:#f1f5f9}.fp-progress-wrap{background:#e2e8f0;border-radius:99px;flex:1;height:8px;overflow:hidden}.fp-progress-bar{background:#f97316;border-radius:99px;height:100%;transition:width .4s}.fp-counter{color:#64748b;flex-shrink:0;font-size:13px;font-weight:700}.fp-main{flex:1;justify-content:center;align-items:center;padding:24px 16px 40px;display:flex}.fp-flip-wrap{flex-direction:column;align-items:center;gap:20px;width:100%;max-width:480px;display:flex}.fp-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;width:100%;min-height:360px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:visible;box-shadow:0 10px 30px #f9731614}.fp-card:not(.is-flipped):hover{transform:translateY(-2px);box-shadow:0 14px 36px #f973161f}.fp-card:focus-visible{outline-offset:2px;outline:3px solid #f97316}.fp-face{flex-direction:column;flex:1;display:flex}.fp-face--back,.fp-card.is-flipped .fp-face--front{display:none}.fp-card.is-flipped .fp-face--back{display:flex}.fp-card.is-flipped{cursor:default}.fp-card-head{border-bottom:1px solid #f1f5f9;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.fp-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fp-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:700}.fp-badge--warn{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.fp-badge--muted{color:#64748b;background:#f1f5f9}.fp-badge--stage{color:#f97316;background:#f973161a}.fp-card-controls{align-items:center;gap:2px;display:flex}.fp-icon-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,color .15s;display:flex}.fp-icon-btn:hover{color:#475569;background:#f1f5f9}.fp-menu-anchor{position:relative}.fp-dropdown{z-index:50;background:#fff;border:1px solid #e2e8f0;border-radius:10px;min-width:160px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.fp-dropdown-item{color:#334155;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:14px;transition:background .1s;display:flex}.fp-dropdown-item:hover{background:#f8fafc}.fp-dropdown-item--danger{color:#dc2626}.fp-dropdown-item--danger:hover{background:#fef2f2}.fp-card-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:28px 24px 20px;display:flex}.fp-card-img{object-fit:cover;border:2px solid #e2e8f0;border-radius:12px;width:100px;height:100px}.fp-word-group{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px;display:flex}.fp-article{color:#0891b2;font-size:22px;font-weight:600}.fp-word{color:#1e293b;margin:0;font-size:clamp(28px,6vw,40px);font-weight:800;line-height:1.1}.fp-plural{color:#94a3b8;font-size:14px}.fp-context{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;flex-direction:column;gap:4px;width:100%;padding:12px 16px;display:flex}.fp-context-sentence{color:#334155;margin:0;font-size:15px;line-height:1.5}.fp-context-trans{color:#94a3b8;margin:0;font-size:13px;font-style:italic}.fp-context-loading{color:#94a3b8;margin:0;font-size:13px;animation:1.5s ease-in-out infinite fp-pulse}@keyframes fp-pulse{0%,to{opacity:1}50%{opacity:.4}}.fp-flip-hint{color:#cbd5e1;letter-spacing:.3px;flex-shrink:0;margin:0;padding:10px 0;font-size:12px}.fp-card-body--back{text-align:left;align-items:flex-start}.fp-translation{color:#1e293b;margin:0 0 4px;font-size:clamp(22px,5vw,30px);font-weight:700}.fp-note{background:#f8fafc;border-left:3px solid #f97316;border-radius:10px;width:100%;padding:12px 14px}.fp-note-label{text-transform:uppercase;letter-spacing:.6px;color:#f97316;margin-bottom:4px;font-size:10px;font-weight:700;display:block}.fp-note p{color:#334155;margin:0;font-size:14px;line-height:1.5}.fp-context--back{background:0 0;border-color:#e2e8f0}.fp-extra-toggle{color:#f97316;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.fp-difficulty-reason{color:#64748b;background:#fefce8;border:1px solid #fef08a;border-radius:8px;width:100%;margin:0;padding:10px 14px;font-size:13px;font-style:italic;line-height:1.5}.fp-rating-bar{gap:10px;width:100%;animation:.25s fp-slide-up;display:flex}@keyframes fp-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fp-rate-btn{cursor:pointer;color:#fff;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 8px;font-size:13px;font-weight:700;transition:transform .15s,opacity .15s;display:flex}.fp-rate-btn:active{transform:scale(.96)}.fp-rate-btn--hard{background:#ef4444}.fp-rate-btn--hard:hover{background:#dc2626}.fp-rate-btn--ok{background:#f97316}.fp-rate-btn--ok:hover{background:#ea580c}.fp-rate-btn--easy{background:#16a34a}.fp-rate-btn--easy:hover{background:#15803d}.fp-tap-hint{color:#cbd5e1;text-align:center;margin:0;font-size:12px}.fp-card--creative{cursor:default;min-height:unset;flex-direction:column;gap:16px;padding:28px 24px;display:flex}.fp-creative-header{color:#f97316;text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.fp-creative-label{color:#94a3b8;margin:0;font-size:12px}.fp-creative-translation{color:#1e293b;margin:0;font-size:22px;font-style:italic;font-weight:700}.fp-creative-prompt{color:#475569;margin:0;font-size:14px}.fp-creative-input{color:#1e293b;resize:vertical;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;width:100%;padding:14px;font-family:inherit;font-size:15px;line-height:1.5;transition:border-color .15s}.fp-creative-input:focus{border-color:#f97316;outline:none}.fp-creative-input:disabled{opacity:.6;cursor:not-allowed}.fp-ai-feedback{border-radius:12px;flex-direction:column;gap:8px;padding:16px;animation:.2s fp-slide-up;display:flex}.fp-ai-feedback--ok{background:#f0fdf4;border:1px solid #bbf7d0}.fp-ai-feedback--err{background:#fef2f2;border:1px solid #fecaca}.fp-ai-title{margin:0;font-size:15px;font-weight:700}.fp-ai-feedback--ok .fp-ai-title{color:#15803d}.fp-ai-feedback--err .fp-ai-title{color:#dc2626}.fp-ai-body{color:#334155;margin:0;font-size:14px;line-height:1.5}.fp-ai-correction{color:#dc2626;margin:0;font-size:13px;font-style:italic;font-weight:500}.fp-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:700;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.fp-btn:disabled{opacity:.5;cursor:not-allowed}.fp-btn--full{width:100%}.fp-btn--sm{align-self:flex-end;padding:8px 16px;font-size:13px}.fp-btn--primary{color:#fff;background:#f97316}.fp-btn--primary:hover:not(:disabled){background:#ea580c}.fp-btn--secondary{color:#334155;background:#f1f5f9}.fp-btn--secondary:hover:not(:disabled){background:#e2e8f0}.fp-btn--ghost{color:#334155;background:#fff;border:1px solid #e2e8f0}.fp-btn--ghost:hover:not(:disabled){background:#f8fafc}.fp-finished{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;max-width:400px;min-height:100vh;margin:0 auto;padding:32px 24px;display:flex}.fp-finished-icon{background:#dcfce7;border:4px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;display:flex;box-shadow:0 4px 12px #16a34a26}.fp-finished-icon--orange{background:#fff7ed;box-shadow:0 4px 12px #f9731626}.fp-finished-title{color:#1e293b;margin:0;font-size:26px;font-weight:800}.fp-finished-subtitle{color:#64748b;margin:0;font-size:15px;line-height:1.6}.fp-finished-stats{gap:16px;width:100%;margin:8px 0;display:flex}.fp-stat{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:16px;display:flex;box-shadow:0 2px 8px #0000000a}.fp-stat-value{font-size:28px;font-weight:800}.fp-stat--correct .fp-stat-value{color:#16a34a}.fp-stat--wrong .fp-stat-value{color:#dc2626}.fp-stat-label{text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-size:11px;font-weight:700}.fp-skeleton-wrap{background:#f8fafc;flex-direction:column;align-items:center;gap:20px;min-height:100vh;padding:20px 16px;display:flex}.fp-skeleton-header{background:#e2e8f0;border-radius:10px;width:100%;max-width:480px;height:52px;animation:1.5s ease-in-out infinite fp-pulse}.fp-skeleton-card{background:#e2e8f0;border-radius:16px;width:100%;max-width:480px;height:360px;animation:1.5s ease-in-out infinite fp-pulse}.fp-skeleton-actions{background:#e2e8f0;border-radius:12px;width:100%;max-width:480px;height:56px;animation:1.5s ease-in-out infinite fp-pulse}.fp-context-sentence--clickable{flex-wrap:wrap;gap:0;display:flex}.fp-clickable-word{cursor:pointer;text-underline-offset:3px;border-radius:4px;padding:1px 2px;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:#cbd5e1;transition:background .15s,color .15s}.fp-clickable-word:hover{color:#f97316;background:#fff7ed;text-decoration-color:#f97316}.fp-clickable-word--saved{color:#15803d;background:#f0fdf4;text-decoration:none}.fp-clickable-word--saved:hover{color:#15803d;background:#dcfce7}.fp-plain-word{color:#94a3b8}.fp-click-hint{color:#cbd5e1;text-align:center;margin:4px 0 0;font-size:10px}.fp-qa-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;animation:.15s fp-fade-in;display:flex;position:fixed;inset:0}@keyframes fp-fade-in{0%{opacity:0}to{opacity:1}}.fp-qa-modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:80vh;padding:20px;animation:.2s fp-slide-up;overflow-y:auto}@media (width>=768px){.fp-qa-overlay{align-items:center}.fp-qa-modal{border-radius:16px;max-height:70vh}}.fp-qa-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.fp-qa-header h3{color:#1e293b;margin:0;font-size:18px;font-weight:700}.fp-qa-loading{color:#94a3b8;flex-direction:column;align-items:center;gap:12px;padding:32px 0;display:flex}.fp-qa-loading p{margin:0;font-size:14px}.fp-spin{animation:1s linear infinite fp-spin}@keyframes fp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fp-qa-body{flex-direction:column;gap:14px;display:flex}.fp-qa-field{flex-direction:column;gap:4px;display:flex}.fp-qa-field label{text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-size:11px;font-weight:700}.fp-qa-field input,.fp-qa-field select{color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:15px;transition:border-color .15s}.fp-qa-field input:focus,.fp-qa-field select:focus{border-color:#f97316;outline:none}.fp-qa-field--inline{flex-flow:wrap;align-items:center;gap:10px}.fp-qa-tag{color:#0891b2;background:#ecfeff;border-radius:6px;padding:4px 10px;font-size:14px;font-weight:600}.fp-qa-note{color:#475569;background:#f8fafc;border-left:3px solid #f97316;border-radius:8px;margin:0;padding:8px 12px;font-size:13px;line-height:1.5}.fp-qa-error{color:#dc2626;flex-direction:column;align-items:center;gap:12px;padding:24px 0;display:flex}.fp-qa-error p{margin:0;font-size:14px}.fp-qa-already{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:14px;font-weight:700;display:flex}.fp-qa-success{flex-direction:column;align-items:center;gap:8px;padding:32px 0;display:flex}.fp-qa-success p{color:#16a34a;margin:0;font-size:16px;font-weight:700}@media (width>=768px){.fp-main{padding-top:40px}.fp-flip-wrap{max-width:520px}.fp-card--creative{max-width:520px;margin:0 auto}}.decks-content{gap:var(--space-4);padding-top:var(--space-8);padding-bottom:var(--space-16);flex-direction:column;display:flex}.decks-toasts{bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));gap:var(--space-2);z-index:1000;width:min(440px, calc(100vw - var(--space-8)));pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.decks-toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);pointer-events:all;color:#fff;font-weight:500;line-height:1.5;animation:.3s cubic-bezier(.34,1.56,.64,1) toastIn;display:flex;box-shadow:0 4px 16px #0000001f}.decks-toast-success{background:#10b981}.decks-toast-error{background:#ef4444}.decks-toast span{flex:1}.decks-toast-close{cursor:pointer;color:#fffc;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px;transition:color .15s;display:flex}.decks-toast-close:hover{color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.decks-header{justify-content:space-between;align-items:flex-end;display:flex}.decks-header-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:3px;color:var(--text-muted);margin-bottom:var(--space-1);font-weight:700;line-height:1.4}.decks-title{color:var(--text-heading);letter-spacing:-.02em;margin:0;font-size:clamp(1.75rem,5vw,2.5rem);font-weight:800;line-height:1.1}.decks-header-actions{gap:var(--space-2);display:flex}.decks-fab{background:var(--brand-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 4px 6px #f973164d}.decks-fab:hover{transform:scale(1.08);box-shadow:0 6px 12px #f9731659}.decks-fab:active{transform:scale(.94)}.decks-fab:focus-visible{outline:3px solid var(--brand-primary);outline-offset:3px}.decks-fab-ai{background:#f97316;box-shadow:0 4px 6px #f973164d}.decks-fab-ai:hover{box-shadow:0 6px 12px #f9731659}.decks-fab-ai:focus-visible{outline-color:#f97316}.decks-search{align-items:center;gap:var(--space-2);border:1.5px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:#fff;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 1px 3px #0000000f}.decks-search:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 3px #f973161a}.decks-search input{box-shadow:none;font-size:var(--text-base);color:var(--text-body);background:0 0;border:none;flex:1;min-width:0;padding:0;line-height:1.5}.decks-search input:focus{box-shadow:none;border:none;outline:none}.decks-search input::placeholder{color:var(--text-muted)}.decks-search-clear{background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);border:none;border-radius:50%;flex-shrink:0;padding:4px;transition:background .15s,color .15s;display:flex}.decks-search-clear:hover{background:var(--border-default);color:var(--text-heading)}.decks-tabs{background:var(--bg-secondary);border-radius:var(--radius-md);gap:3px;padding:3px;display:flex}.decks-tab{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;font-weight:600;line-height:1.4;transition:background .2s,color .2s,box-shadow .2s}.decks-tab.active{color:var(--text-heading);background:#fff;box-shadow:0 1px 4px #0000001a}.decks-tab:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.decks-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.decks-filter-chip{border-radius:var(--radius-full);font-size:var(--text-sm);border:1.5px solid var(--border-default);color:var(--text-secondary);cursor:pointer;background:#fff;align-items:center;gap:5px;padding:5px 14px;font-weight:600;line-height:1.4;transition:background .15s,color .15s,border-color .15s,transform .1s;display:flex}.decks-filter-chip:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.decks-filter-chip.active{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}.decks-filter-chip:active{transform:scale(.96)}.decks-filter-chip:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.decks-filter-check{background:#ffffffb3;border-radius:50%;flex-shrink:0;width:6px;height:6px}.decks-header-skeleton{gap:var(--space-2);flex-direction:column;display:flex}.deck-skeleton-item{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-default);border-left:4px solid var(--border-default);border-radius:var(--radius-lg);background:#fff;display:flex}.decks-empty{align-items:center;gap:var(--space-4);padding:var(--space-16) var(--space-4);text-align:center;flex-direction:column;display:flex}.decks-empty-icon{background:var(--bg-secondary);border:1.5px dashed var(--border-default);width:88px;height:88px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:flex}.decks-empty:hover .decks-empty-icon{border-color:var(--brand-primary);color:var(--brand-primary)}.decks-empty-title{color:var(--text-heading);letter-spacing:-.01em;margin:0;font-size:clamp(1.2rem,4vw,1.5rem);font-weight:800}.decks-empty-desc{color:var(--text-secondary);max-width:340px;font-size:var(--text-base);margin:0;line-height:1.6}.decks-empty-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.btn-cta-decks{align-items:center;gap:var(--space-2);color:#fff;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);font-size:var(--text-base);cursor:pointer;background:#f97316;border:none;font-weight:700;line-height:1.4;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex;box-shadow:0 4px 6px #f9731640}.btn-cta-decks:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 12px #f973164d}.btn-cta-decks:active:not(:disabled){transform:scale(.97)}.btn-cta-decks:focus-visible{outline-offset:3px;outline:3px solid #f97316}.btn-cta-decks:disabled{opacity:.65;cursor:not-allowed}.btn-full{justify-content:center;width:100%}.decks-btn-ai{align-items:center;gap:var(--space-2);display:inline-flex}.decks-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;display:flex}.deck-item{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);align-items:center;gap:var(--space-3);background:#fff;border-left:4px solid;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 1px 3px #0000000f}.deck-item:hover{box-shadow:0 4px 12px #0000001a}.deck-item-has-pending{border-color:#fde68a;border-left-color:inherit;background:#fffbeb}.deck-item-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.deck-item-info{cursor:pointer;outline:none;flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.deck-item-info:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:4px}.deck-item-name-row{align-items:center;gap:var(--space-2);display:flex}.deck-item-name{font-size:var(--text-base);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-weight:700;line-height:1.35;overflow:hidden}.deck-pending-badge{color:#fff;border-radius:var(--radius-full);background:#f59e0b;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.deck-item-meta{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4}.deck-meta-pending{color:#d97706;font-weight:600}.deck-meta-ok{color:#10b981;font-weight:600}.deck-item-bar{background:var(--bg-secondary);border-radius:var(--radius-full);height:4px;margin-top:2px;overflow:hidden}.deck-item-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .6s}.deck-item-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.deck-item-pct{font-size:var(--text-xs);color:var(--text-secondary);margin-right:var(--space-1);white-space:nowrap;font-weight:700}.deck-action-btn{border-radius:var(--radius-sm);border:1px solid var(--border-default);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s,transform .1s;display:flex}.deck-action-btn:hover{background:var(--bg-secondary);color:var(--text-heading)}.deck-action-btn:active{transform:scale(.9)}.deck-action-btn:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.deck-action-study{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}.deck-action-study:hover{color:#fff;background:#ea580c;border-color:#ea580c}.deck-action-danger:hover{color:#ef4444;background:#fef2f2;border-color:#ef4444}.deck-action-clone{color:var(--brand-primary);border-color:var(--brand-primary)}.deck-action-clone:hover{color:#ea580c;background:#ffedd5}.modal-overlay{z-index:200;padding:var(--space-4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;animation:.2s ease-out overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal{border-radius:var(--radius-lg);padding:var(--space-6);gap:var(--space-5);background:#fff;flex-direction:column;width:100%;max-width:440px;animation:.25s cubic-bezier(.34,1.56,.64,1) modalIn;display:flex;box-shadow:0 20px 40px #00000026}@keyframes modalIn{0%{opacity:0;transform:scale(.93)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-danger{border-top:3px solid #ef4444}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-xl);color:var(--text-heading);letter-spacing:-.01em;align-items:center;gap:var(--space-2);margin:0;font-weight:800;display:flex}.modal-title-icon{color:#f97316}.modal-close{background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);border:none;padding:6px;transition:background .15s,color .15s;display:flex}.modal-close:hover{background:var(--border-default);color:var(--text-heading)}.modal-close:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.modal-desc{color:var(--text-secondary);font-size:var(--text-sm);margin:0;line-height:1.6}.modal-field{gap:var(--space-2);flex-direction:column;display:flex}.modal-label{font-size:var(--text-sm);color:var(--text-heading);font-weight:600;line-height:1.4}.modal-label-required{color:#ef4444;margin-left:2px}.modal-field input{border:1.5px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--text-body);line-height:1.5;transition:border-color .15s,box-shadow .15s}.modal-field input:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 3px #f973161f}.modal-field input.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.modal-field-hint{color:var(--text-muted);text-align:right;font-size:11px;line-height:1}.modal-error{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:#ef4444;background:#fef2f2;border:1px solid #fecaca;font-weight:500;line-height:1.4;animation:.35s shakeX;display:flex}@keyframes shakeX{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.modal-actions{gap:var(--space-3);display:flex}.modal-actions .btn{flex:1;justify-content:center}.color-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.color-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;width:30px;height:30px;transition:transform .15s,box-shadow .15s}.color-dot:hover{transform:scale(1.15)}.color-dot:focus-visible{outline:3px solid var(--text-heading);outline-offset:2px}.color-dot.active{box-shadow:0 0 0 2px white, 0 0 0 4px var(--text-heading);transform:scale(1.2)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=480px){.decks-content{gap:var(--space-3)}.deck-item{padding:var(--space-3);gap:var(--space-2)}.deck-action-btn{width:30px;height:30px}.deck-item-pct{display:none}.modal{padding:var(--space-5);gap:var(--space-4)}.decks-title{font-size:1.75rem}.decks-toasts{bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px))}}@media (width>=640px){.decks-empty-actions{flex-direction:row}}@media (width>=1024px){.decks-content{max-width:860px}}.modal-cards{max-height:80vh;overflow-y:auto}.modal-deck-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-right:8px;display:inline-block}.cards-loading,.cards-empty{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:24px 0}.cards-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cards-item{border-radius:var(--radius-md);background:var(--surface-2,#f8fafc);border:1px solid var(--border,#e2e8f0);align-items:center;gap:10px;padding:10px;display:flex}.cards-item-img{object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;width:44px;height:44px}.cards-item-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cards-item-word{font-size:var(--text-sm);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.cards-item-article{color:var(--text-muted);font-weight:400}.cards-item-trans{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.cards-item-stage{color:var(--text-muted);flex-shrink:0;font-size:11px}.addcard-ai-hint{color:var(--text-muted);margin-top:4px;font-size:12px}.cards-item-plural{color:var(--text-muted);font-size:12px}.cards-item-sentence{color:var(--text-muted);margin-top:2px;font-size:12px;font-style:italic;display:block}.cards-item-note{color:var(--text-muted);margin-top:1px;font-size:11px;display:block}.cards-item-meta{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.cards-item-diff{text-transform:uppercase;border-radius:99px;padding:2px 6px;font-size:10px;font-weight:600}.diff-easy{color:#166534;background:#dcfce7}.diff-medium{color:#854d0e;background:#fef9c3}.diff-hard{color:#991b1b;background:#fee2e2}.modal-addcard{max-height:90vh;overflow-y:auto}.addcard-word-row{align-items:center;gap:8px;display:flex}.addcard-word-row input{flex:1}.btn-enrich{border-radius:var(--radius-md);background:var(--cta,#2563eb);color:#fff;cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;align-items:center;gap:5px;height:40px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.btn-enrich:disabled{opacity:.6;cursor:not-allowed}.modal-field-row{gap:10px;display:flex}.modal-field-row .modal-field{flex:1}.modal-field select{border-radius:var(--radius-md);border:1px solid var(--border,#e2e8f0);background:var(--surface,#fff);width:100%;font-size:var(--text-sm);color:var(--text);padding:10px 12px}.addcard-checkbox{font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;display:flex}.modal-cards{flex-direction:column;max-height:85vh;display:flex;overflow-y:auto}.ctp-root{background:var(--bg-primary,#f8fafc);justify-content:center;min-height:100vh;display:flex}.ctp-container{width:100%;max-width:700px;padding:0 0 2rem}.ctp-container--chat{flex-direction:column;height:100vh;padding:0;display:flex;overflow:hidden}.ctp-selector-header{text-align:center;padding:2.5rem 1.5rem 1.5rem}.ctp-selector-icon{color:#fff;background:linear-gradient(135deg,#f97316 0%,#7c3aed 100%);border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:1rem;display:inline-flex}.ctp-selector-title{color:var(--text-heading,#1e293b);margin:0 0 .4rem;font-size:1.75rem;font-weight:700}.ctp-selector-subtitle{color:#64748b;margin:0;font-size:.95rem}.ctp-cards{flex-direction:column;gap:1rem;padding:0 1rem 1rem;display:flex}.ctp-card{text-align:left;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:16px;padding:1.25rem 1.25rem 1rem;transition:transform .15s,box-shadow .15s,border-color .15s;box-shadow:0 1px 4px #0000000a}.ctp-card:hover{border-color:var(--card-color);transform:translateY(-2px);box-shadow:0 6px 20px #00000014}.ctp-card:active{transform:translateY(0);box-shadow:0 1px 4px #0000000a}.ctp-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.ctp-card-icon{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.ctp-badge{color:#fff;letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:.25rem .6rem;font-size:.7rem;font-weight:700}.ctp-card-title{color:var(--text-heading,#1e293b);margin:0 0 .35rem;font-size:1.05rem;font-weight:700}.ctp-card-desc{color:#64748b;margin:0 0 .75rem;font-size:.875rem;line-height:1.5}.ctp-card-arrow{font-size:.85rem;font-weight:600}.ctp-chat-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;align-items:center;gap:.75rem;padding:1rem 1rem .875rem;display:flex}.ctp-back-btn{cursor:pointer;color:#475569;background:#f1f5f9;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,color .15s;display:flex}.ctp-back-btn:hover{color:#1e293b;background:#e2e8f0}.ctp-chat-header-info{flex:1;min-width:0}.ctp-chat-mode-label{color:var(--header-color,#f97316);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600;display:block}.ctp-chat-title{color:var(--text-heading,#1e293b);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.95rem;font-weight:700;overflow:hidden}.ctp-scenario-btn{color:#0d9488;cursor:pointer;background:#f0fdfa;border:1px solid #99f6e4;border-radius:8px;flex-shrink:0;padding:.35rem .65rem;font-size:.78rem;font-weight:600;transition:background .15s}.ctp-scenario-btn:hover{background:#ccfbf1}.ctp-scenario-picker{flex:1;padding:1.5rem 1rem;overflow-y:auto}.ctp-scenario-prompt{color:var(--text-heading,#1e293b);text-align:center;margin:0 0 1rem;font-size:.95rem;font-weight:600}.ctp-scenario-list{flex-direction:column;gap:.75rem;max-width:400px;margin:0 auto;display:flex}.ctp-scenario-item{cursor:pointer;text-align:left;background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:border-color .15s,box-shadow .15s,transform .12s;display:flex}.ctp-scenario-item:hover{border-color:#0d9488;transform:translateY(-1px);box-shadow:0 4px 14px #0d94881f}.ctp-scenario-item:active{transform:translateY(0)}.ctp-scenario-emoji{font-size:1.75rem;line-height:1}.ctp-scenario-label{color:var(--text-heading,#1e293b);font-size:1rem;font-weight:600}.ctp-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:.75rem;padding:1rem 1rem .5rem;display:flex;overflow-y:auto}.ctp-message{align-items:flex-end;gap:.5rem;display:flex}.ctp-message--user{flex-direction:row-reverse}.ctp-message--ai{flex-direction:row}.ctp-avatar{color:#fff;background:linear-gradient(135deg,#f97316,#7c3aed);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-bottom:2px;display:flex}.ctp-bubble{border-radius:16px;max-width:78%;padding:.75rem 1rem;line-height:1.55}.ctp-bubble--user{background:var(--brand-primary,#f97316);color:#fff;border-bottom-right-radius:4px}.ctp-bubble--ai{color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-bottom-left-radius:4px}.ctp-bubble-text{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.9rem}.ctp-correction{background:#f0fdfa;border-left:3px solid #0d9488;border-radius:0 8px 8px 0;margin-top:.75rem;padding:.65rem .75rem}.ctp-correction-label{color:#0d9488;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.7rem;font-weight:700;display:block}.ctp-correction-text{color:#134e4a;white-space:pre-wrap;margin:0;font-size:.875rem}.ctp-feedback{background:#fffbeb;border-left:3px solid #f59e0b;border-radius:0 8px 8px 0;margin-top:.5rem;padding:.65rem .75rem}.ctp-feedback-label{color:#d97706;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.7rem;font-weight:700;display:block}.ctp-feedback-text{color:#78350f;white-space:pre-wrap;margin:0;font-size:.875rem}.ctp-typing{align-items:center;gap:5px;padding:.65rem .9rem;display:flex}.ctp-dot{background:#94a3b8;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite ctp-bounce}.ctp-dot:first-child{animation-delay:0s}.ctp-dot:nth-child(2){animation-delay:.2s}.ctp-dot:nth-child(3){animation-delay:.4s}@keyframes ctp-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.ctp-input-area{background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;padding:.75rem 1rem .6rem}.ctp-input-row{align-items:flex-end;gap:.5rem;display:flex}.ctp-textarea{resize:none;color:#1e293b;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;outline:none;flex:1;max-height:120px;padding:.6rem .85rem;font-family:inherit;font-size:.9rem;line-height:1.5;transition:border-color .15s,background .15s;overflow-y:auto}.ctp-textarea:focus{border-color:var(--brand-primary,#f97316);background:#fff}.ctp-textarea::placeholder{color:#94a3b8}.ctp-textarea:disabled{opacity:.6;cursor:not-allowed}.ctp-send-btn{background:var(--send-color,var(--brand-primary,#f97316));color:#fff;cursor:pointer;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .15s,transform .12s;display:flex}.ctp-send-btn:hover:not(:disabled){opacity:.88;transform:scale(1.05)}.ctp-send-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.ctp-input-hint{color:#94a3b8;text-align:right;margin:.35rem 0 0;font-size:.7rem}@media (width<=480px){.ctp-selector-header{padding:1.75rem 1rem 1.25rem}.ctp-cards{padding:0 .75rem .75rem}.ctp-bubble{max-width:88%}.ctp-input-hint{display:none}}.perfil-content{gap:var(--space-6);padding-top:var(--space-8);flex-direction:column;width:100%;max-width:640px;margin-inline:auto;display:flex}.perfil-stats-skeleton{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.perfil-stat-skel{border-radius:var(--radius-lg);height:90px}.perfil-header{align-items:center;gap:var(--space-4);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);display:flex}.perfil-avatar{background:var(--brand-primary-light);border:2px solid var(--brand-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.perfil-user-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.perfil-name{font-size:var(--text-xl);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:800;overflow:hidden}.perfil-email{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.perfil-plan-badge{text-transform:uppercase;letter-spacing:1.5px;border-radius:var(--radius-full);border:1px solid #0000;flex-shrink:0;padding:5px 14px;font-size:10px;font-weight:800}.perfil-plan-free{background:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-default)}.perfil-plan-pro{color:var(--cta);background:#fff7ed;border-color:#fed7aa}.perfil-stats-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.perfil-stat-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-5);gap:var(--space-1);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.perfil-stat-value{font-size:var(--text-3xl);color:var(--text-heading);align-items:center;gap:var(--space-1);font-weight:800;line-height:1;display:flex}.perfil-stat-value span{font-size:var(--text-3xl);color:var(--text-heading);font-weight:800}.perfil-stat-blue{color:var(--brand-primary)!important}.perfil-stat-green{color:var(--success)!important}.perfil-stat-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:11px;font-weight:700}.perfil-section{gap:var(--space-3);flex-direction:column;display:flex}.perfil-section-header{align-items:center;gap:var(--space-2);display:flex}.perfil-section-title{font-size:var(--text-lg);color:var(--text-heading);margin:0;font-weight:800}.perfil-stage-list{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm);gap:var(--space-3);flex-direction:column;display:flex}.perfil-stage-row{align-items:center;gap:var(--space-3);grid-template-columns:110px 1fr 36px;display:grid}.perfil-stage-label{font-size:var(--text-sm);color:var(--text-body);white-space:nowrap;font-weight:600}.perfil-stage-bar-wrap{background:var(--bg-secondary);border-radius:var(--radius-full);border:1px solid var(--border-default);height:10px;overflow:hidden}.perfil-stage-bar-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow);min-width:4px}.perfil-stage-count{font-size:var(--text-sm);color:var(--text-secondary);text-align:right;font-weight:700}.perfil-words-list{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.perfil-word-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-default);grid-template-columns:28px 1fr auto;display:grid}.perfil-word-row:last-child{border-bottom:none}.perfil-word-rank{font-size:var(--text-xs);color:var(--text-muted);text-align:center;font-weight:800}.perfil-word-text{font-size:var(--text-base);color:var(--text-heading);font-weight:600}.perfil-word-errors{font-size:var(--text-xs);color:var(--error);background:var(--error-light);border-radius:var(--radius-full);white-space:nowrap;padding:3px 10px;font-weight:700}.perfil-ocr-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm);gap:var(--space-4);flex-direction:column;display:flex}.perfil-ocr-costs{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-default);flex-direction:column;display:flex}.perfil-ocr-cost-row{align-items:center;gap:var(--space-2);display:flex}.perfil-ocr-cost-label{font-size:var(--text-sm);color:var(--text-secondary);flex:1}.perfil-ocr-cost-value{font-size:var(--text-sm);color:var(--text-heading);font-weight:700}.perfil-ocr-bar-wrap{background:var(--bg-secondary);border-radius:var(--radius-full);border:1px solid var(--border-default);height:8px;overflow:hidden}.perfil-ocr-bar-fill{background:linear-gradient(90deg, var(--brand-primary) 0%, var(--cta) 100%);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.perfil-ocr-remaining{color:var(--text-muted);font-size:11px;font-weight:600}.perfil-config-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.perfil-setting-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);display:flex}.perfil-setting-row-border{border-bottom:1px solid var(--border-default)}.perfil-setting-icon-wrap{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.perfil-setting-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.perfil-setting-name{font-size:var(--text-base);color:var(--text-heading);font-weight:700}.perfil-setting-desc{font-size:var(--text-sm);color:var(--text-secondary)}.perfil-toggle{border-radius:var(--radius-full);background:var(--border-default);cursor:pointer;width:48px;height:28px;transition:background var(--transition-fast);border:none;flex-shrink:0;padding:0;position:relative}.perfil-toggle:disabled{opacity:.6;cursor:not-allowed}.perfil-toggle-on{background:var(--brand-primary)}.perfil-toggle-thumb{width:20px;height:20px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:4px;left:4px}.perfil-toggle-on .perfil-toggle-thumb{transform:translate(20px)}.perfil-signout-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-4);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);color:var(--error);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);margin-bottom:var(--space-8);font-weight:700;display:flex}.perfil-signout-btn:hover{background:var(--error-light);border-color:var(--error);box-shadow:var(--shadow-md)}@media (width<=480px){.perfil-stage-row{grid-template-columns:90px 1fr 30px}.perfil-stat-value,.perfil-stat-value span{font-size:var(--text-2xl)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bib-content{gap:var(--space-5);padding-top:var(--space-8);padding-bottom:var(--space-16);flex-direction:column;display:flex}.bib-upload-banner{align-items:center;gap:var(--space-2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--brand-primary);background:#fff7ed;border:1px solid #fed7aa;font-weight:500;animation:.25s ease-out slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.bib-toasts{bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));gap:var(--space-2);z-index:1000;width:min(440px, calc(100vw - var(--space-8)));pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.bib-toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);pointer-events:all;color:#fff;font-weight:500;line-height:1.5;animation:.3s cubic-bezier(.34,1.56,.64,1) toastIn;display:flex;box-shadow:0 4px 16px #0000001f}.bib-toast-success{background:var(--success)}.bib-toast-error{background:var(--error)}.bib-toast-info{background:#2563eb}.bib-toast span{flex:1}.bib-toast-close{cursor:pointer;color:#fffc;transition:color var(--transition-fast);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px;display:flex}.bib-toast-close:hover{color:#fff}.bib-header{justify-content:space-between;align-items:flex-end;display:flex}.bib-header-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:3px;color:var(--text-muted);margin-bottom:var(--space-1);font-weight:700;line-height:1.4}.bib-title{color:var(--text-heading);letter-spacing:-.02em;margin:0;font-size:clamp(1.75rem,5vw,2.5rem);font-weight:800;line-height:1.1}.bib-upload-btn{background:var(--cta);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s,box-shadow .15s,opacity .15s;display:flex;box-shadow:0 4px 6px #f973164d}.bib-upload-btn:hover:not(:disabled){transform:scale(1.08);box-shadow:0 6px 12px #f9731659}.bib-upload-btn:active:not(:disabled){transform:scale(.95)}.bib-upload-btn:focus-visible{outline:3px solid var(--cta);outline-offset:3px}.bib-upload-btn:disabled{opacity:.65;cursor:not-allowed}.bib-search{align-items:center;gap:var(--space-3);border:1.5px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:#fff;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 1px 3px #0000000f}.bib-search:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 3px #f973161a}.bib-search input{box-shadow:none;font-size:var(--text-base);color:var(--text-body);background:0 0;border:none;flex:1;min-width:0;padding:0;line-height:1.5}.bib-search input:focus{box-shadow:none;border:none;outline:none}.bib-search input::placeholder{color:var(--text-muted)}.bib-search-clear{background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);border:none;border-radius:50%;flex-shrink:0;padding:4px;transition:background .15s,color .15s;display:flex}.bib-search-clear:hover{background:var(--border-default);color:var(--text-heading)}.bib-search-clear:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.bib-header-skeleton{gap:var(--space-2);flex-direction:column;display:flex}.bib-skeleton{gap:var(--space-4);flex-direction:column;display:flex}.bib-card-skeleton{align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:#fff;display:flex}.bib-skeleton-icon{border-radius:var(--radius-md);flex-shrink:0;width:64px;height:80px}.bib-skeleton-body{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.bib-empty{align-items:center;gap:var(--space-4);padding:var(--space-16) var(--space-4);text-align:center;flex-direction:column;animation:.3s ease-out fadeIn;display:flex}.bib-empty-icon{background:var(--bg-secondary);border:1.5px dashed var(--border-default);width:88px;height:88px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;transition:border-color .2s;display:flex}.bib-empty:hover .bib-empty-icon{border-color:var(--brand-primary);color:var(--brand-primary)}.bib-empty-title{color:var(--text-heading);letter-spacing:-.01em;margin:0;font-size:clamp(1.2rem,4vw,1.5rem);font-weight:800}.bib-empty-desc{color:var(--text-secondary);max-width:340px;font-size:var(--text-base);margin:0;line-height:1.6}.btn-cta{align-items:center;gap:var(--space-2);background:var(--cta);color:#fff;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--text-base);cursor:pointer;border:none;font-weight:700;line-height:1.4;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 4px 6px #f9731640}.btn-cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 12px #f973164d}.btn-cta:active:not(:disabled){transform:translateY(0)scale(.97)}.btn-cta:focus-visible{outline:3px solid var(--cta);outline-offset:3px}.btn-cta:disabled{opacity:.65;cursor:not-allowed}.bib-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;display:flex}.bib-card{border:1.5px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);align-items:flex-start;gap:var(--space-4);background:#fff;outline:none;transition:box-shadow .2s,border-color .2s,transform .2s;display:flex;box-shadow:0 1px 3px #0000000f}.bib-card-clickable{cursor:pointer}.bib-card-clickable:hover{border-color:var(--brand-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.bib-card-clickable:hover .bib-arrow-icon{color:var(--brand-primary);transform:translate(4px)}.bib-card-clickable:focus-visible{border-color:var(--brand-primary);box-shadow:0 0 0 3px #f9731640}.bib-card-clickable:active{transform:translateY(0)scale(.99)}.bib-card-processing{opacity:.9;border-style:dashed}.bib-card-error{opacity:.85;border-color:var(--danger,#e53e3e);border-style:dashed}.bib-error-block{flex-direction:column;gap:8px;display:flex}.bib-error-header{color:var(--danger,#e53e3e);align-items:center;gap:6px;font-size:.8rem;display:flex}.bib-error-step{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.bib-retry-btn{color:#fff;background:var(--brand-primary,#f97316);border-radius:var(--radius-md,8px);cursor:pointer;border:none;align-items:center;gap:6px;width:fit-content;padding:6px 14px;font-size:.8rem;font-weight:600;transition:background .15s;display:inline-flex}.bib-retry-btn:hover{background:var(--brand-hover,#ea580c)}.bib-ocr-manage-btn{color:var(--brand-primary,#f97316);border:1px solid var(--brand-primary,#f97316);border-radius:var(--radius-md,8px);cursor:pointer;background:0 0;align-items:center;gap:6px;width:fit-content;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.bib-ocr-manage-btn:hover{background:var(--brand-primary,#f97316);color:#fff}.bib-processing-footer{justify-content:space-between;align-items:center;display:flex}.bib-ocr-link{color:var(--brand-primary,#f97316);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.7rem;font-weight:600;display:inline-flex}.bib-ocr-link:hover{text-decoration:underline}.bib-card-icon{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:64px;height:80px;transition:background .2s;display:flex;position:relative}.bib-card-clickable:hover .bib-card-icon{background:#fff7ed;border-color:#fed7aa}.bib-card-icon-badge{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:#fff;padding:3px;display:flex;position:absolute;bottom:-6px;right:-6px}.bib-card-info{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.bib-card-meta{align-items:center;gap:var(--space-2);display:flex}.bib-type-tag{text-transform:uppercase;letter-spacing:1.5px;color:var(--cta);font-size:10px;font-weight:800;line-height:1}.bib-dot{background:var(--border-default);border-radius:50%;flex-shrink:0;width:3px;height:3px}.bib-chapters{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:700;line-height:1}.bib-card-title{color:var(--text-heading);letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:clamp(1rem,3vw,1.125rem);font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.bib-card-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.bib-tag{border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);padding:3px 9px;font-size:10px;font-weight:700;line-height:1.4}.bib-tag-level{color:var(--brand-primary);background:#fff7ed;border-color:#fed7aa}.bib-processing-block{flex-direction:column;gap:5px;display:flex}.bib-processing-header{justify-content:space-between;align-items:center;display:flex}.bib-processing-step{font-size:var(--text-xs);color:var(--brand-primary);white-space:nowrap;text-overflow:ellipsis;max-width:70%;font-weight:600;line-height:1.4;overflow:hidden}.bib-processing-pct{font-size:var(--text-xs);color:var(--brand-primary);flex-shrink:0;font-weight:800}.bib-processing-hint{color:var(--text-muted);margin:0;font-size:10px;line-height:1.4}.bib-card-progress{align-items:center;gap:var(--space-3);display:flex}.bib-progress-bar{background:var(--bg-secondary);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.bib-processing-block .bib-progress-bar{height:8px}.bib-progress-fill{background:var(--cta);border-radius:var(--radius-full);height:100%;transition:width .6s}.bib-progress-fill-brand{background:var(--brand-primary);animation:1.8s ease-in-out infinite progressPulse}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.55}}.bib-progress-pct{color:var(--text-secondary);white-space:nowrap;text-align:right;min-width:32px;font-size:11px;font-weight:800}.bib-last-seen{color:var(--text-muted);font-size:var(--text-xs);align-items:center;gap:4px;line-height:1.4;display:flex}.bib-card-arrow{padding-top:var(--space-1);flex-shrink:0;align-items:center;display:flex}.bib-arrow-icon{transition:transform .2s,color .2s}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (width<=480px){.bib-content{gap:var(--space-4)}.bib-card{padding:var(--space-4);gap:var(--space-3)}.bib-card-icon{width:52px;height:66px}.bib-title{font-size:1.75rem}.bib-upload-btn{width:46px;height:46px}.bib-toasts{bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px))}}@media (width>=768px){.bib-list{gap:var(--space-3)}.bib-card:hover .bib-card-icon{width:68px;height:84px}}@media (width>=1024px){.bib-content{max-width:860px}}.mh-root{background:#f8fafc;flex-direction:column;min-height:100vh;display:flex}.mh-header{z-index:10;background:#fff;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000f}.mh-back-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.mh-back-btn:hover{background:#f1f5f9}.mh-title{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:16px;font-weight:700;overflow:hidden}.mh-hero{text-align:center;background:linear-gradient(135deg,#c2410c 0%,#f97316 55%,#fb923c 100%);flex-direction:column;align-items:center;gap:20px;padding:32px 20px 28px;display:flex}.mh-cover{color:#ffffffd9;background:#ffffff1f;border:2px solid #fff3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100px;height:136px;padding:12px;display:flex;box-shadow:0 8px 24px #00000040}.mh-cover-badges{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.mh-badge{letter-spacing:.3px;border-radius:99px;padding:2px 7px;font-size:10px;font-weight:700}.mh-badge--level{color:#fff;background:#f97316d9}.mh-badge--subject{color:#ffffffe6;background:#ffffff26;border:1px solid #ffffff40}.mh-badge--done{color:#fff;background:#16a34a}.mh-progress-block{width:100%;max-width:400px}.mh-progress-row{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.mh-progress-label{color:#ffffffb3;font-size:13px}.mh-progress-pct{color:#fff;font-size:18px;font-weight:800}.mh-progress-track{background:#ffffff26;border-radius:99px;height:8px;margin-bottom:8px;overflow:hidden}.mh-progress-fill{background:#f97316;border-radius:99px;height:100%;transition:width .4s}.mh-progress-meta{color:#ffffff80;margin:0;font-size:12px}.mh-actions{flex-direction:column;gap:12px;padding:20px 16px 0;display:flex}.mh-action-primary{cursor:pointer;text-align:left;background:#f97316;border:none;border-radius:14px;align-items:center;gap:0;width:100%;transition:background .15s,transform .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 4px 14px #f973164d}.mh-action-primary:hover{background:#ea580c;transform:translateY(-1px);box-shadow:0 6px 18px #f9731661}.mh-action-primary:active{transform:translateY(0)}.mh-action-icon{color:#fff;background:#00000026;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.mh-action-text{flex:1;padding:14px 16px}.mh-action-text h4{color:#fff;margin:0 0 2px;font-size:15px;font-weight:700}.mh-action-text p{color:#ffffffbf;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.mh-action-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mh-action-secondary{cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:14px;align-items:center;gap:0;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000a}.mh-action-secondary:hover{border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.mh-action-secondary .mh-action-icon{color:#f97316;background:#f1f5f9;width:48px;height:48px}.mh-action-secondary .mh-action-text h4{color:#1e293b;font-size:13px}.mh-action-secondary .mh-action-text p{color:#94a3b8;font-size:11px}.mh-section{padding:24px 16px 0}.mh-section-title{color:#1e293b;align-items:center;gap:8px;margin:0 0 14px;font-size:16px;font-weight:700;display:flex}.mh-section-title:before{content:"";background:#f97316;border-radius:99px;width:3px;height:16px;display:inline-block}.mh-chapters{flex-direction:column;gap:8px;display:flex}.mh-chapter{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:0;transition:border-color .15s,box-shadow .15s,background .15s;display:flex;overflow:hidden}.mh-chapter:hover{border-color:#cbd5e1;box-shadow:0 3px 10px #0000000f}.mh-chapter:focus-visible{outline-offset:2px;outline:3px solid #f97316}.mh-chapter--started{background:#fff7ed;border-color:#fed7aa}.mh-chapter--complete{background:#f0fdf4;border-color:#bbf7d0}.mh-chapter-ring{border-right:1px solid #f1f5f9;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;width:48px;display:flex}.mh-ring{color:#94a3b8;background:#fff;border:2px solid #cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;transition:all .2s;display:flex}.mh-ring--started{color:#f97316;border-color:#f97316}.mh-ring--complete{color:#fff;background:#16a34a;border-color:#16a34a;font-size:14px}.mh-chapter-body{flex:1;min-width:0;padding:12px 14px}.mh-chapter-title{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:14px;font-weight:600;overflow:hidden}.mh-chapter-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mh-chapter-count{color:#64748b;font-size:12px}.mh-mini-tags{flex-wrap:wrap;gap:4px;display:flex}.mh-mini-tag{color:#475569;background:#f1f5f9;border-radius:99px;padding:1px 7px;font-size:10px;font-weight:600}.mh-chapter-progress-bar{background:#e2e8f0;border-radius:99px;height:3px;margin-top:8px;overflow:hidden}.mh-chapter-progress-fill{background:#f97316;border-radius:99px;height:100%;transition:width .3s}.mh-chapter-arrow{color:#cbd5e1;flex-shrink:0;padding:0 14px}.mh-themes-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.mh-themes-scroll::-webkit-scrollbar{display:none}.mh-theme-chip{color:#334155;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:99px;flex-shrink:0;align-items:center;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.mh-theme-chip:hover{color:#f97316;background:#fff7ed;border-color:#fed7aa}.mh-read-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.mh-read-btn:hover{color:#1e293b;background:#f8fafc;border-color:#cbd5e1}.mh-skeleton-wrap{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding:20px 16px;display:flex}.mh-skel{background:#e2e8f0;border-radius:12px;animation:1.5s ease-in-out infinite mh-pulse}.mh-skel-hero{height:200px}.mh-skel-actions{height:80px}.mh-skel-item{height:68px}@keyframes mh-pulse{0%,to{opacity:1}50%{opacity:.45}}.mh-bottom-pad{padding:24px 16px 40px}@media (width>=768px){.mh-hero{padding:40px 32px 32px}.mh-actions{padding:24px 24px 0}.mh-section{padding:28px 24px 0}.mh-bottom-pad{padding:28px 24px 48px}.mh-action-row{grid-template-columns:1fr 1fr}}.mh-extract-banner{border:1px solid var(--border-orange);border-radius:var(--radius-lg);background:#fff7ed;flex-direction:column;gap:12px;margin:0 16px 8px;padding:16px;display:flex}.mh-extract-info{color:var(--brand-primary);align-items:flex-start;gap:12px;display:flex}.mh-extract-info svg{flex-shrink:0;margin-top:2px}.mh-extract-title{font-weight:700;font-size:var(--text-base);color:var(--text-heading);margin-bottom:2px}.mh-extract-sub{font-size:var(--text-sm);color:var(--text-secondary)}.mh-extract-quota{border-radius:var(--radius-md);font-size:var(--text-sm);color:#92400e;background:#fef3c7;border:1px solid #fde68a;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:12px;display:flex}.mh-extract-quota svg{color:#d97706;flex-shrink:0;margin-top:2px}.mh-extract-quota p{flex:1;line-height:1.5}.mh-extract-progress{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:4px;max-height:180px;padding:10px 12px;display:flex;overflow-y:auto}.mh-extract-row{align-items:center;gap:10px;padding:3px 0;font-size:12px;display:flex}.mh-extract-row-cap{color:#475569;flex-shrink:0;min-width:54px;font-weight:700}.mh-extract-row-status{color:#64748b}.mh-extract-row--ok .mh-extract-row-status{color:#16a34a}.mh-extract-row--partial .mh-extract-row-status{color:#d97706}.mh-extract-row--error .mh-extract-row-status,.mh-extract-row--quota_hit .mh-extract-row-status{color:#dc2626}.mh-extract-row--skipped .mh-extract-row-status,.mh-extract-row--no_pages .mh-extract-row-status,.mh-extract-row--ai_empty .mh-extract-row-status{color:#94a3b8}.mh-extract-resume-hint{color:#d97706;font-weight:600}.chapter-detail-page .page-content{max-width:720px;padding:0}.chapter-header-block{background:#fff;border-bottom:1px solid #e2e8f0;padding:24px 16px 20px}.chapter-title{color:#1e293b;letter-spacing:-.3px;margin:0 0 4px;font-family:Poppins,sans-serif;font-size:clamp(1.2rem,4vw,1.6rem);font-weight:800;line-height:1.2}.chapter-pages{color:#94a3b8;margin:0 0 12px;font-size:12px}.ai-summary-box{box-shadow:none;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;outline:none;margin-top:14px;padding:14px 16px}.ai-badge{color:#c2410c;background:#ffedd5;border:1px solid #fed7aa;border-radius:99px;align-items:center;gap:4px;margin-bottom:8px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.ai-summary-box p{color:#475569;margin:0;font-size:13px;line-height:1.65}.chapter-section{border-bottom:1px solid #f1f5f9;padding:24px 16px}.chapter-section:last-child{border-bottom:none}.section-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-head h2{color:#1e293b;text-transform:none;letter-spacing:0;align-items:center;gap:8px;margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:700;display:flex}.section-head h2:before{content:"";background:#f97316;border-radius:99px;flex-shrink:0;width:3px;height:16px;display:inline-block}.exercise-action-bar{margin-bottom:12px}.exercise-list{flex-direction:column;gap:8px;display:flex}.exercise-row{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;outline:none;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;box-shadow:0 1px 3px #0000000d}.exercise-row:hover{border-color:#fed7aa;transform:translateY(-1px);box-shadow:0 3px 10px #f973161a}.exercise-row-arrow{color:#cbd5e1;flex-shrink:0;transition:color .15s,transform .15s}.exercise-row:hover .exercise-row-arrow{color:#f97316;transform:translate(2px)}.exercise-status{color:#cbd5e1;flex-shrink:0;justify-content:center;align-items:center;display:flex}.exercise-content{flex:1;min-width:0}.exercise-content h4{color:#1e293b;letter-spacing:0;text-transform:none;margin:0 0 2px;font-family:Inter,sans-serif;font-size:13px;font-weight:600}.exercise-content p{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin:0;font-family:Inter,sans-serif;font-size:12px;overflow:hidden}.exercise-group{flex-direction:column;gap:8px;display:flex}.exercise-group+.exercise-group{margin-top:16px}.exercise-group-header{justify-content:space-between;align-items:center;margin-bottom:2px;padding:6px 8px;display:flex}.exercise-group-title{color:#1e293b;letter-spacing:-.2px;font-size:13px;font-weight:700}.exercise-group-count{color:#94a3b8;background:#f1f5f9;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600}.exercise-row-meta{align-items:center;gap:6px;margin-bottom:3px;display:flex}.exercise-type-badge{text-transform:uppercase;letter-spacing:.3px;color:#c2410c;background:#ffedd5;border:1px solid #fed7aa;border-radius:99px;align-items:center;gap:3px;padding:1px 8px;font-size:10px;font-weight:700;display:inline-flex}.exercise-audio-tag{text-transform:uppercase;letter-spacing:.3px;color:#7c3aed;background:#ede9fe;border:1px solid #ddd6fe;border-radius:99px;align-items:center;gap:3px;padding:1px 8px;font-size:10px;font-weight:700;display:inline-flex}.exercise-media-tag{text-transform:uppercase;letter-spacing:.3px;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:99px;align-items:center;gap:3px;padding:1px 8px;font-size:10px;font-weight:700;display:inline-flex}.exercise-review-tag{text-transform:uppercase;letter-spacing:.3px;color:#9333ea;cursor:help;background:#f3e8ff;border:1px solid #e9d5ff;border-radius:99px;align-items:center;gap:3px;padding:1px 8px;font-size:10px;font-weight:700;display:inline-flex}.vocab-list{flex-direction:column;gap:6px;display:flex}.vocab-row{background:#fff;border:1px solid #f1f5f9;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 14px;transition:border-color .15s;display:flex}.vocab-row:hover{border-color:#e2e8f0}.vocab-terms{flex-direction:column;gap:1px;display:flex}.vocab-target{color:#1e293b;font-size:14px;font-weight:700}.vocab-base{color:#64748b;font-size:12px}.grammar-accordions{flex-direction:column;gap:8px;display:flex}.grammar-accordion{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.accordion-title{color:#1e293b;text-transform:none;border-bottom:none;align-items:center;gap:10px;padding:14px 16px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;display:flex}.grammar-accordion[open] .accordion-title{background:#f8fafc;border-bottom:1px solid #e2e8f0}.accordion-content{color:#475569;border-top:none;padding:14px 16px;font-size:13px;line-height:1.65}.mini-tag.fill{color:#c2410c;cursor:pointer;background:#ffedd5;border-color:#fed7aa;transition:background .15s,color .15s}.mini-tag.fill:hover{color:#fff;background:#f97316;border-color:#f97316}.theme-study-page .theme-header-block{padding:var(--spacing-6);background:var(--bg-card);border-bottom:1px solid var(--border-color);text-align:center}.book-reference{font-size:var(--font-size-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-2)}.theme-title{font-size:var(--font-size-xxl);color:var(--brand-primary);margin:0;font-weight:800}.ai-rule-card{background:linear-gradient(145deg, var(--bg-card), rgba(var(--brand-primary-rgb), .05));border:1px solid rgba(var(--brand-primary-rgb), .2);border-radius:var(--border-radius-xl);padding:var(--spacing-6);box-shadow:0 8px 24px #0000000a}.rule-header{margin-bottom:var(--spacing-3)}.rule-text{font-size:var(--font-size-md);color:var(--text-secondary);margin-bottom:var(--spacing-5);line-height:1.6}.book-examples{background:var(--bg-secondary);border-left:3px solid var(--brand-primary);padding:var(--spacing-4);border-radius:0 var(--border-radius-md) var(--border-radius-md) 0}.example strong{font-size:var(--font-size-md);color:var(--text-primary);margin-bottom:var(--spacing-1);display:block}.example span{font-size:var(--font-size-sm);color:var(--text-tertiary);display:block}.ep-root{background:#f8fafc;flex-direction:column;min-height:100vh;display:flex}.ep-loading,.ep-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:40px 24px;display:flex}.ep-empty-icon{font-size:52px}.ep-empty h2{color:#1e293b;font-size:1.5rem}.ep-empty p{color:#64748b;margin-bottom:24px}.ep-header{z-index:200;background:#fff;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000f}.ep-progress{flex-direction:column;flex:1;gap:5px;display:flex}.ep-progress-label{color:#64748b;text-align:center;letter-spacing:.2px;font-size:12px}.ep-progress-label strong{color:#1e293b;font-weight:700}.ep-progress-track{background:#e2e8f0;border-radius:99px;height:8px;overflow:hidden}.ep-progress-fill{background:#f97316;border-radius:99px;height:100%;transition:width .4s;box-shadow:0 0 6px #f9731659}.ep-help-btn{white-space:nowrap;min-height:34px!important;padding:6px 12px!important;font-size:12px!important;line-height:1!important}.ep-content{flex:1;width:100%;max-width:600px;margin:0 auto;padding:24px 20px 240px}.ep-exercise-area{animation:.3s ease-out both slideInExercise}@keyframes slideInExercise{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.ep-group-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.ep-group-title{color:#c2410c;background:#ffedd5;border:1px solid #fed7aa;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700}.ep-group-counter{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;background:#f1f5f9;border-radius:99px;padding:3px 10px;font-size:11px;font-weight:600}.ep-meta-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ep-type-label{letter-spacing:.5px;text-transform:uppercase;color:#c2410c;background:#ffedd5;border:1px solid #fed7aa;border-radius:99px;align-items:center;gap:5px;margin:0;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.ep-type-icon{font-size:13px;line-height:1}.ep-audio-badge{letter-spacing:.3px;text-transform:uppercase;color:#7c3aed;background:#ede9fe;border:1px solid #ddd6fe;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:700;display:inline-flex}.ep-media-badge{letter-spacing:.3px;text-transform:uppercase;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:700;display:inline-flex}.ep-instruction{color:#64748b;margin-bottom:14px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:1.45}.ep-exercise-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px;transition:border-color .25s,box-shadow .25s,background .25s;box-shadow:0 8px 24px #f9731614}.ep-exercise-card.card-feedback-correct{background:#f0fdf4;border-color:#86efac;animation:.35s ease-out pulseCorrect;box-shadow:0 8px 24px #16a34a1a}@keyframes pulseCorrect{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.ep-exercise-card.card-feedback-incorrect{background:#fff5f5;border-color:#fca5a5;animation:.35s ease-out shakeIncorrect;box-shadow:0 8px 24px #dc262614}@keyframes shakeIncorrect{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.ep-exercise-card.card-feedback-skipped{background:#f8fafc;border-color:#e2e8f0}.ep-exercise-card.card-feedback-pending{background:#fafafe;border-color:#a78bfa;box-shadow:0 8px 24px #8b5cf61a}.ep-footer{z-index:200;background:#fff;border-top:1px solid #e2e8f0;flex-direction:column;gap:10px;width:100%;max-width:600px;padding:16px 20px 20px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 20px #0000000f}@media (width<=620px){.ep-footer{max-width:100%;left:0;transform:none}}.ep-hint-box{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.55;display:flex}.ep-hint-icon{color:#f59e0b;flex-shrink:0;margin-top:2px}.ep-ai-eval-panel{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:12px;padding:16px;animation:.25s ease-out both feedbackSlideIn}.ep-ai-eval-preview{margin-bottom:12px}.ep-ai-eval-answer-label{text-transform:uppercase;color:#94a3b8;letter-spacing:.3px;margin-bottom:4px;font-size:11px;font-weight:600}.ep-ai-eval-answer{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-height:120px;padding:10px 12px;font-size:14px;line-height:1.5;overflow-y:auto}.ep-ai-eval-actions{flex-direction:column;gap:8px;display:flex}.ep-ai-eval-btn{justify-content:center;align-items:center;gap:8px;display:flex}.ep-ai-eval-result{border-radius:10px;margin-top:10px;padding:12px}.ep-ai-eval--correct{background:#f0fdf4;border:1px solid #bbf7d0}.ep-ai-eval--incorrect{background:#fef2f2;border:1px solid #fecaca}.ep-ai-eval-score{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.ep-ai-eval-score-num{color:#1e293b;font-size:24px;font-weight:800}.ep-ai-eval-score-label{color:#64748b;font-size:14px;font-weight:600}.ep-ai-eval--correct .ep-ai-eval-score-label{color:#166534}.ep-ai-eval--incorrect .ep-ai-eval-score-label{color:#991b1b}.ep-ai-eval-feedback{color:#334155;margin:0;font-size:13px;line-height:1.6}.ep-ai-eval-correction{color:#334155;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:13px;line-height:1.5}.ep-ai-eval-correction strong{color:#92400e;font-weight:700}.ep-ai-eval-correction p{margin:4px 0 0}.ep-ai-eval-inline{margin-top:8px}.ep-feedback-panel{border:1px solid #0000;border-radius:10px;padding:14px;animation:.2s ease-out both feedbackSlideIn}@keyframes feedbackSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ep-feedback-panel--correct{background:#f0fdf4;border-color:#bbf7d0}.ep-feedback-panel--incorrect{background:#fef2f2;border-color:#fecaca}.ep-feedback-panel--skipped{background:#f8fafc;border-color:#e2e8f0}.ep-feedback-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.ep-feedback-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex}.ep-feedback-badge--correct{color:#fff;background:#16a34a}.ep-feedback-badge--incorrect{color:#fff;background:#dc2626}.ep-feedback-badge--skipped{color:#fff;background:#94a3b8}.ep-feedback-label{font-size:15px;font-weight:700}.ep-feedback-panel--correct .ep-feedback-label{color:#166534}.ep-feedback-panel--incorrect .ep-feedback-label{color:#991b1b}.ep-feedback-panel--skipped .ep-feedback-label{color:#64748b}.ep-feedback-comparison{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.ep-feedback-row-item{align-items:baseline;gap:8px;font-size:13px;display:flex}.ep-fc-label{color:#94a3b8;flex-shrink:0;min-width:110px}.ep-fc-value{font-weight:600}.ep-feedback-wrong .ep-fc-value{color:#dc2626}.ep-feedback-right .ep-fc-value{color:#16a34a}.ep-ai-box{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;align-items:flex-start;gap:10px;margin-top:8px;padding:10px 12px;font-size:13px;line-height:1.6;display:flex}.ep-ai-box svg{color:#f59e0b;flex-shrink:0;margin-top:2px}.ep-ai-box p{margin:0}.ep-next-btn{margin-top:0}.ep-skip-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:10px;width:100%;height:44px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s}.ep-skip-btn:hover{color:#475569;background:#f8fafc;border-color:#cbd5e1}.ex-content-block{color:#1e293b;white-space:pre-line;margin-bottom:4px;padding:0 0 16px;font-size:clamp(1rem,3.5vw,1.2rem);font-weight:600;line-height:1.6}.ex-content-reading{color:#334155;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;max-height:280px;margin-bottom:16px;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.7;overflow-y:auto;box-shadow:0 1px 3px #0000000d}.ex-content-statement{color:#1e293b;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:16px;padding:18px 20px;font-size:clamp(1rem,3.5vw,1.1rem);font-weight:600;line-height:1.5}.ex-text-input{color:#1e293b;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:12px 16px;font-family:Inter,sans-serif;font-size:15px;transition:border-color .15s,box-shadow .15s}.ex-text-input:focus{border-color:#f97316;box-shadow:0 0 0 3px #f9731626}.ex-text-input:disabled{color:#94a3b8;cursor:default;background:#f8fafc}.ex-sentence-with-blank{color:#1e293b;text-align:center;margin-bottom:16px;font-size:clamp(1.05rem,4.5vw,1.3rem);font-weight:600;line-height:1.85}.ex-blank-slot{text-align:center;vertical-align:bottom;border-bottom:2.5px solid #e2e8f0;min-width:80px;margin:0 5px;padding:0 4px;transition:border-color .2s,background .2s;display:inline-block}.ex-blank-slot--filled{background:#fff7ed;border-bottom-color:#f97316;border-radius:4px 4px 0 0}.ex-blank-filled{color:#f97316;font-weight:700}.ex-blank-placeholder{color:#cbd5e1}.ex-word-bank{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;display:flex}.ex-word-bank--suggestions{margin-top:14px}.ex-options-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=360px){.ex-options-grid{grid-template-columns:1fr}}.ex-option{color:#334155;text-align:left;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;align-items:center;gap:10px;padding:14px 16px;font-size:14px;font-weight:500;line-height:1.4;transition:all .15s;display:flex;box-shadow:0 1px 3px #0000000d}.ex-option:hover:not(:disabled){background:#fff7ed;border-color:#fed7aa;transform:translateY(-1px);box-shadow:0 4px 12px #f973161f}.ex-option.selected{background:#fff7ed;border-width:2px;border-color:#f97316;font-weight:600;box-shadow:0 0 0 3px #f973161f}.ex-option:disabled{cursor:default}.ex-option--dimmed{opacity:.45}.ex-option-letter{color:#475569;background:#f1f5f9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;transition:all .15s;display:flex}.ex-option.selected .ex-option-letter{color:#fff;background:#f97316}.ex-rf-buttons{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ex-rf-btn{cursor:pointer;color:#334155;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;flex-direction:row;justify-content:center;align-items:center;gap:10px;padding:16px 14px;font-size:15px;font-weight:700;transition:all .15s;display:flex;box-shadow:0 1px 3px #0000000d}.ex-rf-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:all .15s;display:flex}.rf-true .ex-rf-icon{color:#10b981;background:#d1fae5}.rf-false .ex-rf-icon{color:#ef4444;background:#fee2e2}.ex-rf-btn.rf-true:hover:not(:disabled){color:#065f46;background:#f0fdf4;border-color:#10b981;transform:translateY(-1px);box-shadow:0 4px 12px #10b98126}.ex-rf-btn.rf-false:hover:not(:disabled){color:#991b1b;background:#fef2f2;border-color:#ef4444;transform:translateY(-1px);box-shadow:0 4px 12px #ef444426}.ex-rf-btn.rf-true.selected{color:#fff;background:#10b981;border-color:#10b981;box-shadow:0 4px 14px #10b9814d}.ex-rf-btn.rf-true.selected .ex-rf-icon{color:#fff;background:#ffffff40}.ex-rf-btn.rf-false.selected{color:#fff;background:#ef4444;border-color:#ef4444;box-shadow:0 4px 14px #ef44444d}.ex-rf-btn.rf-false.selected .ex-rf-icon{color:#fff;background:#ffffff40}.ex-rf-btn:disabled{cursor:default;opacity:.75}.ex-drop-zone{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;min-height:68px;margin-bottom:14px;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.ex-drop-zone:has(.ex-word-chip--placed){background:#fff7ed;border-color:#fed7aa}.ex-drop-placeholder{color:#94a3b8;font-size:13px;font-style:italic}.ex-word-chip{cursor:pointer;-webkit-user-select:none;user-select:none;color:#334155;background:#fff;border:1.5px solid #e2e8f0;border-radius:99px;padding:6px 14px;font-size:13px;font-weight:600;line-height:1.5;transition:all .15s;box-shadow:0 1px 3px #0000000d}.ex-word-chip:hover:not(:disabled){background:#fff7ed;border-color:#fed7aa;transform:translateY(-1px);box-shadow:0 3px 8px #f973161f}.ex-word-chip:active:not(:disabled){transform:scale(.97)}.ex-word-chip--placed{color:#fff;background:#f97316;border-color:#f97316;font-weight:700;box-shadow:0 2px 8px #f973164d}.ex-word-chip--placed:hover:not(:disabled){background:#ea580c;border-color:#ea580c}.ex-word-chip--selected{color:#fff;background:#f97316;border-color:#f97316;font-weight:700;box-shadow:0 2px 8px #f973164d}.ex-word-chip:disabled{cursor:default}.ex-zuordnung-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.ex-zuordnung-col{flex-direction:column;gap:8px;display:flex}.ex-zuordnung-item{text-align:center;cursor:pointer;color:#334155;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.4;transition:all .15s;box-shadow:0 1px 3px #0000000a}.ex-zuordnung-left.selected{background:#fff7ed;border-color:#f97316;box-shadow:0 0 0 3px #f973161f}.ex-zuordnung-item.matched{color:#166534;cursor:default;background:#dcfce7;border-color:#16a34a}.ex-zuordnung-item.highlightable:hover{background:#fff7ed;border-color:#fed7aa}.ex-zuordnung-link{color:#16a34a;margin-top:3px;font-size:11px;font-weight:600;display:block}.ex-textarea{color:#1e293b;resize:vertical;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;min-height:120px;padding:14px;font-family:Inter,sans-serif;font-size:15px;line-height:1.6;transition:border-color .15s,box-shadow .15s}.ex-textarea:focus{border-color:#f97316;box-shadow:0 0 0 3px #f9731626}.ex-textarea:disabled{color:#94a3b8;cursor:default;background:#f8fafc}.ex-word-count{color:#94a3b8;text-align:right;margin-top:6px;font-size:12px}.ex-word-count--ok{color:#16a34a}.ex-media-warning{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;display:flex}.ex-media-warning-icon{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:4px;display:flex}.ex-media-warning-icon--audio{color:#7c3aed;background:#ede9fe}.ex-media-warning-icon--media{color:#d97706;background:#fef3c7}.ex-media-warning-title{color:#1e293b;margin:0;font-size:16px;font-weight:700}.ex-media-warning-desc{color:#64748b;margin:0;font-size:13px;line-height:1.5}.ex-media-warning-actions{flex-direction:column;gap:8px;width:100%;margin-top:4px;display:flex}.ex-missing-data{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;display:flex}.ex-missing-icon{font-size:40px;line-height:1}.ex-missing-title{color:#1e293b;margin:0;font-size:15px;font-weight:700}.ex-missing-desc{color:#64748b;margin:0;font-size:13px;line-height:1.5}.ex-zuordnung-hint{color:#94a3b8;text-align:center;margin:0 0 12px;font-size:12px}.fade-in-up{animation:.25s ease-out both feedbackSlideIn}.ess-root{background:var(--bg-primary);flex-direction:column;flex:1;display:flex}.ess-header{padding:var(--space-3) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border-default);z-index:var(--z-sticky);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.ess-header-title{font-family:var(--font-heading);font-size:var(--text-base);color:var(--text-heading);font-weight:600}.ess-header-spacer{width:40px}.ess-content{width:100%;max-width:520px;padding:var(--space-6) var(--space-5) var(--space-10);gap:var(--space-6);flex-direction:column;flex:1;margin:0 auto;display:flex}.ess-hero{text-align:center;padding:var(--space-7,28px) var(--space-5) var(--space-5);background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border-default);box-shadow:var(--shadow-md);animation:.4s ease-out both heroFadeIn}@keyframes heroFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.ess-hero-icon{width:72px;height:72px;margin:0 auto var(--space-4);border-radius:50%;justify-content:center;align-items:center;animation:.45s cubic-bezier(.34,1.56,.64,1) .15s both iconPop;display:flex}@keyframes iconPop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.ess-hero-icon--great{background:var(--success-light);color:var(--success)}.ess-hero-icon--good{background:var(--brand-primary-subtle);color:var(--brand-primary)}.ess-hero-icon--ok{background:var(--warning-light);color:var(--warning)}.ess-hero-icon--keep{background:var(--bg-secondary);color:var(--text-secondary)}.ess-score{font-family:var(--font-heading);color:var(--text-heading);letter-spacing:-1px;margin-bottom:var(--space-2);font-size:clamp(2rem,10vw,3rem);font-weight:800;line-height:1}.ess-score-sub{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-5);line-height:1.5}.ess-stat-bar{background:var(--border-default);border-radius:var(--radius-full);height:8px;margin-bottom:var(--space-5);overflow:hidden}.ess-stat-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .7s ease-in-out}.ess-stat-bar-fill--great{background:linear-gradient(90deg, var(--success) 0%, #34d399 100%)}.ess-stat-bar-fill--good{background:linear-gradient(90deg, var(--brand-primary) 0%, var(--accent) 100%)}.ess-stat-bar-fill--ok{background:linear-gradient(90deg, var(--warning) 0%, #fcd34d 100%)}.ess-stat-bar-fill--keep{background:var(--slate-300)}.ess-metrics{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.ess-metric-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);text-align:center;box-shadow:var(--shadow-sm)}.ess-metric-icon{margin-bottom:var(--space-2);color:var(--brand-primary);justify-content:center;display:flex}.ess-metric-value{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--text-heading);margin-bottom:4px;font-weight:700;line-height:1}.ess-metric-label{font-size:var(--text-xs);letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);font-weight:600}.ess-section-title{align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-base);color:var(--text-heading);margin-bottom:var(--space-3);font-weight:700;display:flex}.ess-section-title svg{color:var(--brand-primary);flex-shrink:0}.ess-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.ess-card-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);display:flex}.ess-card-row:last-child{border-bottom:none}.ess-card-row-label{font-size:var(--text-sm);color:var(--text-secondary);flex:1}.ess-card-row-value{font-size:var(--text-sm);color:var(--text-heading);font-weight:700}.ess-card-row-value--correct{color:#16a34a}.ess-card-row-value--error{color:#dc2626}.ess-card-row-value--warning{color:#d97706}.ess-perfect-banner{align-items:center;gap:var(--space-4);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);background:#f0fdf4;border:1px solid #bbf7d0;display:flex}.ess-perfect-icon{color:#16a34a;flex-shrink:0}.ess-perfect-title{color:#166534;font-weight:700;font-size:var(--text-sm);margin-bottom:2px}.ess-perfect-sub{font-size:var(--text-xs);color:#166534;opacity:.8}.ess-actions{gap:var(--space-3);flex-direction:column;display:flex}.ess-no-session{justify-content:center;align-items:center;gap:var(--space-4);text-align:center;min-height:100vh;padding:var(--space-10) var(--space-6);color:var(--text-secondary);flex-direction:column;display:flex}.ocr-content{gap:var(--space-5);padding-top:var(--space-6);padding-bottom:var(--space-16);flex-direction:column;width:100%;max-width:720px;margin-inline:auto;display:flex}.ocr-loading{align-items:center;gap:var(--space-3);padding:var(--space-16) 0;color:var(--text-secondary);flex-direction:column;display:flex}.ocr-toasts{top:var(--space-4);right:var(--space-4);z-index:9999;gap:var(--space-2);flex-direction:column;display:flex;position:fixed}.ocr-toast{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:.85rem;font-weight:500;animation:.2s slideIn;display:flex}.ocr-toast-success{color:#276749;background:#f0fff4;border:1px solid #c6f6d5}.ocr-toast-error{color:#9b2c2c;background:#fff5f5;border:1px solid #fed7d7}.ocr-toast-info{color:#2a4365;background:#ebf8ff;border:1px solid #bee3f8}.ocr-toast-close{cursor:pointer;opacity:.6;margin-left:var(--space-2);background:0 0;border:none;padding:2px}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.ocr-header{align-items:center;gap:var(--space-3);display:flex}.ocr-back-btn{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;color:var(--text-primary);align-items:center;transition:background .15s;display:flex}.ocr-back-btn:hover{background:var(--bg-secondary)}.ocr-header-info{flex:1}.ocr-title{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:700}.ocr-subtitle{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:400px;margin:2px 0 0;font-size:.85rem;overflow:hidden}.ocr-refresh-btn{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;color:var(--text-secondary);transition:all .15s}.ocr-refresh-btn:hover{color:var(--brand-primary);border-color:var(--brand-primary)}.ocr-processing-banner{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;font-size:.85rem;font-weight:500;display:flex}.ocr-overview{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5)}.ocr-stats-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.ocr-stat{align-items:center;gap:var(--space-2);display:flex}.ocr-stat-info{flex-direction:column;display:flex}.ocr-stat-value{color:var(--text-primary);font-size:1rem;font-weight:700}.ocr-stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.ocr-progress-wrap{align-items:center;gap:var(--space-3);display:flex}.ocr-progress-bar{background:var(--bg-secondary);border-radius:4px;flex:1;height:8px;overflow:hidden}.ocr-progress-fill{background:var(--brand-primary);border-radius:4px;height:100%;transition:width .5s}.ocr-progress-label{color:var(--text-secondary);white-space:nowrap;font-size:.8rem;font-weight:600}.ocr-paid-section{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}.ocr-paid-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.ocr-paid-info{align-items:center;gap:var(--space-3);display:flex}.ocr-paid-info>div{flex-direction:column;display:flex}.ocr-paid-title{color:var(--text-primary);font-size:.9rem;font-weight:600}.ocr-paid-desc{color:var(--text-secondary);font-size:.75rem}.ocr-toggle{cursor:pointer;background:#cbd5e0;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.ocr-toggle-on{background:var(--brand-primary)}.ocr-toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.ocr-toggle-on .ocr-toggle-thumb{transform:translate(20px)}.ocr-paid-bar-wrap{margin-top:var(--space-3)}.ocr-paid-bar{background:var(--bg-secondary);border-radius:3px;height:6px;overflow:hidden}.ocr-paid-bar-fill{background:var(--cta,#f97316);border-radius:3px;height:100%;transition:width .3s}.ocr-paid-remaining{color:var(--text-secondary);margin-top:4px;font-size:.75rem;display:block}.ocr-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.ocr-action-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.ocr-action-btn:disabled{opacity:.5;cursor:not-allowed}.ocr-action-primary{background:var(--brand-primary);color:#fff}.ocr-action-primary:hover:not(:disabled){background:var(--brand-hover,#ea580c)}.ocr-action-secondary{color:#fff;background:#2563eb}.ocr-action-secondary:hover:not(:disabled){background:#1d4ed8}.ocr-action-ghost{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-default)}.ocr-action-ghost:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.ocr-action-danger{color:var(--danger,#e53e3e);border:1.5px solid var(--danger,#e53e3e);background:0 0}.ocr-action-danger:hover:not(:disabled){background:#e53e3e1a}.ocr-audit-section{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.ocr-audit-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ocr-audit-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:700}.ocr-audit-controls{gap:var(--space-2);align-items:center;display:flex}.ocr-select-all-btn,.ocr-toggle-view-btn{color:var(--brand-primary);border:1px solid var(--brand-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;transition:all .15s;display:inline-flex}.ocr-select-all-btn:hover,.ocr-toggle-view-btn:hover{background:var(--brand-primary);color:#fff}.ocr-audit-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-secondary);font-size:.9rem;display:flex}.ocr-audit-list{max-height:60vh;overflow-y:auto}.ocr-audit-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-subtle,#f0f0f0);font-size:.8rem;transition:background .1s;display:flex}.ocr-audit-row:hover{background:var(--bg-secondary)}.ocr-row-fail{background:#fffbeb}.ocr-row-fail:hover{background:#fef3c7}.ocr-audit-check{flex-shrink:0;justify-content:center;align-items:center;width:20px;display:flex}.ocr-audit-check input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--brand-primary)}.ocr-audit-page{color:var(--text-primary);white-space:nowrap;min-width:56px;font-weight:700}.ocr-status-badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.ocr-status-cached{color:#276749;background:#c6f6d5}.ocr-status-needs_review{color:#975a16;background:#fefcbf}.ocr-status-missing{color:#9b2c2c;background:#fed7d7}.ocr-status-empty{color:#4a5568;background:#e2e8f0}.ocr-audit-snippet{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ocr-audit-model{color:var(--text-muted);background:var(--bg-secondary);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:.65rem}.ocr-edit-btn{border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);background:0 0;flex-shrink:0;padding:4px 6px;transition:all .15s}.ocr-edit-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.ocr-modal-overlay{z-index:10000;padding:var(--space-4);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ocr-modal{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-xl,0 20px 25px -5px #0000001a);overflow-y:auto}.ocr-modal-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.ocr-modal-header h3{margin:0;font-size:1.1rem;font-weight:700}.ocr-modal-close{cursor:pointer;color:var(--text-secondary);padding:var(--space-1);background:0 0;border:none}.ocr-modal-hint{color:var(--text-secondary);margin-bottom:var(--space-3);font-size:.8rem}.ocr-modal-textarea{border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;padding:var(--space-3);resize:vertical;min-height:200px;font-family:SF Mono,Consolas,monospace;font-size:.85rem;line-height:1.5}.ocr-modal-textarea:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 3px #f973161a}.ocr-modal-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}.spin{animation:1s linear infinite spin}@media (width<=600px){.ocr-stats-grid{grid-template-columns:repeat(2,1fr)}.ocr-audit-snippet,.ocr-audit-model{display:none}.ocr-subtitle{max-width:200px}.ocr-actions{flex-direction:column}.ocr-action-btn{justify-content:center;width:100%}}:root{--bg-primary:#fafaf9;--bg-secondary:#f5f5f4;--surface:#fff;--brand-primary:#f97316;--brand-primary-hover:#ea580c;--brand-primary-dark:#c2410c;--brand-primary-light:#fff7ed;--brand-primary-subtle:#ffedd5;--cta:#f97316;--cta-hover:#ea580c;--cta-light:#fff7ed;--accent:#f59e0b;--accent-light:#fef3c7;--accent-dark:#92400e;--slate-900:#1c1917;--slate-800:#292524;--slate-700:#44403c;--slate-500:#78716c;--slate-300:#d6d3d1;--slate-100:#f5f5f4;--success:#10b981;--success-light:#d1fae5;--success-dark:#065f46;--warning:#f59e0b;--warning-light:#fef3c7;--warning-dark:#92400e;--error:#ef4444;--error-light:#fee2e2;--error-dark:#991b1b;--info:#0891b2;--info-light:#cffafe;--info-dark:#164e63;--text-heading:#1c1917;--text-body:#292524;--text-secondary:#78716c;--text-muted:#a8a29e;--text-inverse:#fff;--border-default:#e7e5e4;--border-light:#f5f5f4;--border-active:var(--brand-primary);--border-orange:#fed7aa;--border-error:var(--error);--glow-brand:0 0 0 3px #f973162e;--glow-brand-md:0 0 0 4px #f9731626, 0 0 16px #f973161f;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 10px 10px -5px #00000008;--shadow-brand:0 4px 16px 0 #f973164d;--shadow-brand-lg:0 8px 28px 0 #f9731640;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-heading:"Poppins", "Montserrat", system-ui, sans-serif;--font-body:"Inter", "Roboto", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:2.5rem;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease-in-out;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-body);background-color:var(--bg-primary);min-height:100vh;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-heading);font-weight:600;line-height:1.2}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}a{color:var(--brand-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--brand-primary-hover)}input,textarea,select{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-body);background:var(--surface);border:1.5px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;transition:all var(--transition-fast);box-shadow:none;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--brand-primary);box-shadow:var(--glow-brand)}input.error,textarea.error{border-color:var(--error);box-shadow:0 0 0 3px #ef44441f}input::placeholder,textarea::placeholder{color:var(--text-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-base);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast);border:1.5px solid #0000;min-height:44px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-cta{background:var(--cta);color:var(--text-inverse);box-shadow:var(--shadow-brand);border-color:#0000}.btn-cta:hover:not(:disabled){background:var(--cta-hover);box-shadow:var(--shadow-brand-lg)}.btn-primary{background:var(--brand-primary);color:var(--text-inverse);box-shadow:var(--shadow-brand);border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--brand-primary-hover);box-shadow:var(--shadow-brand-lg)}.btn-secondary{background:var(--surface);color:var(--text-body);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:#fed7aa}.btn-outline{color:var(--brand-primary);border-color:var(--brand-primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--brand-primary-light);box-shadow:0 0 0 3px #f973161f}.btn-text{color:var(--brand-primary);padding:var(--space-2) var(--space-4);min-height:auto;box-shadow:none;background:0 0;border-color:#0000}.btn-text:hover:not(:disabled){background:var(--brand-primary-light)}.btn-danger{color:var(--error);box-shadow:none;background:0 0;border-color:#0000}.btn-danger:hover:not(:disabled){background:var(--error-light);border-color:#fecaca}.btn-full{width:100%}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-md);padding:var(--space-5);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base)}.card:hover{box-shadow:var(--shadow-brand);border-color:#fed7aa;transform:translateY(-2px)}.card-sm{padding:var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-default)}.card-sm:hover{border-color:#fed7aa;transform:translateY(-1px);box-shadow:0 4px 12px #f973161f}.pill{align-items:center;gap:var(--space-1);font-size:var(--text-xs);letter-spacing:.3px;border-radius:var(--radius-full);border:1px solid #0000;padding:4px 12px;font-weight:600;line-height:1.6;display:inline-flex}.pill-brand{background:var(--brand-primary);color:var(--text-inverse);border-color:#0000;box-shadow:0 2px 8px #f9731640}.pill-success{background:var(--success-light);color:var(--success-dark)}.pill-warning{background:var(--warning-light);color:var(--warning-dark)}.pill-error{background:var(--error-light);color:var(--error-dark)}.pill-neutral{background:var(--bg-secondary);color:var(--text-secondary)}.page{flex-direction:column;flex:1;min-height:100vh;display:flex}.page-content{width:100%;max-width:480px;padding:var(--space-5);flex:1;margin:0 auto}.page-content-wide{max-width:720px}.skeleton{background:linear-gradient(90deg, var(--bg-secondary) 25%, #e2e8f0 50%, var(--bg-secondary) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.divider{align-items:center;gap:var(--space-4);color:var(--text-muted);font-size:var(--text-sm);display:flex}.divider:before,.divider:after{content:"";background:var(--border-default);flex:1;height:1px}.spinner{border:2.5px solid #ffffff4d;border-top-color:currentColor;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fadeIn var(--transition-base) both}.animate-scale-in{animation:scaleIn var(--transition-base) both}.animate-slide-up{animation:slideUp var(--transition-base) both}.progress-bar{background:var(--border-default);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar-fill{background:var(--brand-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.error-message{color:var(--error);font-size:var(--text-sm);margin-top:var(--space-1)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.top-nav-bar{background:var(--surface);z-index:var(--z-sticky);align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000f}.page-title{font-size:var(--text-base);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;overflow:hidden}.icon-btn{appearance:none;-webkit-tap-highlight-color:transparent;width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;outline:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--bg-secondary);color:var(--text-heading)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.ghost{background:0 0;border-color:#0000}.btn-ghost{color:var(--text-secondary);box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-heading);box-shadow:none;transform:none}.btn-small{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-sm);min-height:32px}.badge{font-size:var(--text-xs);border-radius:var(--radius-full);justify-content:center;align-items:center;padding:2px 8px;font-weight:600;line-height:1.5;display:inline-flex}.badge-neutral{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default)}.badge-brand{background:var(--brand-primary-subtle);color:var(--brand-primary-dark);border:1px solid var(--border-orange)}.badge-success{background:var(--success-light);color:var(--success-dark)}.mini-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.mini-tag{border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);align-items:center;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.p-0{padding:0}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-secondary{color:var(--text-secondary)}.text-tertiary,.text-muted{color:var(--text-muted)}.text-brand{color:var(--brand-primary)}.text-success{color:var(--success)}.opacity-50{opacity:.5}.no-padding-top{padding-top:0!important}.has-bottom-nav{padding-bottom:80px}.center-content{flex:1;justify-content:center;align-items:center;display:flex}
