:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ink:var(--lightningcss-light,#24231f)var(--lightningcss-dark,#ece8df);--muted:var(--lightningcss-light,#77746b)var(--lightningcss-dark,#aaa69d);--paper:var(--lightningcss-light,#f7f5ef)var(--lightningcss-dark,#171815);--panel:var(--lightningcss-light,#fdfcf8)var(--lightningcss-dark,#20211e);--line:var(--lightningcss-light,#e4e0d5)var(--lightningcss-dark,#383a34);--accent:var(--lightningcss-light,#c9583f)var(--lightningcss-dark,#df765d);--accent-hover:var(--lightningcss-light,#b84d36)var(--lightningcss-dark,#ed856c);--accent-soft:var(--lightningcss-light,#f5dfd7)var(--lightningcss-dark,#452c27);--accent-shadow:var(--lightningcss-light,#c9583f38)var(--lightningcss-dark,#df765d33);--accent-note:var(--lightningcss-light,#efaa98)var(--lightningcss-dark,#f1a08d);--green:var(--lightningcss-light,#4c8a68)var(--lightningcss-dark,#6fb58d);--safe-ink:var(--lightningcss-light,#52705a)var(--lightningcss-dark,#8fc5a0);--error-ink:var(--lightningcss-light,#a73d30)var(--lightningcss-dark,#f08d79);--queued:var(--lightningcss-light,#d79a39)var(--lightningcss-dark,#e7b45b);--failed:var(--lightningcss-light,#bf4a3a)var(--lightningcss-dark,#e86e5b);--topbar:var(--lightningcss-light,#fdfcf8eb)var(--lightningcss-dark,#20211ef0);--control:var(--lightningcss-light,#f4f1e9)var(--lightningcss-dark,#2b2c28);--subtle:var(--lightningcss-light,#f0ede5)var(--lightningcss-dark,#292a26);--subtle-hover:var(--lightningcss-light,#f2efe7)var(--lightningcss-dark,#30312c);--code:var(--lightningcss-light,#ebe7dc)var(--lightningcss-dark,#30312c);--progress-track:var(--lightningcss-light,#d9d4c9)var(--lightningcss-dark,#3b3c36);--raised:var(--lightningcss-light,#fff)var(--lightningcss-dark,#292a26);--sentence-active:var(--lightningcss-light,#ffffffb3)var(--lightningcss-dark,#2a2b27e0);--current-word:var(--lightningcss-light,#f8e5dd)var(--lightningcss-dark,#4b2e28);--secondary:var(--lightningcss-light,#eeeae0)var(--lightningcss-dark,#30312c);--dark-control:var(--lightningcss-light,#30302d)var(--lightningcss-dark,#e6e1d7);--dark-control-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#24231f);--warning-bg:var(--lightningcss-light,#fff1cf)var(--lightningcss-dark,#4a3b1d);--warning-ink:var(--lightningcss-light,#6c5729)var(--lightningcss-dark,#e7c97e);--pending-bg:var(--lightningcss-light,#fff6dc)var(--lightningcss-dark,#423719);--pending-border:var(--lightningcss-light,#e9bd58)var(--lightningcss-dark,#8e712e);--danger-bg:var(--lightningcss-light,#f2d5cd)var(--lightningcss-dark,#4a2924);--danger-ink:var(--lightningcss-light,#9c3829)var(--lightningcss-dark,#f08d79);--recording-bg:var(--lightningcss-light,#fae7e1)var(--lightningcss-dark,#472a25);--recording-ink:var(--lightningcss-light,#a84232)var(--lightningcss-dark,#f28b76);--overlay:var(--lightningcss-light,#24231f38)var(--lightningcss-dark,#0000008c);--toast:var(--lightningcss-light,#2f2e2a)var(--lightningcss-dark,#ece8df);--toast-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#24231f);--shadow:0 18px 50px var(--lightningcss-light,#342c1e14)var(--lightningcss-dark,#0000004d);--panel-shadow:var(--lightningcss-light,#201c1426)var(--lightningcss-dark,#0000006b);--small-shadow:var(--lightningcss-light,#342c1e1f)var(--lightningcss-dark,#00000059);--saved:var(--lightningcss-light,#f3d77e)var(--lightningcss-dark,#7a6224);--saved-soft:var(--lightningcss-light,#fbf0c9)var(--lightningcss-dark,#3d3420);--topbar-height:72px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--paper);min-height:100%;color:var(--ink);margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background-color .18s,color .18s}button,audio,input,select,textarea{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}a{color:inherit}.app-shell{height:100vh;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.page-shell{min-height:100vh;min-height:100dvh}.topbar{min-height:calc(var(--topbar-height) + var(--safe-top));padding:var(--safe-top) max(24px, var(--safe-right)) 0 max(24px, var(--safe-left));border-bottom:1px solid var(--line);background:var(--topbar);flex:none;justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{color:#fff;background:var(--accent);border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-family:Georgia,serif;font-size:21px;text-decoration:none;display:grid}.brand div{gap:2px;display:grid}.brand strong{font-family:Georgia,Yu Mincho,serif;font-size:18px}.brand small{color:var(--muted);letter-spacing:.05em;font-size:11px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar-book-control{min-width:250px}.topbar-book-control small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar-book-switcher{appearance:none;width:100%;color:var(--ink);cursor:pointer;background:0 0;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 10px),calc(100% - 5px);background-repeat:no-repeat;background-size:5px 5px;border:0;padding:0 25px 0 0;font:18px/1.15 Georgia,Yu Mincho,serif}.topbar-book-switcher:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}.topbar-rescan{border:1px solid var(--line);background:var(--control);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:8px;flex:none}.service-row{align-items:center;gap:18px;display:flex}.theme-control{border:1px solid var(--line);background:var(--control);color:var(--muted);border-radius:8px;align-items:center;gap:5px;padding:5px 8px;display:flex}.theme-control>span{color:var(--accent);font-size:12px}.theme-control select{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:700}.theme-control select:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.topbar-link,.shadow-history-button{white-space:nowrap;border:1px solid var(--line);background:var(--control);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;font-size:11px;font-weight:700;text-decoration:none;display:flex}.topbar-link span,.shadow-history-button span{color:var(--accent)}.empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;max-width:650px;margin:0 auto;padding:48px 24px;display:flex;overflow-y:auto}.book-orbit{border:1px solid var(--line);border-radius:50%;place-items:center;width:128px;height:128px;margin-bottom:28px;display:grid;position:relative}.book-orbit:before,.book-orbit:after{content:"";border:1px solid var(--line);border-radius:50%;position:absolute;inset:12px -22px;transform:rotate(38deg)}.book-orbit:after{transform:rotate(-38deg)}.book-orbit span{z-index:1;background:var(--accent);color:#fff;width:72px;height:92px;box-shadow:var(--shadow);place-items:center;font:36px Georgia,serif;display:grid;position:relative}.eyebrow{color:var(--accent);letter-spacing:.18em;margin:0 0 9px;font-size:11px;font-weight:750}.empty-state h1{letter-spacing:-.025em;margin:0;font:46px/1.1 Georgia,Yu Mincho,serif}.empty-state>p:not(.eyebrow):not(.error-message){color:var(--muted);max-width:530px;line-height:1.7}code{background:var(--code);border-radius:5px;padding:2px 6px}.primary,.secondary{text-align:center;cursor:pointer;border:0;border-radius:9px;padding:11px 16px;font-weight:700;text-decoration:none;transition:all .18s;display:inline-block}.primary{background:var(--accent);color:#fff;box-shadow:0 8px 20px var(--accent-shadow)}.primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.primary.large{margin-top:18px;padding:14px 28px}.secondary{background:var(--secondary)}.full{width:100%}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.workspace{flex:1;min-height:0;display:grid}.workspace.study-open{grid-template-columns:292px minmax(420px,1fr) 336px}.workspace.study-closed{grid-template-columns:292px minmax(420px,1fr)}.track-panel,.study-panel{background:var(--panel);flex-direction:column;display:flex;overflow:hidden}.track-panel{border-right:1px solid var(--line);padding:0 0 var(--safe-bottom) var(--safe-left)}.study-panel{border-left:1px solid var(--line);padding:0 var(--safe-right) var(--safe-bottom) 0}.book-summary{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;padding:17px 22px 12px;font-size:11px;display:flex}.transcription-card{background:var(--subtle);border-radius:12px;margin:0 14px 14px;padding:14px}.transcription-card>div:first-child{justify-content:space-between;font-size:12px;display:flex}.transcription-card span,.transcription-card small{color:var(--muted)}.transcription-hint{color:var(--muted);margin:10px 0 0;font-size:11px;line-height:1.45}.transcription-card small{margin-top:8px;line-height:1.4;display:block}.progress{background:var(--progress-track);border-radius:9px;height:4px;margin:10px 0 12px;overflow:hidden}.progress i{background:var(--green);height:100%;display:block}.track-list{padding:0 8px 20px;overflow-y:auto}.track{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;grid-template-columns:30px 1fr 10px;align-items:center;gap:8px;width:100%;padding:11px 10px;display:grid}.track:hover{background:var(--subtle-hover)}.track.active{background:var(--accent-soft)}.track-number{color:var(--muted);font:11px ui-monospace,monospace}.track-copy{gap:4px;min-width:0;display:grid}.track-copy strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:650;overflow:hidden}.track-copy small{color:var(--muted);font-size:10px}.status-dot{background:var(--muted);border-radius:50%;width:7px;height:7px}.status-dot.completed{background:var(--green)}.status-dot.queued,.status-dot.processing,.status-dot.uploading{background:var(--queued);animation:1.3s infinite pulse}.status-dot.error{background:var(--failed)}@keyframes pulse{50%{opacity:.35}}.reader-panel{background:var(--paper);flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.reader-heading{justify-content:space-between;align-items:center;gap:20px;padding:26px 36px 12px;display:flex}.reader-heading h2{margin:0;font:25px/1.3 Georgia,Yu Mincho,serif}.native-player{width:calc(100% - 56px);height:54px;min-height:54px;margin:0 28px 12px;display:block}.transcript{scroll-behavior:smooth;padding:20px 34px 44vh;overflow-y:auto}.return-to-playback{z-index:4;border:1px solid var(--line);background:var(--toast);color:var(--toast-ink);box-shadow:0 12px 34px var(--panel-shadow);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:11px 17px;font-size:12px;font-weight:750;animation:.18s ease-out return-to-playback-in;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.return-to-playback:hover{filter:brightness(.94)}.return-to-playback span{color:var(--accent-note);font-size:15px;line-height:1}@keyframes return-to-playback-in{0%{opacity:0;transform:translate(-50%,7px)}}.sentence{opacity:.58;cursor:pointer;border-left:2px solid #0000;border-radius:0 8px 8px 0;grid-template-columns:46px 1fr;margin:2px 0;padding:9px 12px;transition:opacity .2s,background .2s;display:grid;position:relative}.sentence:hover{opacity:.85}.sentence.active{opacity:1;border-left-color:var(--accent);background:var(--sentence-active)}.sentence.speaker-change{margin-top:22px}.speaker-label{color:var(--accent);letter-spacing:.12em;grid-column:2;margin-bottom:2px;font-size:9px;font-weight:800}.sentence-time{color:var(--muted);font:10px/2.3 ui-monospace,monospace}.sentence p{margin:0;font:20px/1.85 Yu Mincho,Hiragino Mincho ProN,serif}.shadow-trigger{z-index:2;border:1px solid var(--line);background:var(--panel);width:30px;height:30px;color:var(--accent);box-shadow:0 5px 16px var(--small-shadow);cursor:pointer;opacity:0;border-radius:50%;place-items:center;transition:opacity .16s,transform .16s;display:grid;position:absolute;top:8px;right:8px;transform:translateY(2px)}.sentence:hover .shadow-trigger,.sentence:focus-within .shadow-trigger,.sentence.active .shadow-trigger{opacity:1;transform:translateY(0)}.word{appearance:none;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;padding:1px}.word:hover{background:var(--accent-soft)}.word.current{color:var(--accent);background:var(--current-word)}.word.selected{outline:2px solid var(--accent);outline-offset:1px}.punctuation{white-space:pre-wrap}.word-group{display:inline-block}.transcript-placeholder{min-height:300px;color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:30px;display:flex}.transcript-placeholder span{border:1px solid var(--line);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;font:25px Georgia,serif;display:grid}.transcript-placeholder h3{color:var(--ink);margin:16px 0 5px}.transcript-placeholder p{max-width:330px;font-size:13px;line-height:1.5}.full-height{min-height:100%}.panel-label{border-bottom:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;height:48px;padding:0 20px;font-size:11px;font-weight:750;display:flex}.panel-label button{color:var(--muted);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:0}.study-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:34px;display:flex}.selection-icon{background:var(--subtle);width:64px;height:64px;color:var(--accent);border-radius:18px;place-items:center;font:26px Georgia,serif;display:grid}.study-empty h3{margin:18px 0 6px}.study-empty p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.study-content{padding:22px 20px 34px;overflow-y:auto}.selected-expression>span,.explanation-block>span,.explanation-block summary span{color:var(--accent);letter-spacing:.16em;font-size:9px;font-weight:800}.selected-expression h2{margin:4px 0 10px;font:36px Georgia,Yu Mincho,serif}.selected-expression p{color:var(--muted);border-bottom:1px solid var(--line);margin:0 0 20px;padding-bottom:18px;font:14px/1.7 Yu Mincho,serif}.explanation-block{border-bottom:1px solid var(--line);padding:17px 0}.explanation-block h3{margin:5px 0 2px;font:24px Georgia,Yu Mincho,serif}.explanation-block p{margin:7px 0;font-size:14px;line-height:1.65}.explanation-block small{color:var(--muted);line-height:1.5}.explanation-block summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.explanation-block summary::-webkit-details-marker{display:none}.explanation-block summary i{color:var(--muted);font-style:normal;transition:transform .18s}.explanation-block[open] summary i{transform:rotate(180deg)}.explanation-block.japanese p{font-family:Yu Mincho,serif}.explanation-refresh{width:100%;margin-top:14px}.error-message{color:var(--error-ink)}.transcription-state{color:var(--muted);align-self:center;font-size:12px;font-weight:700}.transcription-state.safe{color:var(--safe-ink)}.toast{z-index:40;bottom:calc(24px + var(--safe-bottom));background:var(--toast);max-width:620px;color:var(--toast-ink);box-shadow:var(--shadow);cursor:pointer;border-radius:10px;padding:12px 18px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.toast.raised{top:calc(var(--topbar-height) + var(--safe-top) + 12px);bottom:auto}.shadowing-overlay{z-index:30;inset:calc(var(--topbar-height) + var(--safe-top)) 0 0;justify-content:flex-end;display:flex;position:fixed}.shadowing-backdrop{background:var(--overlay);cursor:default;border:0;width:100%;position:absolute;inset:0}.shadowing-panel{background:var(--panel);border-left:1px solid var(--line);width:min(460px,100vw);height:100%;box-shadow:-18px 0 50px var(--panel-shadow);flex-direction:column;display:flex;position:relative}.shadowing-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:70px;padding:14px 20px;display:flex}.shadowing-header span{color:var(--accent);letter-spacing:.18em;font-size:9px;font-weight:850}.shadowing-header h2{margin:2px 0 0;font:24px Georgia,Yu Mincho,serif}.shadowing-header>button{color:var(--muted);cursor:pointer;background:0 0;border:0}.shadowing-content{padding:20px 20px calc(40px + var(--safe-bottom));overflow-y:auto}.shadowing-sentence{background:var(--subtle);border-radius:14px;padding:18px}.shadowing-sentence small{color:var(--muted);font-size:10px}.shadowing-sentence p{margin:10px 0;font:18px/1.7 Yu Mincho,serif}.shadowing-sentence span{color:var(--accent);font-size:10px;font-weight:750}.shadowing-phase{background:var(--control);min-height:42px;color:var(--muted);border-radius:10px;justify-content:center;align-items:center;gap:8px;margin:14px 0;font-size:12px;font-weight:750;display:flex}.shadowing-phase i{background:var(--muted);border-radius:50%;width:8px;height:8px}.shadowing-phase.recording{background:var(--recording-bg);color:var(--recording-ink)}.shadowing-phase.recording i{background:var(--accent);animation:1s infinite pulse}.shadowing-phase.countdown{color:var(--accent);font-size:22px}.shadowing-stages{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.shadowing-stages li{color:var(--muted);background:var(--control);border-radius:9px;align-items:center;gap:7px;padding:9px;font-size:11px;display:flex}.shadowing-stages b{background:var(--progress-track);border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;display:grid}.shadowing-stages li.active{color:var(--ink);background:var(--accent-soft)}.shadowing-stages li.active b{color:#fff;background:var(--accent)}.shadowing-actions{gap:8px;display:grid}.shadowing-actions>small{color:var(--muted);text-align:center;font-size:10px;line-height:1.45}.shadowing-pending{border:1px solid var(--pending-border);background:var(--pending-bg);gap:12px;padding:16px;display:grid}.shadowing-pending>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.shadowing-pending strong,.shadowing-pending small{display:block}.shadowing-pending small{color:var(--muted);margin-top:3px}.shadowing-pending button{border:1px solid var(--line);background:var(--paper);padding:9px 12px}.recording-button{color:#fff;cursor:pointer;background:#a84232;border:0;border-radius:9px;padding:12px 16px;font-weight:750}.recording-button i{background:#fff;border-radius:2px;width:8px;height:8px;margin-right:8px;display:inline-block}.shadowing-takes{margin-top:28px}.shadowing-section-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.shadowing-section-title h3{margin:0;font-size:13px}.shadowing-section-title span{background:var(--secondary);min-width:24px;color:var(--muted);text-align:center;border-radius:20px;padding:3px 7px;font-size:10px}.shadowing-take,.shadowing-history-card{border:1px solid var(--line);background:var(--raised);border-radius:11px;margin-bottom:9px;padding:13px}.shadowing-take>div:first-child{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.shadowing-take strong{font-size:12px}.shadowing-take small,.shadowing-history-card small{color:var(--muted);font-size:9px}.take-actions{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px;display:grid}.take-actions button,.shadowing-history-card button{background:var(--secondary);cursor:pointer;border:0;border-radius:7px;padding:7px;font-size:10px;font-weight:700}.take-actions .confirm-delete{background:var(--danger-bg);color:var(--danger-ink)}.shadowing-empty,.shadowing-history-intro{color:var(--muted);text-align:center;font-size:12px;line-height:1.55}.shadowing-history-intro{margin:0 0 16px}.shadowing-history-card p{margin:8px 0 12px;font:14px/1.6 Yu Mincho,serif}.shadowing-history-card>div{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:9px;display:flex}.shadowing-history-card button{min-width:56px}.take-actions .confirm-delete,.secondary.confirm-delete{background:var(--danger-bg);color:var(--danger-ink)}.text-input{border:1px solid var(--line);background:var(--raised);width:100%;min-height:44px;color:var(--ink);border-radius:10px;padding:10px 14px;font-size:15px}select.text-input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 19px),calc(100% - 14px);background-repeat:no-repeat;background-size:5px 5px;height:44px;padding-right:34px}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.login-shell{min-height:100vh;min-height:100dvh;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));place-items:center;display:grid}.login-card{text-align:center;flex-direction:column;align-items:center;width:min(360px,100%);display:flex}.login-card h1{letter-spacing:-.02em;margin:0 0 26px;font:34px/1.15 Georgia,Yu Mincho,serif}.login-card .primary.large{margin-top:12px}.word.saved{box-shadow:inset 0 -.3em 0 var(--saved)}.reader-heading-side{flex:none;align-items:center;gap:10px;display:flex}.transcription-state.queued,.transcription-state.processing,.transcription-state.uploading,.transcription-state.saving{color:var(--safe-ink)}.transcription-state.error{color:var(--error-ink)}.upload-note{background:var(--warning-bg);color:var(--warning-ink);border-radius:9px;margin:0 28px 10px;padding:8px 12px;font-size:12px}.upload-note code{background:0 0;padding:0}.config-warning{background:var(--warning-bg);color:var(--warning-ink);border-radius:9px;margin:0 0 12px;padding:10px 12px;font-size:12px;line-height:1.5}.highlight-box{gap:10px;margin-top:18px;display:grid}.highlight-toggle{border:1px solid var(--line);background:var(--raised);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-weight:750;transition:all .18s;display:flex}.highlight-toggle span{color:var(--queued);font-size:18px;line-height:1}.highlight-toggle.saved{background:var(--saved-soft);border-color:var(--saved)}.note-field{gap:6px;display:grid}.note-field span{color:var(--accent);letter-spacing:.16em;font-size:9px;font-weight:800}.note-field textarea{border:1px solid var(--line);background:var(--raised);width:100%;color:var(--ink);resize:vertical;border-radius:9px;padding:9px 11px;font-size:14px;line-height:1.5}.note-field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sheet-handle,.tracks-button,.sheet-backdrop{display:none}@media (hover:none){.sentence:not(.active):not(:focus-within) .shadow-trigger{pointer-events:none}}.highlights-page .topbar{z-index:10;-webkit-backdrop-filter:blur(12px);position:sticky;top:0}.highlights-toolbar{grid-template-columns:1fr 260px;gap:10px;max-width:820px;margin:0 auto;padding:20px 24px 8px;display:grid}.highlights-error{max-width:820px;margin:8px auto 0;padding:0 24px}.highlight-list{max-width:820px;padding:8px 24px calc(48px + var(--safe-bottom));gap:12px;margin:0 auto;display:grid}.highlight-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:18px 20px}.highlight-card>header{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.highlight-card h2{margin:0;font:26px/1.2 Georgia,Yu Mincho,serif}.highlight-reading{color:var(--accent);font-weight:700}.highlight-card>header small{color:var(--muted)}.highlight-sentence{margin:12px 0 8px;font:17px/1.8 Yu Mincho,Hiragino Mincho ProN,serif}.highlight-sentence mark{color:inherit;background:var(--saved-soft);box-shadow:inset 0 -.3em 0 var(--saved);border-radius:2px;padding:0 1px}.highlight-definition{margin:0 0 8px;font-size:14px;line-height:1.6}.highlight-more summary{color:var(--muted);cursor:pointer;padding:6px 0;font-size:12px;font-weight:700}.highlight-more p{margin:4px 0;font:14px/1.65 Yu Mincho,serif}.highlight-more small{color:var(--muted);line-height:1.5}.highlight-note{background:var(--subtle);white-space:pre-wrap;border-radius:9px;margin:10px 0 0;padding:10px 12px;font-size:13px;line-height:1.55}.highlight-card>footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;display:flex}.highlight-card>footer>span{color:var(--muted);font-size:11px;line-height:1.55}.highlight-card>footer>div{flex:none;gap:8px;display:flex}.highlight-card>footer .primary,.highlight-card>footer .secondary{padding:9px 14px;font-size:13px}.load-more{margin-top:8px}.not-found{text-align:center;align-content:center;place-items:center;gap:16px;padding:80px 24px;display:grid}.not-found h1{margin:0;font:30px Georgia,Yu Mincho,serif}.board-page .topbar{z-index:10;-webkit-backdrop-filter:blur(12px);position:sticky;top:0}.board-tabs{display:none}.board-columns{--board-columns:3;max-width:1320px;padding:22px max(24px, var(--safe-right)) calc(48px + var(--safe-bottom)) max(24px, var(--safe-left));grid-template-columns:repeat(var(--board-columns), minmax(0, 1fr));align-items:start;gap:16px;margin:0 auto;display:grid}.board-column{border:1px solid var(--line);background:var(--panel);border-radius:16px;min-width:0;padding:0 10px 12px;transition:border-color .15s,background-color .15s,box-shadow .15s}.board-column.drop-target{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-shadow)}.board-column>header{justify-content:space-between;align-items:center;gap:10px;padding:16px 6px 12px;display:flex}.board-column h2{margin:0;font:20px/1.2 Georgia,Yu Mincho,serif}.board-column>header span,.board-tabs span{background:var(--secondary);min-width:26px;color:var(--muted);text-align:center;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:750}.board-column ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.board-empty{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:12px;margin:4px 0 6px;padding:26px 12px;font-size:12px}.board-card{border:1px solid var(--line);background:var(--raised);border-radius:12px;transition:border-color .15s,box-shadow .15s,opacity .15s;position:relative}.board-card:hover{border-color:var(--accent-note);box-shadow:0 6px 18px var(--small-shadow)}.board-card.lifted{opacity:.35}.board-card-main{color:inherit;-webkit-touch-callout:none;border-radius:12px 12px 0 0;gap:6px;padding:14px 14px 10px;text-decoration:none;display:grid}.board-card-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.board-card-title{overflow-wrap:anywhere;font:17px/1.35 Georgia,Yu Mincho,Hiragino Mincho ProN,serif}.board-card-author{color:var(--muted);font-size:12px}.board-progress{background:var(--progress-track);border-radius:9px;height:4px;margin:6px 0 0;display:block;overflow:hidden}.board-progress i{background:var(--accent);border-radius:9px;height:100%;display:block}.board-column[data-shelf=listened] .board-progress i{background:var(--green)}.board-card-line{align-items:baseline;gap:8px;min-width:0;font-size:12px;display:flex}.board-card-line b{color:var(--accent);flex:none;font-weight:800}.board-card-line span{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board-card-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font-size:11px;display:flex}.board-card-meta .complete{color:var(--safe-ink)}.board-card-actions{border-top:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px 10px 14px;display:flex}.board-finished{min-width:0;color:var(--muted);flex:0 auto;align-items:center;gap:6px;font-size:11px;font-weight:750;display:flex}.board-finished>span{white-space:nowrap;flex:none}.board-finished input{border:1px solid var(--line);background:var(--control);width:100%;min-width:0;max-width:150px;min-height:32px;color:var(--ink);border-radius:8px;padding:3px 8px;font-size:12px}.board-finished input:focus-visible,.board-move select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.board-grip{width:32px;height:32px;color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;flex:none;place-items:center;margin-left:auto;font-size:16px;display:grid}.board-grip:hover{background:var(--subtle-hover);color:var(--accent)}.board-move{border:1px solid var(--line);background:var(--control);min-height:32px;color:var(--muted);cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 12px),calc(100% - 8px);background-repeat:no-repeat;background-size:4px 4px;border-radius:8px;flex:none;align-items:center;gap:4px;padding:0 22px 0 10px;font-size:11px;font-weight:750;display:flex;position:relative}.board-move select{opacity:0;cursor:pointer;width:100%;font-size:16px;position:absolute;inset:0}.board-ghost{z-index:50;pointer-events:none;border-color:var(--accent);box-shadow:0 22px 50px var(--panel-shadow);opacity:.96;margin:0;position:fixed;transform:rotate(-1.5deg)}:root.board-dragging,:root.board-dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.board-error{justify-items:start;gap:10px;max-width:820px;margin:24px auto 0;padding:0 24px;display:grid}.board-loading{padding:40px 24px}@media (max-width:1100px) and (min-width:821px){.workspace.study-open,.workspace.study-closed{grid-template-columns:240px minmax(0,1fr)}.study-panel{right:0;top:calc(var(--topbar-height) + var(--safe-top));z-index:5;width:340px;box-shadow:-18px 0 50px var(--panel-shadow);position:fixed;bottom:0}}@media (max-width:820px),(hover:none) and (pointer:coarse) and (max-height:500px){:root{--topbar-height:60px}.topbar{padding:var(--safe-top) max(10px, var(--safe-right)) 0 max(10px, var(--safe-left));gap:6px}.brand{flex:1;gap:6px}.brand-mark{width:34px;height:34px;font-size:19px}.highlights-page .brand-mark{width:44px;height:44px;font-size:22px}.app-shell .brand-mark{display:none}.topbar-book-control{flex:1;min-width:0}.topbar-book-switcher{white-space:nowrap;text-overflow:ellipsis;margin-block:-12px;padding-block:12px;font-size:17px;position:relative;overflow:hidden}.topbar-book-control small{pointer-events:none;position:relative}.topbar-rescan{width:44px;height:44px;font-size:18px}.service-row{gap:6px}.app-shell .service-row>*{justify-content:center;width:44px;height:44px;padding:0;font-size:0}.app-shell .service-row>*>span{font-size:18px}.theme-control{position:relative}.app-shell .theme-control select{opacity:0;font-size:16px;position:absolute;inset:0}.topbar-link,.shadow-history-button{min-height:44px;padding:0 12px;font-size:13px}.primary,.secondary,.recording-button{min-height:44px}.text-input,.note-field textarea{font-size:16px}.empty-state h1{font-size:34px}.workspace.study-open,.workspace.study-closed{grid-template-columns:minmax(0,1fr)}.sheet-handle{background:var(--progress-track);border-radius:3px;flex:none;width:40px;height:5px;margin:8px auto 2px;display:block}.sheet-backdrop{z-index:24;background:var(--overlay);border:0;width:100%;display:block;position:fixed;inset:0}.track-panel{z-index:25;max-height:78dvh;box-shadow:0 -18px 50px var(--panel-shadow);padding-bottom:var(--safe-bottom);visibility:hidden;border:0;border-radius:18px 18px 0 0;transition:transform .22s,visibility 0s linear .22s;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%)}.workspace.tracks-open .track-panel{visibility:visible;transition:transform .22s;transform:none}.track{min-height:52px}.tracks-button{padding:8px 14px;font-size:13px;display:inline-block}.transcript-placeholder .tracks-button{margin-top:10px}.reader-heading{padding:12px max(14px, var(--safe-left)) 8px;gap:12px}.reader-heading h2{font-size:19px}.reader-heading .eyebrow{margin-bottom:4px}.reader-heading-side{gap:8px}.transcription-state{font-size:11px}.upload-note{margin:0 12px 8px}.native-player{width:calc(100% - 24px);margin:0 12px 6px}.transcript{padding:8px max(8px, var(--safe-right)) 66dvh max(6px, var(--safe-left));scroll-padding-top:8px}.sentence{grid-template-columns:44px 1fr;padding:6px 50px 6px 8px}.sentence p{font-size:20px;line-height:2.2}.sentence-time{letter-spacing:-.03em;font-size:12px;line-height:3.4}.shadow-trigger{width:44px;height:44px;top:4px;right:2px}.return-to-playback{bottom:calc(14px + var(--safe-bottom));min-height:44px}.track-panel,.study-panel,.shadowing-panel{padding-left:var(--safe-left);padding-right:var(--safe-right)}.study-panel{z-index:20;width:auto;max-height:64dvh;box-shadow:0 -18px 50px var(--panel-shadow);border:0;border-radius:18px 18px 0 0;padding-bottom:0;animation:.22s ease-out sheet-in;position:fixed;inset:auto 0 0}.panel-label{height:44px;padding:0 8px 0 18px}.panel-label button{min-width:44px;min-height:44px;font-size:13px}.study-content{padding:14px 18px calc(24px + var(--safe-bottom))}.selected-expression h2{margin-bottom:6px;font-size:30px}.selected-expression p{margin-bottom:8px;padding-bottom:12px}.explanation-block{padding:12px 0}.explanation-block summary,.highlight-more summary{align-items:center;min-height:44px;display:flex}.study-backdrop{z-index:19}.speaker-label,.selected-expression>span,.explanation-block>span,.explanation-block summary span,.note-field span,.track-copy small,.track-number,.brand small,.highlight-card>footer>span,.shadowing-header span,.shadowing-sentence small,.shadowing-sentence span,.shadowing-take small,.shadowing-history-card small,.shadowing-history-card>div,.shadowing-actions>small,.shadowing-section-title span,.shadowing-stages b,.book-summary,.transcription-hint,.eyebrow{font-size:12px}.shadowing-overlay{align-items:flex-end;inset:0}.shadowing-panel{width:100%;height:auto;max-height:90dvh;box-shadow:0 -18px 50px var(--panel-shadow);border-left:0;border-radius:18px 18px 0 0;animation:.22s ease-out sheet-in}.shadowing-header{min-height:56px;padding:6px 8px 10px 18px}.shadowing-header>button{min-width:44px;min-height:44px}.take-actions button,.shadowing-history-card button,.shadowing-pending button{min-height:44px;font-size:12px}.toast{bottom:calc(16px + var(--safe-bottom));max-width:calc(100% - 24px)}.toast.raised{top:calc(var(--topbar-height) + var(--safe-top) + 8px);bottom:auto}.board-page .brand-mark{width:44px;height:44px;font-size:22px}.board-page .service-row>*{justify-content:center;width:44px;height:44px;padding:0;font-size:0}.board-page .service-row>*>span{font-size:18px}.board-page .theme-control select{opacity:0;font-size:16px;position:absolute;inset:0}.board-tabs{z-index:9;top:calc(var(--topbar-height) + var(--safe-top));padding:10px max(12px, var(--safe-right)) 8px max(12px, var(--safe-left));border-bottom:1px solid var(--line);background:var(--topbar);-webkit-backdrop-filter:blur(12px);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;display:grid;position:sticky}.board-tabs button{border:1px solid var(--line);background:var(--control);min-width:0;min-height:44px;color:var(--muted);white-space:nowrap;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:750;display:flex}.board-tabs button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.board-tabs button.drop-target{border-color:var(--accent);background:var(--accent);color:#fff}.board-tabs span{font-size:12px}.board-columns{max-width:none;padding:12px max(12px, var(--safe-right)) calc(40px + var(--safe-bottom)) max(12px, var(--safe-left));overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:max(12px, var(--safe-left));scrollbar-width:none;gap:12px;display:flex;overflow-x:auto}.board-columns::-webkit-scrollbar{display:none}.board-columns.dragging{scroll-snap-type:none}.board-column{scroll-snap-align:start;flex:0 0 min(100% - 28px,420px);padding:0 8px 10px}.board-column>header{padding:12px 6px 10px}.board-card-main{padding:14px 14px 10px}.board-card-meta,.board-finished,.board-move,.board-column>header span{font-size:12px}.board-card-actions{padding:6px 8px 8px 14px}.board-grip{width:44px;height:44px;font-size:20px}.board-move{min-height:44px;padding:0 26px 0 14px;font-size:13px}.board-finished input{max-width:160px;min-height:44px;font-size:16px}.board-error{padding:0 max(12px, var(--safe-left))}.highlights-toolbar{padding:14px max(12px, var(--safe-left)) 6px;grid-template-columns:1fr}.highlight-list{padding:6px max(12px, var(--safe-left)) calc(40px + var(--safe-bottom))}.highlight-card{padding:16px}.highlight-card>footer{flex-direction:column;align-items:stretch}.highlight-card>footer>div>*{flex:1;place-items:center;min-height:44px;display:grid}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
