:root,[data-theme=light]{--color-primary: #C8102E;--color-primary-dark: #9B0B22;--color-primary-light: #FDE8EC;--color-surface: #FFFFFF;--color-background: #F4F5F7;--color-text: #1A1D23;--color-text-secondary: #5F6368;--color-text-muted: #9AA0A6;--color-correct: #0F7B3F;--color-correct-bg: #E6F4EA;--color-incorrect: #C8102E;--color-incorrect-bg: #FDE8EC;--color-warn: #D4890A;--color-warn-bg: #FEF3CD;--color-key: #0F7B3F;--color-key-bg: #E6F4EA;--color-selected: #E3E8F0;--color-selected-border: #6B7B8D;--color-border: rgba(0, 0, 0, .08);--color-border-strong: rgba(0, 0, 0, .15);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 18px;--radius-md: 12px;--radius-full: 9999px;--font-family: -apple-system, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--font-xs: 12px;--font-sm: 14px;--font-base: 16px;--font-lg: 18px;--font-xl: 22px;--font-2xl: 28px;--font-3xl: 36px;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--transition-fast: .15s ease-out;--transition-normal: .25s ease-out}[data-theme=dark]{--color-primary: #E8364D;--color-primary-dark: #C8102E;--color-primary-light: #3D1520;--color-surface: #1E1E2E;--color-background: #11111B;--color-text: #CDD6F4;--color-text-secondary: #A6ADC8;--color-text-muted: #6C7086;--color-correct: #40C057;--color-correct-bg: #1A2E1A;--color-incorrect: #E8364D;--color-incorrect-bg: #3D1520;--color-warn: #E8A830;--color-warn-bg: #3D3015;--color-key: #40C057;--color-key-bg: #1A2E1A;--color-selected: #2A2B3D;--color-selected-border: #7C8DB5;--color-border: rgba(255, 255, 255, .06);--color-border-strong: rgba(255, 255, 255, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-base);color:var(--color-text);background:var(--color-background);line-height:1.5;min-height:100vh;min-height:100dvh;overflow-x:hidden;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.3;cursor:default}img{max-width:100%;height:auto;display:block}h1,h2,h3{line-height:1.2}#app{max-width:480px;margin:0 auto;padding:var(--space-md);padding-bottom:100px;min-height:100dvh}.screen{opacity:0;transform:translateY(8px);transition:opacity var(--transition-normal),transform var(--transition-normal)}.screen-enter-active{opacity:1;transform:translateY(0)}.screen-title{font-size:var(--font-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-lg)}.home-header{text-align:center;padding:var(--space-md) 0 var(--space-md)}.home-icon{width:100%;height:auto}.home-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:120px;height:120px;margin:0 auto;will-change:transform}.home-icon-wrap:before,.home-icon-wrap:after{content:"";position:absolute;top:8%;width:20%;height:18%;border-radius:50%;opacity:0;pointer-events:none}.home-icon-wrap:before{left:16%;background:radial-gradient(ellipse,rgba(30,120,255,.85) 0%,transparent 70%)}.home-icon-wrap:after{left:40%;background:radial-gradient(ellipse,rgba(30,120,255,.85) 0%,transparent 70%)}.home-icon-siren:before{background:radial-gradient(ellipse,rgba(30,120,255,1) 0%,rgba(30,120,255,.5) 40%,transparent 75%);animation:siren-left .3s linear infinite;width:40%;height:35%;filter:blur(2px);opacity:1}.home-icon-siren:after{background:radial-gradient(ellipse,rgba(30,120,255,1) 0%,rgba(30,120,255,.5) 40%,transparent 75%);animation:siren-right .3s linear infinite;width:40%;height:35%;filter:blur(2px);opacity:1}.home-icon-flash{display:none}.home-title{font-size:var(--font-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-xs)}.home-subtitle{font-size:var(--font-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.home-info{font-size:var(--font-xs);color:var(--color-text-muted);letter-spacing:.5px;text-transform:uppercase}.home-cards{display:flex;flex-direction:column;gap:var(--space-md)}.home-card{display:flex;flex-direction:row;align-items:flex-start;gap:var(--space-md);width:100%;padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:left;transition:transform var(--transition-fast),background var(--transition-fast)}.home-card:active{transform:scale(.98);background:var(--color-selected)}@media(hover:hover){.home-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;background:var(--color-selected)}}.home-card-img{width:72px;height:72px;object-fit:cover;object-position:center;border-radius:var(--radius-sm);flex-shrink:0}.home-section-label{font-size:var(--font-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:var(--space-lg);margin-bottom:var(--space-xs)}.home-card-text{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.home-card-title{font-size:var(--font-xl);font-weight:var(--weight-bold);color:var(--color-text)}.home-card-badge{font-size:var(--font-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.home-card-desc{font-size:var(--font-base);color:var(--color-text-secondary)}.home-card-desc-right{margin-left:auto;flex-shrink:0;text-align:right;max-width:45%}.home-card-wrap{display:flex;flex-direction:column;gap:var(--space-xs)}.home-card-reset{font-size:var(--font-sm);color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px;text-align:right;padding:0 var(--space-sm)}.home-footer{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:var(--space-xl);padding:var(--space-md) 0;font-size:var(--font-xs);color:var(--color-text-muted);text-align:center;line-height:1.4}.home-footer-link{color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}.install-backdrop{position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;transition:opacity var(--transition-normal)}.install-backdrop.visible{opacity:1}.install-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:var(--space-sm) var(--space-lg) var(--space-xl);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom));z-index:1000;transform:translateY(100%);transition:transform var(--transition-normal);max-width:480px;margin:0 auto}.install-sheet.visible{transform:translateY(0)}.install-sheet-handle{width:36px;height:4px;background:var(--color-border-strong);border-radius:var(--radius-full);margin:0 auto var(--space-md)}.install-sheet-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.install-sheet-icon{width:56px;height:56px;border-radius:var(--radius-md);flex-shrink:0}.install-sheet-title{font-size:var(--font-xl);font-weight:var(--weight-bold);flex:1}.install-sheet-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:var(--font-xl);color:var(--color-text-muted);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);flex-shrink:0}.install-sheet-close:active{background:var(--color-border)}.install-sheet-desc{font-size:var(--font-base);color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--space-lg)}.install-sheet-steps{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.install-sheet-step{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-base);color:var(--color-text)}.install-sheet-step-num{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-size:var(--font-base);font-weight:var(--weight-bold);border-radius:var(--radius-full);flex-shrink:0}.install-sheet-dismiss{width:100%;padding:var(--space-md);font-size:var(--font-base);font-weight:var(--weight-medium);color:var(--color-text-muted);text-align:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.install-sheet-dismiss:active{background:var(--color-border)}.choice-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:var(--space-sm) var(--space-lg) var(--space-xl);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom));z-index:1000;transform:translateY(100%);transition:transform var(--transition-normal);max-width:480px;margin:0 auto}.choice-sheet.visible{transform:translateY(0)}.choice-sheet-title{font-size:var(--font-xl);font-weight:var(--weight-bold);text-align:center;margin-bottom:var(--space-lg)}.choice-sheet-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.topic-grid{display:flex;flex-direction:column;gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.topic-card{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-md) var(--space-lg);background:var(--color-surface);text-align:left;transition:background var(--transition-fast);gap:var(--space-md)}.topic-card:active{background:var(--color-selected)}.topic-name{font-size:var(--font-base);font-weight:var(--weight-medium);flex:1}.topic-count{font-size:var(--font-sm);color:var(--color-text-muted);white-space:nowrap}.topic-info{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.topic-stats{font-size:var(--font-base);color:var(--color-text-muted);display:flex;gap:8px}.topic-summary{display:flex;align-items:center;gap:12px;font-size:var(--font-base);margin-bottom:var(--space-md)}.topic-summary-progress{color:var(--color-text-muted)}.stat-correct{color:var(--color-correct)}.stat-incorrect{color:var(--color-incorrect)}.screen-quiz{display:flex;flex-direction:column;height:calc(100dvh - var(--space-md));margin-bottom:-100px;overflow:hidden}.quiz-question-slot{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}@keyframes slide-in-left{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-in-right{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}.quiz-question-slot.slide-left>.question-card{animation:slide-in-left .25s ease-out both}.quiz-question-slot.slide-right>.question-card{animation:slide-in-right .25s ease-out both}.quiz-question-slot{touch-action:pan-y}.quiz-close-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:var(--font-xl);color:var(--color-text-muted);flex-shrink:0;transition:color var(--transition-fast)}.quiz-close-btn:active{color:var(--color-text)}.quiz-top-bar{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-shrink:0}.quiz-progress-slot{flex:1}.quiz-timer-slot{font-size:var(--font-lg);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);min-width:60px;text-align:right}.quiz-timer-slot.timer-warning{color:var(--color-primary);animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.5}}.progress-container{width:100%}.progress-label{font-size:var(--font-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.progress-bar{width:100%;height:4px;background:var(--color-border);overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);transition:width var(--transition-normal)}.question-card{margin-bottom:var(--space-lg)}.topic-badge{display:inline-block;font-size:var(--font-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm)}.question-text{font-size:var(--font-lg);font-weight:var(--weight-medium);line-height:1.5;margin-bottom:var(--space-lg);word-break:break-word}.question-image{max-width:200px;margin:0 auto var(--space-lg);border-radius:var(--radius-md)}.options-container{display:flex;flex-direction:column;gap:var(--space-sm)}.option-btn{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-lg);min-height:56px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-base);text-align:left;transition:all var(--transition-fast)}.option-btn:active{transform:scale(.96);background:var(--color-selected)}.option-btn.selected{border-color:var(--color-text-secondary);background:var(--color-selected)}.option-letter{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-background);font-weight:var(--weight-semibold);font-size:var(--font-sm);flex-shrink:0;transition:all var(--transition-fast)}.option-letter.selected{background:var(--color-text-secondary);color:#fff}.option-btn.correct{border-color:var(--color-correct);background:var(--color-correct-bg)}.option-btn.incorrect{border-color:var(--color-incorrect);background:var(--color-incorrect-bg)}.option-letter.correct{background:var(--color-correct);color:#fff}.option-letter.incorrect{background:var(--color-incorrect);color:#fff}.option-text{flex:1;line-height:1.4}.quiz-nav-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom,0px));flex-shrink:0;margin:0 12px calc(32px + env(safe-area-inset-bottom,0px));border-radius:100px;background:#ffffffb8;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.5);box-shadow:0 8px 32px #0000001a,0 2px 8px #0000000f,inset 0 1px #fffc}.nav-arrow{width:44px;height:44px;font-size:20px;color:var(--color-text);background:var(--color-background);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast);line-height:1}.nav-arrow:active:not(:disabled){transform:scale(.92);background:var(--color-primary);color:#fff}.nav-arrow:disabled{opacity:.25}@keyframes nav-pulse{0%{transform:scale(1);color:#fff;background-position:0% 50%;box-shadow:0 0 12px #dc262680}15%{transform:scale(1.25);box-shadow:0 0 20px #eab30899}30%{transform:scale(1)}45%{transform:scale(1.2);box-shadow:0 0 20px #dc262699}60%{transform:scale(1)}to{transform:scale(1);color:#fff;background-position:100% 50%;box-shadow:0 0 12px #eab30866}}.nav-arrow.pulse{animation:nav-pulse 1.8s ease-in-out;background:linear-gradient(135deg,#dc2626,#f97316,#eab308,#f97316,#dc2626);background-size:400% 400%}.quiz-nav-dots{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;flex:1}.nav-dot{width:10px;height:10px;border-radius:2px;background:var(--color-border-strong);transition:all var(--transition-fast);padding:0}.nav-dot.answered{background:var(--color-text-muted)}.nav-dot.dot-correct{background:var(--color-correct)}.nav-dot.dot-incorrect{background:var(--color-incorrect)}.nav-dot.current{background:var(--color-primary);transform:scale(1.3)}.quiz-nav-center{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.nav-controls{display:flex;align-items:center;gap:var(--space-md)}.quiz-reset-btn{font-size:var(--font-xs);color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}.auto-advance-toggle{display:flex;align-items:center;gap:6px;font-size:var(--font-xs);color:var(--color-text);-webkit-user-select:none;user-select:none}.toggle-track{position:relative;width:34px;height:20px;background:var(--color-border-strong);border-radius:10px;transition:background var(--transition-fast);flex-shrink:0}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform var(--transition-fast)}.auto-advance-toggle.active .toggle-track{background:var(--color-primary)}.auto-advance-toggle.active .toggle-track:after{transform:translate(14px)}.screen-results{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:var(--space-2xl)}.score-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;width:160px;height:160px;border-radius:var(--radius-full);border:4px solid var(--color-border);margin-bottom:var(--space-lg)}.score-circle.passed{border-color:var(--color-correct)}.score-circle.failed{border-color:var(--color-incorrect)}.score-number{font-size:var(--font-3xl);font-weight:var(--weight-bold);line-height:1}.score-total{font-size:var(--font-base);color:var(--color-text-secondary)}.score-pct{font-size:var(--font-lg);font-weight:var(--weight-semibold);color:var(--color-text-secondary);margin-top:var(--space-xs)}.result-badge{font-size:var(--font-lg);font-weight:var(--weight-bold);padding:var(--space-sm) var(--space-lg);margin-bottom:var(--space-xl)}.result-badge.passed{color:var(--color-correct)}.result-badge.failed{color:var(--color-incorrect)}.stats-row{display:flex;gap:var(--space-xl);margin-bottom:var(--space-xl)}.stat-item{text-align:center}.stat-value{font-size:var(--font-xl);font-weight:var(--weight-bold)}.stat-label{font-size:var(--font-sm);color:var(--color-text-secondary)}@keyframes flash-left{0%,24%{opacity:0}27%{opacity:.9}30%{opacity:0}33%{opacity:1}36%{opacity:0}39%{opacity:.8}42%,to{opacity:0}}@keyframes flash-right{0%,25%{opacity:0}28%{opacity:1}31%{opacity:0}34%{opacity:.9}37%{opacity:0}40%{opacity:.7}43%,to{opacity:0}}@keyframes flash-center{0%,24.5%{opacity:0}27.5%{opacity:.9}30.5%{opacity:0}33.5%{opacity:1}36.5%{opacity:0}39.5%{opacity:.8}42.5%,to{opacity:0}}@keyframes siren-left{0%{opacity:1}49%{opacity:1}50%{opacity:0}to{opacity:0}}@keyframes siren-right{0%{opacity:0}49%{opacity:0}50%{opacity:1}to{opacity:1}}.stat-correct .stat-value{color:var(--color-correct)}.stat-incorrect .stat-value{color:var(--color-incorrect)}.stat-unanswered .stat-value{color:var(--color-text-muted)}.result-actions{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;max-width:320px}.action-btn{width:100%;padding:var(--space-md) var(--space-lg);font-size:var(--font-base);font-weight:var(--weight-semibold);border-radius:var(--radius-sm);transition:transform var(--transition-fast)}.action-btn:active{transform:scale(.98)}.action-primary{background:var(--color-primary);color:#fff}.action-secondary{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.review-header{display:flex;align-items:center;justify-content:space-between}.review-header .screen-title{margin-bottom:0}.review-filters{display:flex;gap:1px;margin-bottom:var(--space-lg);background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.filter-btn{flex:1;padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);font-weight:var(--weight-medium);background:var(--color-surface);white-space:nowrap;transition:all var(--transition-fast);text-align:center}.filter-btn.active{background:var(--color-text);color:var(--color-surface)}.review-list{display:flex;flex-direction:column;gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.review-item{background:var(--color-surface)}.review-item-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);cursor:pointer;transition:background var(--transition-fast)}.review-item-header:active{background:var(--color-selected)}.review-status{font-size:var(--font-base);font-weight:var(--weight-bold);width:24px;text-align:center}.review-item.correct .review-status{color:var(--color-correct)}.review-item.incorrect .review-status{color:var(--color-incorrect)}.review-qnumber{flex:1;font-weight:var(--weight-medium);font-size:var(--font-base)}.review-chevron{font-size:var(--font-sm);color:var(--color-text-muted);transition:transform var(--transition-fast)}.review-chevron.rotated{transform:rotate(180deg)}.review-item-body{max-height:0;overflow:hidden;transition:max-height .3s ease-out,padding .3s ease-out;padding:0 var(--space-lg)}.review-item-body.expanded{max-height:800px;padding:0 var(--space-lg) var(--space-lg)}.review-question-text{font-size:var(--font-base);font-weight:var(--weight-medium);margin-bottom:var(--space-md);line-height:1.5}.review-image{max-width:160px;margin:0 auto var(--space-md);border-radius:var(--radius-md)}.review-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:var(--font-sm);line-height:1.4;border-bottom:1px solid var(--color-border)}.review-option:last-child{border-bottom:none}.review-option.correct-answer{color:var(--color-correct);font-weight:var(--weight-semibold)}.review-option.wrong-answer{color:var(--color-incorrect)}.review-option-letter{font-weight:var(--weight-bold);width:20px;flex-shrink:0}.review-option-icon{margin-left:auto;font-weight:var(--weight-bold);flex-shrink:0}.lesson-thumb{width:48px;height:48px;object-fit:cover;object-position:center;border-radius:var(--radius-sm);flex-shrink:0}.lesson-card-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.lesson-card-info{font-size:var(--font-xs);color:var(--color-text-muted)}.lesson-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.lesson-badge{font-size:var(--font-xs);font-weight:var(--weight-semibold);color:var(--color-correct);background:var(--color-correct-bg);padding:2px 8px;border-radius:var(--radius-full)}.lesson-badge-progress{color:var(--color-text-muted);background:var(--color-selected)}.lesson-badge-wip{color:var(--color-warn);background:var(--color-warn-bg)}.lesson-stats{margin-top:var(--space-xl);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.lesson-stats-title{font-size:var(--font-base);font-weight:var(--weight-semibold);margin-bottom:var(--space-md)}.lesson-stats-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;font-size:var(--font-sm);border-bottom:1px solid var(--color-border)}.lesson-stats-row:last-of-type{border-bottom:none}.lesson-stats-value{font-weight:var(--weight-semibold)}.lesson-stats-error{color:var(--color-incorrect)}.lesson-stats-reset{display:block;width:100%;margin-top:var(--space-md);padding:var(--space-sm);font-size:var(--font-sm);color:var(--color-text-muted);text-align:center;text-decoration:underline;text-underline-offset:2px}.section-chips{display:flex;gap:var(--space-sm);overflow-x:auto;padding:var(--space-sm) 0 var(--space-md);-webkit-overflow-scrolling:touch;scrollbar-width:none}.section-chips::-webkit-scrollbar{display:none}.section-chip{flex-shrink:0;padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);white-space:nowrap;transition:all var(--transition-fast)}.section-chip.active{background:var(--color-text);color:var(--color-surface);border-color:var(--color-text)}.section-chip.done{color:var(--color-correct);border-color:var(--color-correct)}.section-chip.done.active{background:var(--color-correct);color:#fff;border-color:var(--color-correct)}.learn-content{padding-bottom:var(--space-xl)}.learn-section-title{font-size:var(--font-xl);font-weight:var(--weight-bold);margin-bottom:var(--space-xs)}.learn-section-title-ru{font-size:var(--font-base);color:var(--color-text-secondary);font-style:italic;margin-bottom:var(--space-lg)}.back-link{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) 0;margin-bottom:var(--space-sm);font-size:var(--font-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);transition:color var(--transition-fast)}.lesson-detail-top-row{display:flex;align-items:center;justify-content:space-between}.lesson-detail-top-row .back-link{margin-bottom:0}.back-link:active{color:var(--color-text)}.learn-block{margin-bottom:var(--space-md)}.learn-block .block-de{font-size:var(--font-base);line-height:1.7}.learn-block .block-ru{font-size:var(--font-base);color:var(--color-text-secondary);font-style:italic;line-height:1.6;margin-top:var(--space-sm)}.block-term{font-size:var(--font-base);line-height:1.7}.block-term .block-term-de{font-weight:var(--weight-semibold)}.block-term .block-term-ru{color:var(--color-text-secondary);font-style:italic}.block-key,.block-warn{padding:var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-base);line-height:1.7}.block-key{background:var(--color-key-bg)}.block-warn{background:var(--color-warn-bg)}.block-callout-label{font-weight:var(--weight-semibold)}ul.block-list{margin:0;padding:0;list-style:disc;list-style-position:inside;display:flex;flex-direction:column;gap:var(--space-xs)}.block-list-item{display:list-item;padding:0}.block-list-de{font-size:var(--font-base);line-height:1.6;color:var(--color-text)}.block-list-ru{display:block;font-size:var(--font-base);line-height:1.5;color:var(--color-text-secondary)}.block-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--color-border)}.block-table{width:100%;border-collapse:collapse;font-size:var(--font-base);min-width:280px}.block-table th{background:var(--color-selected);color:var(--color-text-secondary);font-weight:var(--weight-semibold);font-size:var(--font-sm);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;text-align:left;border-bottom:1px solid var(--color-border)}.block-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text);line-height:1.5;vertical-align:top}.block-table tr:last-child td{border-bottom:none}.block-table tbody tr:nth-child(2n) td{background:var(--color-bg-secondary, rgba(0,0,0,.02))}.lesson-card-chapter{font-size:var(--font-sm);color:var(--color-text-muted);font-weight:var(--weight-semibold)}.lesson-detail-chapter{font-size:var(--font-base);color:var(--color-text-secondary);margin-top:var(--space-xs);font-weight:var(--weight-semibold)}.block-img{width:100%;max-width:480px;height:auto;border-radius:var(--radius-md);margin:var(--space-xs) 0}.block-img-caption{font-size:var(--font-base);color:var(--color-text-secondary);font-style:italic;margin-top:var(--space-xs)}.learn-complete-btn{margin-top:var(--space-lg)}.learn-complete-btn.completed{color:var(--color-correct);border-color:var(--color-correct);opacity:.7}.learn-done-badge{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);font-weight:var(--weight-semibold);color:var(--color-correct);text-align:center}.learn-nav-row{display:flex;gap:var(--space-sm);margin-top:var(--space-lg)}.learn-nav-row .action-btn{flex:1}.vocab-dir-row{display:flex;gap:1px;margin-bottom:var(--space-md);background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.vocab-progress{font-size:var(--font-sm);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--space-lg)}.vocab-card-scene{perspective:800px;min-height:200px;margin-bottom:var(--space-lg)}.vocab-card{position:relative;width:100%;min-height:200px;transform-style:preserve-3d;transition:transform .5s ease}.vocab-card.flipped{transform:rotateY(180deg)}.vocab-card-front,.vocab-card-back{position:absolute;top:0;left:0;width:100%;min-height:200px;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box}.vocab-card-back{transform:rotateY(180deg)}.vocab-card-text{font-size:var(--font-xl);font-weight:var(--weight-semibold);text-align:center;word-break:break-word}.vocab-hint-btn{margin-top:var(--space-md);padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);color:var(--color-text-muted);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.vocab-hint-btn:disabled{color:var(--color-primary);font-weight:var(--weight-medium)}.vocab-actions{display:flex;gap:var(--space-sm)}.vocab-actions .action-btn{flex:1}.vocab-btn-known{background:var(--color-correct);color:#fff}.vocab-btn-unknown{background:var(--color-incorrect);color:#fff}.vocab-done{text-align:center;padding:var(--space-xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.vocab-done-title{font-size:var(--font-xl);font-weight:var(--weight-bold);margin-bottom:var(--space-sm)}.vocab-done-stats{font-size:var(--font-base);color:var(--color-text-secondary)}.toast{position:fixed;top:var(--space-lg);left:50%;transform:translate(-50%) translateY(-100%);padding:var(--space-sm) var(--space-lg);background:var(--color-text);color:var(--color-surface);font-size:var(--font-sm);font-weight:var(--weight-medium);border-radius:var(--radius-full);opacity:0;transition:transform .3s ease,opacity .3s ease;z-index:1000;pointer-events:none}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.theory-btn{display:inline-block;margin-top:var(--space-md);padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);font-weight:var(--weight-medium);color:var(--color-primary);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-full);transition:all var(--transition-fast)}.theory-btn:active{transform:scale(.96)}.quiz-explanation{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-sm)}.quiz-explanation-title{font-size:var(--font-base);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.quiz-explanation-de{margin:0;font-size:var(--font-base);line-height:1.6;color:var(--color-text)}.quiz-explanation-ru{margin:var(--space-xs) 0 0;font-size:var(--font-base);line-height:1.6;color:var(--color-text-secondary);font-style:italic}.quiz-explanation-link-row{display:flex;justify-content:flex-end;margin-top:var(--space-sm)}.quiz-explanation-link{display:inline-block;padding:var(--space-xs) var(--space-sm);font-size:var(--font-base);font-weight:var(--weight-medium);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.img-loading{background:linear-gradient(90deg,var(--color-border) 25%,var(--color-background) 50%,var(--color-border) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.img-loading.home-icon{width:100px;height:100px;min-height:auto;border-radius:50%;margin:10px auto}.img-loading.block-img{min-height:120px;aspect-ratio:16 / 10}.img-loading.question-image{min-height:100px;width:200px;border-radius:var(--radius-md)}.img-loading.review-image{min-height:80px;width:160px;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.img-reveal{opacity:0;transform:scale(.92);transition:opacity .35s ease-out,transform .35s ease-out}.img-reveal.img-visible{opacity:1;transform:scale(1)}.update-banner{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));background:var(--color-text);color:var(--color-surface);z-index:1000;transform:translateY(100%);transition:transform var(--transition-normal)}.update-banner.visible{transform:translateY(0)}.update-banner-text{flex:1;font-size:var(--font-base);font-weight:var(--weight-medium)}.update-banner-btn{padding:var(--space-xs) var(--space-md);background:var(--color-primary);color:#fff;font-size:var(--font-base);font-weight:var(--weight-semibold);border-radius:var(--radius-full);white-space:nowrap}.update-banner-btn:active{background:var(--color-primary-dark)}.update-banner-btn:disabled{opacity:.6}.update-banner-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:var(--font-base);color:var(--color-surface);opacity:.6;flex-shrink:0}.update-banner-close:active{opacity:1}@keyframes assistant-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes assistant-dot-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@keyframes mic-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}.screen-assistant{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-background);z-index:10;max-width:480px;margin:0 auto}.assistant-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-md) var(--space-sm);flex-shrink:0;position:sticky;top:0;z-index:5;background:var(--color-background)}.assistant-header-left{display:flex;flex-direction:column}.assistant-title{font-size:1.125rem;font-weight:700;margin:0;color:var(--color-text)}.assistant-subtitle{font-size:.875rem;color:var(--color-text-muted);margin:2px 0 0}.assistant-close-btn{width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition-fast)}.assistant-close-btn:active{background:var(--color-border)}.assistant-messages{flex:1;overflow-y:auto;padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.assistant-messages.scrolled{-webkit-mask-image:linear-gradient(to bottom,transparent 0px,black 32px);mask-image:linear-gradient(to bottom,transparent 0px,black 32px)}.assistant-bubble{word-wrap:break-word;line-height:1.5;font-size:1rem;animation:assistant-slide-in .3s ease-out}.assistant-bubble-user{max-width:85%;align-self:flex-end;background:var(--color-primary);color:#fff;padding:10px var(--space-md);border-radius:var(--radius-sm);border-bottom-right-radius:var(--space-xs)}.assistant-bubble-assistant{align-self:stretch;color:var(--color-text);padding:0}.assistant-bubble-text{font-size:1rem}.assistant-bubble-text p{margin:0 0 8px}.assistant-bubble-text p:last-child{margin-bottom:0}.assistant-bubble-text strong{font-weight:600}.assistant-bubble-text ul,.assistant-bubble-text ol{margin:4px 0 8px;padding-left:20px}.assistant-bubble-text li{margin-bottom:2px}.assistant-bubble-text ul:last-child,.assistant-bubble-text ol:last-child{margin-bottom:0}.assistant-bubble-assistant .assistant-bubble-text ul{list-style:disc}.assistant-bubble-assistant .assistant-bubble-text ol{list-style:decimal}.assistant-sources{margin-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.assistant-source-tag{display:block;font-size:.875rem;background:none;color:var(--color-text);padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--color-primary);cursor:pointer;font-family:inherit;font-weight:500;line-height:1.3;text-align:left;animation:assistant-slide-in .3s ease-out both;transition:background .15s,border-color .15s}.assistant-source-tag:active{background:var(--color-primary);color:#fff}.assistant-typing-dots{align-self:flex-start;display:flex;align-items:center;gap:4px;padding:var(--space-sm) 0;animation:assistant-slide-in .3s ease-out}.assistant-typing-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-muted);animation:assistant-dot-bounce 1.4s ease-in-out infinite}.assistant-lesson-overlay{position:fixed;inset:0;z-index:20;background:var(--color-background);overflow-y:auto;padding:var(--space-md);animation:assistant-slide-in .2s ease-out}.assistant-overlay-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.assistant-overlay-header .back-link{margin-bottom:0}.assistant-open-lesson-btn{background:none;border:2px solid var(--color-primary);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-base);font-weight:600;cursor:pointer;padding:var(--space-xs) var(--space-md)}.assistant-input-area{display:flex;align-items:flex-end;gap:var(--space-sm);padding:20px 24px 22px;flex-shrink:0}.assistant-input-wrap{flex:1;position:relative;display:flex;align-items:flex-end}.assistant-input{width:100%;border:1px solid var(--color-border-strong);border-radius:20px;padding:10px 48px 10px 14px;font-size:1rem;font-family:inherit;resize:none;max-height:160px;line-height:1.4;background:var(--color-background);color:var(--color-text);outline:none}.assistant-input:focus{border-color:var(--color-primary)}.assistant-send-btn{position:absolute;right:4px;bottom:4px;width:34px;height:34px;border-radius:50%;border:none;background:var(--color-primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity var(--transition-fast)}.assistant-send-btn:active{opacity:.7}.assistant-send-btn.loading,.assistant-send-btn.recording{opacity:.5;pointer-events:none}.assistant-mic-btn{width:38px;height:38px;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,transform .15s}.assistant-mic-btn:active{transform:scale(.93)}.assistant-mic-btn.recording{background:#e53935;color:#fff;animation:mic-pulse 1s ease-in-out infinite}.assistant-mic-btn.loading{opacity:.5;pointer-events:none}.assistant-mic-btn.transcribing{pointer-events:none}@keyframes mic-spinner-rotate{to{transform:rotate(360deg)}}.assistant-mic-btn.transcribing svg{animation:mic-spinner-rotate .8s linear infinite}.assistant-fab-row{display:flex;justify-content:flex-end;margin-bottom:var(--space-sm)}.assistant-fab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;font-size:var(--font-sm);font-weight:var(--weight-semibold);border:none;border-radius:var(--radius-full);cursor:pointer;box-shadow:0 2px 8px #ef444459;transition:transform var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap}.assistant-fab svg{flex-shrink:0}.assistant-fab:active{transform:scale(.95);box-shadow:0 1px 4px #ef44444d}@media(hover:hover){.assistant-fab:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}}
