body{margin:0}*{box-sizing:border-box}.pg-overlay{background:#0f1117;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.pg-card{text-align:center;background:#1a1d2e;border:1px solid #2e3356;border-radius:20px;width:100%;max-width:400px;padding:48px 40px;box-shadow:0 8px 40px #00000080}.pg-logo{margin-bottom:8px;font-size:3rem}.pg-title{background:linear-gradient(135deg,#7986cb,#5c6bc0);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:1.8rem;font-weight:800}.pg-subtitle{color:#8b93c0;margin-bottom:32px;font-size:.9rem}.pg-form{flex-direction:column;gap:12px;display:flex}.pg-input{color:#e8eaf6;text-align:center;letter-spacing:3px;background:#242740;border:2px solid #2e3356;border-radius:12px;padding:14px 18px;font-family:inherit;font-size:1rem;transition:border-color .2s}.pg-input:focus{border-color:#5c6bc0;outline:none}.pg-error{color:#ef5350;font-size:.85rem}.pg-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#5c6bc0,#7c4dff);border:none;border-radius:12px;padding:14px;font-size:1rem;font-weight:700;transition:opacity .2s}.pg-btn:hover:not(:disabled){opacity:.9}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.pg-footer{color:#4a5080;margin-top:24px;font-size:.75rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d2e;--surface2:#242740;--border:#2e3356;--text:#e8eaf6;--text-muted:#8b93c0;--accent:#5c6bc0;--accent-light:#7986cb;--green:#43a047;--green-light:#66bb6a;--red:#e53935;--red-light:#ef5350;--yellow:#ffa726;--radius:12px;--shadow:0 4px 24px #0006}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5}.app{min-height:100vh}button{cursor:pointer;border:none;font-family:inherit}.btn-icon{background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-size:1.1rem;transition:background .2s}.btn-icon:hover{background:var(--border)}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);padding:12px 28px;font-size:1rem;font-weight:600;transition:background .2s,transform .1s}.btn-primary:hover{background:var(--accent-light);transform:translateY(-1px)}.btn-secondary{background:var(--surface2);color:var(--text);border-radius:var(--radius);border:1px solid var(--border);padding:12px 28px;font-size:.95rem;transition:background .2s}.btn-secondary:hover{background:var(--border)}.btn-nav{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 20px;font-size:.9rem}.btn-nav:hover:not(:disabled){background:var(--accent)}.btn-nav:disabled{opacity:.35;cursor:not-allowed}.btn-submit{background:linear-gradient(135deg, var(--accent), #7c4dff);color:#fff;border-radius:var(--radius);letter-spacing:.5px;width:100%;margin-top:16px;padding:14px;font-size:1rem;font-weight:700;transition:opacity .2s,transform .1s}.btn-submit:hover{opacity:.9;transform:translateY(-1px)}.btn-danger-sm{background:var(--red);color:#fff;border-radius:8px;padding:6px 14px;font-size:.85rem}.home{max-width:900px;margin:0 auto;padding:40px 20px}.home-header{text-align:center;margin-bottom:36px}.home-logo{margin-bottom:8px;font-size:3.5rem}.home-header h1{background:linear-gradient(135deg,#7986cb,#5c6bc0);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.4rem;font-weight:800}.home-subtitle{color:var(--text-muted);margin-top:6px;font-size:1.05rem}.home-badge{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:20px;gap:12px;margin-top:12px;padding:6px 18px;font-size:.85rem;display:inline-flex}.pool-toggle{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.pool-btn{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:18px 16px;transition:all .2s;display:flex}.pool-btn:hover{border-color:var(--accent)}.pool-btn.pool-active{border-color:var(--accent);color:var(--text);background:#5c6bc026}.pool-icon{font-size:1.6rem}.pool-label{font-size:1rem;font-weight:700}.pool-sub{color:var(--text-muted);text-align:center;font-size:.78rem}.pool-count{background:var(--surface2);border-radius:10px;margin-top:2px;padding:2px 10px;font-size:.75rem}.pool-btn.pool-active .pool-count{background:var(--accent);color:#fff}.home-filter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;display:flex}.home-filter label{color:var(--text-muted);white-space:nowrap;font-size:.9rem}.home-filter select{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:8px;flex:1;padding:8px 12px;font-size:.9rem}.mode-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px;display:grid}.mode-card{border-radius:var(--radius);border:1px solid #0000;flex-direction:column;align-items:flex-start;gap:6px;padding:24px;transition:transform .2s,box-shadow .2s;display:flex}.mode-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.mode-icon{font-size:2rem}.mode-label{font-size:1.15rem;font-weight:700}.mode-desc{opacity:.8;font-size:.85rem}.mode-cat-tag{background:#ffffff26;border-radius:6px;margin-top:4px;padding:2px 8px;font-size:.75rem}.card-exam{color:#fff;background:linear-gradient(135deg,#1a237e,#283593)}.card-quiz30{color:#fff;background:linear-gradient(135deg,#1b5e20,#2e7d32)}.card-quiz10{color:#fff;background:linear-gradient(135deg,#e65100,#f57c00)}.card-road-exam{color:#fff;background:linear-gradient(135deg,#37474f,#546e7a)}.card-road-quiz30{color:#fff;background:linear-gradient(135deg,#004d40,#00695c)}.card-road-quiz10{color:#fff;background:linear-gradient(135deg,#bf360c,#d84315)}.card-road-nearby{color:#fff;background:linear-gradient(135deg,#4a148c,#6a1b9a)}.card-road-reverse{color:#fff;background:linear-gradient(135deg,#1a237e,#283593)}.card-mem-flash{color:#fff;background:linear-gradient(135deg,#f57f17,#f9a825)}.card-mem-cluster{color:#fff;background:linear-gradient(135deg,#006064,#00838f)}.card-mem-quickfire{color:#fff;background:linear-gradient(135deg,#880e4f,#ad1457)}.home-subsection-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:10px;padding-left:2px;font-size:.78rem;font-weight:700}.srs-progress-bar-wrap{margin-bottom:16px}.srs-progress-bar{background:var(--surface2);border-radius:6px;height:8px;margin-bottom:6px;display:flex;overflow:hidden}.srs-seg{height:100%;transition:width .4s}.srs-mastered{background:var(--green)}.srs-struggling{background:var(--yellow)}.srs-progress-label{color:var(--text-muted);font-size:.75rem}.home-section-title{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.home-section-title h2{font-size:1.1rem;font-weight:700}.home-section-title--road{margin-top:12px}.section-badge{background:var(--accent);color:#fff;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.72rem;font-weight:700}.section-badge--road{background:#00695c}.section-sub{color:var(--text-muted);font-size:.8rem}.home-secondary{flex-wrap:wrap;gap:12px;margin-bottom:32px;display:flex}.home-secondary .btn-secondary{text-align:center;flex:1;min-width:200px}.home-tips{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px}.home-tips h3{margin-bottom:12px;font-size:1rem}.home-tips ul{flex-direction:column;gap:8px;list-style:none;display:flex}.home-tips li{color:var(--text-muted);font-size:.88rem}.home-tips li strong{color:var(--text)}.home-tips kbd{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.8rem}.session{flex-direction:column;height:100vh;display:flex;overflow:hidden}.session-topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 20px;display:flex}.session-info{flex:1;align-items:center;gap:12px;display:flex}.session-mode-badge{background:var(--accent);color:#fff;border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600}.session-progress{color:var(--text-muted);font-size:.85rem}.timer{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.9rem}.progress-bar-wrap{background:var(--surface2);flex-shrink:0;height:4px}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--accent-light));height:100%;transition:width .4s}.session-body{flex:1;display:flex;overflow:hidden}.session-nav{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;padding:16px;display:flex;overflow-y:auto}.nav-grid-wrap{flex:1}.nav-grid-legend{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.legend-item{background:var(--surface2);color:var(--text-muted);border-radius:4px;padding:2px 7px;font-size:.7rem}.legend-correct{color:var(--green-light);background:#43a04733}.legend-wrong{color:var(--red-light);background:#e5393533}.legend-answered{color:var(--accent-light);background:#5c6bc033}.legend-current{color:var(--yellow);background:#ffb74d33}.legend-bookmark{color:var(--yellow);background:#ffb74d26}.nav-grid{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:4px;display:grid}.nav-dot{aspect-ratio:1;background:var(--surface2);width:100%;color:var(--text-muted);border:1px solid var(--border);border-radius:6px;font-size:.65rem;font-weight:600;transition:all .15s}.nav-dot:hover{background:var(--accent);color:#fff}.nav-dot-current{border-color:var(--yellow);color:var(--yellow);background:#ffb74d26}.nav-dot-answered{color:var(--accent-light);border-color:var(--accent);background:#5c6bc04d}.nav-dot-correct{color:var(--green-light);border-color:var(--green);background:#43a0474d}.nav-dot-wrong{color:var(--red-light);border-color:var(--red);background:#e539354d}.nav-dot-bookmarked{border-color:var(--yellow)!important}.question-area{flex-direction:column;flex:1;gap:20px;padding:24px 36px;display:flex;overflow-y:auto}.question-header{align-items:center;gap:12px;display:flex}.question-num{color:var(--text-muted);font-size:.85rem}.question-category{background:var(--surface2);border:1px solid var(--border);color:var(--accent-light);border-radius:6px;flex:1;padding:3px 10px;font-size:.8rem}.btn-bookmark{color:var(--text-muted);background:0 0;border-radius:6px;padding:4px;font-size:1.3rem;transition:transform .2s}.btn-bookmark.bookmarked{color:var(--yellow)}.btn-bookmark:hover{transform:scale(1.2)}.question-label{color:var(--text-muted);margin-bottom:4px;font-size:.9rem}.question-establishment{color:var(--text);font-size:1.6rem;font-weight:700;line-height:1.3}.answer-status{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;font-size:.95rem;font-weight:500;display:flex}.status-correct{border:1px solid var(--green);color:var(--green-light);background:#43a04733}.status-wrong{border:1px solid var(--red);color:var(--red-light);background:#e5393533}.streetview-link{color:#fff;background:#ffffff26;border-radius:6px;padding:4px 12px;font-size:.85rem;text-decoration:none;transition:background .2s}.streetview-link:hover{background:#ffffff40}.options-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.option{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:16px 18px;font-size:.95rem;transition:all .15s;display:flex}.option:hover:not(:disabled):not(.correct):not(.wrong):not(.dimmed){border-color:var(--accent);background:#5c6bc01f}.option.selected{border-color:var(--accent);background:#5c6bc033}.option.correct{border-color:var(--green);color:var(--green-light);background:#43a04733}.option.wrong{border-color:var(--red);color:var(--red-light);background:#e5393533}.option.dimmed{opacity:.45;cursor:default}.option:disabled{cursor:default}.option-letter{background:var(--surface2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;height:28px;font-size:.8rem;font-weight:700;display:flex}.option-text{line-height:1.4}.question-nav-buttons{justify-content:space-between;gap:12px;display:flex}.keyboard-hint{color:var(--text-muted);text-align:center;font-size:.75rem}.results{max-width:900px;margin:0 auto;padding:40px 20px}.score-card{text-align:center;box-shadow:var(--shadow);border-radius:20px;margin-bottom:24px;padding:40px}.score-pass{background:linear-gradient(135deg,#1b5e20,#2e7d32)}.score-fail{background:linear-gradient(135deg,#1a237e,#283593)}.score-icon{margin-bottom:8px;font-size:3rem}.score-pct{color:#fff;font-size:4rem;font-weight:900}.score-verdict{margin:8px 0;font-size:1.3rem;font-weight:700}.verdict-pass{color:#a5d6a7}.verdict-fail{color:#90caf9}.score-mode{color:#ffffffb3;margin-bottom:20px;font-size:.9rem}.score-breakdown{justify-content:center;gap:32px;margin-bottom:12px;display:flex}.score-stat{flex-direction:column;align-items:center;gap:4px;display:flex}.stat-val{color:#fff;font-size:2rem;font-weight:800}.stat-lbl{color:#ffffffb3;font-size:.8rem}.score-correct .stat-val{color:#a5d6a7}.score-wrong .stat-val{color:#ef9a9a}.score-unanswered .stat-val{color:#fff59d}.score-time{color:#fff9;font-size:.85rem}.results-actions{justify-content:center;gap:12px;margin-bottom:32px;display:flex}.review-section h2{margin-bottom:16px}.review-controls{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.filter-tabs{flex-wrap:wrap;gap:8px;display:flex}.filter-tab{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;padding:7px 14px;font-size:.82rem;transition:all .15s}.filter-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-tab:hover:not(.active){border-color:var(--accent)}.review-search{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;padding:10px 14px;font-size:.9rem}.review-list{flex-direction:column;gap:12px;display:flex}.review-item{background:var(--surface);border-radius:var(--radius);border-left:4px solid var(--border);padding:16px 20px}.review-correct{border-left-color:var(--green)}.review-wrong{border-left-color:var(--red)}.review-unanswered{border-left-color:var(--text-muted)}.review-item-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.review-num{color:var(--text-muted);background:var(--surface2);border-radius:4px;padding:2px 7px;font-size:.75rem}.review-cat{color:var(--accent-light);flex:1;font-size:.75rem}.review-status-icon{font-size:1rem}.review-establishment{margin-bottom:8px;font-weight:600}.review-addresses{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.review-correct-addr{color:var(--green-light);font-size:.88rem}.review-user-addr{color:var(--red-light);font-size:.88rem}.review-links{gap:8px;display:flex}.review-link{border-radius:6px;padding:4px 12px;font-size:.82rem;text-decoration:none;transition:opacity .2s}.review-link:hover{opacity:.8}.review-link.streetview{color:#fff;background:#1565c0}.review-link.maps{color:#fff;background:#2e7d32}.review-empty{color:var(--text-muted);text-align:center;padding:20px}.study{flex-direction:column;min-height:100vh;display:flex}.study-topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 20px;display:flex}.study-topbar h2{flex:1;font-size:1.1rem}.study-count{color:var(--text-muted);font-size:.85rem}.study-filters{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;padding:16px 20px;display:flex}.study-search{background:var(--surface2);border:1px solid var(--border);min-width:200px;color:var(--text);border-radius:8px;flex:2;padding:9px 14px;font-size:.9rem}.study-filters select{background:var(--surface2);min-width:180px;color:var(--text);border:1px solid var(--border);border-radius:8px;flex:1;padding:9px 12px;font-size:.9rem}.bookmark-toggle{color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:.88rem;display:flex}.bookmark-toggle input{cursor:pointer}.study-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:20px;display:grid}.study-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color .2s}.study-card:hover{border-color:var(--accent)}.study-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.study-cat{color:var(--accent-light);background:#5c6bc026;border-radius:4px;padding:2px 8px;font-size:.72rem}.btn-bm{color:var(--text-muted);background:0 0;padding:2px;font-size:1.1rem}.btn-bm.bm-active{color:var(--yellow)}.study-establishment{margin-bottom:6px;font-size:.95rem;font-weight:600}.study-address{color:var(--text-muted);margin-bottom:10px;font-size:.85rem}.study-links{gap:6px;display:flex}.study-link{border-radius:6px;padding:4px 10px;font-size:.78rem;text-decoration:none;transition:opacity .2s}.study-link:hover{opacity:.8}.study-link.sv{color:#fff;background:#1565c0}.study-link.gm{color:#fff;background:#2e7d32}.study-empty{text-align:center;color:var(--text-muted);padding:60px 20px}.pagination{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:16px;padding:20px;display:flex}.pagination button{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 16px}.pagination button:disabled{opacity:.4}.pagination span{color:var(--text-muted);font-size:.9rem}.stats-page{max-width:900px;margin:0 auto;padding:40px 20px}.stats-topbar{align-items:center;gap:12px;margin-bottom:28px;display:flex}.stats-topbar h2{flex:1}.stats-empty{text-align:center;color:var(--text-muted);padding:60px 20px}.stats-summary{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;gap:4px;padding:20px;display:flex}.stat-box-val{color:var(--accent-light);font-size:2rem;font-weight:800}.stat-box-lbl{color:var(--text-muted);font-size:.8rem}.stats-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.stats-chart h3{color:var(--text-muted);margin-bottom:16px;font-size:.95rem}.bar-chart{align-items:flex-end;gap:4px;height:120px;padding-bottom:20px;display:flex;overflow-x:auto}.bar-wrap{flex-direction:column;flex-shrink:0;justify-content:flex-end;align-items:center;width:24px;height:100%;display:flex;position:relative}.bar{border-radius:4px 4px 0 0;width:100%;transition:height .4s}.bar-pass{background:var(--green)}.bar-fail{background:var(--red)}.bar-label{color:var(--text-muted);white-space:nowrap;font-size:.55rem;position:absolute;bottom:0}.chart-legend{gap:16px;margin-top:8px;font-size:.8rem;display:flex}.legend-pass{color:var(--green-light)}.legend-fail{color:var(--red-light)}.stats-list h3{margin-bottom:12px}.stats-row{background:var(--surface);border-left:3px solid #0000;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:6px;padding:10px 16px;font-size:.85rem;display:flex}.row-pass{border-left-color:var(--green)}.row-fail{border-left-color:var(--red)}.stats-date{color:var(--text-muted);min-width:140px;font-size:.78rem}.stats-mode{color:var(--text-muted);flex:1}.stats-score{font-weight:700}.stats-pct{min-width:46px;font-weight:800}.stats-duration{color:var(--text-muted);min-width:52px}.road-drop-zones{grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 4px;display:grid}.road-zone{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:90px;padding:14px;transition:all .18s;display:flex}.road-zone:hover{border-color:var(--accent)}.road-zone-filled{border-style:solid;border-color:var(--accent);background:#5c6bc01a}.road-zone-correct{border-color:var(--green)!important;background:#43a04726!important}.road-zone-wrong{border-color:var(--red)!important;background:#e5393526!important}.road-zone-highlight{border-color:var(--accent-light);border-style:solid}.road-zone-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);font-size:.7rem;font-weight:700}.road-zone-token{background:var(--accent);color:#fff;text-align:center;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:.88rem;font-weight:600;line-height:1.3;display:flex}.road-zone-correct .road-zone-token{background:var(--green)}.road-zone-wrong .road-zone-token{background:var(--red)}.road-zone-remove{opacity:.7;cursor:pointer;font-size:.75rem}.road-zone-remove:hover{opacity:1}.road-zone-placeholder{color:var(--text-muted);font-size:.78rem;font-style:italic}.road-token-bank{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:10px;min-height:70px;padding:16px;display:flex}.road-token-bank-locked{opacity:.55;pointer-events:none}.road-token-bank-label{width:100%;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.7rem}.road-bank-empty{color:var(--text-muted);font-size:.8rem;font-style:italic}.road-token{background:var(--surface2);border:2px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:8px;padding:9px 14px;font-size:.85rem;font-weight:500;line-height:1.3;transition:all .15s}.road-token:hover:not(:disabled){border-color:var(--accent);background:#5c6bc01f}.road-token-selected{color:var(--accent-light);box-shadow:0 0 0 3px #5c6bc033;border-color:var(--accent-light)!important;background:#5c6bc040!important}.road-token-dim{opacity:.5;cursor:default}.road-reverse-clue{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:16px;padding:18px 24px;display:flex}.road-reverse-item{flex-direction:column;gap:4px;display:flex}.road-reverse-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:.7rem}.road-reverse-value{color:var(--text);font-size:1.1rem;font-weight:700}.road-reverse-arrow{color:var(--text-muted);font-size:1.5rem}.flashcard-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.fc-topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 20px;display:flex}.fc-topbar h2{flex:1;font-size:1.05rem}.fc-srs-mini{gap:6px;display:flex}.fc-srs-pill{border-radius:12px;padding:3px 10px;font-size:.72rem;font-weight:600}.fc-srs-green{color:var(--green-light);background:#43a04733}.fc-srs-yellow{color:var(--yellow);background:#ffa72633}.fc-srs-muted{background:var(--surface2);color:var(--text-muted)}.fc-progress-bar{background:var(--surface2);height:4px}.fc-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-light));height:100%;transition:width .3s}.fc-body{flex-direction:column;flex:1;align-items:center;gap:16px;width:100%;max-width:700px;margin:0 auto;padding:24px 20px;display:flex}.fc-meta{align-items:center;gap:12px;width:100%;display:flex}.fc-pass-badge{background:var(--accent);color:#fff;border-radius:12px;padding:3px 10px;font-size:.72rem;font-weight:700}.fc-card-num{color:var(--text-muted);flex:1;font-size:.85rem}.fc-mastery-dot{border-radius:50%;width:10px;height:10px}.dot-mastered{background:var(--green)}.dot-struggle{background:var(--yellow)}.dot-new{background:var(--border)}.fc-card{border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:220px;padding:28px 32px;transition:border-color .2s,box-shadow .2s;display:flex}.fc-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.fc-card-flipped{border-color:var(--accent);background:var(--surface2);cursor:default}.fc-front{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.fc-hint{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.78rem}.fc-road-name{color:var(--text);font-size:1.8rem;font-weight:800}.fc-flip-hint{color:var(--text-muted);margin-top:8px;font-size:.78rem}.fc-back{flex-direction:column;gap:16px;width:100%;display:flex}.fc-back-road{color:var(--text-muted);text-align:center;font-size:1rem;font-weight:600}.fc-endpoints{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.fc-endpoint{flex-direction:column;align-items:center;gap:4px;display:flex}.fc-ep-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:.7rem}.fc-ep-value{color:var(--text);text-align:center;font-size:1.1rem;font-weight:700}.fc-ep-arrow{color:var(--text-muted);font-size:1.4rem}.fc-nearby{background:var(--surface);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;display:flex}.fc-nearby-label{color:var(--text-muted);font-size:.78rem}.fc-nearby-value{color:var(--accent-light);font-size:.88rem;font-weight:600}.fc-key-hint{color:var(--text-muted);text-align:center;margin-top:4px;font-size:.72rem}.fc-rating{gap:16px;width:100%;display:flex}.fc-btn-fail{border-radius:var(--radius);border:2px solid var(--red);color:var(--red-light);background:#e5393526;flex:1;padding:14px;font-size:1rem;font-weight:700;transition:all .15s}.fc-btn-fail:hover{background:#e539354d}.fc-btn-know{border-radius:var(--radius);border:2px solid var(--green);color:var(--green-light);background:#43a04726;flex:1;padding:14px;font-size:1rem;font-weight:700;transition:all .15s}.fc-btn-know:hover{background:#43a0474d}.fc-session-score{color:var(--text-muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.fc-score-correct{color:var(--green-light);font-weight:700}.fc-score-wrong{color:var(--red-light);font-weight:700}.fc-score-sep{opacity:.4}.fc-done{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:40px 20px;display:flex}.fc-done-icon{font-size:3rem}.fc-done-stats{gap:24px;display:flex}.fc-stat-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:6px;padding:20px 32px;display:flex}.fc-stat-val{font-size:2.5rem;font-weight:800}.fc-stat-lbl{color:var(--text-muted);font-size:.8rem}.fc-stat-green .fc-stat-val{color:var(--green-light)}.fc-stat-red .fc-stat-val{color:var(--red-light)}.fc-srs-summary{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.fc-done-actions{gap:12px;display:flex}.cluster-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.cluster-topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 20px;display:flex}.cluster-topbar h2{flex:1;font-size:1.05rem}.cluster-topbar-actions{gap:8px;display:flex}.cluster-intro{border-bottom:1px solid var(--border);color:var(--text-muted);background:#5c6bc014;padding:14px 20px;font-size:.85rem}.cluster-list{flex-direction:column;gap:0;width:100%;max-width:1000px;margin:0 auto;padding:16px 20px;display:flex}.cluster-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:12px;overflow:hidden}.cluster-header{background:var(--surface);width:100%;color:var(--text);text-align:left;cursor:pointer;border:none;align-items:center;gap:10px;padding:14px 18px;font-size:.9rem;transition:background .2s;display:flex}.cluster-header:hover{background:var(--surface2)}.cluster-emoji{font-size:1.2rem}.cluster-name{flex:1;font-weight:700}.cluster-count{color:var(--text-muted);background:var(--surface2);border-radius:10px;padding:2px 8px;font-size:.75rem}.cluster-mastery{background:var(--surface2);border-radius:3px;width:60px;height:6px;overflow:hidden}.cluster-mastery-bar{background:var(--green);height:100%;transition:width .4s}.cluster-chevron{color:var(--text-muted);font-size:.75rem}.cluster-body{padding:4px 18px 16px}.cluster-tip{color:var(--accent-light);background:#5c6bc01a;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:.8rem}.cluster-table{flex-direction:column;gap:0;display:flex}.cluster-table-head{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--border);grid-template-columns:2fr 2fr .3fr 2fr;gap:8px;margin-bottom:4px;padding:6px 10px;font-size:.68rem;font-weight:700;display:grid}.cluster-row{border-radius:6px;grid-template-columns:2fr 2fr .3fr 2fr;gap:8px;padding:8px 10px;font-size:.84rem;transition:background .15s;display:grid}.cluster-row:hover{background:var(--surface2)}.row-mastered{background:#43a04712}.row-struggle{background:#ffa72612}.cluster-road-name{color:var(--text);font-weight:600}.cluster-road-start{color:var(--text-muted)}.cluster-road-arrow{color:var(--text-muted);text-align:center}.cluster-road-end{color:var(--text-muted)}.qf-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.qf-topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 20px;display:flex}.qf-score{color:var(--text-muted);margin-left:auto;font-size:.85rem}.qf-body{flex-direction:column;flex:1;align-items:center;gap:20px;width:100%;max-width:700px;margin:0 auto;padding:28px 24px;display:flex}.qf-road-name-wrap{text-align:center;width:100%;transition:opacity .4s}.qf-road-faded{opacity:.2}.qf-memorise-hint{text-transform:uppercase;letter-spacing:2px;color:var(--yellow);margin-bottom:8px;font-size:.78rem;font-weight:700}.qf-road-name{color:var(--text);font-size:2rem;font-weight:900;line-height:1.2}.qf-show-bar{background:var(--surface2);border-radius:2px;width:200px;height:4px;margin-top:16px;margin-left:auto;margin-right:auto;overflow:hidden}@keyframes qf-drain{0%{width:100%}to{width:0%}}.qf-show-bar-anim{background:var(--yellow);height:100%;animation:1.5s linear forwards qf-drain}.qf-countdown-wrap{background:var(--surface2);border-radius:5px;width:100%;height:10px;overflow:hidden}.qf-countdown-fill{background:var(--green);border-radius:5px;height:100%;transition:width 1s linear,background .3s}.qf-countdown-urgent{background:var(--red)}.qf-timer-text{color:var(--text-muted);text-align:center;font-size:.8rem}.road-token-correct-pick{border-color:var(--green)!important;color:var(--green-light)!important;background:#43a04733!important}.road-token-wrong-pick{border-color:var(--red)!important;color:var(--red-light)!important;background:#e5393533!important}.road-token-missed{border-color:var(--yellow)!important;color:var(--yellow)!important;background:#ffa72626!important}.qf-done{text-align:center;flex-direction:column;align-items:center;gap:20px;max-width:500px;margin:0 auto;padding:60px 20px;display:flex}.qf-done-icon{font-size:3rem}.qf-done-pct{color:var(--text);font-size:4rem;font-weight:900}.qf-done-title{color:var(--text-muted);font-size:1.2rem}.qf-done-stats{gap:20px;display:flex}.qf-stat-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:6px;padding:20px 28px;display:flex}.qf-stat-box span{font-size:2.2rem;font-weight:800}.qf-stat-box small{color:var(--text-muted);font-size:.78rem}.qf-stat-green span{color:var(--green-light)}.qf-stat-red span{color:var(--red-light)}@media (width<=768px){.session-body{flex-direction:column}.session-nav{border-right:none;border-bottom:1px solid var(--border);width:100%;height:180px}.options-grid{grid-template-columns:1fr}.question-establishment{font-size:1.2rem}.question-area{padding:16px}.score-breakdown{gap:16px}.home-filter{flex-direction:column;align-items:stretch}}
