*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f6f8;--surface:#fff;--surface2:#eef0f4;--border:#dde0e8;--text:#1a1d2e;--muted:#8a8fa8;--accent:#4a63e8;--green:#1a9e6a;--red:#d93b3b;--yellow:#c97a10;--radius:14px;--q-font-size:1.18rem;--q-font-family:"Spectral", "Libre Baskerville", Georgia, serif}[data-theme=dark]{--bg:#0f1117;--surface:#1a1d27;--surface2:#22263a;--border:#2e3250;--text:#e8eaf0;--muted:#7a7f9a;--accent:#5c73f2;--green:#3ecf8e;--red:#f25c5c;--yellow:#f2b55c}body{background:var(--bg);color:var(--text);flex-direction:column;align-items:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background-color .2s,color .2s;display:flex}header{justify-content:space-between;align-items:center;width:100%;max-width:780px;padding:20px 24px 0;display:flex}.logo{color:var(--accent);letter-spacing:.04em;font-size:1rem;font-weight:700}main{flex-direction:column;flex:1;gap:20px;width:100%;max-width:780px;padding:24px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;position:relative}.card-corner-badges{align-items:center;gap:5px;display:flex;position:absolute;bottom:10px;right:14px}.btn-speak{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;transition:color .15s,background .15s;display:flex}.btn-speak:hover{color:var(--accent);background:var(--surface2)}.btn-speak.active{color:var(--accent)}.btn-speak.queued{color:var(--accent);opacity:.55;animation:.8s ease-in-out infinite pulse-queued}@keyframes pulse-queued{0%,to{opacity:.55}50%{opacity:.3}}.seen-badge,.translated-badge{color:var(--muted);opacity:.65;letter-spacing:.04em;font-size:.68rem;font-weight:600}.scenario-block{background:var(--surface2);border-radius:6px;margin-bottom:20px;padding:10px 14px}.scenario-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:.6rem;font-weight:700;display:inline-block}.scenario-text{font-size:calc(var(--q-font-size) * .9);color:var(--text);line-height:1.6;font-family:var(--q-font-family)}.question-text{font-size:var(--q-font-size);color:var(--text);line-height:1.65;font-family:var(--q-font-family)}.question-img{border-radius:10px;max-width:200px;margin:20px auto 0;display:block}.question-img.scenario{max-width:100%}.answer-row{gap:12px;display:flex}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:.95rem;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:flex}.btn:active{transform:scale(.97)}.btn:hover{background:var(--surface2)}.btn-true{background:var(--green);border-color:var(--green);color:#fff}.btn-true:hover{color:#fff;background:#158a5a;border-color:#158a5a}.btn-false{background:var(--red);border-color:var(--red);color:#fff}.btn-false:hover{color:#fff;background:#c03030;border-color:#c03030}.btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}.result-card{border-radius:var(--radius);border:1px solid;padding:24px 28px;position:relative}.result-card.correct{background:#edfaf3;border-color:#a8e6cc}.result-card.incorrect{background:#fdf0f0;border-color:#f0b8b8}.result-badge{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:10px;font-size:.8rem;font-weight:700;display:flex}.result-card.correct .result-badge{color:var(--green)}.result-card.incorrect .result-badge{color:var(--red)}.result-answer{color:var(--muted);margin-bottom:14px;font-size:.85rem}.result-answer b{color:var(--text)}.btn-speak-corner{position:absolute;bottom:10px;right:14px}.explanation-text{font-size:var(--q-font-size);color:var(--text);line-height:1.7;font-family:var(--q-font-family);flex:1}.textbook-ref{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;font-size:.75rem;display:flex}.textbook-ref-sep{color:var(--border)}.book-link{color:var(--accent);text-decoration:none}.book-link:hover{text-decoration:underline}.explanation-img{border-radius:8px;max-width:140px;margin:14px auto 0;display:block}.difficulty-row{gap:12px;display:flex}.btn-hard{background:var(--surface);color:var(--yellow);border-color:#f0d8b0}.btn-hard:hover{border-color:var(--yellow);background:#fdf6ea}.btn-easy{background:var(--surface);color:var(--accent);border-color:#c4cef8}.btn-easy:hover{border-color:var(--accent);background:#eef1fd}.difficulty-hint{color:var(--muted);text-align:center;margin-top:8px;font-size:.72rem}.done-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:60px 32px}.done-card .icon{margin-bottom:16px;font-size:3rem}.done-card h2{margin-bottom:8px;font-size:1.4rem}.done-card p{color:var(--muted);font-size:.9rem;line-height:1.6}.done-card .btn-reset{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:28px;padding:12px 28px;font-size:.9rem;font-weight:600;display:inline-flex}.done-card .btn-reset:hover{opacity:.85}.done-card .btn-reschedule{color:var(--muted);border:1px solid var(--border);background:0 0;padding:10px 24px;font-size:.82rem}.done-card .btn-reschedule:hover{background:var(--surface2);color:var(--text)}kbd{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:5px;padding:1px 6px;font-family:monospace;font-size:.72rem;display:inline-block}.kbd-hint{color:var(--muted);text-align:center;margin-top:8px;font-size:.72rem}.btn-weak{cursor:pointer;color:var(--red);background:#fdf0f0;border:1px solid #f0b8b8;border-radius:8px;padding:4px 10px;font-size:.78rem;font-weight:600;transition:border-color .15s,background .15s}.btn-weak:hover,.btn-weak.active{border-color:var(--red);background:#f5d0d0}[data-theme=dark] .btn-weak{background:#2e0f0f;border-color:#5c1e1e}[data-theme=dark] .btn-weak:hover,[data-theme=dark] .btn-weak.active{background:#3a1414}.weak-panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.weak-panel-header h2{font-size:1.05rem;font-weight:700}.weak-list{flex-direction:column;gap:8px;display:flex}.weak-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 16px;transition:background .15s;display:flex}.weak-item:hover{background:var(--surface2)}.weak-badge{color:var(--red);background:#fdf0f0;border:1px solid #f0b8b8;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:.72rem;font-weight:700}[data-theme=dark] .weak-badge{background:#2e0f0f;border-color:#5c1e1e}.weak-item-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.88rem;overflow:hidden}.weak-due{color:var(--muted);text-align:right;flex-shrink:0;min-width:72px;font-size:.72rem}.btn-study-weak{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;margin-bottom:16px;padding:13px 20px;font-size:.92rem;font-weight:600}.btn-study-weak:hover{opacity:.85}.btn-close{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-size:.9rem;line-height:1}.btn-close:hover{background:var(--surface2);color:var(--text)}.lang-toggle{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.lang-toggle button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:4px 9px;font-size:.75rem;font-weight:600;line-height:1;transition:background .15s,color .15s}.lang-toggle button.active{background:var(--accent);color:#fff}.lang-toggle button:not(.active):hover{background:var(--surface2);color:var(--text)}.filter-bar{flex-wrap:wrap;align-items:center;gap:6px;width:100%;max-width:780px;padding:8px 24px 0;display:flex}.filter-chip{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:0 0;border-radius:16px;padding:3px 12px;font-size:.75rem;font-weight:600;line-height:1.4;transition:background .15s,color .15s,border-color .15s}.filter-chip:hover{background:var(--surface2);color:var(--text)}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-chip-ai{color:#c97a10;border-color:#c97a10}.filter-chip-ai:hover{color:#c97a10;background:#fdf6ea}.filter-chip-ai.active{color:#fff;background:#c97a10;border-color:#c97a10}[data-theme=dark] .filter-chip-ai{color:#f2b55c;border-color:#f2b55c}[data-theme=dark] .filter-chip-ai:hover{color:#f2b55c;background:#2e1e08}[data-theme=dark] .filter-chip-ai.active{color:#fff;background:#c97a10;border-color:#c97a10}.filter-sep{background:var(--border);flex-shrink:0;width:1px;height:16px}.theme-toggle,.btn-settings{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:0 0;border-radius:8px;padding:4px 8px;font-size:.9rem;line-height:1;transition:border-color .15s,background .15s}.theme-toggle:hover,.btn-settings:hover{background:var(--surface2);border-color:var(--muted)}.btn-settings.active{background:var(--surface2);border-color:var(--muted);color:var(--text)}.settings-panel-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.settings-panel-header h2{font-size:1.05rem;font-weight:700}.settings-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;font-size:.9rem;display:flex}.settings-row:last-child{border-bottom:none}.settings-row span{color:var(--muted)}[data-theme=dark] .btn-true:hover{background:#158a5a}[data-theme=dark] .btn-false:hover{background:#c03030}[data-theme=dark] .result-card.correct{background:#0d2e1f;border-color:#1e5c3a}[data-theme=dark] .result-card.incorrect{background:#2e0f0f;border-color:#5c1e1e}[data-theme=dark] .btn-hard{border-color:#4a3010}[data-theme=dark] .btn-hard:hover{background:#2e1e08}[data-theme=dark] .btn-easy{border-color:#1e2a5c}[data-theme=dark] .btn-easy:hover{background:#0d1530}.btn-stats{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:0 0;border-radius:8px;padding:4px 10px;font-size:.78rem;font-weight:600;transition:border-color .15s,background .15s}.btn-stats:hover,.btn-stats.active{background:var(--surface2);border-color:var(--muted);color:var(--text)}.stats-panel-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.stats-panel-header h2{font-size:1.05rem;font-weight:700}.stats-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:20px 24px}.stats-block h3{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;font-size:.68rem;font-weight:700}.stat-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:7px 0;font-size:.9rem;display:flex}.stat-row:last-child{border-bottom:none}.stat-row span{color:var(--muted)}.day-chart{align-items:flex-end;gap:6px;padding-top:4px;display:flex}.day-col{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.day-bar-wrap{align-items:flex-end;width:100%;height:56px;display:flex}.day-bar{background:var(--accent);opacity:.6;border-radius:4px 4px 0 0;width:100%;min-height:0}.day-bar.today{opacity:1}.day-col-label{color:var(--muted);font-size:.62rem}.day-col-count{color:var(--text);min-height:.8em;font-size:.62rem;font-weight:700}[x-cloak]{display:none!important}.fade-enter{opacity:0;transform:translateY(8px)}.fade-enter-active{transition:opacity .25s,transform .25s}.action-area{padding-top:16px;padding-bottom:4px}.session-bar{border-top:1px solid var(--border);width:100%;max-width:780px;margin-top:8px;padding:12px 24px 24px}.session-bar-inner{color:var(--muted);flex-direction:column;gap:8px;font-size:.78rem;display:flex}.session-val{color:var(--text);font-weight:700}.session-sep{color:var(--border);-webkit-user-select:none;user-select:none}.btn-data{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:8px;flex:1;padding:10px 16px;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s}.btn-data:hover{background:var(--surface2);border-color:var(--muted)}@media (width<=480px){header,.filter-bar,main{padding-left:14px;padding-right:14px}.card{padding:20px 16px}.session-bar{padding-left:14px;padding-right:14px}.kbd-hint{visibility:hidden}}
