:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans CJK SC,Microsoft YaHei,sans-serif;color:#182330;background:#f5f7fa;font-synthesis:none;--bg:#F5F7FA;--surface:#fff;--text:#182330;--muted:#5F6C7C;--line:#E6EBF0;--zh:#185991;--current:#F0F7FF;--primary:#183F64;--on-primary:#fff;--ja-size:18px;--zh-size:20px;color-scheme:light}:root[data-theme=dark]{--bg:#121820;--surface:#1B232E;--text:#EDF2F7;--muted:#BCC6D2;--line:#333D49;--zh:#AAD5FF;--current:#1B2C3D;--primary:#B3D8FA;--on-primary:#102C45;color-scheme:dark}@media(prefers-color-scheme:dark){:root[data-theme=system]{--bg:#121820;--surface:#1B232E;--text:#EDF2F7;--muted:#BCC6D2;--line:#333D49;--zh:#AAD5FF;--current:#1B2C3D;--primary:#B3D8FA;--on-primary:#102C45;color-scheme:dark}}:root[data-font=large]{--ja-size:22px;--zh-size:24px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.65;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5599d1;outline-offset:3px}button{color:inherit}#root{height:100vh;height:100dvh;overflow:hidden}.app{height:100%;max-width:880px;margin:0 auto;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);background:var(--bg)}.header{padding:24px max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left));flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--line)}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:600;letter-spacing:.4px}.brand i{font-style:normal;color:var(--muted);margin:0 3px}.brand-symbol{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--primary);color:var(--on-primary)}.header-actions{display:flex;gap:2px}.icon-button{width:44px;min-height:44px;border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--muted);flex-shrink:0}.icon-button:hover{background:var(--bg);color:var(--text)}.language-row{display:flex;align-items:center;gap:12px;padding:24px 0 19px}.lang-tag{font-size:14px;font-weight:500}.language-arrow{color:var(--muted)}.direction-note{margin-left:auto;color:var(--muted);font-size:12px}.status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid var(--line);font-size:13px}.status{display:flex;align-items:center;gap:8px;line-height:1.5;min-width:0}.status-dot{width:7px;height:7px;border-radius:50%;background:#8995a2;flex-shrink:0}.status-dot.listening{background:#347d66;box-shadow:0 0 0 4px #347d6610}.status-dot.reconnecting,.status-dot.starting,.status-dot.interrupted{background:#b47825}.status-dot.error{background:#bb4c49}.duration,.time{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}.duration{font-size:13px;flex-shrink:0}.reading-area{flex:1;min-height:0;position:relative}.subtitle-scroll{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;padding:0 20px}.empty{height:100%;min-height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:20px 0 32px}.empty-symbol{width:88px;height:88px;border-radius:28px;display:grid;place-items:center;color:var(--zh);background:var(--current);border:1px solid var(--line);margin-bottom:24px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted)}.empty h1{font-size:clamp(28px,6vw,36px);line-height:1.45;letter-spacing:1px;font-weight:500;margin:12px 0}.empty p{font-size:14px;color:var(--muted);line-height:1.9;margin:0}.empty-detail{display:flex;gap:18px;margin-top:26px;font-size:12px;color:var(--muted)}.virtual-list{position:relative;width:100%}.virtual-row{position:absolute;top:0;left:0;width:100%;padding-bottom:14px}.session-divider{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:12px;padding:23px 2px 5px}.segment{border-radius:16px;background:var(--surface);padding:18px 20px 20px;border:1px solid var(--line)}.segment.current{background:var(--current);border-color:color-mix(in srgb,var(--zh) 16%,var(--line))}.segment-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);min-height:24px}.segment-status{display:flex;gap:6px;align-items:center}.segment-status.complete{color:var(--muted)}.small-dot{width:5px;height:5px;background:var(--zh);border-radius:50%}.copy{margin-left:auto;min-height:28px;width:44px}.ja{font-size:var(--ja-size);line-height:1.65;margin:11px 0 15px;white-space:pre-wrap;overflow-wrap:anywhere}.translation{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding-top:13px}.language-mini{font-size:10px;border:1px solid color-mix(in srgb,var(--zh) 25%,transparent);color:var(--zh);border-radius:4px;padding:1px 4px;margin-top:6px;flex-shrink:0}.zh{font-size:var(--zh-size);color:var(--zh);line-height:1.65;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.placeholder{color:var(--muted);font-size:14px}.provisional{font-size:10px;color:var(--muted);margin-left:9px;white-space:nowrap}.group-note{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 0}.gap{border:1px dashed #bd914d;border-radius:12px;padding:12px 16px;font-size:12px;color:var(--muted)}.gap p{margin:6px 0 0}.latest{position:absolute;bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:center;min-height:44px;white-space:nowrap;border:1px solid var(--line);background:var(--surface);border-radius:30px;padding:0 16px;font-size:13px;box-shadow:0 4px 18px #0000000e}.latest span{color:var(--muted);font-size:11px}.controls{padding:17px max(20px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line);flex-shrink:0}.listening-indicator{display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:15px}.meter{display:flex;align-items:center;gap:3px;height:14px}.meter span{width:3px;height:5px;border-radius:2px;background:var(--line);transition:background .12s,height .12s}.meter span.lit{height:12px;background:var(--zh)}.primary{min-height:52px;display:flex;justify-content:center;align-items:center;gap:12px;width:100%;border:0;border-radius:14px;background:var(--primary);color:var(--on-primary);font-size:16px;font-weight:500}.main-button:hover{filter:brightness(1.08)}.main-button.running{background:var(--primary)}.control-help{text-align:center;color:var(--muted);font-size:11px;line-height:1.7;margin:10px 0 0}.foreground-note{text-align:center;font-size:10px;line-height:1.5;color:var(--muted);margin:9px 0 0}.demo-action{display:flex;justify-content:center;align-items:center;gap:12px;font-size:10px;color:var(--muted);margin-top:3px}.demo-action button{border:0;background:transparent;color:var(--zh);font-size:12px;min-height:44px;padding:0 4px}.demo-action button span{margin-left:3px}.demo-banner{padding:9px 20px;background:var(--current);font-size:12px;text-align:center;color:var(--zh);border-bottom:1px solid var(--line)}.error-notice{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:10px;background:var(--current);font-size:12px;line-height:1.6}.error-notice button{min-height:44px;white-space:nowrap;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--zh)}.notice{font-size:12px;color:var(--zh);display:flex;align-items:center;justify-content:space-between}.budget-warning{font-size:12px;color:#a96e22;margin:0 0 10px;text-align:center}.access-label{display:flex;gap:10px;align-items:center;font-size:12px;margin-bottom:10px}.access-label input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--bg)}.settings-sheet{padding:0;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:22px;width:calc(100% - 24px);max-width:540px;max-height:90vh;max-height:90dvh;overflow:hidden}.settings-sheet[open]{display:flex;flex-direction:column}.settings-sheet::backdrop{background:#10203070;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--line);flex-shrink:0}.sheet-head h2{font-size:20px;font-weight:600;margin:8px 0 0}.sheet-head .eyebrow{font-size:10px}.sheet-body{padding:24px;overflow:auto}.sheet-body fieldset{border:0;padding:0;margin:0 0 24px}.sheet-body legend,.sheet-body label{font-size:14px;font-weight:500;display:block;margin-bottom:12px}.choice-row{display:flex;gap:8px}.choice-row button{border:1px solid var(--line);background:var(--bg);border-radius:12px;min-height:48px;flex:1;font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px}.choice-row button.selected{border-color:var(--zh);color:var(--zh);background:var(--current)}.sheet-body select,.sheet-body textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);padding:12px;font-size:16px}.sheet-body select{margin-bottom:24px;min-height:48px}.sheet-body label span{font-size:12px;font-weight:400;color:var(--muted);margin-left:6px}.sheet-body textarea{resize:vertical;line-height:1.7}.field-help,.privacy-note{color:var(--muted);font-size:12px;line-height:1.8}.privacy-note{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.form-error{color:#bb4c49;font-size:13px}.sheet-footer{padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);flex-shrink:0}@media(min-width:700px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}.header{padding:28px 40px 0}.subtitle-scroll{padding:0 40px}.controls{padding-left:40px;padding-right:40px}.empty h1{font-size:40px}.segment{padding:22px 24px}}@media(max-width:360px){.header{padding-top:16px}.direction-note{display:none}.subtitle-scroll{padding:0 16px}.segment{padding:14px 16px}.empty-symbol{width:64px;height:64px;margin-bottom:14px}.empty{min-height:220px}.empty-detail{margin-top:16px}.controls{padding-top:12px;padding-left:16px;padding-right:16px}}@media(max-height:600px){.header{padding-top:8px}.language-row,.status-row{padding:8px 0}.empty{min-height:160px;padding:16px}.empty-symbol,.empty .eyebrow,.empty-detail,.foreground-note{display:none}.empty h1{font-size:24px;margin:0 0 8px}.controls{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.listening-indicator{margin-bottom:8px}.demo-action{position:absolute;top:8px;right:70px}.demo-action>span{display:none}.control-help{margin-top:5px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.split-reading{display:flex;flex-direction:column;gap:0;overflow:hidden}.subtitle-lane{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.subtitle-lane+.subtitle-lane{border-top:1px solid var(--line)}.lane-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 20px 8px;font-size:11px;color:var(--muted);flex-shrink:0;background:var(--bg)}.lane-language{color:var(--text);font-size:12px;font-weight:600}.zh-pane .lane-language{color:var(--zh)}.lane-scroll{flex:1;min-height:0;height:auto;position:relative;overflow-anchor:none}.lane-segment{padding:10px 14px 12px}.lane-segment .ja,.lane-segment .zh{margin:6px 0 0}.lane-segment .segment-meta{min-height:20px;font-size:11px;gap:8px}.caption-copy{border:0;background:transparent;color:var(--muted);font-size:11px;min-width:44px;min-height:44px;margin-left:auto;padding:4px}.lane-alignment{display:block;color:var(--muted);font-size:10px;margin-top:6px}.lane-empty{font-size:13px;color:var(--muted);text-align:center;padding:16px 0 0}.subtitle-lane .session-divider{padding:10px 2px 0;font-size:10px}.subtitle-lane .virtual-row{padding-bottom:8px}.split-reading .latest{bottom:10px;z-index:2}@media(min-width:700px){.lane-header{padding-left:40px;padding-right:40px}.lane-segment{padding:12px 18px}}@media(max-height:600px){.lane-header{padding-top:5px;padding-bottom:5px;font-size:10px}.lane-segment .segment-meta,.lane-alignment{display:none}.lane-segment{padding:6px 10px}.lane-segment .ja,.lane-segment .zh{margin:0}.subtitle-lane .session-divider{padding-top:5px}}.settings-sheet{max-height:calc(var(--visual-height, 100dvh) - 24px)}.brand{min-width:0}.brand-row{flex-wrap:wrap}.lang-tag{overflow-wrap:anywhere}.segment-meta{flex-wrap:wrap}@media(max-width:260px){.brand-symbol,.direction-note,.foreground-note,.control-help,.empty p,.empty-symbol{display:none}.brand{font-size:16px}.header{padding-left:12px;padding-right:12px}.header-actions{margin-left:auto}.language-row{gap:8px}.controls{padding:8px 12px}.listening-indicator{font-size:10px}.meter{display:none}.subtitle-scroll{padding:0 10px}.settings-sheet{width:calc(100% - 12px)}.sheet-head,.sheet-body,.sheet-footer{padding:12px}.choice-row{flex-wrap:wrap}.choice-row button{flex-basis:45%}.access-label{flex-direction:column;align-items:stretch}}.api-balance{padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--line)}.api-balance h3{font-size:14px;font-weight:500;margin:0 0 16px}.balance-line{display:flex;justify-content:space-between;gap:12px;font-size:13px;flex-wrap:wrap}.balance-line strong{font-weight:500;color:var(--muted)}.balance-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.balance-actions a{color:var(--zh);font-size:13px;line-height:44px}.balance-actions button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--current);color:var(--zh);padding:8px 16px;font-size:13px}.usage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 8px}.usage-grid div{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}.usage-grid dt{font-size:11px;color:var(--muted)}.usage-grid dd{font-size:16px;font-weight:600;margin:8px 0 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.key-settings>input{display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);padding:12px;font-size:16px;min-height:48px}.sheet-body .remember-key{display:flex;align-items:center;gap:10px;min-height:44px;margin:8px 0 0;font-size:13px;font-weight:400}.remember-key input{width:18px;height:18px;accent-color:var(--zh)}.edition-label,.tablet-preview{display:none}@media(min-width:700px)and (min-height:620px){.cloud-app{max-width:1600px;border:0;padding:env(safe-area-inset-top) max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));--ja-size:22px;--zh-size:24px}[data-font=large] .cloud-app{--ja-size:28px;--zh-size:30px}.cloud-app .header{position:relative;background:transparent;padding:26px 0 16px;border-bottom:0;display:grid;grid-template-columns:1fr auto;column-gap:24px}.cloud-app .brand-row{grid-column:1 / -1;flex-wrap:nowrap;margin-bottom:20px}.cloud-app .brand{font-size:23px;gap:12px}.cloud-app .brand-symbol{width:46px;height:46px;border-radius:15px}.cloud-app .edition-label{display:inline-flex;font-size:11px;font-weight:500;letter-spacing:1px;color:var(--muted);border-left:1px solid var(--line);padding-left:16px;margin-left:8px}.cloud-app .header-actions{gap:8px}.cloud-app .header-actions .icon-button{background:var(--surface);border:1px solid var(--line);width:48px;height:48px;border-radius:14px}.cloud-app .language-row{padding:0;gap:12px}.cloud-app .lang-tag{background:var(--surface);padding:9px 15px;border:1px solid var(--line);border-radius:10px;font-size:13px}.cloud-app .direction-note{margin-left:6px;font-size:11px}.cloud-app .status-row{padding:0;border:0;gap:18px;font-size:12px;max-width:360px}.cloud-app .duration{border-left:1px solid var(--line);padding-left:18px;font-size:14px}.cloud-app .reading-area{margin-bottom:18px}.cloud-app .split-reading{gap:16px}.cloud-app .subtitle-lane{border:1px solid var(--line);border-radius:22px;background:var(--surface)}.cloud-app .subtitle-lane+.subtitle-lane{border-top:1px solid var(--line)}.cloud-app .lane-header{padding:18px 24px;background:var(--surface);border-bottom:1px solid var(--line);font-size:11px}.cloud-app .lane-language{font-size:15px;letter-spacing:.5px}.cloud-app .zh-pane{background:color-mix(in srgb,var(--current) 40%,var(--surface))}.cloud-app .zh-pane .lane-header{background:transparent}.cloud-app .lane-scroll{padding:0 24px 14px}.cloud-app .lane-segment{padding:12px 0 20px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.cloud-app .lane-segment.current{background:var(--current);padding:12px 16px 20px;border-radius:14px;border:1px solid var(--line)}.cloud-app .lane-segment .ja,.cloud-app .lane-segment .zh{line-height:1.85;margin-top:8px}.cloud-app .session-divider{padding:14px 0 6px}.cloud-app .caption-copy{border-radius:8px}.cloud-app .caption-copy:hover{background:var(--bg);color:var(--zh)}.cloud-app .controls{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:4px 24px;border:1px solid var(--line);border-radius:20px 20px 0 0;padding:18px 24px calc(16px + env(safe-area-inset-bottom))}.cloud-app .listening-indicator{grid-column:1;grid-row:1;justify-content:flex-start;margin:0;font-size:13px}.cloud-app .meter{gap:4px;height:22px}.cloud-app .meter span{width:4px;height:7px}.cloud-app .meter span.lit{height:20px}.cloud-app .main-button{grid-column:2;grid-row:1 / span 2;min-height:58px;border-radius:16px}.cloud-app .control-help{grid-column:1;grid-row:2;text-align:left;margin:0;font-size:11px}.cloud-app .demo-action{grid-column:1;justify-content:flex-start;margin:0;gap:16px}.cloud-app .demo-action button{min-height:44px;padding:0;font-size:12px}.cloud-app .foreground-note{grid-column:2;text-align:right;align-self:center;margin:0;font-size:10px}.cloud-app .notice,.cloud-app .budget-warning{grid-column:1 / -1}.cloud-app .empty{display:none}.cloud-app .tablet-preview{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.cloud-app .preview-pane{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:22px;background:var(--surface);padding:22px 28px;overflow:auto}.cloud-app .preview-translation{background:color-mix(in srgb,var(--current) 60%,var(--surface))}.preview-heading{display:flex;flex-direction:column;gap:8px}.preview-heading>span{font-size:10px;letter-spacing:2px;color:var(--muted)}.preview-heading strong{font-size:16px;font-weight:600}.preview-translation .preview-heading strong{color:var(--zh)}.preview-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:18px 0}.preview-mark{font-size:40px;line-height:1.2;color:var(--muted);opacity:.55}.preview-translation .preview-mark{color:var(--zh)}.preview-content h2{font-size:24px;font-weight:500;line-height:1.5;margin:16px 0 10px;letter-spacing:.5px}.preview-content p{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.preview-lines{display:flex;flex-direction:column;gap:10px;margin-top:24px;max-width:320px}.preview-lines i{display:block;height:6px;border-radius:4px;background:var(--line)}.preview-lines i:nth-child(2){width:85%}.preview-lines i:nth-child(3){width:58%}.preview-foot{font-size:10px;color:var(--muted);letter-spacing:1px}.cloud-settings{margin:12px 12px 12px auto;width:460px;max-width:calc(100vw - 24px);height:calc(var(--visual-height,100dvh) - 24px);max-height:calc(var(--visual-height,100dvh) - 24px);border-radius:24px}.cloud-settings .sheet-head{padding:28px}.cloud-settings .sheet-body{padding:24px 28px;overscroll-behavior:contain}.cloud-settings .sheet-footer{padding-left:28px;padding-right:28px}}@media(min-width:1000px)and (min-height:620px){.cloud-app .split-reading,.cloud-app .tablet-preview{flex-direction:row}.cloud-app .subtitle-lane,.cloud-app .preview-pane{min-width:0}.cloud-app .preview-pane{padding:28px 32px}.cloud-app .preview-content h2{font-size:30px}.cloud-app .preview-mark{font-size:64px}.cloud-app .preview-content p{font-size:14px}}@media(min-width:700px)and (max-width:999px)and (min-height:620px){.cloud-app .header{column-gap:12px}.cloud-app .direction-note{display:none}.cloud-app .status-row{font-size:11px;max-width:280px;gap:12px}.cloud-app .preview-content{position:relative;padding:14px 0 12px 66px}.cloud-app .preview-mark{position:absolute;left:0;top:50%;transform:translateY(-50%)}.cloud-app .preview-content h2{font-size:22px;margin-top:0}.cloud-app .preview-lines{display:none}}
