*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1623;--sidebar-bg: #141b2d;--surface: #1a2440;--surface-2: #1f2d52;--border: #263352;--text: #dde4f0;--text-muted: #7a8fb5;--text-dim: #4a5d85;--accent: #3b82f6;--accent-h: #2563eb;--correct: #22c55e;--correct-bg: rgba(34,197,94,.15);--wrong: #ef4444;--wrong-bg: rgba(239,68,68,.15);--uncertain: #f59e0b;--uncertain-bg: rgba(245,158,11,.15);--bookmark: #a855f7;--bookmark-bg: rgba(168,85,247,.15);--radius: 8px;--radius-sm: 4px;--sidebar-w: 270px}html,body{height:100%;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;width:100%;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;background:var(--bg);color:var(--text)}#app{height:100%;display:flex;flex-direction:column}[v-cloak]{display:none}button{cursor:pointer;font:inherit}input,select{font:inherit}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#000000b3;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:28px 32px;width:min(420px,90vw);box-shadow:0 20px 60px #00000080}.modal-title{font-size:1.2rem;font-weight:700;margin-bottom:8px}.modal-desc{color:var(--text-muted);margin-bottom:16px;font-size:.9rem}.modal-input{width:100%;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color .15s}.modal-input:focus{border-color:var(--accent)}.modal-actions{display:flex;gap:10px;margin-top:14px}.modal-note{margin-top:12px;font-size:.8rem;color:var(--uncertain)}.modal-email-form{display:flex;flex-direction:column;gap:10px}.modal-email-form .modal-actions{margin-top:4px}.auth-modal{width:min(380px,92vw);padding:32px}.auth-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;margin-bottom:14px}.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px 16px;background:#fff;color:#1f1f1f;border:1px solid #dadce0;border-radius:var(--radius);font-weight:600;font-size:.92rem;transition:box-shadow .15s,background .15s}.btn-google:hover:not(:disabled){background:#f7f8f8;box-shadow:0 1px 4px #0000004d}.btn-google:disabled{opacity:.5;cursor:not-allowed}.google-icon{flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--text-dim);font-size:.76rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.modal-lg{width:min(640px,92vw);max-height:82vh;display:flex;flex-direction:column}.modal-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-title-row .modal-title{margin-bottom:0}.btn-close{background:transparent;border:none;color:var(--text-muted);font-size:1rem;line-height:1;padding:4px 8px}.btn-close:hover{color:var(--text)}.history-list-full{min-height:300px;max-height:55vh;border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;margin-bottom:14px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px}.pagination-info{color:var(--text-muted);font-size:.85rem;text-align:center;flex:1}.load-error-banner{background:var(--wrong-bg);color:var(--wrong);padding:8px 16px;font-size:.85rem;text-align:center}.btn{padding:9px 18px;border-radius:var(--radius);border:1px solid transparent;font-weight:600;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-h)}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-muted)}.btn-ghost:hover{background:var(--surface)}.layout{display:flex;flex:1;height:100%;overflow:hidden}.sidebar-backdrop{display:none}.app-topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.btn-hamburger{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:1.05rem;flex-shrink:0}.btn-hamburger:hover{border-color:var(--accent)}.app-topbar-title{font-weight:700;color:var(--text)}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .18s,min-width .18s}.sidebar:not(.open){width:0;min-width:0;border-right:none}.sb-section{padding:10px 10px 0}.sb-select{width:100%;padding:8px 28px 8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237a8fb5' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.sb-select:focus{border-color:var(--accent)}.sb-select option{background:var(--surface)}.sb-search-wrap{position:relative;padding-top:8px}.sb-search-icon{position:absolute;left:18px;top:50%;transform:translateY(-25%);font-size:.85rem;color:var(--text-muted);pointer-events:none}.sb-search{width:100%;padding:8px 10px 8px 32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none}.sb-search::placeholder{color:var(--text-dim)}.sb-search:focus{border-color:var(--accent)}.sb-grid-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 8px;padding:10px 10px 6px;font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.sb-state-chips{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 8px}.state-chip{padding:2px 7px;border-radius:12px;border:1px solid var(--border);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s;background:transparent;color:var(--text-muted)}.state-chip:hover{opacity:.85}.state-chip.active{color:#fff}.chip-all.active{background:var(--accent);border-color:var(--accent)}.chip-none.active{background:var(--text-dim);border-color:var(--text-dim);color:#fff}.chip-ok.active{background:var(--correct);border-color:var(--correct)}.chip-bad.active{background:var(--wrong);border-color:var(--wrong)}.chip-q.active{background:var(--uncertain);border-color:var(--uncertain);color:#000}.chip-bm.active{background:var(--bookmark);border-color:var(--bookmark)}.sb-tag-filter{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 10px 8px;padding:4px 10px;background:#3b82f61f;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.78rem;font-weight:600}.sb-tag-filter-clear{color:var(--accent);font-size:.78rem;line-height:1}.sb-tag-filter-clear:hover{color:var(--text)}.history-filters{padding:8px 10px}.sb-view-tabs{padding:0;gap:2px;flex-shrink:0}.sb-view-tabs .stats-tab{padding:3px 8px;font-size:.72rem;white-space:nowrap}.sb-grid{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:2px 10px 6px;display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start}.sb-grid::-webkit-scrollbar{width:4px}.sb-grid::-webkit-scrollbar-track{background:transparent}.sb-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.grid-cell{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;padding:0}.grid-cell:hover{border-color:var(--accent);color:var(--text)}.grid-cell.gc-active{border-color:var(--accent);background:var(--accent);color:#fff}.grid-cell.gc-correct{border-color:var(--correct);background:var(--correct-bg);color:var(--correct)}.grid-cell.gc-wrong{border-color:var(--wrong);background:var(--wrong-bg);color:var(--wrong)}.grid-cell.gc-uncertain{border-color:var(--uncertain);background:var(--uncertain-bg);color:var(--uncertain)}.grid-cell.gc-bookmark{border-color:var(--bookmark);background:var(--bookmark-bg);color:var(--bookmark)}.sb-empty{color:var(--text-muted);font-size:.85rem;padding:8px 4px}.sb-footer{border-top:1px solid var(--border);padding:10px;display:flex;flex-direction:column;gap:6px}.sb-user{position:relative;display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-muted);cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);transition:background .15s}.sb-user:hover{background:var(--surface);color:var(--text)}.sb-user-signin{border:none;background:none;width:100%}.sb-user-menu{position:absolute;bottom:110%;left:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;z-index:10;min-width:150px;box-shadow:0 8px 24px #0006}.sb-user-menu button{display:block;width:100%;text-align:left;padding:8px 14px;background:none;border:none;color:var(--text);font-size:.85rem}.sb-user-menu button:hover{background:var(--surface)}.btn-exam{width:100%;padding:9px 12px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-weight:700;font-size:.82rem;text-align:center;transition:background .15s}.btn-exam:hover{background:var(--accent-h)}.sb-extra-nav{display:flex;gap:6px}.btn-extra-nav{flex:1;padding:7px 4px;background:var(--surface);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.74rem;text-align:center;transition:background .15s,color .15s}.btn-extra-nav:hover{background:var(--surface-2);color:var(--text)}.modal-xl{width:min(1100px,96vw);max-height:94vh;overflow-y:auto;overflow-x:hidden}.sahinh-overview{width:100%;border-radius:var(--radius);margin-bottom:14px;display:block}.sahinh-h3{font-size:1.05rem;margin-bottom:8px}.sahinh-h4{font-size:.92rem;color:var(--accent);margin:12px 0 6px}.sahinh-p{color:var(--text-muted);font-size:.88rem;margin-bottom:8px;line-height:1.5}.sahinh-ul{list-style:disc;padding-left:20px;color:var(--text-muted);font-size:.86rem;display:flex;flex-direction:column;gap:4px}.sahinh-toc{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.sahinh-toc-item{padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.78rem;transition:background .15s,color .15s}.sahinh-toc-item:hover{background:var(--surface-2);color:var(--text)}.sahinh-list{display:flex;flex-direction:column;gap:12px}.sahinh-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;scroll-margin-top:12px}.sahinh-card-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:none;border:none;text-align:left}.sahinh-card-header:hover{background:var(--surface-2)}.sahinh-title{font-weight:700;font-size:.92rem}.sahinh-caret{color:var(--text-dim)}.sahinh-card-body{padding:0 14px 14px}.sahinh-img{width:100%;border-radius:var(--radius-sm);display:block;margin:8px 0}.sahinh-alert{border-radius:var(--radius-sm);padding:10px 12px;margin-top:10px;font-size:.86rem}.sahinh-alert p{margin-top:4px;color:var(--text-muted);line-height:1.5}.sahinh-alert-tip{background:var(--correct-bg);border:1px solid var(--correct)}.sahinh-alert-tip strong{color:var(--correct)}.sahinh-alert-warn{background:var(--wrong-bg);border:1px solid var(--wrong)}.sahinh-alert-warn strong{color:var(--wrong)}.sahinh-danger-note{margin-top:16px}.tips-list{display:flex;flex-direction:column;gap:16px}.tip-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.tip-title{font-weight:700;margin-bottom:8px}.tip-img{width:100%;border-radius:var(--radius-sm);display:block;margin-bottom:8px}.tip-lines{list-style:disc;padding-left:20px;color:var(--text-muted);font-size:.88rem;display:flex;flex-direction:column;gap:4px}.signs-search-wrap{margin-bottom:10px}.signs-type-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.signs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;align-content:start}.sign-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px;text-align:center;cursor:pointer;transition:background .15s,border-color .15s}.sign-card:hover{background:var(--surface-2);border-color:var(--accent)}.sign-img{width:100%;height:80px;object-fit:contain;margin-bottom:6px}.sign-id{font-size:.72rem;color:var(--text-dim);font-weight:700}.sign-name{font-size:.78rem;color:var(--text-muted)}.sign-detail-modal{width:min(480px,92vw);height:86vh;display:flex;flex-direction:column}.sign-detail-body{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}.sign-detail-img{width:100%;max-height:240px;object-fit:contain;margin:12px 0}.sign-detail-desc{white-space:pre-line;font-size:.88rem;line-height:1.65;color:var(--text-muted)}.sign-detail-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.sign-detail-pos{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.right-col{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.q-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.q-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:8px}.q-nav-bottom{border-top:1px solid var(--border);border-bottom:none}.nav-btn{min-width:0;padding:6px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-weight:600;font-size:.82rem;transition:all .15s;white-space:nowrap}.nav-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.nav-btn:disabled{opacity:.4;cursor:default}.q-nav-center{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0;text-align:center}.q-pos{font-weight:700;font-size:.95rem;color:var(--text)}.q-hint{font-size:.72rem;color:var(--text-dim)}.q-nav-tags{display:flex;gap:6px}.btn-tag-sm{padding:4px 8px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;color:var(--text-muted);transition:all .15s}.btn-tag-sm.tagged{border-color:var(--accent);color:var(--accent);background:#3b82f61f}.btn-tag-sm:hover{border-color:var(--accent);color:var(--text)}.btn-auto-advance.counting{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;font-size:.76rem;width:44px;padding:4px 2px;text-align:center;font-variant-numeric:tabular-nums;animation:auto-advance-pulse 1s ease-in-out infinite}@keyframes auto-advance-pulse{0%,to{opacity:1}50%{opacity:.6}}.q-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px 20px 12px}.q-body::-webkit-scrollbar{width:5px}.q-body::-webkit-scrollbar-track{background:transparent}.q-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.q-body-placeholder{flex:1;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-dim);font-size:.88rem}.q-loading-spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:q-spin .8s linear infinite}@keyframes q-spin{to{transform:rotate(360deg)}}.q-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip-num{padding:3px 10px;background:var(--accent);color:#fff;border-radius:20px;font-size:.78rem;font-weight:700}.chip-cat{padding:3px 10px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:20px;font-size:.78rem}.chip-diemliet{padding:3px 10px;background:var(--wrong-bg);border:1px solid var(--wrong);color:var(--wrong);border-radius:20px;font-size:.78rem;font-weight:700}.chip-tag{padding:3px 10px;background:transparent;border:1px solid var(--border);color:var(--accent);border-radius:20px;font-size:.78rem;cursor:pointer;transition:all .15s}.chip-tag:hover{border-color:var(--accent);background:var(--surface-2)}.q-text{font-size:1rem;line-height:1.6;color:var(--text);margin-bottom:8px;font-weight:500}.q-attempt-stats{font-size:.8rem;color:var(--text-muted);margin-bottom:14px}.q-attempt-stats strong{color:var(--text)}.q-img-wrap{position:relative;margin-bottom:14px}.q-img-wrap.is-loading{min-height:140px}.q-img{max-width:100%;max-height:280px;border-radius:var(--radius);border:1px solid var(--border);display:block;opacity:1;transition:opacity .15s}.q-img.q-img-hidden{opacity:0}.q-img-loading{position:absolute;top:0;right:0;bottom:0;left:0;min-height:140px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:.82rem;animation:q-img-pulse 1.2s ease-in-out infinite}@keyframes q-img-pulse{0%,to{opacity:.5}50%{opacity:1}}.answers{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.answer-row{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-align:left;line-height:1.5;transition:all .15s;width:100%}.answer-row:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}.answer-row:disabled{cursor:default}.answer-row:focus{outline:none}.answer-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.answer-row{-webkit-tap-highlight-color:transparent}.ans-num{font-weight:700;color:var(--text-muted);min-width:20px;flex-shrink:0}.ans-text{flex:1;min-width:0;overflow-wrap:break-word}.ans-icon{flex-shrink:0;width:20px;height:20px;border-radius:50%;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center}.answer-row.selected{border-color:var(--accent);background:#3b82f61f}.answer-row.correct{border-color:var(--correct);background:var(--correct-bg)}.answer-row.correct .ans-num{color:var(--correct)}.answer-row.correct .ans-icon{background:var(--correct);color:#fff}.answer-row.wrong{border-color:var(--wrong);background:var(--wrong-bg)}.answer-row.wrong .ans-num{color:var(--wrong)}.answer-row.wrong .ans-icon{background:var(--wrong);color:#fff}.result-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-top:8px}.result-label{font-size:1rem;font-weight:700;margin-bottom:8px}.r-correct{color:var(--correct)}.r-wrong{color:var(--wrong)}.result-exp{font-size:.88rem;line-height:1.6;color:var(--text-muted);margin-bottom:10px;white-space:pre-line}.result-exp p{margin-bottom:8px}.result-exp p:last-child{margin-bottom:0}.result-exp-alt{padding-top:8px;border-top:1px dashed var(--border)}.rtip-card{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px}.rtip-label{color:var(--accent);font-weight:700;font-size:.85rem}.rtip-title{font-weight:800;font-size:1.15rem;margin-bottom:10px;color:var(--text)}.rtip-section-head{font-weight:700;font-size:.82rem;background:var(--surface-2);border-radius:6px;padding:6px 10px;margin:10px 0 6px;color:var(--text)}.rtip-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-bottom:4px}.rtip-table th,.rtip-table td{border:1px solid var(--border);padding:7px 9px;text-align:left;vertical-align:middle}.rtip-table th{background:var(--surface-2);font-weight:700;text-align:center}.rtip-table-speed td:not(:first-child),.rtip-table-speed th:not(:first-child){text-align:center}.rtip-table-speed td:not(:first-child){white-space:nowrap}.rtip-speed-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:2.5px solid var(--wrong);color:var(--text);font-weight:800;font-size:.78rem;background:var(--surface-2)}.rtip-table-age td:first-child{padding:4px;text-align:center}.rtip-table-age td:nth-child(2){text-align:center;font-weight:700;white-space:nowrap}.rtip-table-age td:nth-child(3){text-align:center;font-weight:700}.rtip-table-distance td:first-child{white-space:nowrap}.rtip-note{color:var(--uncertain);font-size:.82rem;line-height:1.5;margin-top:6px}.rtip-vehicle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:6px 0 8px}.rtip-vehicle-item{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;overflow:hidden;font-size:.78rem;line-height:1.4}.rtip-vehicle-img{width:100%;height:84px;object-fit:cover;display:block;cursor:zoom-in}.rtip-vehicle-badge{display:inline-block;margin:6px 10px 0;padding:1px 7px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);font-size:.7rem;font-weight:700}.rtip-vehicle-icon{font-size:1.3rem;display:block;margin-bottom:2px}.rtip-vehicle-name{font-weight:700;color:var(--text);display:block;margin:4px 10px 2px}.rtip-vehicle-desc{color:var(--text-muted);display:block;margin:0 10px 8px}.rtip-row-img{width:56px;height:42px;object-fit:cover;border-radius:4px;display:block;cursor:zoom-in}.rtip-credit{color:var(--text-dim);font-size:.68rem;margin-top:4px;text-align:right}.rtip-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out}.rtip-lightbox-img{max-width:100vw;max-height:100vh;object-fit:contain}.rtip-confuse-pair{display:flex;align-items:center;gap:8px;background:var(--surface-2);border-radius:6px;padding:8px 10px;margin-bottom:6px;font-size:.8rem}.rtip-confuse-pair .rtip-vs{color:var(--text-dim);font-weight:700}.result-next-row{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:8px}.btn-next-question{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;transition:opacity .15s}.btn-next-question:hover{opacity:.88}.next-countdown{display:inline-block;width:56px;background:#ffffff40;border-radius:999px;padding:1px 4px;font-size:.78rem;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.next-countdown-standalone{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.result-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-tag{padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:600;transition:all .15s}.btn-tag:hover{border-color:var(--accent);color:var(--accent)}.btn-tag.tagged{background:#3b82f61a;border-color:var(--accent);color:var(--accent)}.stats-panel{flex-shrink:0;background:var(--surface);border-top:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column}.stats-detail{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.resize-handle{flex-shrink:0;height:7px;cursor:row-resize;background:var(--surface);border-top:1px solid var(--border);position:relative;touch-action:none}.resize-handle:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:3px;border-radius:2px;background:var(--border)}.resize-handle:hover,.resize-handle:active{background:var(--surface-2)}.resize-handle:hover:after,.resize-handle:active:after{background:var(--accent)}.stats-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border);gap:12px;flex-shrink:0}.ps-card{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.ps-progress-title,.ps-safety-title{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--text-muted);margin-bottom:4px}.ps-title-icon{display:inline-flex;align-items:center;line-height:1}.ps-progress-values{display:flex;align-items:baseline;gap:10px}.ps-progress-item{display:flex;align-items:baseline;gap:4px}.ps-progress-item strong{font-size:1.15rem;color:var(--text)}.ps-progress-item span{font-size:.78rem;color:var(--text-muted)}.ps-progress-divider{width:1px;height:16px;background:var(--border)}.ps-safety{text-align:right}.ps-safety-title{justify-content:flex-end}.ps-help-btn{width:16px;height:16px;border-radius:50%;border:1px solid var(--text-dim);color:var(--text-dim);font-size:.68rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.ps-help-btn:hover{border-color:var(--accent);color:var(--accent)}.ps-safety-value{display:flex;align-items:baseline;justify-content:flex-end;gap:6px;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.ps-safety-label{font-size:.78rem;font-weight:600}.ps-safety-danger{color:var(--wrong)}.ps-safety-warn{color:var(--uncertain)}.ps-safety-safe{color:var(--correct)}.ps-info-p{font-size:.86rem;color:var(--text-muted);line-height:1.5;margin-bottom:16px}.ps-band{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:8px;font-size:.86rem}.ps-band:last-child{margin-bottom:0}.ps-band-danger{background:var(--wrong-bg);color:var(--wrong)}.ps-band-warn{background:var(--uncertain-bg);color:var(--uncertain)}.ps-band-safe{background:var(--correct-bg);color:var(--correct)}.stats-bar-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.stat-item{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--text-muted)}.stat-icon{display:inline-flex;align-items:center;line-height:1}.stat-item strong{color:var(--text)}.stat-item.stat-ok strong{color:var(--correct)}.stats-bar-actions{display:flex;align-items:center;gap:8px}.stats-mobile-trigger{display:none}.stats-table-wrap{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.stats-table-wrap::-webkit-scrollbar{width:4px}.stats-table-wrap::-webkit-scrollbar-thumb{background:var(--border)}.stats-table{width:100%;border-collapse:collapse;font-size:.8rem}.stats-table th{padding:5px 12px;text-align:left;color:var(--text-dim);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface)}.stats-table th:last-child{text-align:right}.stats-table td{padding:5px 12px;border-bottom:1px solid rgba(38,51,82,.5);vertical-align:middle}.stats-cat-name{color:var(--text-muted);white-space:nowrap}.stats-progress-cell{display:flex;align-items:center;gap:8px}.stats-bar-bg{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden;min-width:60px}.stats-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .4s ease,background-color .2s ease}.stats-bar-fill-danger{background:var(--wrong)}.stats-bar-fill-warn{background:var(--uncertain)}.stats-bar-fill-safe{background:var(--correct)}.stats-pct{font-size:.72rem;color:var(--text-muted);min-width:32px;text-align:right}.stats-count{text-align:right;color:var(--text-muted);white-space:nowrap}.stats-row-clickable{cursor:pointer}.stats-row-clickable:hover td{background:var(--surface-2);color:var(--text)}.sidebar .stats-table{table-layout:fixed}.sidebar .stats-table th:last-child,.sidebar .stats-count{width:44px;white-space:normal;padding-left:4px}.sidebar .stats-cat-name{white-space:normal;overflow-wrap:break-word}.stats-tabs{display:flex;align-items:center;gap:4px;padding:6px 16px 0;flex-shrink:0}.stats-tab{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-muted);font-size:.78rem;font-weight:600;transition:all .15s}.stats-tab-icon{display:inline-flex;align-items:center;line-height:1}.stats-tab:hover{color:var(--text)}.stats-tab.active{background:var(--surface-2);border-color:var(--border);color:var(--accent)}.history-list{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:4px 0}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-thumb{background:var(--border)}.history-row{display:flex;align-items:center;gap:10px;padding:5px 16px;border-bottom:1px solid rgba(38,51,82,.5);font-size:.8rem}.history-badge{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700}.history-badge.ok{background:var(--correct-bg);color:var(--correct)}.history-badge.bad{background:var(--wrong-bg);color:var(--wrong)}.history-badge.none{background:var(--surface-2);color:var(--text-dim)}.history-q{flex:1;min-width:0;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.history-q:hover{color:var(--text)}.history-time{flex-shrink:0;color:var(--text-dim);font-size:.72rem;white-space:nowrap}.history-full-link{align-self:center;margin:10px 0 4px}.ai-analysis-link{margin:8px 16px 0;align-self:flex-start}.ai-sessions-scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:4px 0 12px}.ai-sessions-table{width:100%;border-collapse:collapse;font-size:.85rem}.ai-sessions-table thead th{position:sticky;top:0;background:var(--surface-2);text-align:left;padding:8px 16px;font-size:.76rem;font-weight:600;color:var(--text-muted);border-bottom:1px solid rgba(38,51,82,.5)}.ai-session-row td{padding:10px 16px 4px;vertical-align:top}.ai-session-meta{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-muted)}.ai-session-correct{color:var(--correct)}.ai-session-wrong{color:var(--wrong);font-weight:700}.ai-content-row td{padding:0 16px 16px;border-bottom:1px solid rgba(38,51,82,.5)}.ai-analysis-box{padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);font-size:.84rem;line-height:1.55}.ai-analysis-box p{margin:0 0 8px}.ai-analysis-box p:last-child{margin-bottom:0}.ai-wrong-list{padding-top:8px}.ai-wrong-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid rgba(38,51,82,.5);font-size:.82rem}.ai-wrong-q{flex:1;min-width:0;color:var(--text-muted);overflow-wrap:break-word}.audio-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#0d1420;border-top:1px solid var(--border);flex-shrink:0}.audio-label{font-size:1.1rem}.audio-status{flex:1;min-width:0;font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-autonext{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:.78rem;color:var(--accent);white-space:nowrap}.audio-autonext-num{display:inline-block;width:28px;text-align:center;font-variant-numeric:tabular-nums}.audio-autonext button{padding:2px 8px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.72rem}.audio-autonext button:hover{border-color:var(--accent);color:var(--text)}.audio-controls{display:flex;gap:6px}.audio-controls button{width:32px;height:32px;background:var(--surface-2);border:1px solid var(--border);border-radius:50%;color:var(--text);font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.audio-controls button:hover{background:var(--accent);border-color:var(--accent)}.audio-controls button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.audio-controls button.settings-active{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}.audio-settings-panel{background:#0a1020;border-top:1px solid var(--border);padding:10px 16px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.audio-setting-row{display:flex;align-items:center;justify-content:space-between;cursor:default;gap:12px}.setting-label{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text-muted);flex-wrap:wrap;line-height:1.4}.setting-icon{font-size:1rem;flex-shrink:0}.setting-sub{width:100%;padding-left:26px;font-size:.72rem;color:var(--text-dim)}.toggle-btn{padding:3px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:700;min-width:40px;text-align:center;transition:all .15s;cursor:pointer}.toggle-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.speed-btns{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.speed-btn{padding:3px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.75rem;font-weight:700;cursor:pointer;transition:all .12s;min-width:36px;text-align:center}.speed-btn:hover{border-color:var(--accent);color:var(--text)}.speed-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.seconds-field{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:.82rem;color:var(--text-muted)}.seconds-input{width:46px;padding:3px 6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);text-align:center;outline:none}.seconds-input:focus{border-color:var(--accent)}.audio-setting-note{font-size:.72rem;color:var(--text-dim);margin-top:2px;padding-top:6px;border-top:1px solid var(--border)}@media (max-width: 700px){:root{--sidebar-w: min(300px, 82vw)}.sidebar{position:fixed;left:calc(-1 * var(--sidebar-w));top:0;bottom:0;z-index:100;transition:left .25s}.sidebar.open{left:0;box-shadow:4px 0 20px #00000080}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:95}.app-topbar{padding:10px 14px}.q-hint{display:none}.stats-bar{flex-wrap:wrap;row-gap:6px}.stats-bar-left{gap:10px}.stats-table{font-size:.75rem;table-layout:fixed}.stats-table th,.stats-table td{padding:4px 8px}.stats-cat-name,.stats-table th{white-space:normal}.stats-detail-inline{display:none}.stats-mobile-trigger{display:inline-block}.resize-handle{display:none}.stats-panel{height:auto!important}}.exam-random-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.exam-random-title{font-weight:700;margin-bottom:4px}.exam-random-desc{font-size:.8rem;color:var(--text-muted)}.exam-sets-header{font-size:.85rem;color:var(--text-muted);margin-bottom:8px}.exam-sets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;max-height:45vh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-right:4px}.exam-set-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-weight:600}.exam-set-cell:hover{border-color:var(--accent)}.exam-set-score{font-size:.65rem;font-weight:400;color:var(--text-muted)}.exam-set-cell.exam-badge-pass{border-color:var(--correct);background:var(--correct-bg)}.exam-set-cell.exam-badge-fail{border-color:var(--wrong);background:var(--wrong-bg)}.exam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;background:var(--bg);display:flex;align-items:stretch;justify-content:center}.exam-view{width:100%;max-width:920px;display:flex;flex-direction:column;height:100%}.exam-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border)}.exam-header-title{font-weight:700}.exam-timer{font-weight:700;font-size:1.1rem;padding:4px 12px;border-radius:var(--radius-sm);background:var(--surface)}.exam-timer-warn{color:var(--wrong);background:var(--wrong-bg)}.exam-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px 20px}.exam-result-body{display:flex;flex-direction:column;gap:20px}.exam-nav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:6px;margin-bottom:20px}.grid-cell.gc-answered{border-color:var(--accent);color:var(--accent)}.exam-question .q-nav-top{margin-bottom:12px}.exam-question .q-pos{font-weight:600}.exam-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--border)}.exam-progress{color:var(--text-muted);font-size:.85rem}.exam-result-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;margin:0 20px;border-radius:var(--radius);border:1px solid var(--border)}.exam-result-banner.pass{border-color:var(--correct);background:var(--correct-bg)}.exam-result-banner.fail{border-color:var(--wrong);background:var(--wrong-bg)}.exam-result-score{font-size:1.6rem;font-weight:800}.exam-result-verdict{font-weight:700}.exam-result-critical{color:var(--wrong);font-weight:600}.exam-result-row{padding-bottom:16px;border-bottom:1px solid var(--border)}@media (max-width: 480px){.grid-cell{width:28px;height:28px;font-size:.7rem}}
