:root{--text:#4a4640;--text-h:#1a1815;--bg:#faf9f7;--border:#e2dfda;--code-bg:#f2f0ec;--accent:#b44d1e;--accent-bg:#b44d1e12;--accent-border:#b44d1e59;--card-bg:#fff;--hover-bg:#00000008;--muted:#8a857d;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#a8a49d;--text-h:#edebe8;--bg:#121110;--border:#2a2825;--code-bg:#1a1917;--accent:#e0793e;--accent-bg:#e0793e1a;--accent-border:#e0793e59;--card-bg:#1a1917;--hover-bg:#ffffff0a;--muted:#6e6a63}}#root{box-sizing:border-box;flex-direction:column;max-width:100%;min-height:100svh;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:1.5rem}h2{margin:0 0 .5rem;font-size:1.125rem;line-height:1.4}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:180px;padding:1.5rem 0;display:flex}.sidebar-brand{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 1.25rem 1.5rem;font-size:.8125rem;font-weight:600}.sidebar-nav{flex:1;margin:0;padding:0;list-style:none}.sidebar-nav li a{color:var(--text);border-left:2px solid #0000;margin-bottom:.125rem;padding:.5rem 1.25rem;font-size:.9375rem;text-decoration:none;transition:color .15s;display:block}.sidebar-nav li a:hover{color:var(--text-h)}.sidebar-nav li a.active{color:var(--accent);border-left-color:var(--accent);font-weight:600}.sidebar-logout{color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;margin:0 1.25rem;padding:.375rem 0;font-size:.8125rem}.sidebar-logout:hover{color:var(--accent)}.main-content{background:var(--bg);flex:1;padding:2rem 2.5rem;overflow-y:auto}@media (width<=768px){.app-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;width:100%;padding:.5rem .75rem}.sidebar-brand{border-bottom:none;padding:0 .75rem 0 0}.sidebar-nav{flex:1;gap:0;padding:0;display:flex}.sidebar-nav li a{border-bottom:2px solid #0000;border-left:none;margin-bottom:0;padding:.5rem .75rem;font-size:.8125rem}.sidebar-nav li a.active{border-bottom-color:var(--accent)}.sidebar-logout{margin:0 0 0 .5rem;padding:.375rem .75rem}.main-content{padding:1rem}}.single-home{--home-bg:#f5f1ea;--home-bg-soft:#ffffff9e;--home-panel:#fcfaf6;--home-line:#ded5ca;--home-text:#2f2923;--home-muted:#73695d;--home-accent:#b44d1e;--home-accent-soft:#b44d1e1a;--home-shadow:0 24px 60px #3b2c1f14;--home-radius:16px;min-height:100vh;color:var(--home-text);background:radial-gradient(circle at top left, #b44d1e14, transparent 34%), linear-gradient(180deg, #f7f3ec 0%, var(--home-bg) 100%);line-height:1.6}@media (prefers-color-scheme:dark){.single-home{--home-bg:#181513;--home-bg-soft:#1f1c19d1;--home-panel:#221d19;--home-line:#3a3028;--home-text:#e9e0d4;--home-muted:#b0a18f;--home-accent:#e0793e;--home-accent-soft:#e0793e24;--home-shadow:0 24px 60px #0000004d}}.single-home *,.single-home :before,.single-home :after{box-sizing:border-box}.single-home a{color:inherit;text-decoration:none}.single-home__page{width:min(1080px,100% - 2rem);margin:0 auto;padding:1.25rem 0 4rem}.single-home__topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#fcfaf6cc;border:1px solid #ded5cacc;border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex;position:sticky;top:1rem}.single-home__auth-actions{align-items:center;gap:.65rem;display:inline-flex}.single-home__brand{letter-spacing:.03em;align-items:center;gap:.75rem;font-weight:700;display:inline-flex}.single-home__brand-mark{background:var(--home-accent-soft);width:2rem;height:2rem;color:var(--home-accent);border-radius:999px;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.single-home__hero{grid-template-columns:minmax(0,1.3fr) minmax(320px,.85fr);align-items:stretch;gap:1.25rem;padding:3.5rem 0 2rem;display:grid}.single-home__hero-copy,.single-home__hero-panel,.single-home__card,.single-home__cta{border-radius:var(--home-radius);background:var(--home-bg-soft);box-shadow:var(--home-shadow);border:1px solid #ded5caeb}.single-home__hero-copy{padding:2rem}.single-home__eyebrow{color:var(--home-muted);background:#ffffffb8;border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.35rem .7rem;font-size:.8rem;display:inline-flex}.single-home h1,.single-home h2{letter-spacing:-.02em;font-family:Iowan Old Style,Palatino Linotype,Noto Serif SC,serif}.single-home h1{color:#1f1914;margin:0 0 1rem;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.06}.single-home h2{color:#1f1914;margin:0;font-size:1.8rem}.single-home__hero-copy p{max-width:34rem;color:var(--home-muted);margin-bottom:1.5rem;font-size:1rem}.single-home__hero-notes{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.single-home__note{background:#ffffffb3;border:1px solid #ded5cae6;border-radius:14px;padding:.95rem 1rem}.single-home__note strong{color:#201b17;margin-bottom:.25rem;font-size:1rem;display:block}.single-home__note span{color:var(--home-muted);font-size:.82rem}.single-home__hero-panel{background:linear-gradient(180deg, #fffc, #f8f3ecf2), var(--home-panel);flex-direction:column;justify-content:space-between;gap:1rem;padding:1.4rem;display:flex}.single-home__panel-label{color:var(--home-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.single-home__panel-title{color:#1f1914;margin-top:.4rem;font-size:1.3rem;font-weight:700}.single-home__panel-list{gap:.7rem;margin-top:1rem;display:grid}.single-home__panel-item{border:1px solid var(--home-line);background:#ffffffbf;border-radius:12px;padding:.85rem .95rem}.single-home__panel-item strong{margin-bottom:.2rem;font-size:.95rem;display:block}.single-home__panel-item span{color:var(--home-muted);font-size:.85rem}.single-home__sections{gap:1rem;margin-top:1rem;display:grid}.single-home__card{padding:1.5rem}.single-home__section-head{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.1rem;display:flex}.single-home__section-subtitle{color:var(--home-muted);max-width:30rem;font-size:.92rem}.single-home__feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.single-home__feature{border:1px solid var(--home-line);background:#ffffffb8;border-radius:14px;padding:1rem}.single-home__feature small{color:var(--home-accent);letter-spacing:.08em;margin-bottom:.55rem;font-weight:700;display:inline-block}.single-home__feature strong{margin-bottom:.35rem;font-size:1rem;display:block}.single-home__feature p{color:var(--home-muted);margin:0;font-size:.9rem}.single-home__steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.single-home__step{border-top:2px solid var(--home-accent);background:#ffffffad;border-radius:12px;padding:1rem}.single-home__step-index{color:var(--home-accent);letter-spacing:.08em;margin-bottom:.35rem;font-size:.76rem;font-weight:700}.single-home__step strong{margin-bottom:.35rem;font-size:.98rem;display:block}.single-home__step p{color:var(--home-muted);margin:0;font-size:.88rem}.single-home__cta{justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1.4rem 1.5rem;display:flex}.single-home__cta strong{margin-bottom:.2rem;font-size:1.05rem;display:block}.single-home__cta span{color:var(--home-muted);font-size:.9rem}.single-home__button{border:1px solid var(--home-line);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;min-height:2.9rem;padding:0 1.05rem;font-size:.94rem;font-weight:600;transition:background-color .18s,color .18s,border-color .18s;display:inline-flex}.single-home__button--primary{background:var(--home-accent);border-color:var(--home-accent);color:#fff}.single-home__button--primary:hover{background:#9f4319;border-color:#9f4319}.single-home__button--secondary{color:var(--home-text);background:#ffffffb3}.single-home__button--secondary:hover{background:#fff}.single-home__footer{text-align:center;color:#877b6f;margin-top:1.5rem;padding:.75rem 0 .25rem;font-size:.82rem}.single-home__footer-line+.single-home__footer-line{margin-top:.25rem}.single-home__footer a{color:inherit}@media (width<=900px){.single-home__hero,.single-home__feature-grid,.single-home__steps{grid-template-columns:1fr}.single-home__cta,.single-home__section-head{flex-direction:column;align-items:flex-start}}@media (width<=640px){.single-home__page{width:min(100% - 1rem,1080px);padding-top:.75rem}.single-home__topbar{border-radius:20px;flex-wrap:wrap;align-items:center}.single-home__hero-copy,.single-home__hero-panel,.single-home__card,.single-home__cta{padding:1.2rem}.single-home__hero-notes{grid-template-columns:1fr}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-form{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1rem;width:100%;max-width:340px;padding:2rem;display:flex}.login-form h1{text-align:center;margin:0 0 .25rem;font-size:1.25rem}.login-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:.625rem .875rem;font-size:.9375rem}.login-code-row{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;display:grid}.login-code-row input{min-width:0}.login-code-button{border:1px solid var(--border);background:var(--card-bg);color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:6px;padding:.625rem .875rem;font-size:.875rem}.login-code-button:disabled{opacity:.6;cursor:not-allowed}.login-form input:focus{border-color:var(--accent);outline:none}.login-form button[type=submit]{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.625rem;font-size:.9375rem;font-weight:600}.login-form button[type=submit]:disabled{opacity:.6}.login-error{color:#b91c1c;text-align:center;margin:0;font-size:.875rem}.login-switch{text-align:center;color:var(--muted);font-size:.8125rem}.login-switch button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.8125rem;text-decoration:underline}.packages-page h1{margin:0 0 1.5rem}.packages-page .back-link{color:var(--accent);margin-bottom:1rem;font-size:.875rem;text-decoration:none;display:inline-block}.packages-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.packages-subtitle{color:var(--muted);margin:0;font-size:.875rem}.current-package-panel{border:1px solid var(--border);background:var(--card-bg);border-radius:6px;margin-bottom:1.5rem;padding:1rem}.current-package-label{color:var(--muted);margin-bottom:.5rem;font-size:.75rem}.current-package-content{justify-content:space-between;align-items:center;gap:1rem;display:flex}.current-package-name{color:var(--text-h);font-size:1rem;font-weight:600}.current-package-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);flex-wrap:wrap;gap:.75rem;margin-top:.375rem;display:flex}.current-package-actions{gap:.5rem;display:flex}.upload-form-panel{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.upload-field{color:var(--muted);flex-direction:column;gap:.375rem;font-size:.75rem;display:flex}.upload-field input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:.5rem 1rem}.upload-field input:focus{border-color:var(--accent);outline:none}.file-picker input{padding:.45rem .75rem}.upload-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.preview-card{border:1px solid var(--border);background:var(--card-bg);border-radius:6px;margin-bottom:1rem;padding:1rem}.preview-card h2{margin:0 0 .875rem;font-size:.9375rem}.preview-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.preview-stats div{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.preview-stats strong{color:var(--text-h);font-size:1.25rem}.preview-stats span{color:var(--muted);font-size:.75rem}.preview-file-list{border:1px solid var(--border);background:var(--border);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.preview-file-list.compact{margin-top:.75rem}.preview-file-item{background:var(--card-bg);justify-content:space-between;gap:1rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.preview-file-name{align-items:center;gap:.5rem;display:inline-flex}.preview-file-badge{height:1.25rem;color:var(--accent);background:#b44d1e14;border:1px solid #b44d1e38;border-radius:999px;align-items:center;padding:0 .5rem;font-size:.6875rem;line-height:1;display:inline-flex}.audio-preview{width:100%}.preview-block+.preview-block{margin-top:1rem}.preview-block-header{justify-content:space-between;gap:1rem;margin-bottom:.5rem;font-size:.8125rem;display:flex}.preview-lines{flex-direction:column;gap:.5rem;display:flex}.preview-line{gap:.75rem;font-size:.8125rem;line-height:1.5;display:flex}.preview-time{min-width:110px;color:var(--muted);font-family:var(--mono)}.timestamp-chip-list{flex-wrap:wrap;gap:.5rem;display:flex}.timestamp-chip{border:1px solid var(--border);color:var(--text);background:var(--bg);border-radius:999px;padding:.25rem .625rem;font-size:.75rem}.course-preview-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.course-preview-panel{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:.875rem}.course-preview-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.preview-sentence-stack{flex-direction:column;gap:.75rem;display:flex}.preview-sentence-card{border:1px solid var(--border);background:var(--card-bg);border-radius:6px;padding:.875rem}.preview-sentence-card.active{border-color:var(--accent-border);background:#b44d1e0d}.preview-sentence-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.preview-sentence-cta{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:999px;padding:.25rem .625rem;font-size:.75rem}.preview-sentence-cta:hover{border-color:var(--accent);color:var(--accent)}.preview-sentence-list{border:1px solid var(--border);background:var(--border);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.preview-sentence-row{background:var(--card-bg);color:var(--text);text-align:left;cursor:pointer;border:0;grid-template-columns:126px minmax(0,1fr);gap:.75rem;padding:.75rem .875rem;display:grid}.preview-sentence-row.active{background:#b44d1e14}.preview-sentence-time{color:var(--muted);font-size:.75rem;font-family:var(--mono)}.preview-sentence-text{color:var(--text-h);line-height:1.5}.preview-word-grid{flex-wrap:wrap;gap:.5rem;display:flex}.preview-word-chip{border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .75rem;display:inline-flex}.preview-word-chip.active{border-color:var(--accent-border);color:var(--accent);background:#b44d1e14}.preview-word-time{color:var(--muted);font-size:.6875rem;font-family:var(--mono)}.sentence-track{margin-top:.625rem}.sentence-track.disabled{opacity:.7}.sentence-track-surface{border:1px solid var(--border);background:var(--bg);border-radius:6px;min-height:72px;position:relative;overflow:hidden}.sentence-track-surface[role=button]{cursor:pointer}.sentence-track-wave{grid-template-columns:repeat(64,minmax(0,1fr));align-items:end;gap:1px;padding:.5rem .5rem 2rem;display:grid;position:absolute;inset:0}.sentence-track-bar{background:linear-gradient(#b44d1e6b,#b44d1e29);border-radius:2px 2px 0 0;align-self:end;width:100%;display:block}.sentence-track-playhead{background:var(--accent);pointer-events:none;width:2px;position:absolute;top:.375rem;bottom:.375rem;box-shadow:0 0 0 1px #ffffff59}.sentence-track-words{height:1.85rem;padding:0 .375rem .375rem;position:absolute;inset:auto 0 0}.sentence-track-word{background:var(--card-bg);height:1.2rem;color:var(--text);white-space:nowrap;text-overflow:ellipsis;border:1px solid #b44d1e47;border-radius:999px;justify-content:center;align-items:center;padding:0 .25rem;font-size:.6875rem;line-height:1;display:inline-flex;position:absolute;bottom:.375rem;overflow:hidden}.sentence-track-word.active{border-color:var(--accent-border);color:var(--accent);background:#b44d1e24}.sentence-track-word:disabled{cursor:default}.sentence-track-meta{color:var(--muted);font-size:.6875rem;font-family:var(--mono);justify-content:space-between;gap:.75rem;margin-top:.375rem;display:flex}.warning-list{flex-direction:column;gap:.5rem;display:flex}.warning-item{color:#92400e;background:#b44d1e0f;border:1px solid #b44d1e3d;border-radius:6px;padding:.75rem .875rem;font-size:.8125rem}.upload-actions{justify-content:flex-end;margin-top:1rem;display:flex}.package-grid{border:1px solid var(--border);background:var(--border);border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;display:grid;overflow:hidden}.package-card{background:var(--card-bg);color:inherit;flex-direction:column;gap:.75rem;padding:1rem;transition:background .15s;display:flex}.package-card:hover{background:var(--hover-bg)}.package-card.selected{outline:1px solid var(--accent);outline-offset:-1px}.package-card-header{justify-content:space-between;align-items:flex-start;display:flex}.package-name{color:var(--text-h);font-size:.9375rem;font-weight:500}.package-status{letter-spacing:.02em;border-radius:4px;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.package-status.ready{color:var(--accent);border:1px solid var(--accent-border)}.package-status.processing{color:var(--muted);border:1px solid var(--border)}.package-status.failed{color:#b44d1e;border:1px solid #b44d1e59}.package-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);gap:1rem;display:flex}.package-caps,.package-card-actions{flex-wrap:wrap;gap:.5rem;display:flex}.cap-tag{border:1px solid var(--border);color:var(--muted);border-radius:3px;padding:.0625rem .375rem;font-size:.6875rem}.cap-tag.active{border-color:var(--accent-border);color:var(--accent)}.package-detail h1{margin:0 0 .5rem}.package-detail .back-link{color:var(--accent);margin-bottom:1rem;font-size:.875rem;text-decoration:none;display:inline-block}.detail-stats{border-bottom:1px solid var(--border);gap:2rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}.detail-stat{flex-direction:column;display:flex}.detail-stat .stat-count{color:var(--text-h);font-size:1.75rem;font-weight:700;font-family:var(--mono);line-height:1}.detail-stat .stat-label{color:var(--muted);margin-top:.25rem;font-size:.75rem}.detail-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.btn-action{border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;padding:.5rem 1rem;font-size:.8125rem;text-decoration:none;transition:border-color .15s;display:inline-flex}.btn-action:hover{border-color:var(--accent);color:var(--accent)}.btn-action.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-action.primary:hover{opacity:.9}.btn-action.danger{color:#b44d1e;border-color:#b44d1e59}.btn-action:disabled{opacity:.4;cursor:default}.detail-section{margin-bottom:2rem}.detail-section h2{margin:0 0 .75rem;font-size:1rem}.unit-list{border:1px solid var(--border);background:var(--border);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.unit-item{background:var(--card-bg);align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.875rem;display:flex}.detail-unit-item{flex-direction:column;align-items:stretch}.detail-unit-item.active{background:#b44d1e14}.detail-unit-main{align-items:center;gap:.75rem;display:flex}.detail-preview-trigger{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:0}.detail-preview-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.detail-unit-words{flex-wrap:wrap;gap:.375rem;padding-left:2.75rem;display:flex}.detail-unit-words-empty{color:var(--muted);padding-left:2.75rem;font-size:.75rem}.detail-word-chip{cursor:pointer}.detail-word-chip.active{border-color:var(--accent-border);color:var(--accent);background:#b44d1e14}.unit-idx{font-family:var(--mono);color:var(--muted);min-width:2rem;font-size:.75rem}.unit-text{color:var(--text-h);flex:1}.unit-time{font-family:var(--mono);color:var(--muted);font-size:.6875rem}.empty-state{text-align:center;color:var(--muted);padding:3rem 1rem}.empty-state.compact{padding:1rem .5rem}@media (width<=640px){.packages-header,.current-package-content{flex-direction:column;align-items:stretch}.package-jump-bar,.upload-form-panel,.upload-preview-grid,.preview-stats,.course-preview-layout{grid-template-columns:1fr}.preview-sentence-head,.sentence-track-meta{flex-direction:column;align-items:flex-start}.detail-stats{flex-wrap:wrap;gap:1rem}.preview-sentence-row{grid-template-columns:1fr}.detail-actions,.package-card-actions,.current-package-actions,.upload-actions{flex-direction:column}.sentence-track-wave{padding-bottom:2.25rem}.sentence-track-words{height:2.2rem}}.waveform-player{margin-bottom:1.25rem}.waveform-container-shell{margin-bottom:.75rem;position:relative}.waveform-container{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow:hidden}.waveform-sentence-map{pointer-events:none;height:.625rem;position:absolute;inset:auto .875rem .875rem}.wf-sentence-marker{cursor:pointer;pointer-events:auto;opacity:.92;border:0;border-radius:999px;position:absolute;top:0;bottom:0}.wf-sentence-idle{background:#00000024}.wf-sentence-heard{background:#b44d1e61}.wf-sentence-active{background:var(--accent);box-shadow:0 0 0 1px #ffffff80}.wf-sentence-done{background:#1a6b1ab3}.wf-sentence-locked{background:repeating-linear-gradient(135deg,#0000001a,#0000001a 4px,#0000000a 4px 8px)}.word-timeline{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;place-content:flex-start center;gap:.375rem;min-height:4.75rem;max-height:6.25rem;margin-bottom:.75rem;padding:.75rem 1rem;display:flex;overflow:auto}.wt-word{cursor:pointer;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:.25rem .625rem;font-size:.875rem;font-weight:500;transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out;display:inline-block}.wt-word:hover{border-color:var(--accent);color:var(--accent)}.wt-word.wt-active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.wt-word.wt-tapped{color:var(--accent);border-color:var(--accent);background:0 0;border-width:1.5px}.wf-subtitle-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.75rem;height:15rem;padding:.875rem .875rem 0;display:flex;overflow:hidden}.wf-subtitle-head{color:var(--muted);font-size:.75rem;font-family:var(--mono);justify-content:space-between;gap:.75rem;padding:0 .25rem;display:flex}.wf-subtitle-scroller{scroll-behavior:smooth;flex-direction:column;gap:.375rem;padding:0 .125rem .875rem;display:flex;overflow:auto}.wf-subtitle-row{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:.875rem;padding:.75rem;transition:border-color .16s ease-out,background .16s ease-out,color .16s ease-out,transform .16s ease-out;display:grid}.wf-subtitle-row:hover{border-color:var(--border);background:var(--bg)}.wf-subtitle-row-current{background:#b44d1e14;border-color:#b44d1e47;transform:translateY(-1px)}.wf-subtitle-row-past{opacity:.72}.wf-subtitle-panel-idle .wf-subtitle-row{opacity:.62}.wf-subtitle-row-time{color:var(--muted);font-family:var(--mono);font-size:.75rem;line-height:1.7}.wf-subtitle-row-text{min-width:0;color:var(--text-h);font-size:.96rem;line-height:1.7}.wf-word{cursor:pointer;border-radius:4px;margin:0 .0625rem;padding:.125rem .25rem;font-weight:500;transition:all .15s ease-out;display:inline-block;position:relative}.wf-word:hover{background:var(--accent-bg)}.wf-word-active{background:var(--accent);border-radius:4px;font-weight:700;color:#fff!important}.wf-word-tapped{color:var(--accent);border-bottom:2px solid var(--accent)}@media (prefers-color-scheme:dark){.wf-sentence-idle{background:#ffffff29}.wf-sentence-heard{background:#e0793e70}.wf-sentence-done{background:#5ec85eb8}.wf-sentence-locked{background:repeating-linear-gradient(135deg,#ffffff24,#ffffff24 4px,#ffffff0d 4px 8px)}}.lesson-list-page h1{margin:0 0 1rem}.search-input{border:1px solid var(--border);background:var(--bg);width:100%;max-width:400px;color:var(--text);border-radius:6px;margin-bottom:1.25rem;padding:.625rem 1rem;font-size:.9375rem}.search-input:focus{border-color:var(--accent);outline:none}.lesson-grid{border:1px solid var(--border);background:var(--border);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.lesson-card{background:var(--card-bg);cursor:pointer;align-items:center;gap:.75rem;padding:.625rem 1rem;transition:background .15s;display:flex}.lesson-card:hover{background:var(--hover-bg)}.lesson-id{color:var(--muted);min-width:44px;font-size:.75rem;font-family:var(--mono)}.lesson-title{flex:1;font-size:.9375rem;font-weight:500}.lesson-tags{gap:.5rem;display:flex}.tag{color:var(--muted);letter-spacing:.02em;font-size:.6875rem}.tag:before{content:"·";color:var(--border);margin-right:.25rem}.loading{text-align:center;color:var(--muted);padding:4rem}.error-msg{text-align:center;color:#b91c1c;padding:4rem}.empty{text-align:center;color:var(--muted);padding:2rem}.player-page{max-width:800px}.listening-player-shell{z-index:5;flex-direction:column;gap:1rem;margin-bottom:1.25rem;display:flex;position:sticky;top:1rem}.player-page h1{margin:0 0 1.5rem;font-size:1.25rem}.player-page .back-link{color:var(--accent);margin-bottom:1rem;font-size:.875rem;text-decoration:none;display:inline-block}.practice-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);flex-wrap:wrap;gap:.75rem;margin:-.75rem 0 1rem;display:flex}.subtitle-scroller-panel{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;overflow:hidden}.subtitle-scroller-head{border-bottom:1px solid var(--border);color:var(--muted);font-size:.75rem;font-family:var(--mono);justify-content:space-between;gap:.75rem;padding:.75rem .875rem;display:flex}.subtitle-scroller-viewport{scroll-behavior:smooth;height:15rem;overflow-y:auto}.subtitle-scroller-list{background:var(--border);flex-direction:column;gap:1px;display:flex}.subtitle-scroller-row{background:var(--card-bg);color:inherit;text-align:left;cursor:pointer;border:0;grid-template-columns:2.25rem minmax(0,1fr) 4.25rem;align-items:start;gap:.75rem;padding:.875rem 1rem;transition:background .18s,color .18s;display:grid}.subtitle-scroller-row.past{color:var(--muted)}.subtitle-scroller-row.active{background:#b44d1e14}.subtitle-scroller-row.upcoming .subtitle-scroller-text,.subtitle-scroller-row.upcoming .subtitle-scroller-translation{filter:blur(.28rem);opacity:.5}.subtitle-scroller-row.active .subtitle-scroller-text,.subtitle-scroller-row.active .subtitle-scroller-translation,.subtitle-scroller-row.past .subtitle-scroller-text,.subtitle-scroller-row.past .subtitle-scroller-translation{filter:none;opacity:1}.subtitle-scroller-row:hover{background:var(--hover-bg)}.subtitle-scroller-index{color:var(--muted);font-size:.75rem;font-family:var(--mono)}.subtitle-scroller-copy{flex-direction:column;gap:.2rem;display:flex}.subtitle-scroller-text{color:var(--text-h);line-height:1.55}.subtitle-scroller-translation{color:var(--muted);font-size:.8125rem;line-height:1.45}.subtitle-scroller-time{color:var(--muted);font-size:.6875rem;font-family:var(--mono);text-align:right}.subtitle-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:120px;margin-bottom:1.25rem;padding:1.5rem;display:flex}.subtitle-prev,.subtitle-next{color:var(--muted);cursor:pointer;font-size:.875rem;transition:color .15s}.subtitle-prev:hover,.subtitle-next:hover{color:var(--text)}.subtitle-current{font-size:1.125rem;font-weight:600;line-height:1.8}.subtitle-current .word{cursor:pointer;border-radius:4px;padding:.125rem;transition:background .1s;display:inline}.subtitle-current .word:hover{background:var(--accent-bg)}.subtitle-current .word.active{background:var(--accent-bg);color:var(--accent)}.audio-controls{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.listening-control-dock{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;margin-bottom:0;padding:1rem}.listening-control-buttons{flex-wrap:wrap}.sentence-action-bar{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding:1rem;display:flex}.sentence-action-label{color:var(--muted);margin-bottom:.25rem;font-size:.75rem}.sentence-action-text{color:var(--text-h);font-size:.9375rem}.sentence-action-translation{color:var(--muted);margin-top:.375rem;font-size:.875rem;line-height:1.5}.sentence-action-buttons{gap:.5rem;display:flex}.success-msg{color:#1a6b1a;background:#1a6b1a0f;border:1px solid #1a6b1a33;border-radius:6px;margin-bottom:1rem;padding:.75rem .875rem;font-size:.8125rem}.error-inline{color:#b91c1c;margin-bottom:1rem;font-size:.8125rem}.practice-list{border:1px solid var(--border);background:var(--border);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.practice-row{background:var(--card-bg);width:100%;color:inherit;text-align:left;cursor:pointer;border:none;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.practice-row.active{background:var(--hover-bg)}.practice-row-index{min-width:2rem;color:var(--muted);font-family:var(--mono);font-size:.75rem}.practice-row-text{color:var(--text-h);font-size:.875rem}.practice-row-copy{flex-direction:column;flex:1;gap:.2rem;display:flex}.practice-row-translation{color:var(--muted);font-size:.75rem;line-height:1.4}.practice-row-time{color:var(--muted);font-family:var(--mono);font-size:.6875rem}.progress-bar-container{align-items:center;gap:.5rem;display:flex}.progress-bar-container input[type=range]{accent-color:var(--accent);flex:1}.time-label{color:var(--muted);text-align:center;min-width:45px;font-size:.75rem;font-family:var(--mono)}.control-buttons{justify-content:center;align-items:center;gap:.5rem;display:flex}.ctrl-btn{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:.375rem .875rem;font-size:.8125rem;transition:color .15s,border-color .15s;display:flex}.ctrl-btn:hover{color:var(--text-h);border-color:var(--text-h)}.ctrl-btn.play-btn{background:var(--accent);color:#fff;border-color:var(--accent);padding:.375rem 1.25rem;font-weight:600}.ctrl-btn.play-btn:hover{opacity:.9}.speed-selector{border:1px solid var(--border);border-radius:6px;justify-content:center;gap:0;width:fit-content;margin:0 auto;display:flex;overflow:hidden}.speed-btn{border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;padding:.25rem .75rem;font-size:.8125rem;transition:background .15s,color .15s}.speed-btn:last-child{border-right:none}.speed-btn:hover{background:var(--hover-bg)}.speed-btn.active{background:var(--accent);color:#fff}.word-flow-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.word-flow-panel h3{color:var(--muted);margin:0 0 .75rem;font-size:.875rem}.word-chips{flex-wrap:wrap;gap:.375rem;display:flex}.word-chip{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:.25rem .625rem;font-size:.8125rem;transition:all .15s}.word-chip:hover{border-color:var(--accent);color:var(--accent)}.word-chip.current{background:var(--accent);color:#fff;border-color:var(--accent)}@media (width<=720px){.listening-player-shell{position:static}.subtitle-scroller-row{grid-template-columns:1.75rem minmax(0,1fr)}.subtitle-scroller-time{display:none}.sentence-action-bar{flex-direction:column}}.dictation-page{max-width:1180px}.dictation-page h1{margin:0 0 1.5rem;font-size:1.25rem}.dictation-page .back-link{color:var(--accent);margin-bottom:1rem;font-size:.875rem;text-decoration:none;display:inline-block}.empty-state-panel{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;flex-direction:column;align-items:flex-start;gap:1rem;padding:1.5rem;display:flex}.package-jump-bar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;margin-bottom:1rem;display:grid}.package-jump-current{border:1px solid var(--border);background:var(--card-bg);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;min-height:100%;padding:.85rem 1rem;display:flex}.package-jump-current span{color:var(--muted);font-size:.75rem}.package-jump-current strong{color:var(--text-h);font-size:.9375rem}.dict-progress{margin-bottom:1.25rem}.dict-progress span{color:var(--muted);font-size:.8125rem;font-family:var(--mono)}.dict-progress-bar{background:var(--border);border-radius:2px;height:3px;margin-top:.5rem;overflow:hidden}.dict-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.dict-controls{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;margin-bottom:1.5rem;padding:1rem}.dict-controls .control-buttons{flex-wrap:wrap}.dictation-layout{grid-template-columns:minmax(0,1.7fr) minmax(300px,.95fr);align-items:start;gap:1rem;display:grid}.dictation-main{flex-direction:column;gap:1rem;display:flex}.dict-summary-panel{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.dict-summary-card{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;flex-direction:column;gap:.35rem;padding:.9rem 1rem;display:flex}.dict-summary-card span{color:var(--muted);font-size:.75rem}.dict-summary-card strong{color:var(--text-h);font-size:1.55rem;font-family:var(--mono)}.dict-summary-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);flex-wrap:wrap;gap:.75rem;display:flex}.dict-area{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.dict-hint-card{border:1px solid var(--border);background:var(--bg);border-radius:8px;margin-bottom:1rem;padding:1rem 1.125rem}.dict-hint-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem;font-size:.75rem}.dict-hint{min-height:4.75rem;font-family:var(--mono);text-align:center;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.35rem;font-size:1.5rem;line-height:1.45;display:flex}.dict-hint-part{white-space:pre-wrap}.dict-hint-blank{border-bottom:2px solid var(--border);min-width:2.4ch;color:var(--text-h);letter-spacing:.08em;justify-content:center;align-items:center;padding:.1rem .35rem .15rem;display:inline-flex}.dict-hint-space{width:.4rem}.dict-hint-punctuation{color:var(--muted)}.dict-input{border:1px solid var(--border);resize:vertical;background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:6px;margin-bottom:1rem;padding:.75rem .875rem;font-family:inherit;font-size:.9375rem}.dict-input:focus{border-color:var(--accent);outline:none}.dict-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1rem;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1.25rem;font-size:.875rem}.btn-secondary:hover{border-color:var(--text-h);color:var(--text-h)}.btn-text{color:var(--muted);cursor:pointer;background:0 0;border:none;margin:.75rem auto 0;font-size:.8125rem;text-decoration:underline;display:block}.dict-result{text-align:center}.dict-score{font-size:2rem;font-weight:700;font-family:var(--mono);margin-bottom:1rem}.diff-section{margin-bottom:1rem}.diff-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem}.diff-row{flex-wrap:wrap;justify-content:center;gap:.375rem;display:flex}.diff-chip{border-radius:4px;padding:.1875rem .5rem;font-size:.875rem}.diff-correct{color:#1a6b1a;background:#228b221a}.diff-missing{color:#b44d1e;background:#b44d1e1a;text-decoration:line-through}.diff-extra{color:var(--muted);background:#0000000d;text-decoration:line-through}.dict-revealed{text-align:center}.revealed-text{background:var(--bg);border-radius:6px;margin-bottom:1rem;padding:1rem;font-size:1.0625rem;line-height:1.6}.dictation-sidebar{position:sticky;top:1rem}.dict-sidebar-panel{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;overflow:hidden}.dict-sidebar-header{border-bottom:1px solid var(--border);color:var(--muted);font-size:.75rem;font-family:var(--mono);justify-content:space-between;gap:.75rem;padding:.85rem 1rem;display:flex}.dict-sidebar-list{background:var(--border);flex-direction:column;gap:1px;display:flex}.dict-sidebar-row{background:var(--card-bg);color:inherit;text-align:left;cursor:pointer;border:0;grid-template-columns:1.8rem minmax(0,1fr) 3.6rem;align-items:start;gap:.75rem;padding:.85rem .95rem;transition:background .18s;display:grid}.dict-sidebar-row:hover{background:var(--hover-bg)}.dict-sidebar-row.active{background:#b44d1e14}.dict-sidebar-row.completed{box-shadow:inset 3px 0 #1a6b1ab3}.dict-sidebar-row-index{color:var(--muted);font-size:.75rem;font-family:var(--mono)}.dict-sidebar-row-text{color:var(--text-h);min-width:0;line-height:1.5}.dict-sidebar-row-time{color:var(--muted);font-size:.6875rem;font-family:var(--mono);text-align:right}.blurred{filter:blur(.34rem);-webkit-user-select:none;user-select:none;display:inline-block}.success-msg{color:#1a6b1a;background:#1a6b1a0f;border:1px solid #1a6b1a33;border-radius:6px;margin-top:1rem;padding:.75rem .875rem;font-size:.8125rem}.error-inline{color:#b91c1c;margin-top:1rem;font-size:.8125rem}@media (width<=960px){.dictation-layout{grid-template-columns:1fr}.dictation-sidebar{position:static}}@media (width<=720px){.package-jump-bar,.dict-summary-panel{grid-template-columns:1fr}.dict-sidebar-row{grid-template-columns:1.5rem minmax(0,1fr)}.dict-sidebar-row-time{display:none}.dict-hint{font-size:1.2rem}}@media (prefers-color-scheme:dark){.diff-correct{color:#5ec85e;background:#4abe4a1f}.diff-missing{color:#e0793e;background:#e0793e1f}.diff-extra{background:#ffffff0d}}.review-dashboard h1{margin:0 0 1.5rem}.stats-row{border-bottom:1px solid var(--border);gap:2rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.stat-item{flex-direction:column;display:flex}.stat-item .stat-count{color:var(--text-h);font-size:1.75rem;font-weight:700;font-family:var(--mono);line-height:1}.stat-item .stat-label{color:var(--muted);letter-spacing:.02em;margin-top:.25rem;font-size:.75rem}.deck-section{margin-bottom:2rem}.deck-section h2{margin:0 0 .75rem;font-size:1rem}.deck-item{background:var(--card-bg);cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.625rem 1rem;transition:background .15s;display:flex}.deck-item:hover{background:var(--hover-bg)}.deck-item.active{background:var(--accent-bg)}.deck-name{font-size:.9375rem;font-weight:500}.deck-current{color:var(--accent);letter-spacing:.05em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.deck-create-form{gap:.5rem;margin-top:.75rem;display:flex}.deck-create-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.875rem}.deck-create-form input:focus{border-color:var(--accent);outline:none}.deck-create-btn{margin-top:.5rem;font-size:.8125rem}.today-summary{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.today-summary h2{margin:0 0 .75rem;font-size:1rem}.rating-summary{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.rating-tag{border:1px solid var(--border);color:var(--muted);font-size:.75rem;font-family:var(--mono);border-radius:4px;padding:.125rem .5rem}.btn-start-review{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;max-width:400px;padding:.75rem;font-size:.9375rem;font-weight:600;transition:opacity .15s;display:block}.btn-start-review:disabled{opacity:.4;cursor:default}.btn-start-review:not(:disabled):hover{opacity:.9}.card-review-page{max-width:560px;margin:0 auto}.card-review-page .back-link{color:var(--accent);margin-bottom:1rem;font-size:.875rem;text-decoration:none;display:inline-block}.review-card{background:var(--card-bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;min-height:260px;margin-bottom:1.5rem;padding:1.5rem;transition:border-color .2s;display:flex}.review-card:hover{border-color:var(--accent-border)}.review-card.flipped{cursor:default}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card-state-badge{color:var(--accent);border:1px solid var(--accent-border);letter-spacing:.02em;border-radius:4px;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.card-reps{color:var(--muted);font-size:.75rem;font-family:var(--mono)}.card-body{flex:1;justify-content:center;align-items:center;display:flex}.card-front{text-align:center;color:var(--text-h);font-size:1.75rem;font-weight:700}.card-back{text-align:center;width:100%}.card-back-front{color:var(--muted);margin-bottom:.75rem;font-size:1rem}.card-divider{background:var(--border);height:1px;margin:.75rem 0}.card-back-answer{color:var(--text-h);font-size:1.375rem;font-weight:600}.card-flip-hint{text-align:center;color:var(--muted);margin-top:1rem;font-size:.75rem}.rating-section{margin-bottom:1.5rem}.rating-question{text-align:center;color:var(--muted);margin-bottom:.75rem;font-size:.8125rem}.rating-buttons{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.rating-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;flex-direction:column;align-items:center;gap:.25rem;padding:.625rem .375rem;transition:border-color .15s;display:flex}.rating-btn:hover:not(:disabled){border-color:currentColor}.rating-btn:disabled{opacity:.5;cursor:default}.rating-label{font-size:.875rem;font-weight:600}.rating-interval{opacity:.7;font-size:.6875rem;font-family:var(--mono)}.review-counter{text-align:center;color:var(--muted);font-size:.75rem;font-family:var(--mono)}.audio-prompt{flex-direction:column;align-items:center;gap:.75rem;display:flex}.audio-play-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.75rem 2rem;font-size:1rem;font-weight:600}.audio-play-btn:hover{opacity:.9}.prompt-hint{color:var(--muted);font-size:.8125rem}.text-prompt{text-align:center;color:var(--text-h);font-size:1.5rem;font-weight:600;line-height:1.5}.card-back-translation{color:var(--muted);margin-top:.5rem;font-size:.875rem}.note-type-badge{border:1px solid var(--border);color:var(--muted);border-radius:3px;padding:.0625rem .375rem;font-size:.625rem}.review-finished,.review-error{text-align:center;padding:4rem 2rem}.review-finished h2{margin:0 0 .5rem;font-size:1.25rem}.review-finished p{color:var(--muted);margin-bottom:1.5rem}.review-finished .btn-primary{text-decoration:none;display:inline-block}@media (width<=640px){.stats-row{flex-wrap:wrap;gap:1rem}.rating-buttons{grid-template-columns:repeat(2,1fr)}}.account-page{flex-direction:column;gap:1.5rem;max-width:640px;display:flex}.account-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.account-refresh,.account-form button,.link-button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;font-size:.8125rem}.account-refresh:hover,.account-form button:hover,.link-button:hover{border-color:var(--text-h);color:var(--text-h)}.account-refresh,.account-form button{padding:.5rem .75rem}.link-button{padding:.375rem .625rem}.account-alert{border:1px solid;border-radius:6px;padding:.75rem 1rem;font-size:.875rem}.account-alert.success{color:#1a6b1a;background:#228b220f;border-color:#228b2233}.account-alert.error{color:#b44d1e;background:#b44d1e0f;border-color:#b44d1e33}.account-overview,.account-stats,.account-grid{gap:1rem;display:grid}.account-overview{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.account-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.account-grid{grid-template-columns:1fr}.overview-card,.stat-card,.account-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:6px}.overview-card,.stat-card{padding:.875rem 1rem}.overview-card strong,.stat-card strong{color:var(--text-h);margin-top:.25rem;font-size:1rem;display:block}.overview-label{color:var(--muted);letter-spacing:.02em;font-size:.75rem}.stat-card span{color:var(--muted);font-size:.75rem}.account-panel{padding:1.25rem}.panel-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.panel-header h2,.account-panel h2{margin-bottom:.25rem}.account-form{flex-direction:column;gap:.75rem;display:flex}.account-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:.625rem .75rem;font-size:.9375rem}.account-form input:focus{border-color:var(--accent);outline:none}.deck-table{border:1px solid var(--border);background:var(--border);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.deck-row{background:var(--card-bg);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.deck-row strong{color:var(--text-h);display:block}.deck-meta{color:var(--muted);font-size:.75rem;font-family:var(--mono);margin-top:.125rem;display:block}.deck-badge{border:1px solid var(--accent-border);color:var(--accent);letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.empty-state,.danger-copy{color:var(--muted);font-size:.875rem}.danger-zone{border-color:#b44d1e4d}.danger-button{color:#fff!important;background:#b44d1e!important;border-color:#b44d1e!important}@media (prefers-color-scheme:dark){.account-alert.success{color:#5ec85e;background:#4abe4a14;border-color:#4abe4a33}.account-alert.error{color:#e0793e;background:#e0793e14;border-color:#e0793e33}.danger-zone{border-color:#e0793e4d}.danger-button{background:#e0793e!important;border-color:#e0793e!important}}@media (width<=768px){.account-header,.panel-header,.deck-row{flex-direction:column;align-items:stretch}}.data-page{flex-direction:column;gap:1.5rem;max-width:900px;display:flex}.data-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.data-tabs{border:1px solid var(--border);border-radius:6px;gap:0;display:flex;overflow:hidden}.data-tab{color:var(--muted);cursor:pointer;border:none;border-right:1px solid var(--border);background:0 0;padding:.5rem 1.25rem;font-size:.875rem}.data-tab:last-child{border-right:none}.data-tab.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.data-tab:hover:not(.active){background:var(--hover-bg);color:var(--text-h)}.deck-list{border:1px solid var(--border);background:var(--border);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.deck-item{background:var(--card-bg);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.deck-item-info{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.deck-item-name{color:var(--text-h);font-weight:600}.deck-item-badge{border:1px solid var(--accent-border);color:var(--accent);white-space:nowrap;border-radius:4px;padding:.0625rem .375rem;font-size:.6875rem;font-weight:600}.deck-item-actions{gap:.5rem;display:flex}.deck-item-actions button{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.deck-item-actions button:hover{border-color:var(--text-h);color:var(--text-h)}.deck-item-actions .danger:hover{color:#b44d1e;border-color:#b44d1e}.deck-cards-section{border:1px solid var(--border);border-radius:6px;overflow:hidden}.deck-cards-header{border-bottom:1px solid var(--border);background:var(--hover-bg);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.deck-cards-header h3{color:var(--text-h);margin:0;font-size:.875rem}.card-list{background:var(--border);flex-direction:column;gap:1px;display:flex}.card-item{background:var(--card-bg);justify-content:space-between;align-items:center;gap:1rem;padding:.625rem 1rem;display:flex}.card-item-content{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.card-front{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;overflow:hidden}.card-back{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.card-meta{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.state-tag{border:1px solid var(--border);color:var(--muted);border-radius:3px;padding:.0625rem .375rem;font-size:.6875rem;font-weight:500}.state-tag.new{color:#2563eb;border-color:#2563eb40}.state-tag.learning{color:#d97706;border-color:#d9770640}.state-tag.review{color:#16a34a;border-color:#16a34a40}.state-tag.relearning{color:#dc2626;border-color:#dc262640}.note-list{border:1px solid var(--border);background:var(--border);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.note-item{background:var(--card-bg);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 1rem;display:flex}.note-item-content{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.note-front{color:var(--text-h);font-weight:500}.note-back{color:var(--muted);font-size:.875rem}.inline-edit{flex-direction:column;flex:1;gap:.5rem;display:flex}.inline-edit input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:.375rem .5rem;font-size:.875rem}.inline-edit input:focus{border-color:var(--accent);outline:none}.inline-edit-actions{gap:.5rem;display:flex}.inline-edit-actions button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:.25rem .625rem;font-size:.75rem}.inline-edit-actions button.save{border-color:var(--accent-border);color:var(--accent)}.inline-edit-actions button:hover{border-color:var(--text-h)}.data-search{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;width:100%;max-width:320px;padding:.5rem .75rem;font-size:.875rem}.data-search:focus{border-color:var(--accent);outline:none}.create-form{align-items:flex-end;gap:.5rem;display:flex}.create-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.875rem}.create-form input:focus{border-color:var(--accent);outline:none}.create-form button{border:1px solid var(--accent-border);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.5rem .75rem;font-size:.8125rem}.create-form button:hover{background:var(--accent-bg)}.data-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.data-count{color:var(--muted);font-size:.8125rem}.data-empty{text-align:center;color:var(--muted);padding:2rem;font-size:.875rem}.data-alert{color:#b44d1e;background:#b44d1e0f;border:1px solid #b44d1e33;border-radius:6px;padding:.625rem 1rem;font-size:.8125rem}.confirm-delete{color:var(--text);align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.confirm-delete button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.confirm-delete .yes{color:#b44d1e;border-color:#b44d1e}.confirm-delete .no{color:var(--muted)}@media (prefers-color-scheme:dark){.state-tag.new{color:#60a5fa;border-color:#60a5fa40}.state-tag.learning{color:#fbbf24;border-color:#fbbf2440}.state-tag.review{color:#4ade80;border-color:#4ade8040}.state-tag.relearning{color:#f87171;border-color:#f8717140}.data-alert{color:#e0793e;background:#e0793e14;border-color:#e0793e33}.confirm-delete .yes{color:#e0793e;border-color:#e0793e}}@media (width<=768px){.data-toolbar{flex-direction:column;align-items:stretch}.data-search{max-width:none}.create-form{flex-direction:column}}
