*,:after,:before{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f5f5f5}:root{--v2-bg:radial-gradient(circle at top left,#f8fafc,#e2e8f0);--v2-card-bg:hsla(0,0%,100%,.85);--v2-progress-gradient:linear-gradient(90deg,#3b82f6,#60a5fa);--v2-text-main:#0f172a;--v2-text-muted:#475569;--v2-accent:#3b82f6;--v2-accent-hover:#2563eb;--v2-border:hsla(0,0%,100%,.5);--v2-shadow:0 20px 40px rgba(0,0,0,.04)}.v2-glass-card{background:var(--v2-card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--v2-border);border-radius:24px;box-shadow:var(--v2-shadow)}.v2-title{font-size:1.75rem;font-weight:800;color:var(--v2-text-main);letter-spacing:-.025em;line-height:1.1}.v2-subtitle{font-size:1.1rem;color:var(--v2-text-muted);line-height:1.5}.v2-button-primary{padding:16px 32px;background:var(--v2-accent);color:#fff;border:none;border-radius:16px;font-weight:800;font-size:1.05rem;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 10px rgba(59,130,246,.2);display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.v2-button-primary:hover{background:var(--v2-accent-hover);transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(59,130,246,.3)}.v2-page-wrapper{min-height:100vh;background:var(--v2-bg);display:flex;align-items:center;justify-content:center;padding:24px}.v2-input{display:block;width:100%;margin-top:8px;padding:12px 16px;font-size:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-sizing:border-box;transition:border-color .2s}.v2-input:focus{outline:none;border-color:var(--v2-accent)}.fade-in{animation:v2-fadeIn .6s cubic-bezier(.22,1,.36,1)}@keyframes v2-fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.app-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.app-header,.app-header-nav{display:flex;align-items:center}.app-header-nav{gap:1rem}.app-header-link{font-size:.9375rem;color:#2563eb;text-decoration:none}.app-header-link:hover{text-decoration:underline}.app-header-right{display:flex;align-items:center;gap:.75rem}.app-header-email{font-size:.8125rem;color:#6b7280;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header-logout-form{margin:0}.app-header-signout{font-size:.875rem;padding:.35rem .6rem;background:transparent;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer}.app-header-signout:hover{background:#f3f4f6}.app-main{flex:1 1;width:100%}.home-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center}.home-title{margin:0 0 .5rem;font-size:1.75rem}.home-description{margin:0 0 1.5rem;color:#6b7280;font-size:1rem}.home-cta{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;background:#2563eb;color:#fff;border-radius:8px;text-decoration:none;font-weight:500}.home-cta:hover{background:#1d4ed8}.lesson-page,.result-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:1rem;max-width:36rem;margin:0 auto}.lesson-runner{width:100%}.lesson-resume-banner{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.5rem .75rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.15rem}.lesson-resume-banner-title{font-size:.875rem;font-weight:600;color:#1d4ed8}.lesson-resume-banner-note{font-size:.8125rem;color:#3b82f6}.lesson-notice-toast{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.6rem 1rem;margin-bottom:1rem;font-size:.9375rem;color:#166534}.lesson-meta-bar{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.lesson-progress-wrap{margin-bottom:1.5rem}.lesson-progress-bar{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.lesson-progress-fill{height:100%;background:#2563eb;border-radius:4px;transition:width .2s ease}.lesson-progress-meta{display:flex;justify-content:space-between;font-size:.875rem;color:#666}.lesson-prompt-card{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.lesson-prompt-text{font-size:1.5rem;font-weight:600;margin:0;line-height:1.4}.lesson-options{display:flex;flex-direction:column;gap:.75rem}.lesson-option{min-height:56px;padding:1rem 1.25rem;font-size:1.125rem;text-align:left;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:background .15s,border-color .15s}.lesson-option:hover:not(.locked){background:#f9fafb;border-color:#d1d5db}.lesson-option.chosen{border-color:#2563eb;background:#eff6ff}.lesson-option.locked{cursor:default;opacity:.65;background:#f9fafb;color:#6b7280}.lesson-nav{margin-top:1.5rem}.lesson-back{padding:.5rem 1rem;font-size:.9375rem;background:transparent;border:1px solid #d1d5db;border-radius:8px;cursor:pointer}.lesson-back:hover:not(:disabled){background:#f3f4f6}.lesson-back:disabled{opacity:.6;cursor:not-allowed}.lesson-submit-error{color:#dc2626;font-size:.875rem;margin-top:1rem}.lesson-submitting{color:#666;font-size:.875rem;margin-top:1rem}.lesson-skeleton{width:100%}.lesson-skeleton-bar{height:8px;background:#e0e0e0;border-radius:4px;margin-bottom:1.5rem}.lesson-skeleton-card{height:6rem;background:#fff;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.lesson-skeleton-options{display:flex;flex-direction:column;gap:.75rem}.lesson-skeleton-btn{height:56px}.lesson-error-card,.lesson-skeleton-btn{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.lesson-error-card{padding:2rem;text-align:center}.lesson-error-card h2{margin:0 0 .5rem;font-size:1.25rem}.lesson-error-card p{margin:0 0 1.5rem;color:#666}.lesson-retry-btn{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;background:#2563eb;color:#fff;border:none;border-radius:8px;cursor:pointer;text-decoration:none}.lesson-retry-btn:hover{background:#1d4ed8}.lesson-error-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.lesson-reset-set-btn{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;background:transparent;color:#374151;border:1px solid #d1d5db;border-radius:8px;cursor:pointer}.lesson-reset-set-btn:hover{background:#f3f4f6}.login-card{max-width:24rem}.login-title{margin:0 0 .25rem;font-size:1.5rem;font-weight:600}.login-subtitle{margin:0 0 1.25rem;font-size:.9375rem;color:#666}.login-divider{margin:1rem 0 .75rem}.login-google-btn{width:100%}.login-magic-sent{padding:.5rem .75rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#166534}.login-error,.login-magic-sent{margin:0 0 1rem;font-size:.875rem}.login-error{color:#b91c1c}.login-debug-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.login-test-btn{margin-bottom:.5rem}.login-connection-ok{margin:.35rem 0 0;font-size:.875rem;color:#166534}.login-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid #e5e7eb}.login-tab{padding:.5rem .75rem;font-size:.875rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:#6b7280;cursor:pointer}.login-tab:hover{color:#111827}.login-tab-active{color:#2563eb;font-weight:500;border-bottom-color:#2563eb}.login-form{margin-bottom:1rem}.login-label{display:block;margin-bottom:.75rem;font-size:.875rem;font-weight:500}.login-input{display:block;width:100%;margin-top:.25rem;padding:.5rem .75rem;font-size:1rem;border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box}.login-input:focus{outline:none;border-color:#2563eb}.login-actions{margin-top:1rem}.login-divider{margin:1rem 0;font-size:.875rem;color:#6b7280;text-align:center}.login-back{margin:1.25rem 0 0;font-size:.875rem}.login-back-link{color:#2563eb;text-decoration:none}.login-back-link:hover{text-decoration:underline}.profile-card{max-width:36rem;width:100%}.profile-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.profile-section{margin-bottom:1.25rem}.profile-heading{margin:0 0 .35rem;font-size:.875rem;font-weight:600;color:#374151}.profile-list{margin:0 0 .5rem;padding-left:1.25rem;font-size:.9375rem}.profile-list li{margin-bottom:.2rem}.profile-settings-link{margin:.35rem 0 0;font-size:.875rem}.profile-set-info{margin:.5rem 0 .35rem;font-size:.875rem}.profile-set-id{color:#6b7280;font-size:.8125rem}.profile-reset-btn{margin-top:.5rem;border-color:#b91c1c;color:#b91c1c;background:transparent}.profile-reset-btn:hover{background:#fef2f2}.debug-auth-card{max-width:42rem}.debug-auth-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.debug-auth-section{margin-bottom:1.25rem}.debug-auth-heading{margin:0 0 .35rem;font-size:.875rem;font-weight:600;color:#374151}.debug-auth-list{margin:0;padding-left:1.25rem;font-size:.875rem}.debug-auth-list li{margin-bottom:.25rem}.debug-auth-pre{margin:0;padding:.75rem;font-size:.8125rem;font-family:ui-monospace,monospace;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;overflow:auto;white-space:pre-wrap;word-break:break-word}.debug-auth-no-session{margin:0;font-size:.9375rem;color:#b91c1c;font-weight:500}.debug-auth-muted{margin:0;font-size:.875rem;color:#6b7280}.debug-auth-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.lesson-submit-error-card{margin-top:1rem;padding:1rem;background:#fef2f2;border-radius:8px}.lesson-submit-error-card .lesson-retry-btn{margin-top:.5rem}.result-card{background:#fff;border-radius:12px;padding:2rem;width:100%;box-shadow:0 1px 3px rgba(0,0,0,.08)}.result-card h1{margin:0 0 1rem;font-size:1.5rem}.result-stats{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.result-stat{display:flex;justify-content:space-between;font-size:1rem}.result-stat strong{margin-right:.5rem}.result-continue{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;background:#2563eb;color:#fff;border:none;border-radius:8px;cursor:pointer;text-decoration:none;margin-top:.5rem}.result-continue:hover{background:#1d4ed8}.result-pass-label{margin-top:.25rem}.result-passed{color:#059669;font-weight:600}.result-not-passed{color:#dc2626;font-weight:600}.result-today-streak{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;font-size:.9375rem;color:#374151}.result-streak{font-weight:600}.result-today-min{color:#6b7280}.result-next-review{color:#374151}.result-goal-section{margin-top:1rem}.result-status-badge{display:inline-block;padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:1.125rem;margin-bottom:1.25rem}.result-status-passed{background:#d1fae5;color:#065f46}.result-status-not-passed{background:#fef3c7;color:#92400e}.result-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.result-btn{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;border-radius:8px;text-decoration:none;cursor:pointer;border:none;font-weight:500}.result-btn-primary{background:#2563eb;color:#fff}.result-btn-primary:hover{background:#1d4ed8}.result-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.result-btn-secondary:hover{background:#e5e7eb}.result-fallback-text{color:#6b7280;margin-bottom:1rem}.result-next-review-copy{display:flex;justify-content:space-between;font-size:.9375rem;color:#374151;margin-top:.5rem}.lesson-caught-up-card{background:#fff;border-radius:12px;padding:2rem;max-width:28rem;margin:0 auto;box-shadow:0 1px 3px rgba(0,0,0,.08);text-align:center}.lesson-caught-up-card h2{margin:0 0 .75rem;font-size:1.5rem}.lesson-caught-up-card p{color:#6b7280;margin:0 0 1.5rem}.lesson-caught-up-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.lesson-caught-up-actions .lesson-retry-btn{text-decoration:none}.lesson-caught-up-secondary{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;background:#f3f4f6;color:#374151;border-radius:8px;text-decoration:none;border:1px solid #e5e7eb}.lesson-caught-up-secondary:hover{background:#e5e7eb}.goal-card{border-radius:12px;padding:1rem 1.25rem;margin-top:1rem}.goal-card-reached{background:#f0fdf4;border:1px solid #bbf7d0}.goal-card-title{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#166534}.goal-card-sub{margin:0 0 1rem;font-size:.9375rem;color:#15803d}.goal-card-actions{display:flex;flex-wrap:wrap;gap:.75rem}.goal-card-btn-primary,.goal-card-btn-secondary{padding:.6rem 1.25rem;font-size:.9375rem;text-decoration:none}.goal-card-remaining{background:#f9fafb;border:1px solid #e5e7eb}.goal-card-remaining-text{margin:0;font-size:.9375rem;color:#374151}.lesson-start-remaining{margin:.75rem 0 0;font-size:.9375rem;color:#6b7280}.lesson-start-page{min-height:100vh;padding:1rem;max-width:36rem;margin:0 auto}.lesson-start-title{margin:0 0 1.25rem;font-size:1.5rem}.lesson-start-card{background:#fff;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.lesson-start-today{display:flex;flex-direction:column;gap:.75rem}.lesson-start-streak{display:flex;align-items:center;gap:.5rem}.lesson-start-streak-emoji{font-size:1.25rem}.lesson-start-streak-text{font-weight:600;font-size:1.0625rem}.lesson-start-goal{display:flex;justify-content:space-between;font-size:.9375rem;color:#374151}.lesson-start-goal-value{font-weight:600}.lesson-start-goal-bar{margin:0}.lesson-start-learning{padding:1.25rem}.lesson-start-card-title{margin:0 0 .75rem;font-size:1.0625rem;font-weight:600;color:#374151}.lesson-start-list{margin:0 0 1.25rem;padding-left:1.25rem;font-size:.9375rem;line-height:1.6;color:#374151}.lesson-start-list li{margin-bottom:.35rem}.lesson-start-practice-anyway-note{margin:0 0 1rem;font-size:.875rem;color:#6b7280;line-height:1.4}.lesson-start-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.lesson-start-primary{padding:.75rem 1.5rem}.lesson-start-secondary{padding:.75rem 1.25rem;font-size:.9375rem;text-decoration:none}.lesson-start-skeleton{display:flex;flex-direction:column;gap:1rem}.lesson-start-skeleton-card{height:8rem;background:#e5e7eb;border-radius:12px}.lesson-start-starter-progress{margin:0 0 .5rem;font-size:.9375rem;color:#374151}.lesson-starter-page{padding-bottom:2rem}.lesson-starter-header{margin-bottom:1.25rem}.lesson-starter-back{display:inline-block;margin-bottom:.75rem;font-size:.9375rem;color:#2563eb;text-decoration:none}.lesson-starter-back:hover{text-decoration:underline}.lesson-starter-progress{margin:0 0 .5rem;font-size:.9375rem;color:#6b7280}.lesson-starter-card{perspective:800px;margin-bottom:1.25rem;min-height:10rem}.lesson-starter-card-inner{position:relative;width:100%;min-height:10rem;transition:transform .28s ease;transform-style:preserve-3d}.lesson-starter-card-flipped .lesson-starter-card-inner{transform:rotateY(180deg)}.lesson-starter-back,.lesson-starter-front{position:absolute;left:0;top:0;width:100%;min-height:10rem;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.lesson-starter-front{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;cursor:pointer}.lesson-starter-front:hover{background:#e5e7eb}.lesson-starter-back{background:#fff;border:1px solid #e5e7eb;color:#111827;transform:rotateY(180deg)}.lesson-starter-text{font-size:1rem;text-align:center;line-height:1.4;word-break:break-word}.lesson-starter-actions{margin-top:1rem;display:flex;justify-content:center}.lesson-starter-btn-done{padding:.5rem 1rem;font-size:.875rem;border-radius:8px;border:1px solid #34d399;background:#f0fdf4;color:#059669;cursor:pointer}.lesson-starter-btn-done:hover:not(:disabled){background:#dcfce7}.lesson-starter-btn-done:disabled{opacity:.7;cursor:not-allowed}.lesson-starter-nav{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.lesson-starter-nav-btn{padding:.6rem 1.25rem}.lesson-starter-done{margin-top:1.5rem;text-align:center;font-size:.9375rem;color:#374151}.lesson-starter-done-link{display:inline-block;margin-left:.5rem;color:#2563eb;text-decoration:none}.lesson-starter-done-link:hover{text-decoration:underline}.lesson-review-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.lesson-review-btn{padding:.5rem .75rem;font-size:.8125rem;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.lesson-review-btn:hover:not(:disabled){background:#f9fafb}.lesson-review-btn:disabled{opacity:.7;cursor:not-allowed}.lesson-review-again{border-color:#f87171;background:#fef2f2;color:#b91c1c}.lesson-review-again:hover:not(:disabled){background:#fee2e2}.lesson-review-hard{border-color:#fbbf24;background:#fffbeb;color:#b45309}.lesson-review-hard:hover:not(:disabled){background:#fef3c7}.lesson-review-okay{border-color:#34d399;background:#f0fdf4;color:#059669}.lesson-review-okay:hover:not(:disabled){background:#dcfce7}.lesson-review-easy{border-color:#22c55e;background:#dcfce7;color:#15803d}.lesson-review-easy:hover:not(:disabled){background:#bbf7d0}.lesson-start-review-success{margin:0 0 .5rem;padding:.5rem .75rem;background:#dcfce7;color:#15803d;border-radius:8px;font-size:.9375rem}.settings-page{min-height:100vh;padding:1rem;max-width:36rem;margin:0 auto}.settings-title{margin:0 0 1.25rem;font-size:1.5rem}.settings-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.settings-section{margin-bottom:1.5rem}.settings-section-title{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#374151}.settings-difficulty{display:flex;flex-wrap:wrap;gap:.5rem}.settings-difficulty-btn{padding:.5rem 1rem;font-size:.9375rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer}.settings-difficulty-btn:hover{border-color:#d1d5db;background:#f9fafb}.settings-difficulty-btn-active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.settings-label{display:flex;flex-direction:column;gap:.25rem}.settings-input{padding:.5rem .75rem;font-size:1rem;border:1px solid #d1d5db;border-radius:8px;max-width:8rem}.settings-input-number{width:5rem}.settings-input-text{max-width:20rem;margin-top:.5rem}.settings-hint{font-size:.875rem;color:#6b7280}.settings-select{padding:.5rem .75rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:8px;min-width:12rem}.settings-timezone{display:flex;flex-direction:column;gap:.5rem}.settings-message{margin:0 0 1rem;font-size:.9375rem}.settings-message-success{color:#059669}.settings-message-error{color:#dc2626}.settings-actions{margin-top:1rem}.settings-save-btn{padding:.75rem 1.5rem}.settings-save-btn:disabled{opacity:.7;cursor:not-allowed}.settings-skeleton{display:flex;flex-direction:column;gap:1rem}.settings-skeleton-row{height:4rem;background:#e5e7eb;border-radius:12px}.progress-page{min-height:100vh;padding:1rem;max-width:36rem;margin:0 auto}.progress-title{margin:0 0 1.5rem;font-size:1.5rem}.progress-section{margin-bottom:1.5rem}.progress-section-title{margin:0 0 .75rem;font-size:1.125rem;font-weight:600;color:#374151}.progress-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.75rem;gap:.75rem}.stats-card{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 3px rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:center;gap:.25rem}.stats-card-value{font-size:1.75rem;font-weight:700;color:#111}.stats-card-label{font-size:.875rem;color:#6b7280}.progress-skeleton-card{min-height:4rem;background:#e5e7eb;border-radius:12px}.progress-skeleton-set{min-height:8rem}.progress-skeleton-due{min-height:4rem}.progress-set-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.progress-set-meta{margin:0 0 .5rem;font-size:.9375rem;color:#374151}.progress-mono{font-family:ui-monospace,monospace;font-size:.875rem}.progress-set-bar{margin:1rem 0}.progress-set-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.progress-continue-btn{display:inline-block}.progress-due-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.progress-due-card p{margin:0 0 .75rem}.progress-milestone-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem}.progress-milestone-text{font-size:.9375rem;font-weight:500;color:#92400e}.progress-milestone-dismiss{flex-shrink:0;padding:.2rem .5rem;font-size:1.25rem;line-height:1;background:transparent;border:none;color:#92400e;cursor:pointer;border-radius:4px}.progress-milestone-dismiss:hover{background:rgba(146,64,14,.15)}.progress-week-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.progress-week-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}.progress-week-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.progress-week-value{font-size:1.5rem;font-weight:700;color:#111}.progress-week-label{font-size:.8125rem;color:#6b7280}.progress-detail-section{margin-top:1rem}.progress-detail-controls{margin-bottom:1rem}.progress-detail-tabs{display:flex;gap:.35rem;margin-bottom:.75rem;flex-wrap:wrap}.progress-detail-tab{padding:.4rem .65rem;font-size:.8125rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;color:#374151}.progress-detail-tab:hover{background:#e5e7eb}.progress-detail-tab-active{background:#2563eb;border-color:#2563eb;color:#fff}.progress-detail-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.progress-detail-search{flex:1 1;min-width:12rem;padding:.45rem .65rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:6px}.progress-detail-sort-label{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:#6b7280}.progress-detail-sort{padding:.35rem .5rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:6px}.progress-detail-table-wrap{border:1px solid #e5e7eb;border-radius:8px;background:#fff;overflow:hidden}.progress-detail-empty{margin:1rem;font-size:.9375rem;color:#6b7280}.progress-detail-rows{list-style:none;margin:0;padding:0}.progress-detail-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.65rem 1rem;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .15s}.progress-detail-row:last-child{border-bottom:none}.progress-detail-row:hover{background:#f9fafb}.progress-detail-row-main{flex:1 1;min-width:0}.progress-detail-german-row{display:block;font-weight:600;font-size:.9375rem;color:#111}.progress-detail-english-row{display:block;font-size:.8125rem;color:#6b7280}.progress-detail-row-badges{display:flex;gap:.35rem;flex-wrap:wrap}.progress-detail-badge{font-size:.75rem;padding:.2rem .45rem;border-radius:4px;background:#e5e7eb;color:#374151}.progress-detail-badge-due{background:#fef3c7;color:#92400e}.progress-detail-badge-mastered{background:#d1fae5;color:#065f46}.progress-detail-next{font-size:.8125rem;color:#6b7280;white-space:nowrap}.progress-detail-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.progress-detail-card{background:#fff;border-radius:12px;max-width:28rem;width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}.progress-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.progress-detail-title{margin:0;font-size:1.125rem;font-weight:600}.progress-detail-close{padding:.25rem;font-size:1.5rem;line-height:1;background:none;border:none;color:#6b7280;cursor:pointer}.progress-detail-close:hover{color:#111}.progress-detail-body{padding:1rem 1.25rem}.progress-detail-card .progress-detail-section{margin-bottom:1rem}.progress-detail-card .progress-detail-section:last-child{margin-bottom:0}.progress-detail-section-title{margin:0 0 .35rem;font-size:.8125rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.02em}.progress-detail-main{margin-bottom:.5rem}.progress-detail-german{font-size:1.25rem;font-weight:600;color:#111;margin:0 0 .25rem}.progress-detail-english{font-size:1rem;color:#6b7280;margin:0}.progress-detail-card .progress-detail-list{margin:0;padding-left:1.25rem;font-size:.9375rem}.progress-detail-card .progress-detail-list li{margin-bottom:.25rem}.progress-detail-muted{margin:.5rem 0 0;font-size:.8125rem;color:#6b7280}.app-nav{background:#fff;border-bottom:1px solid #e5e7eb;padding:.5rem 1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.app-nav a{font-size:.9375rem;color:#374151;text-decoration:none}.app-nav a:hover{color:#111;text-decoration:underline}.admin-layout{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.admin-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.admin-header-title{margin:0;font-size:1.125rem;font-weight:600}.admin-header-title-link{color:#111827;text-decoration:none}.admin-header-title-link:hover{color:#2563eb}.admin-nav{flex:1 1}.admin-nav-list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.admin-nav-link{font-size:.9375rem;color:#2563eb;text-decoration:none;padding:.25rem .5rem;border-radius:6px}.admin-nav-link:hover{text-decoration:underline;background:#f3f4f6}.admin-header-right{display:flex;align-items:center}.admin-header-link{font-size:.9375rem;color:#6b7280;text-decoration:none}.admin-header-link:hover{color:#2563eb;text-decoration:underline}.admin-main{flex:1 1;padding:1rem;max-width:64rem;margin:0 auto;width:100%}.admin-page-title{margin:0 0 1rem;font-size:1.25rem}.admin-page-card{background:#fff;border-radius:12px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.admin-overview-page,.admin-users-page{max-width:56rem}.admin-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));grid-gap:1rem;gap:1rem}.admin-card-title{margin:0 0 .75rem;font-size:1rem;font-weight:600}.admin-dl{margin:0;font-size:.9375rem}.admin-dl dt{color:#6b7280;margin-top:.5rem}.admin-dl dt:first-child{margin-top:0}.admin-dl dd{margin:.15rem 0 0;font-weight:500}.admin-dl-inline{display:flex;flex-wrap:wrap;gap:1rem 1.5rem}.admin-dl-inline>div{min-width:6rem}.admin-dl-inline dt{margin-top:0;font-size:.8125rem}.admin-dl-inline dd{margin:.2rem 0 0;font-size:1.25rem;font-weight:600}.admin-overview-card .admin-card-title{margin-bottom:.5rem}.admin-users-hint{margin:0 0 1rem;font-size:.9375rem;color:#6b7280}.admin-users-list{margin:0;padding:0;list-style:none}.admin-users-row{padding:.5rem 0;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.admin-users-link{font-size:.9375rem;color:#2563eb;text-decoration:none}.admin-users-link:hover{text-decoration:underline}.admin-users-meta{font-size:.8125rem;color:#6b7280}.admin-users-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.admin-users-filter-label{display:flex;flex-direction:column;gap:.25rem}.admin-users-filter-name{font-size:.8125rem;color:#6b7280;font-weight:500}.admin-users-input,.admin-users-select{padding:.4rem .6rem;font-size:.9375rem;border:1px solid #e5e7eb;border-radius:6px;min-width:8rem}.admin-users-input{min-width:12rem}.admin-users-submit{padding:.5rem 1rem;font-size:.9375rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500}.admin-users-submit:hover{background:#1d4ed8}.admin-users-count{margin:0 0 .75rem;font-size:.9375rem;color:#6b7280}.admin-users-table-wrap{overflow-x:auto}.admin-users-table{width:100%}.admin-users-userid{font-size:.8125rem}.admin-users-badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.8125rem;font-weight:500}.admin-users-onboarding-complete{background:#d1fae5;color:#065f46}.admin-users-onboarding-incomplete{background:#fef3c7;color:#92400e}.admin-users-badge-active{background:#dbeafe;color:#1e40af}.admin-users-badge-abandoned{background:#fee2e2;color:#b91c1c}.admin-users-badge-empty{color:#9ca3af;font-size:.9375rem}.admin-users-lastseen{font-size:.875rem;color:#6b7280}.admin-users-open-link{font-size:.9375rem;color:#2563eb;text-decoration:none}.admin-users-open-link:hover{text-decoration:underline}.admin-users-empty{margin:0;padding:1rem;color:#6b7280;font-size:.9375rem}.admin-debug-hint{margin:0 0 1rem;font-size:.9375rem;color:#6b7280}.admin-debug-dl{margin:0}.admin-debug-dl dt{margin-top:.75rem;font-weight:500;color:#374151}.admin-debug-dl dt:first-of-type{margin-top:0}.admin-debug-dl dd{margin:.25rem 0 0}.admin-debug-admin-yes{color:#059669}.admin-debug-admin-no{color:#6b7280}.admin-placeholder-text{margin:0;color:#6b7280;font-size:.9375rem}.onboarding-placeholder-page{padding:2rem 1rem;max-width:28rem;margin:0 auto}.onboarding-placeholder-card{text-align:center}.onboarding-placeholder-card .lesson-start-title{margin-bottom:.5rem}.onboarding-placeholder-text{margin-bottom:1.5rem}.onboarding-dev-actions{margin-top:1rem}.onboarding-page{min-height:100vh;padding:1.25rem 1rem;max-width:40rem;margin:0 auto}.onboarding-card{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.onboarding-card-narrow{max-width:36rem;margin-left:auto;margin-right:auto}.onboarding-headline{margin:0 0 1rem;font-size:1.375rem;font-weight:600;color:#111827}.onboarding-error,.onboarding-feedback,.onboarding-loading,.onboarding-narrative{margin:0 0 1rem;font-size:.9375rem}.onboarding-feedback{padding:.75rem 1rem;color:#1f2937;background:#fef3c7;border-radius:8px;border:1px solid #f59e0b;color:#6b7280}.onboarding-microcopy{margin:0 0 .75rem;font-size:.8125rem;color:#9ca3af;font-style:italic}.onboarding-flip-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.75rem;gap:.75rem;margin-bottom:1.25rem}@media (min-width:480px){.onboarding-flip-grid{grid-template-columns:repeat(3,1fr)}}.onboarding-flip-card{aspect-ratio:1;perspective:800px}.onboarding-flip-card-removed{visibility:hidden;pointer-events:none;min-height:0;overflow:hidden}.onboarding-flip-card-inner{position:relative;width:100%;height:100%;transition:transform .28s ease;transform-style:preserve-3d}.onboarding-flip-card-flipped .onboarding-flip-card-inner{transform:rotateY(180deg)}.onboarding-flip-card-back,.onboarding-flip-card-front{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.1)}.onboarding-flip-card-front{background:#f3f4f6;color:#374151}.onboarding-flip-card-front:hover{background:#e5e7eb}.onboarding-flip-card-back{background:#fff;border:1px solid #e5e7eb;color:#111827;transform:rotateY(180deg)}.onboarding-flip-card-text{font-size:.875rem;text-align:center;line-height:1.35;word-break:break-word}.onboarding-flip-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.75rem}.onboarding-flip-btn{padding:.4rem .65rem;font-size:.8125rem;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.onboarding-flip-btn:hover{background:#f9fafb}.onboarding-flip-btn-known{border-color:#34d399;color:#059669}.onboarding-flip-btn-unknown{border-color:#f59e0b;color:#d97706}.onboarding-pain-grid{display:grid;grid-template-columns:1fr;grid-gap:.5rem;gap:.5rem;margin-bottom:1.25rem}@media (min-width:400px){.onboarding-pain-grid{grid-template-columns:repeat(2,1fr)}}.onboarding-pain-card{padding:.875rem 1rem;font-size:.9375rem;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;transition:background .15s,border-color .15s}.onboarding-pain-card:hover{background:#f9fafb;border-color:#d1d5db}.onboarding-pain-card-selected{background:#ecfdf5;border-color:#34d399;color:#059669}.onboarding-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.onboarding-complete-btn,.onboarding-next-set-btn{padding:.6rem 1.25rem;font-size:.9375rem}.onboarding-complete-btn{background:#059669;color:#fff;border:none}.onboarding-complete-btn:hover:not(:disabled){background:#047857}.onboarding-v2-progress{display:flex;gap:.5rem;justify-content:center;margin-bottom:.5rem}.onboarding-v2-dot{width:10px;height:10px;border-radius:50%;background:#e5e7eb;transition:background .2s}.onboarding-v2-dot.active{background:#059669;transform:scale(1.2)}.onboarding-v2-dot.done{background:#34d399}.onboarding-v2-step-label{margin:0 0 .25rem;font-size:.8125rem;color:#6b7280}.onboarding-v2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:.5rem;gap:.5rem;margin-bottom:1.25rem}.onboarding-v2-summary{margin-bottom:1.25rem;padding:1rem;background:#f9fafb;border-radius:8px}.onboarding-report-page .onboarding-card{max-width:32rem;margin-left:auto;margin-right:auto}.onboarding-report-session-finished{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#047857}.onboarding-report-redirect{display:flex;flex-direction:column;gap:.75rem}.onboarding-report-redirect-text{margin:0 0 .75rem;font-size:.9375rem;color:#6b7280}.onboarding-report-ctas{display:flex;flex-wrap:wrap;gap:.75rem}.onboarding-report-section{margin-bottom:1.25rem}.onboarding-report-section-title{margin:0 0 .35rem;font-size:.8125rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.02em}.onboarding-report-hint,.onboarding-report-tags,.onboarding-report-value{margin:0;font-size:.9375rem;color:#374151}.onboarding-report-tags{padding-left:1.25rem;line-height:1.5}.onboarding-report-tags li{margin-bottom:.25rem}.onboarding-report-summary-list{margin:0;padding-left:1.25rem;font-size:.9375rem;color:#374151;line-height:1.6}.onboarding-report-summary-list li{margin-bottom:.35rem}.onboarding-report-priority-copy{font-style:italic}.onboarding-report-actions{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.onboarding-report-cta{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;text-decoration:none}.onboarding-report-cta:hover{color:#fff}.admin-pre{margin:0;padding:1rem;background:#f9fafb;border-radius:8px;overflow:auto;font-size:.8125rem;white-space:pre-wrap;word-break:break-all}.admin-user-detail-page{max-width:56rem}.admin-user-detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:1rem}@media (max-width:640px){.admin-user-detail-grid{grid-template-columns:1fr}}.admin-user-actions{background:#fff;border-radius:12px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}.admin-user-actions-grid{display:flex;flex-wrap:wrap;flex-direction:column;gap:.75rem}.admin-user-action-btn{padding:.4rem .75rem;font-size:.9375rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;max-width:12rem}.admin-user-action-btn:hover:not(:disabled){background:#1d4ed8}.admin-user-action-btn:disabled{opacity:.7;cursor:not-allowed}.admin-user-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.admin-user-action-label{display:flex;align-items:center;gap:.5rem;font-size:.9375rem}.admin-user-action-label span{min-width:5rem}.admin-onboarding-page .admin-page-card{max-width:56rem}.admin-onboarding-section{margin-bottom:1.5rem}.admin-onboarding-section:last-child{margin-bottom:0}.admin-onboarding-hint{margin:0 0 .5rem;font-size:.875rem;color:#6b7280}.admin-onboarding-user-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}.admin-onboarding-input{min-width:18rem;padding:.4rem .6rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:6px}.admin-onboarding-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.admin-onboarding-table-wrap{overflow-x:auto}.admin-onboarding-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-onboarding-table td,.admin-onboarding-table th{padding:.4rem .6rem;text-align:left;border-bottom:1px solid #e5e7eb}.admin-onboarding-table th{font-weight:600;color:#374151;background:#f9fafb}.admin-users-input-num{min-width:4rem;width:4rem}.admin-report-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 0;font-size:.9375rem;font-weight:500;background:none;border:none;cursor:pointer;text-align:left;color:#374151}.admin-report-toggle:hover{color:#2563eb}.admin-report-toggle-icon{color:#6b7280;font-size:.75rem}.admin-report-json{margin-top:.75rem;max-height:20rem}.admin-risk-flags{display:flex;flex-wrap:wrap;gap:.5rem}.admin-risk-badge{display:inline-block;padding:.25rem .5rem;border-radius:6px;font-size:.8125rem;font-weight:500}.admin-risk-on{background:#fee2e2;color:#b91c1c}.admin-risk-off{background:#f3f4f6;color:#6b7280}.admin-event-timeline{margin:0;padding:0;list-style:none;font-size:.9375rem}.admin-event-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.35rem 0;border-bottom:1px solid #f3f4f6}.admin-event-time{color:#6b7280;min-width:10rem}.admin-event-type{font-weight:500;color:#111827}.admin-event-meta{font-size:.8125rem;color:#4b5563;background:#f9fafb;padding:.15rem .35rem;border-radius:4px}.admin-quality-page{min-height:100vh;padding:1rem;max-width:56rem;margin:0 auto}.admin-quality-title{margin:0 0 1.5rem;font-size:1.5rem}.admin-quality-section{margin-bottom:2rem}.admin-quality-section-title{margin:0 0 .75rem;font-size:1.125rem;font-weight:600;color:#374151}.admin-quality-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:.75rem}.admin-quality-sort-label{font-size:.875rem;color:#374151}.admin-quality-select{padding:.35rem .5rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:6px;background:#fff}.search-input{padding:.5rem .75rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:8px;min-width:12rem}.search-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.2)}.admin-table-wrap{overflow-x:auto;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table td,.admin-table th{padding:.6rem .75rem;text-align:left;border-bottom:1px solid #e5e7eb}.admin-table th{font-weight:600;color:#374151}.admin-table tbody tr:hover,.admin-table th{background:#f9fafb}.admin-mono{font-family:ui-monospace,monospace;font-size:.8125rem}.admin-copyable{cursor:pointer;padding:.2rem .4rem;border-radius:4px}.admin-copyable:hover{background:#e5e7eb}.admin-table-skeleton{height:12rem;background:#e5e7eb;border-radius:12px}.badge{display:inline-block;padding:.2rem .5rem;font-size:.75rem;font-weight:500;border-radius:6px;margin-right:.25rem;margin-bottom:.25rem}.badge-default{background:#e5e7eb;color:#374151}.badge-warning{background:#fef3c7;color:#92400e}.badge-error{background:#fee2e2;color:#991b1b}.badge-primary{background:#dbeafe;color:#1e40af}.badge-secondary{background:#e5e7eb;color:#374151}.badge-muted{background:#f3f4f6;color:#6b7280}.admin-badges{display:inline-flex;flex-wrap:wrap;gap:.2rem}.admin-quality-error{margin-bottom:1.5rem}.admin-quality-toolbar-wrap{flex-wrap:wrap}.admin-quality-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;color:#374151;cursor:pointer}.admin-quality-toggle input{margin:0}.flag-status-badge{display:inline-block;padding:.2rem .5rem;font-size:.75rem;font-weight:500;border-radius:6px}.flag-status-unreviewed{background:#fef3c7;color:#92400e}.flag-status-acknowledged{background:#dbeafe;color:#1e40af}.flag-status-resolved{background:#d1fae5;color:#065f46}.chunk-status-badge{display:inline-block;padding:.2rem .5rem;font-size:.75rem;font-weight:500;border-radius:6px}.chunk-status-active{background:#d1fae5;color:#065f46}.chunk-status-disabled{background:#f3f4f6;color:#6b7280}.admin-chunk-disable-btn{padding:.35rem .6rem;font-size:.8125rem;font-weight:500;border:1px solid #d97706;background:#fef3c7;color:#92400e;border-radius:6px;cursor:pointer}.admin-chunk-disable-btn:hover:not(:disabled){background:#fde68a;border-color:#b45309}.admin-chunk-disable-btn:disabled{opacity:.6;cursor:not-allowed}.admin-quality-header-actions{margin-bottom:1rem}.admin-download-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border:1px solid #2563eb;background:#eff6ff;color:#1d4ed8;border-radius:8px;cursor:pointer}.admin-download-btn:hover:not(:disabled){background:#dbeafe;border-color:#1d4ed8}.admin-download-btn:disabled{opacity:.6;cursor:not-allowed}.admin-export-error{font-size:.875rem;color:#b91c1c}.admin-export-hint{font-size:.8125rem;color:#6b7280}.flag-chunk-disabled-note{font-size:.75rem;color:#6b7280;font-style:italic}.flag-actions-cell{min-width:12rem}.flag-actions-inner{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.flag-triage-edit{display:flex;flex-direction:column;gap:.5rem;max-width:20rem}.flag-note-textarea{padding:.5rem .6rem;font-size:.875rem;font-family:inherit;border:1px solid #d1d5db;border-radius:6px;resize:vertical;min-height:3rem}.flag-note-textarea:focus{outline:none;border-color:#2563eb}.flag-triage-buttons{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.flag-btn-save{padding:.35rem .6rem;font-size:.8125rem}.flag-btn-ack,.flag-btn-note,.flag-btn-resolve{padding:.25rem .5rem;font-size:.8125rem}.admin-table-flags .admin-table td{vertical-align:top}.admin-view-chunk-btn{padding:.2rem .4rem;font-size:.75rem;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:4px;cursor:pointer}.admin-view-chunk-btn:hover{background:#dbeafe}.admin-view-chunk-link{display:inline-block;text-align:left;padding:0;font:inherit;color:#2563eb;background:none;border:none;cursor:pointer;text-decoration:underline}.admin-view-chunk-link:hover{color:#1d4ed8}.chunk-detail-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.chunk-detail-card{background:#fff;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.2);max-width:36rem;width:100%;max-height:90vh;overflow:auto}.chunk-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.chunk-detail-title{margin:0;font-size:1.25rem;font-weight:600}.chunk-detail-close{padding:.25rem .5rem;font-size:1.5rem;line-height:1;background:none;border:none;color:#6b7280;cursor:pointer;border-radius:4px}.chunk-detail-close:hover{color:#111;background:#f3f4f6}.chunk-detail-skeleton{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.chunk-detail-skeleton-line{height:1rem;background:#e5e7eb;border-radius:4px;max-width:100%}.chunk-detail-skeleton-line.short{max-width:60%}.chunk-detail-error{padding:1.5rem;color:#b91c1c}.chunk-detail-error p{margin:0 0 .75rem}.chunk-detail-retry-btn{padding:.35rem .75rem;font-size:.875rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer}.chunk-detail-retry-btn:hover{background:#1d4ed8}.chunk-detail-body{padding:1rem 1.25rem 1.25rem}.chunk-detail-meta{margin-bottom:1rem}.chunk-detail-id-row,.chunk-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.chunk-detail-mono{font-family:ui-monospace,monospace;font-size:.8125rem;background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;word-break:break-all}.chunk-detail-toggle-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.chunk-detail-toggle-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;cursor:pointer}.chunk-detail-toggle-label input{margin:0}.chunk-detail-toggle-status{font-size:.875rem;color:#6b7280}.chunk-detail-note-textarea{display:block;width:100%;padding:.5rem .6rem;font-size:.875rem;font-family:inherit;border:1px solid #d1d5db;border-radius:6px;resize:vertical;min-height:4rem;margin-bottom:.5rem}.chunk-detail-note-textarea:focus{outline:none;border-color:#2563eb}.chunk-detail-note-actions{display:flex;align-items:center;gap:.5rem}.chunk-detail-note-save-btn{padding:.35rem .6rem;font-size:.8125rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer}.chunk-detail-note-save-btn:hover:not(:disabled){background:#1d4ed8}.chunk-detail-note-save-btn:disabled{opacity:.6;cursor:not-allowed}.chunk-detail-note-saved{font-size:.8125rem;color:#059669}.chunk-badge-no-decoys{display:inline-block;margin-left:.35rem;padding:.15rem .4rem;font-size:.7rem;font-weight:500;background:#fef3c7;color:#92400e;border-radius:4px}.chunk-detail-section{margin-bottom:1rem}.chunk-detail-section-title{margin:0 0 .35rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#6b7280}.chunk-detail-prewrap{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:.9375rem;margin:0 0 .35rem;padding:.5rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.chunk-detail-copy-btn{padding:.25rem .5rem;font-size:.75rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;cursor:pointer}.chunk-detail-copy-btn:hover{background:#e5e7eb}.chunk-detail-tags{display:flex;flex-wrap:wrap;gap:.35rem}.chunk-detail-tag{display:inline-block;padding:.2rem .5rem;font-size:.75rem;background:#e0e7ff;color:#3730a3;border-radius:6px}.chunk-detail-run{margin-top:.5rem;font-size:.875rem}.chunk-detail-run summary{cursor:pointer;color:#2563eb}.chunk-detail-raw-preview{margin:.35rem 0 0;padding:.5rem;font-size:.75rem;font-family:ui-monospace,monospace;white-space:pre-wrap;word-break:break-word;max-height:12rem;overflow:auto;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px}.chunk-detail-actions{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.how-it-works-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.how-it-works-card{background:#fff;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.2);max-width:28rem;width:100%;padding:1.25rem 1.5rem}.how-it-works-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.how-it-works-dots{display:flex;gap:.5rem;margin-bottom:1rem}.how-it-works-dot{width:8px;height:8px;border-radius:50%;background:#e5e7eb;transition:background .2s}.how-it-works-dot.active{background:#2563eb}.how-it-works-slide{margin-bottom:1.25rem}.how-it-works-slide-title{margin:0 0 .5rem;font-size:1rem;font-weight:600}.how-it-works-slide-body{margin:0;font-size:.9375rem;line-height:1.5;color:#374151}.how-it-works-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.how-it-works-actions-spacer{flex:1 1}.how-it-works-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;border:1px solid transparent}.how-it-works-btn-back{background:#f3f4f6;color:#374151}.how-it-works-btn-back:hover{background:#e5e7eb}.how-it-works-btn-skip{background:transparent;color:#6b7280}.how-it-works-btn-skip:hover{color:#374151}.how-it-works-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.how-it-works-btn-primary:hover{background:#1d4ed8}.lesson-start-help-link-wrap,.progress-help-link-wrap{margin:-.25rem 0 .5rem}.lesson-start-help-link,.progress-help-link{padding:0;font-size:.875rem;background:none;border:none;color:#2563eb;cursor:pointer;text-decoration:underline}.lesson-start-help-link:hover,.progress-help-link:hover{color:#1d4ed8}.settings-advanced{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.settings-advanced-toggle{padding:.25rem 0;font-size:.875rem;background:none;border:none;color:#6b7280;cursor:pointer;text-decoration:underline}.settings-advanced-toggle:hover{color:#374151}.settings-advanced-content{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.settings-replay-onboarding-btn{align-self:flex-start;padding:.35rem .6rem;font-size:.8125rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer}.settings-replay-onboarding-btn:hover:not(:disabled){background:#e5e7eb}.settings-advanced-hint{font-size:.8125rem;color:#6b7280}.classroom-page{min-height:100vh;background:#f5f5f5;padding:1.5rem 1rem 2rem}.classroom-container{max-width:48rem;margin:0 auto}.classroom-header{margin-bottom:1.5rem}.classroom-title{margin:0 0 .35rem;font-size:1.5rem;font-weight:600;color:#111827}.classroom-subtitle{margin:0;font-size:.9375rem;color:#6b7280}.classroom-section{margin-bottom:1.75rem}.classroom-section-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#374151}.classroom-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));grid-gap:.75rem;gap:.75rem}.classroom-stat-card{background:#fff;border-radius:10px;padding:1rem;border:1px solid #e5e7eb}.classroom-stat-card h3{margin:0 0 .35rem;font-size:.8125rem;font-weight:500;color:#6b7280}.classroom-stat-value{margin:0;font-size:1.125rem;font-weight:600;color:#111827}.classroom-card{background:#fff;border-radius:10px;padding:1.25rem;border:1px solid #e5e7eb}.classroom-placeholder{color:#6b7280;font-size:.9375rem}.classroom-placeholder p{margin:0 0 .5rem}.classroom-placeholder p:last-child{margin-bottom:0}.classroom-next-pack{margin-bottom:1.75rem}.classroom-banner{border-radius:10px;padding:1.25rem 1.5rem;border:1px solid #e5e7eb}.classroom-banner-next-pack{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd}.classroom-banner-recovery{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d}.classroom-banner-recovery .classroom-banner-title{color:#92400e}.classroom-banner-title{margin:0 0 .35rem;font-size:1.125rem;font-weight:600;color:#1e40af}.classroom-banner-subtitle{margin:0 0 1rem;font-size:.9375rem;color:#374151;line-height:1.4}.classroom-banner-cta{display:inline-block;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;background:#2563eb;color:#fff;border-radius:8px;text-decoration:none}.classroom-banner-cta:hover{background:#1d4ed8}.classroom-lessons-grid{display:grid;grid-gap:1rem;gap:1rem}.classroom-lesson-card{display:flex;flex-direction:column;gap:.5rem}.classroom-lesson-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:0;font-size:.875rem;color:#6b7280}.classroom-lesson-meta .badge{margin-right:0;margin-bottom:0}.classroom-lesson-time{color:#6b7280}.classroom-lesson-title{margin:0;font-size:1.0625rem;font-weight:600;color:#111827}.classroom-lesson-reason{margin:0;font-size:.9375rem;color:#6b7280;line-height:1.4}.classroom-lesson-cta{align-self:flex-start;margin-top:.25rem}