*{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg:#0f172a;--bg-card:#1e293b;--bg-hover:#334155;--text:#f1f5f9;--text-muted:#94a3b8;--primary:#3b82f6;--primary-hover:#2563eb;--correct:#22c55e;--correct-bg:#22c55e26;--incorrect:#ef4444;--incorrect-bg:#ef444426;--border:#334155;--radius:10px}[data-theme=light]{--bg:#f1f5f9;--bg-card:#fff;--bg-hover:#e2e8f0;--text:#0f172a;--text-muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--correct:#16a34a;--correct-bg:#16a34a1f;--incorrect:#dc2626;--incorrect-bg:#dc26261a;--border:#cbd5e1}[data-theme=light] .question-card,[data-theme=light] .stat-card,[data-theme=light] .tier-group,[data-theme=light] .stats-section,[data-theme=light] .word-item,[data-theme=light] .flashcard,[data-theme=light] .flash-complete{box-shadow:0 1px 3px #00000014}[data-theme=light] .passage{background:#2563eb0a}[data-theme=light] .navbar{box-shadow:0 1px 3px #0000000f}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}*{scrollbar-width:thin;scrollbar-color:var(--bg-hover) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-hover);border:2px solid var(--bg);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--border)}::-webkit-scrollbar-corner{background:0 0}.navbar{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--primary);font-size:1.25rem;font-weight:700}.navbar-tabs{align-items:center;gap:.5rem;display:flex}.navbar-brand{white-space:nowrap;flex-shrink:0;align-items:center;gap:.75rem;display:flex}.streak-flame{color:#f59e0b;white-space:nowrap;background:#f59e0b1f;border:1px solid #f59e0b4d;border-radius:99px;padding:.25rem .6rem;font-size:.82rem;font-weight:600}.star-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-family:inherit;font-size:1.1rem;line-height:1;transition:color .15s,transform .1s}.star-btn:hover{color:#f59e0b;transform:scale(1.15)}.star-btn.starred{color:#f59e0b}.starred-chip.active{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b}.timer-badge{color:var(--primary);font-variant-numeric:tabular-nums;background:#3b82f61a;border-radius:4px;margin-left:auto;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.timer-badge.timer-stopped{color:var(--text-muted);background:var(--bg-hover)}.heatmap-container{width:100%;position:relative}.heatmap-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.heatmap-title{color:var(--text-muted);font-size:.82rem}.heatmap-legend{align-items:center;gap:.3rem;display:flex}.heatmap-legend-label{color:var(--text-muted);font-size:.72rem}.heatmap-grid-wrap{max-width:100%;margin-bottom:.5rem;padding-bottom:.75rem;overflow:auto hidden}.heatmap-months-row{align-items:flex-start;gap:14px;display:flex}.heatmap-month-group{flex-direction:column;gap:4px;display:flex}.heatmap-month-label{color:var(--text-muted);white-space:nowrap;padding-left:1px;font-size:.7rem;font-weight:500}.heatmap-month-grid{gap:3px;display:flex}.heatmap-col{grid-template-rows:repeat(7,14px);gap:3px;display:grid}.heatmap-tooltip{background:var(--bg-card);border:1px solid var(--border);white-space:nowrap;pointer-events:none;z-index:10;border-radius:6px;padding:.5rem .75rem;font-size:.78rem;position:fixed;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 4px 12px #0003}.heatmap-tooltip.below{transform:translate(-50%,8px)}.heatmap-tooltip:after{content:"";background:var(--bg-card);border-right:1px solid var(--border);border-bottom:1px solid var(--border);width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.heatmap-tooltip.below:after{border-bottom:none;border-right:none;border-left:1px solid var(--border);border-top:1px solid var(--border);top:-5px;bottom:auto}.heatmap-tooltip-main{color:var(--text);margin-bottom:.15rem;font-weight:600}.heatmap-tooltip-date{color:var(--text-muted);font-size:.72rem}.heatmap-cell{background:var(--bg-hover);cursor:pointer;border-radius:2px;width:14px;height:14px;transition:transform .1s}.heatmap-cell:hover{outline:1px solid var(--primary);transform:scale(1.4)}.heatmap-empty{cursor:default;background:0 0}.heatmap-empty:hover{outline:none;transform:none}.heatmap-cell.level-0{background:var(--bg-hover)}.heatmap-cell.level-1{background:#22c55e4d}.heatmap-cell.level-2{background:#22c55e80}.heatmap-cell.level-3{background:#22c55ebf}.heatmap-cell.level-4{background:#22c55e}[data-theme=light] .heatmap-cell.level-0{background:#ebedf0}[data-theme=light] .heatmap-cell.level-1{background:#9be9a8}[data-theme=light] .heatmap-cell.level-2{background:#40c463}[data-theme=light] .heatmap-cell.level-3{background:#30a14e}[data-theme=light] .heatmap-cell.level-4{background:#216e39}.heatmap-legend .heatmap-cell{cursor:default;width:10px;min-width:10px;height:10px;min-height:10px}.heatmap-legend .heatmap-cell:hover{outline:none;transform:none}.goal-score-row{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem;display:grid}.goal-ring-card,.predicted-score-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.predicted-score-card{text-align:center;flex-direction:column;justify-content:center;gap:.4rem;padding:1.25rem}.goal-ring-container{flex-shrink:0;width:80px;height:80px;position:relative}.goal-ring{width:100%;height:100%;transform:rotate(-90deg)}.goal-ring-text{flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.goal-ring-count{color:var(--text);font-size:1.5rem;font-weight:700}.goal-ring-divider{color:var(--text-muted);margin-top:.15rem;font-size:.75rem}.goal-info{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.goal-label{color:var(--text);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:flex}.goal-done-badge{background:var(--correct-bg);color:var(--correct);text-transform:uppercase;letter-spacing:.03em;border-radius:99px;padding:.15rem .45rem;font-size:.7rem;font-weight:600}.goal-edit-btn{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;font-size:.78rem;transition:color .15s}.goal-edit-btn:hover{color:var(--primary)}.goal-edit{align-items:center;gap:.4rem;display:flex}.goal-input{background:var(--bg);border:1px solid var(--border);width:60px;color:var(--text);border-radius:6px;outline:none;padding:.3rem .5rem;font-family:inherit;font-size:.85rem}.goal-input:focus{border-color:var(--primary)}.predicted-score-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.predicted-score-number{font-size:2.5rem;font-weight:700;line-height:1}.predicted-score-range{color:var(--text-muted);font-size:.72rem}.predicted-score-tag{text-transform:uppercase;letter-spacing:.03em;border:1px solid;border-radius:99px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.predicted-score-note{color:var(--text-muted);opacity:.7;font-size:.68rem}.predicted-score-empty{color:var(--text-muted);padding:.75rem 0;font-size:.85rem}.achievements-count{color:var(--text-muted);background:var(--bg-hover);border-radius:99px;margin-left:.5rem;padding:.15rem .6rem;font-size:.78rem;font-weight:500}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;display:grid}.achievement{border:1px solid var(--border);background:var(--bg);border-radius:8px;align-items:center;gap:.7rem;padding:.7rem .85rem;transition:all .15s;display:flex}.achievement.earned{background:var(--bg-hover);border-color:#f59e0b4d}.achievement.locked{opacity:.5}.achievement-icon{background:var(--bg-card);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.3rem;line-height:1;display:flex}.achievement.earned .achievement-icon{background:#f59e0b26}.achievement-info{flex:1;min-width:0}.achievement-title{color:var(--text);margin-bottom:.15rem;font-size:.82rem;font-weight:600;line-height:1.2}.achievement-desc{color:var(--text-muted);font-size:.7rem;line-height:1.3}.streak-row{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}.streak-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.85rem;padding:1rem 1.1rem;display:flex}.streak-current{background:#f59e0b14;border-color:#f59e0b4d}.streak-best{background:#a855f714;border-color:#a855f74d}.streak-icon{font-size:1.75rem;line-height:1}.streak-number{margin-bottom:.2rem;font-size:1.5rem;font-weight:700;line-height:1}.streak-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:500}.theme-toggle{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:99px;align-items:center;gap:.3rem;margin-left:.5rem;padding:.35rem .7rem;font-family:inherit;font-size:.78rem;font-weight:500;transition:all .15s;display:inline-flex}.theme-toggle:hover{color:var(--text);border-color:var(--primary)}.theme-icon{font-size:.95rem;line-height:1}.theme-label{text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.nav-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:500;transition:all .2s;position:relative}.nav-tab:hover{color:var(--text);background:var(--bg-hover)}.nav-tab.active{color:var(--primary);background:#3b82f61a}.badge{background:var(--incorrect);color:#fff;vertical-align:super;border-radius:99px;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:700}.main-content{max-width:800px;margin:0 auto;padding:2rem 1.5rem}.progress-container{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.progress-bar{background:var(--bg-hover);border-radius:99px;flex:1;height:8px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:99px;height:100%;transition:width .3s}.progress-text{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.session-modes{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.25rem;display:grid}.session-mode-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;align-items:center;gap:.85rem;padding:1rem 1.25rem;font-family:inherit;transition:all .15s;display:flex}.session-mode-btn:hover{border-color:var(--primary);transform:translateY(-1px)}.session-mode-timed:hover{background:#f59e0b0d;border-color:#f59e0b}.session-mode-weakness:hover{background:#a855f70d;border-color:#a855f7}.session-mode-icon{font-size:1.5rem;line-height:1}.session-mode-label{flex-direction:column;gap:.15rem;display:flex}.session-mode-label strong{color:var(--text);font-size:.95rem;font-weight:600}.session-mode-label small{color:var(--text-muted);font-size:.78rem}.session-banner{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.85rem;padding:.85rem 1.1rem;display:flex}.session-banner-info{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.session-banner-title{color:var(--text);font-size:.9rem;font-weight:600}.session-banner-progress{color:var(--text-muted);font-size:.78rem}.session-timer{color:var(--primary);font-variant-numeric:tabular-nums;background:#3b82f61a;border:1px solid #3b82f64d;border-radius:6px;padding:.3rem .85rem;font-size:1.35rem;font-weight:700}.session-timer.urgent{color:var(--incorrect);background:#ef44441a;border-color:#ef444466;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.session-results{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:3rem 2rem}.session-results h2{margin-bottom:1.25rem;font-size:1.5rem}.session-results-score{margin-bottom:1rem}.session-results-percent{color:var(--primary);font-size:3.5rem;font-weight:700;line-height:1}.session-results-detail{color:var(--text-muted);margin-top:.5rem;font-size:1rem}.session-results-msg{color:var(--text);margin-bottom:1.5rem;font-size:.95rem}@media (width<=640px){.session-modes{grid-template-columns:1fr}}.btn-prev{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-bottom:.75rem;padding:.3rem 0;font-family:inherit;font-size:.85rem;font-weight:500;transition:color .15s}.btn-prev:hover{color:var(--primary)}.prev-review-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.prev-review-label{color:var(--text-muted);font-size:.85rem;font-style:italic}.question-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.passage{border-bottom:1px solid var(--border);color:var(--text-muted);background:#3b82f60d;padding:1.5rem;font-size:.95rem;line-height:1.8}.question-section{padding:1.5rem}.question-text{margin-bottom:1.25rem;font-size:1.05rem;font-weight:600;line-height:1.5}.choices{flex-direction:column;gap:.6rem;margin-bottom:1.5rem;display:flex}.choice{text-align:left;background:var(--bg);border:2px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;padding:.85rem 1.1rem;font-family:inherit;font-size:.95rem;line-height:1.5;transition:all .15s;display:block}.choice:hover:not(.correct):not(.incorrect){border-color:var(--primary);background:#3b82f60d}.choice.selected{border-color:var(--primary);background:#3b82f61a}.choice.correct{border-color:var(--correct);background:var(--correct-bg);cursor:default}.choice.incorrect{border-color:var(--incorrect);background:var(--incorrect-bg);cursor:default}.choice.struck{opacity:.5;color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:2px}.choice.struck:hover{border-color:var(--border);background:var(--bg)}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-hover);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:500;transition:background .2s}.btn-secondary:hover{background:var(--border)}.feedback-section{margin-top:.5rem}.feedback{border-radius:8px;margin-bottom:.75rem;padding:.6rem 1rem;font-size:1.1rem;font-weight:700}.feedback-correct{color:var(--correct);background:var(--correct-bg)}.feedback-incorrect{color:var(--incorrect);background:var(--incorrect-bg)}.explanation{color:var(--text-muted);border-left:3px solid var(--border);margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.6}.complete-state{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:4rem 2rem}.complete-state h2{margin-bottom:.75rem;font-size:1.75rem}.complete-state p{color:var(--text-muted);margin-bottom:.5rem}.complete-state .btn-primary{margin-top:1.5rem}.category-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.category-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:99px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .15s;display:inline-flex}.category-chip:hover{border-color:var(--primary);color:var(--text)}.category-chip.active{border-color:var(--primary);color:var(--primary);background:#3b82f626}.chip-count{background:var(--bg-hover);color:var(--text-muted);border-radius:99px;padding:.05rem .4rem;font-size:.72rem}.category-chip.active .chip-count{color:var(--primary);background:#3b82f640}.category-badge,.category-badge-sm{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.category-badge-sm{padding:.15rem .45rem;font-size:.65rem}.difficulty-badge,.difficulty-badge-sm{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.difficulty-badge-sm{padding:.15rem .45rem;font-size:.65rem}.diff-easy{color:#22c55e;background:#22c55e26}.diff-medium{color:#f59e0b;background:#f59e0b26}.diff-hard{color:#ef4444;background:#ef444426}.diff-chip.diff-easy.active{color:#22c55e;background:#22c55e26;border-color:#22c55e}.diff-chip.diff-medium.active{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b}.diff-chip.diff-hard.active{color:#ef4444;background:#ef444426;border-color:#ef4444}.cat-bar-fill.diff-bar-easy{background:#22c55e}.cat-bar-fill.diff-bar-medium{background:#f59e0b}.cat-bar-fill.diff-bar-hard{background:#ef4444}.category-badge-bar{align-items:center;gap:.5rem;padding:.75rem 1.25rem 0;display:flex}.review-badges{align-items:center;gap:.35rem;display:flex}.cat-craft-and-structure{color:#a855f7;background:#a855f726}.cat-information-and-ideas{color:#3b82f6;background:#3b82f626}.cat-standard-english-conventions{color:#f59e0b;background:#f59e0b26}.cat-transitions{color:#14b8a6;background:#14b8a626}.cat-expression-of-ideas{color:#ec4899;background:#ec489926}.review-queue{max-width:800px}.review-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.review-top h2{font-size:1.35rem}.empty-state{text-align:center;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:4rem 2rem}.tier-groups{flex-direction:column;gap:1.5rem;display:flex}.tier-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tier-label{border-bottom:1px solid var(--border);background:#ffffff05;align-items:center;gap:.5rem;padding:.85rem 1.25rem;font-size:.95rem;font-weight:600;display:flex}.tier-dot{border-radius:50%;width:10px;height:10px}.tier-0{background:#f59e0b}.tier-1{background:#3b82f6}.tier-2{background:#8b5cf6}.tier-3{background:#22c55e}.tier-count{background:var(--bg-hover);color:var(--text-muted);border-radius:99px;margin-left:auto;padding:.15rem .6rem;font-size:.8rem;font-weight:500}.tier-items{flex-direction:column;display:flex}.review-item{border-bottom:1px solid #33415580;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex}.review-item-left{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.review-item:last-child{border-bottom:none}.review-item.due{background:#3b82f60d}.review-item-question{color:var(--text);flex:1;font-size:.9rem}.review-item-time{color:var(--text-muted);white-space:nowrap;background:var(--bg-hover);border-radius:6px;padding:.2rem .6rem;font-size:.8rem}.review-item.due .review-item-time{color:var(--primary);background:#3b82f626;font-weight:600}.review-active{max-width:800px}.review-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.review-header h2{font-size:1.35rem}.stats-panel{max-width:800px}.stats-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.stats-header h2{font-size:1.35rem}.stats-header .btn-secondary{color:var(--text-muted);opacity:.7;padding:.35rem .7rem;font-size:.72rem}.stats-header .btn-secondary:hover{opacity:1;color:var(--incorrect);border-color:#ef44444d}.stats-grid{grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.25rem;display:flex}.stat-card-big{grid-column:1/-1;padding:1.75rem}.stat-ring-container{width:120px;height:120px;margin-bottom:.75rem;position:relative}.stat-ring{width:100%;height:100%;transform:rotate(-90deg)}.stat-ring-text{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stat-ring-pct{font-size:1.75rem;font-weight:700}.stat-number{margin-bottom:.25rem;font-size:2rem;font-weight:700}.stat-label{color:var(--text-muted);font-size:.85rem;font-weight:500}.stat-sublabel{color:var(--text-muted);margin-top:.25rem;font-size:.8rem}.stats-insights{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem;display:grid}.insight-card{border-radius:var(--radius);border:1px solid var(--border);align-items:center;gap:.75rem;padding:1rem;display:flex}.insight-weak{background:var(--incorrect-bg);border-color:#ef44444d}.insight-strong{background:var(--correct-bg);border-color:#22c55e4d}.insight-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;font-weight:700;display:flex}.insight-weak .insight-icon{color:var(--incorrect);background:#ef444433}.insight-strong .insight-icon{color:var(--correct);background:#22c55e33}.insight-title{font-size:.85rem;font-weight:600}.insight-detail{color:var(--text-muted);font-size:.78rem}.stats-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem}.stats-section h3{margin-bottom:1rem;font-size:1rem;font-weight:600}.category-bars{flex-direction:column;gap:.85rem;display:flex}.cat-bar-row{flex-direction:column;gap:.35rem;display:flex}.cat-bar-label{justify-content:space-between;align-items:center;display:flex}.cat-bar-score{color:var(--text-muted);font-size:.78rem}.cat-bar-track{background:var(--bg-hover);border-radius:99px;height:8px;overflow:hidden}.cat-bar-fill{border-radius:99px;height:100%;transition:width .4s}.cat-bar-fill.cat-craft-and-structure{background:#a855f7}.cat-bar-fill.cat-information-and-ideas{background:#3b82f6}.cat-bar-fill.cat-standard-english-conventions{background:#f59e0b}.cat-bar-fill.cat-transitions{background:#14b8a6}.cat-bar-fill.cat-expression-of-ideas{background:#ec4899}.recent-list{flex-direction:column;gap:.5rem;display:flex}.recent-item{border-bottom:1px solid #3341554d;align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.recent-item:last-child{border-bottom:none}.recent-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot-correct{background:var(--correct)}.dot-incorrect{background:var(--incorrect)}.recent-question{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.85rem;overflow:hidden}.vocab-suggestions{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:1.25rem;padding:.85rem}.vocab-suggestions-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem;font-size:.8rem;font-weight:600}.vocab-suggestion-list{flex-direction:column;gap:.5rem;display:flex}.vocab-suggestion{border-bottom:1px solid #3341554d;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.vocab-suggestion:last-child{border-bottom:none;padding-bottom:0}.vocab-suggestion-info{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.vocab-word{color:var(--primary);font-size:.9rem;font-weight:600}.vocab-def{color:var(--text-muted);font-size:.8rem}.vocab-save-btn{color:var(--primary);cursor:pointer;white-space:nowrap;background:#3b82f61a;border:1px solid #3b82f64d;border-radius:6px;padding:.3rem .7rem;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .15s}.vocab-save-btn:hover:not(:disabled){background:#3b82f633}.vocab-save-btn.saved{background:var(--correct-bg);color:var(--correct);cursor:default;border-color:#22c55e4d}.wordbank{max-width:800px}.wordbank-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.wordbank-header h2{font-size:1.35rem}.badge-words{background:var(--primary)}.word-add-form{gap:.5rem;margin-bottom:1.25rem;display:flex}.word-input{background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;flex:1;padding:.6rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.word-input:focus{border-color:var(--primary)}.word-input-def{flex:2}.word-filters{gap:.4rem;margin-bottom:1.25rem;display:flex}.word-filter-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:99px;padding:.4rem .85rem;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .15s}.word-filter-btn:hover{border-color:var(--primary);color:var(--text)}.word-filter-btn.active{border-color:var(--primary);color:var(--primary);background:#3b82f626}.word-list{flex-direction:column;gap:.5rem;display:flex}.word-item{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.1rem;transition:opacity .15s;display:flex}.word-item.word-mastered{opacity:.5}.word-item-main{flex:1;min-width:0}.word-item-word{margin-bottom:.2rem;font-size:.95rem;font-weight:600}.word-item-def{color:var(--text-muted);margin-bottom:.2rem;font-size:.85rem}.word-item-meta{gap:.5rem;display:flex}.word-source{color:var(--text-muted);opacity:.7;font-size:.72rem}.word-tier{color:var(--primary);opacity:.8;font-size:.72rem}.word-tier-done{color:var(--correct)}.word-item-actions{flex-shrink:0;gap:.35rem;display:flex}.word-toggle-btn,.word-delete-btn{border:1px solid var(--border);background:var(--bg);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.word-toggle-btn:hover{border-color:var(--correct);color:var(--correct)}.word-toggle-btn.mastered{background:var(--correct-bg);border-color:var(--correct);color:var(--correct)}.word-delete-btn:hover{border-color:var(--incorrect);color:var(--incorrect)}.flash-progress{text-align:center;color:var(--text-muted);margin-bottom:1rem;font-size:.85rem}.flashcard{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;perspective:1000px;min-height:250px;margin-bottom:1.5rem}.flashcard-inner{width:100%;min-height:250px;transform-style:preserve-3d;transition:transform .5s;position:relative}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{backface-visibility:hidden;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex;position:absolute;inset:0}.flashcard-back{transform:rotateY(180deg)}.flashcard-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:600}.flashcard-word{color:var(--primary);font-size:1.75rem;font-weight:700}.flashcard-hint{color:var(--text-muted);opacity:.6;font-size:.8rem}.flashcard-definition{color:var(--text);font-size:1.15rem;line-height:1.6}.flashcard-source{color:var(--text-muted);opacity:.6;font-size:.75rem}.flash-controls{justify-content:center;gap:.75rem;display:flex}.btn-correct{background:var(--correct);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s}.btn-correct:hover{opacity:.85}.btn-incorrect{background:var(--incorrect);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s}.btn-incorrect:hover{opacity:.85}.flash-tap-hint{color:var(--text-muted);text-align:center;font-size:.85rem}.flash-complete{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:3rem 2rem}.flash-complete-score{color:var(--correct);margin-bottom:.5rem;font-size:3rem;font-weight:700}.flash-complete-detail{color:var(--text);margin-bottom:1rem;font-size:1rem}.flash-complete-msg{color:var(--text-muted);max-width:400px;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;font-size:.85rem;line-height:1.5}@media (width<=640px){.navbar{padding:.75rem 1rem}.navbar-brand{font-size:1.05rem}.main-content{padding:1rem}.passage{padding:1rem;font-size:.9rem}.question-section{padding:1rem}.review-top{flex-direction:column;align-items:flex-start}.category-filters{gap:.35rem}.category-chip{padding:.35rem .7rem;font-size:.75rem}.stats-grid,.streak-row,.goal-score-row,.achievements-grid{grid-template-columns:1fr}.stat-card-big{grid-column:1}.stats-insights{grid-template-columns:1fr}.recent-item{flex-wrap:wrap}}
