:root{--color-bg: #eef2f8;--color-surface: #ffffff;--color-surface-muted: #f3f5f9;--color-border-raised: #dce3ef;--color-text: #16213a;--color-text-secondary: #5a6782;--color-ink-read: #16213a;--color-ink-pending: #8b95a7;--color-primary: #16213a;--color-on-primary: #ffffff;--color-accent: #1d4ed8;--color-accent-soft: #e8effd;--color-recording: #ea7a1f;--color-recording-soft: #fff1e6;--color-recording-text: #b4540c;--color-stop: #c2410c;--color-guide-soft: #fff1e6;--color-guide-text: #b4540c;--color-missed: #c2410c;--color-missed-underline: #ea7a1f;--color-success: #16a34a;--color-success-soft: #dcf5e4;--color-success-text: #15803d;--color-warning: #ea7a1f;--color-warning-soft: #fff1e6;--color-warning-text: #b4540c;--color-danger: #c2410c;--color-surface-sunken: #f7f9fc;--color-border-dashed: #c9d2e0;--color-divider: #eef1f6;--color-handle: #d5ddea;--color-avatar: #dde5f2;--color-scrim: rgba(22, 33, 58, .36);--color-focus-ring: color-mix(in srgb, var(--color-accent) 45%, transparent);--shadow-raised: 0 24px 60px rgba(22, 33, 58, .12);--shadow-floating: 0 12px 40px rgba(22, 33, 58, .12);--shadow-card-raised: 0 10px 24px rgba(22, 33, 58, .1), 0 2px 4px rgba(22, 33, 58, .06);--shadow-overlay: 0 24px 60px rgba(22, 33, 58, .18);--shadow-drawer: -16px 0 40px rgba(22, 33, 58, .16);--shadow-segment: 0 1px 2px rgba(22, 33, 58, .12);--shadow-bar: 0 4px 16px rgba(22, 33, 58, .08);--opacity-locked: .45;--font-sans: "Plus Jakarta Sans", "Noto Sans TC", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text)}button,select,input{font-family:inherit}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:1440px;margin:0 auto;padding:0 48px 40px}.app-body{display:flex;flex:1;flex-direction:column;gap:16px;padding-top:8px}.icon-button{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:12px;background:var(--color-surface-muted);color:var(--color-text);cursor:pointer}.icon-button.labeled{gap:8px;width:auto;padding:0 16px;font-size:14px;font-weight:600}.is-locked{opacity:var(--opacity-locked)}.tool-button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:12px;background:var(--color-surface);color:var(--color-text);font-size:15px;font-weight:600;cursor:pointer}.tool-button.icon-only{justify-content:center;width:44px;height:44px;padding:0}.tool-button.muted{color:var(--color-text-secondary)}.tool-button[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent)}.tool-button:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.status-dot{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--status-color)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}:root{--status-color: var(--color-ink-pending)}.tone-info{--status-color: var(--color-accent)}.tone-success{--status-color: var(--color-success)}.tone-warning{--status-color: var(--color-warning)}.tone-danger{--status-color: var(--color-danger)}:root:fullscreen,:root:-webkit-full-screen{background:var(--color-bg)}.app.immersive{max-width:none;padding:0}.app.immersive .app-body{padding-top:0}.app.immersive .app-header,.app.immersive .mobile-tab-bar{display:none}@media (max-width: 767px){.app{padding:0 16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.brand-logo{--brand-mark-size: 44px;display:inline-flex;align-items:center;gap:12px;color:var(--color-text)}.brand-logo-mark{display:flex;align-items:center;justify-content:center;width:var(--brand-mark-size);height:var(--brand-mark-size);border-radius:calc(var(--brand-mark-size) * .32);background:var(--color-primary);color:var(--color-on-primary)}.brand-logo-mark svg{width:20px;height:20px}.brand-logo-name{font-size:24px;font-weight:800}.sign-in-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"brand showcase" "intro showcase" "actions showcase";align-content:center;column-gap:clamp(32px,4.5vw,64px);row-gap:32px;box-sizing:border-box;max-width:1440px;min-height:100vh;margin:0 auto;padding:48px clamp(32px,6.5vw,96px);color:var(--color-text)}.sign-in-brand{grid-area:brand}.sign-in-intro{display:flex;flex-direction:column;gap:16px;grid-area:intro}.sign-in-headline{margin:0;font-size:clamp(40px,3.9vw,56px);font-weight:800;line-height:1.15;letter-spacing:-.02em;white-space:pre-line}.sign-in-lede{max-width:480px;margin:0;color:var(--color-text-secondary);font-size:18px;line-height:1.6}.sign-in-lede-short{display:none}.sign-in-showcase{display:flex;flex-direction:column;gap:20px;grid-area:showcase;align-self:center}.sign-in-preview{display:flex;flex-direction:column;gap:24px;padding:36px 40px;border-radius:28px;background:var(--color-surface);box-shadow:var(--shadow-raised)}.sign-in-preview-top{display:flex;align-items:center;justify-content:space-between}.sign-in-preview-position{display:flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent);font-size:14px;font-weight:700}.sign-in-preview-listening{display:flex;align-items:center;gap:6px;color:var(--color-recording-text);font-size:14px;font-weight:700}.sign-in-preview-dot{width:8px;height:8px;border-radius:50%;background:var(--color-recording);animation:sign-in-pulse 1.4s ease-in-out infinite}.sign-in-preview-sentence{margin:0;font-size:36px;font-weight:700;line-height:1.38;letter-spacing:-.015em}.sign-in-preview-sentence .ink-read{color:var(--color-ink-read)}.sign-in-preview-sentence .ink-pending{color:var(--color-ink-pending)}.sign-in-preview-wave{display:flex;align-items:center;justify-content:center;gap:4px;height:40px;color:var(--color-recording)}.sign-in-preview-wave span{display:block;width:3px;border-radius:2px;background:currentColor;transform-origin:center;animation:sign-in-wave 1.1s ease-in-out infinite}.sign-in-preview-wave span:nth-child(3n){animation-delay:-.3s}.sign-in-preview-wave span:nth-child(3n+1){animation-delay:-.7s}.sign-in-preview-wave span:nth-child(4n){animation-delay:-.5s}.sign-in-preview-wave span:nth-child(5n){animation-delay:-.9s}.sign-in-features{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0 8px;list-style:none}.sign-in-features li{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;background:var(--color-surface);font-size:14px;font-weight:600}.sign-in-features svg{width:14px;height:14px;color:var(--color-success)}.sign-in-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;grid-area:actions}.sign-in-notice{display:flex;gap:12px;box-sizing:border-box;width:100%;max-width:480px;padding:14px 16px;border-radius:16px;background:var(--color-warning-soft);color:var(--color-text)}.sign-in-notice-icon{flex-shrink:0;width:20px;height:20px;color:var(--color-danger)}.sign-in-notice-body{display:flex;flex-direction:column;gap:4px;min-width:0}.sign-in-notice-body strong{font-size:15px}.sign-in-notice-body span{color:var(--color-text-secondary);font-size:13px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.sign-in-button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px;padding:0 28px;border:0;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font-size:17px;font-weight:700;cursor:pointer}.sign-in-button svg{width:18px;height:18px}.sign-in-button:disabled{opacity:var(--opacity-locked);cursor:progress}.sign-in-button:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 45%,transparent);outline-offset:2px}.sign-in-account{color:var(--color-text-secondary);font-size:14px;overflow-wrap:anywhere}.sign-in-text-button{padding:4px 0;border:0;background:none;color:var(--color-text-secondary);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}.sign-in-text-button:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 45%,transparent);outline-offset:2px}.sign-in-invite-only{display:flex;flex-direction:column;gap:2px;margin:0;color:var(--color-text-secondary);font-size:14px}.sign-in-invite-only a{color:var(--color-accent);text-decoration:none}.sign-in-invite-only a:hover,.sign-in-invite-only a:focus-visible{text-decoration:underline}.auth-pending{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:100vh;margin:0;color:var(--color-text-secondary)}.auth-pending p{margin:0;font-size:15px}@keyframes sign-in-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes sign-in-wave{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@media (max-width: 767px){.sign-in-page{display:flex;flex-direction:column;gap:28px;align-content:normal;padding:40px 24px 32px}.sign-in-page .brand-logo{--brand-mark-size: 40px;gap:10px}.sign-in-page .brand-logo-name{font-size:22px}.sign-in-intro{gap:12px}.sign-in-headline{font-size:32px;line-height:1.25}.sign-in-lede{font-size:16px}.sign-in-lede-long{display:none}.sign-in-lede-short{display:inline}.sign-in-preview{gap:15px;padding:22px 24px;border-radius:18px}.sign-in-preview-position,.sign-in-preview-listening{font-size:12px}.sign-in-preview-position{min-height:24px;padding:0 10px}.sign-in-preview-sentence{font-size:22px}.sign-in-preview-wave{height:25px}.sign-in-features{display:none}.sign-in-actions{align-items:stretch}.sign-in-notice{max-width:none}.sign-in-button{font-size:16px}.sign-in-account,.sign-in-text-button,.sign-in-invite-only{text-align:center;font-size:13px}}.app-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}.app-header .brand-logo{--brand-mark-size: 36px;gap:10px}.app-header .brand-logo-name{font-size:20px}.app-header-start{display:flex;align-items:center;gap:40px}.app-header-nav{display:flex;align-items:center;gap:12px}.app-header-tools{display:flex;align-items:center;gap:10px}.tab-switch{display:flex;gap:4px;padding:4px;background:var(--color-surface);border-radius:14px}.tab-switch button{display:flex;align-items:center;min-height:40px;padding:0 18px;border:0;border-radius:10px;background:transparent;color:var(--color-text-secondary);font-size:15px;font-weight:600;cursor:pointer}.tab-switch button[aria-current=page]{background:var(--color-primary);color:var(--color-on-primary)}.tab-switch button:disabled{cursor:not-allowed}.guide-button{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 18px 0 14px;border:0;border-radius:14px;background:var(--color-guide-soft);color:var(--color-guide-text);font-size:15px;font-weight:700;cursor:pointer}.guide-button.compact{justify-content:center;width:44px;height:44px;min-height:0;padding:0;border-radius:12px}.guide-button:disabled{cursor:not-allowed}.connection-pill{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font-size:14px}.account-menu{position:relative}.account-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:12px;background:var(--color-avatar);color:var(--color-text);font-size:14px;font-weight:700;cursor:pointer}.account-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:30;display:flex;flex-direction:column;gap:10px;min-width:220px;padding:14px;background:var(--color-surface);border:1px solid var(--color-border-raised);border-radius:16px;box-shadow:var(--shadow-overlay)}.account-email{overflow:hidden;color:var(--color-text-secondary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.account-popover button{min-height:40px;border:0;border-radius:10px;background:var(--color-surface-muted);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer}.account-popover button:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.app-header.phone{gap:8px;min-height:0;padding:14px 0 8px}.app-header.phone .app-header-tools{gap:6px;flex-shrink:0}.app-header.phone .status-dot{margin-right:4px}.corpus-name-button{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:0 14px;border:0;border-radius:14px;background:var(--color-surface);color:var(--color-text);font-size:15px;font-weight:700;cursor:pointer}.corpus-name-button svg{flex-shrink:0;color:var(--color-text-secondary)}.corpus-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.corpus-name-button:disabled{cursor:not-allowed}.app-header-title{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:flex-end;background:var(--color-scrim)}.diagnostics-drawer{display:flex;flex-direction:column;gap:20px;width:min(560px,100%);height:100%;padding:28px;overflow-y:auto;background:var(--color-surface);box-shadow:var(--shadow-drawer)}.diagnostics-drawer:focus{outline:none}.diagnostics-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.diagnostics-heading{display:flex;flex-direction:column;gap:2px}.diagnostics-heading h2{margin:0;font-size:18px;font-weight:800}.diagnostics-heading span{color:var(--color-text-secondary);font-size:13px}.diagnostics-actions{display:flex;gap:8px}.diagnostics-copy{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:0;border-radius:12px;background:var(--color-primary);color:var(--color-on-primary);font-size:14px;font-weight:700;cursor:pointer}.diagnostics-copy-error{margin:-8px 0 0;color:var(--color-warning-text);font-size:13px}.diagnostics-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.diagnostics-panel{display:flex;flex-direction:column;padding:12px 16px;background:var(--color-surface-muted);border-radius:14px;font-size:14px}.diagnostics-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px}.diagnostics-status-row>span,.diagnostics-panel.metrics>span>span{color:var(--color-text-secondary)}.diagnostics-status-row strong{display:flex;align-items:center;gap:8px}.diagnostics-panel.metrics{gap:10px;padding:14px 16px}.diagnostics-panel.metrics>span{display:flex;justify-content:space-between;gap:12px}.diagnostics-panel.metrics strong{min-width:0;overflow:hidden;font-family:var(--font-mono);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.diagnostics-section{display:flex;flex-direction:column;gap:8px;min-height:0}.diagnostics-section.grow{flex:1}.diagnostics-section h3{margin:0;font-size:14px;font-weight:700}.diagnostics-log{margin:0;max-height:260px;padding:0 12px;overflow-y:auto;list-style:none;background:var(--color-surface-muted);border-radius:14px}.diagnostics-section.grow .diagnostics-log{flex:1;max-height:none;min-height:160px}.diagnostics-log li{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--color-divider);font-family:var(--font-mono);font-size:12px;line-height:1.5}.diagnostics-log li:last-child{border-bottom:0}.diagnostics-log code{flex-shrink:0;min-width:64px;color:var(--color-text-secondary);font-family:inherit}.diagnostics-log li>span:last-child{min-width:0;overflow-wrap:anywhere}.diagnostics-tag{flex-shrink:0;padding:0 6px;border-radius:4px;background:var(--color-surface);color:var(--color-text-secondary)}.diagnostics-tag.final{background:var(--color-success-soft);color:var(--color-success-text)}@media (max-width: 767px){.diagnostics-drawer{padding:20px 16px}.diagnostics-summary{grid-template-columns:1fr}}.mobile-tab-bar{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:auto;margin-bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-bar);padding:4px;background:var(--color-surface);border-radius:16px}.mobile-tab-bar button{display:flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:12px;background:transparent;color:var(--color-text-secondary);font-size:15px;font-weight:600;cursor:pointer}.mobile-tab-bar button[aria-current=page]{background:var(--color-primary);color:var(--color-on-primary)}.mobile-tab-bar button:disabled{cursor:not-allowed}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;justify-content:flex-end;background:var(--color-scrim)}.sheet{display:flex;flex-direction:column;gap:16px;max-height:calc(100dvh - 48px);padding:12px 20px calc(24px + env(safe-area-inset-bottom));background:var(--color-surface);border-radius:26px 26px 0 0}.sheet:focus{outline:none}.sheet-handle{align-self:center;width:40px;height:4px;border-radius:2px;background:var(--color-handle)}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.sheet-title{margin:0;font-size:17px;font-weight:800}.sheet-subtitle{color:var(--color-text-secondary);font-size:13px}.sheet-body{flex:1;min-height:0;overflow-y:auto}.settings-column{display:flex;flex-direction:column;gap:24px;padding:24px;background:var(--color-surface);border-radius:28px;box-shadow:var(--shadow-floating)}.settings-column-header{display:flex;align-items:center;justify-content:space-between}.settings-column-header h2{margin:0;font-size:17px;font-weight:800}.settings-fields{display:flex;flex-direction:column;gap:24px}.settings-field{display:flex;flex-direction:column;gap:10px}.settings-label{color:var(--color-text-secondary);font-size:13px;font-weight:700}.settings-hint{color:var(--color-text-secondary);font-size:13px}.settings-strictness{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}.settings-strictness legend{margin-bottom:10px;padding:0}.settings-strictness-option{display:flex;gap:12px;padding:12px 14px;border-radius:14px;cursor:pointer}.settings-strictness-option.selected{background:var(--color-accent-soft)}.settings-strictness-option input{margin-top:3px;accent-color:var(--color-primary)}.settings-strictness:disabled .settings-strictness-option{opacity:var(--opacity-locked);cursor:not-allowed}.settings-strictness-text,.settings-switch-text{display:flex;flex-direction:column;gap:2px}.settings-strictness-text strong,.settings-switch-text strong{font-size:15px;font-weight:700}.settings-strictness-text span,.settings-switch-text span{color:var(--color-text-secondary);font-size:13px;line-height:1.5}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:var(--color-surface-muted);border-radius:14px}.segmented button{min-height:40px;border:0;border-radius:10px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer}.segmented button[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);font-weight:700;box-shadow:var(--shadow-segment)}.segmented button:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.settings-switch-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--color-divider);cursor:pointer}.switch{position:relative;flex-shrink:0;width:44px;height:24px;margin:0;border-radius:999px;background:var(--color-handle);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:background .15s ease}.switch:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--color-surface);box-shadow:var(--shadow-segment);transition:transform .15s ease}.switch:checked{background:var(--color-primary)}.switch:checked:before{transform:translate(20px)}.switch:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.settings-done{margin-top:auto;min-height:48px;border:0;border-radius:14px;background:var(--color-primary);color:var(--color-on-primary);font-size:15px;font-weight:700;cursor:pointer}.settings-done.compact{margin-top:0;min-height:44px;padding:0 16px;border-radius:12px;font-size:14px}.settings-account{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--color-divider)}.settings-account span{min-width:0;overflow:hidden;color:var(--color-text-secondary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.settings-account button{flex-shrink:0;min-height:44px;padding:0 16px;border:0;border-radius:12px;background:var(--color-surface-muted);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer}.settings-account button:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.primary-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.step-button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;border:0;background:transparent;color:var(--color-text);font-size:16px;font-weight:600;cursor:pointer}.step-button.prev{color:var(--color-text-secondary)}.step-button:disabled{color:var(--color-ink-pending);cursor:not-allowed}.primary-controls.phone .step-button{flex-shrink:0;justify-content:center;width:52px;height:52px;padding:0;border-radius:50%;background:var(--color-surface);color:var(--color-text)}.primary-controls.phone .step-button:disabled{opacity:var(--opacity-locked);color:var(--color-text)}.primary-action{display:flex;align-items:center;justify-content:center;gap:12px;min-height:60px;padding:0 32px;border:0;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font-size:17px;font-weight:700;cursor:pointer;transition:background .15s ease}.primary-action[data-tone=stop]{background:var(--color-stop)}.primary-action[data-tone=pending]{background:color-mix(in srgb,var(--color-primary) 85%,var(--color-on-primary))}.primary-action:disabled{cursor:not-allowed}.primary-action[data-tone=primary]:disabled{opacity:var(--opacity-locked)}.primary-controls.phone .primary-action{flex-grow:1;gap:10px;min-height:56px;padding:0 16px;font-size:16px}.primary-action-spinner{width:16px;height:16px;border:2px solid color-mix(in srgb,var(--color-on-primary) 35%,transparent);border-top-color:var(--color-on-primary);border-radius:50%;animation:primary-action-spin .9s linear infinite}@keyframes primary-action-spin{to{transform:rotate(360deg)}}.waveform{--waveform-height: 44px;display:flex;align-items:center;justify-content:center;gap:4px;height:var(--waveform-height);color:var(--color-recording)}.waveform-rest{width:120px;height:2px;border-radius:1px;background:var(--color-border-raised)}.waveform-bar{flex-shrink:0;width:3px;height:calc(var(--waveform-height) * var(--bar-weight));border-radius:2px;background:currentColor;transform:scaleY(calc(.2 + .8 * var(--waveform-level, 0)));transform-origin:center;transition:transform 80ms linear}@media (max-width: 767px){.waveform{--waveform-height: 36px}.waveform-rest{width:80px}}.reading-tag{display:flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:14px;font-weight:600;white-space:nowrap}.reading-tag.position{background:var(--color-accent-soft);color:var(--color-accent);font-weight:700}.reading-badge-slot{display:flex;align-items:center;gap:10px}.reading-badge{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:700;white-space:nowrap}.reading-badge.listening{background:var(--color-recording-soft);color:var(--color-recording-text)}.reading-badge.complete{background:var(--color-success-soft);color:var(--color-success-text)}.reading-badge.preparing{padding:0;color:var(--color-accent)}.reading-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--color-recording);animation:reading-pulse 1.4s ease-in-out infinite}.reading-badge-spinner{width:12px;height:12px;border:2px solid var(--color-accent-soft);border-top-color:var(--color-accent);border-radius:50%;animation:reading-spin .9s linear infinite}.reading-notice{display:flex;gap:12px;padding:14px;border-radius:14px;background:var(--color-warning-soft)}.reading-notice>svg{flex-shrink:0;color:var(--color-danger)}.reading-notice.info{padding:12px 14px;background:var(--color-accent-soft)}.reading-notice-text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.reading-notice.info .reading-notice-text{gap:2px}.reading-notice-text strong{font-size:15px}.reading-notice-text span{color:var(--color-text-secondary);font-size:13px;line-height:1.5}.reading-notice-text .reading-notice-raw{color:var(--color-danger);font-size:14px;white-space:pre-line;overflow-wrap:anywhere}.reading-notice-action{margin-top:6px;min-height:36px;padding:0 14px;border:0;border-radius:10px;background:var(--color-surface);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer}.reading-notice-action:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.reading-reveal{display:grid;grid-template-rows:1fr;margin-top:calc(-1 * var(--reading-gap));animation:reading-reveal .2s ease-out .4s backwards}.reading-reveal>div{min-height:0;overflow:hidden}.reading-reveal .reading-notice{margin-top:var(--reading-gap)}.reading-sentence{margin:0;color:var(--color-ink-pending);font-size:46px;font-weight:700;line-height:1.38;letter-spacing:-.015em;overflow-wrap:anywhere}.ink{transition:color .12s ease}.ink.read{color:var(--color-ink-read)}.ink.missed{color:var(--color-missed);text-decoration:underline solid var(--color-missed-underline);text-decoration-thickness:3px;text-underline-offset:.2em}.reading-empty{margin:0;color:var(--color-text-secondary);font-size:18px}.reading-strip{display:flex;align-items:center;justify-content:center;min-height:56px}.reading-gap{display:flex;flex-direction:column;align-items:center;gap:12px}.reading-gap-bar{width:min(320px,100%);height:6px;overflow:hidden;border-radius:3px;background:var(--color-surface-muted)}.reading-gap-bar span{display:block;height:100%;background:var(--color-primary);transform-origin:left;animation:reading-gap-fill var(--gap-duration) linear forwards}.reading-gap-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;color:var(--color-text-secondary);font-size:15px;font-weight:600}.autoadvance-pill{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer}.autoadvance-pill input{margin:0;accent-color:var(--color-primary)}.reading-settled{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;margin:0;color:var(--color-text-secondary);font-size:15px;text-align:center}.reading-settled-rate{color:var(--color-text);font-size:18px}.reading-settled-divider{width:1px;height:18px;background:var(--color-border-raised)}.reading-settled-missed{color:var(--color-missed)}@keyframes reading-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes reading-spin{to{transform:rotate(360deg)}}@keyframes reading-reveal{0%{grid-template-rows:0fr;opacity:0}}@keyframes reading-gap-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.immersive-stage{--reading-gap: 16px;display:flex;flex:1;flex-direction:column;gap:var(--reading-gap);min-width:0;padding:clamp(24px,3vw,40px) clamp(20px,5vw,72px) clamp(24px,3.5vw,48px);background:var(--color-surface)}.immersive-stage.phone{--reading-gap: 12px;padding:16px 16px 24px}.immersive-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px}.immersive-label,.immersive-tools{display:flex;align-items:center;gap:12px}.immersive-label{gap:16px}.immersive-guide{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:999px;background:var(--color-guide-soft);color:var(--color-guide-text);font-size:14px;font-weight:700;white-space:nowrap}.immersive-segments{display:flex;gap:6px}.immersive-segments span{width:28px;height:6px;border-radius:3px;background:var(--color-border-raised)}.immersive-segments span.filled{background:var(--color-primary)}.immersive-stage.phone .immersive-segments span{width:20px}.immersive-stage .reading-badge.listening{padding:0;background:transparent;font-size:15px}.immersive-body{display:flex;flex:1;align-items:center;justify-content:center;min-height:180px}.immersive-stage .reading-sentence{max-width:1100px;font-size:clamp(32px,4.5vw,64px)}.immersive-stage:not(.phone) .waveform{--waveform-height: 56px}.immersive-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:20px;margin-top:12px}.immersive-stage:not(.phone) .primary-action{min-height:64px}.immersive-stage .primary-action[data-tone=stop]{box-shadow:0 0 0 6px var(--color-recording-soft)}.immersive-stage .autoadvance-pill{min-height:44px;padding:0 14px}.immersive-stage.phone .immersive-controls{flex-direction:column;align-items:stretch;gap:12px;margin-top:4px}.immersive-stage.phone .autoadvance-pill{align-self:center}.corpus-card-menu{position:relative}.corpus-card-manage{display:flex;align-items:center;justify-content:center;width:36px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--color-text-secondary);cursor:pointer}.corpus-card-manage:hover:not(:disabled),.corpus-card-manage.open{background:var(--color-surface-muted);color:var(--color-text)}.corpus-card-manage:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.corpus-card-popover{position:absolute;right:0;bottom:calc(100% + 8px);z-index:30;display:flex;flex-direction:column;gap:4px;min-width:176px;padding:8px;background:var(--color-surface);border:1px solid var(--color-border-raised);border-radius:16px;box-shadow:var(--shadow-floating)}.corpus-menu-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--color-text);font-size:14px;font-weight:600;white-space:nowrap;text-align:left;cursor:pointer}.corpus-menu-item:hover{background:var(--color-surface-muted)}.corpus-menu-item.danger{color:var(--color-danger)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--color-scrim)}.dialog{display:flex;flex-direction:column;width:min(680px,100%);max-height:min(760px,100%);overflow:hidden;background:var(--color-surface);border-radius:28px;box-shadow:var(--shadow-overlay)}.dialog:focus{outline:none}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 18px 28px;border-bottom:1px solid var(--color-divider)}.dialog-heading{display:flex;flex-direction:column;gap:4px;min-width:0}.dialog-eyebrow{color:var(--color-text-secondary);font-size:13px;font-weight:600}.dialog-title{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em}.dialog-body{flex:1;min-height:0;overflow-y:auto;padding:14px 18px}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px 20px 28px;border-top:1px solid var(--color-divider)}.corpus-dialog-body{display:flex;flex-direction:column;gap:14px;padding:6px 8px}.corpus-field{display:flex;flex-direction:column;gap:8px}.corpus-field-label{color:var(--color-text);font-size:14px;font-weight:700}.corpus-field-input{width:100%;min-height:46px;padding:0 14px;border:1.5px solid var(--color-border-raised);border-radius:14px;background:var(--color-surface-sunken);color:var(--color-text);font-size:15px;font-weight:600}.corpus-field-input:disabled{opacity:var(--opacity-locked)}.corpus-field-hint{color:var(--color-text-secondary);font-size:13px}.corpus-delete-detail{margin:0;color:var(--color-text);font-size:15px;line-height:1.6;overflow-wrap:anywhere}.corpus-dialog-error{display:flex;gap:8px;margin:0;padding:12px 14px;border-radius:14px;background:var(--color-warning-soft);color:var(--color-danger);font-size:13px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.corpus-dialog-error svg{flex-shrink:0;margin-top:1px}.corpus-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;width:100%}.corpus-dialog-actions.phone{display:grid;grid-template-columns:1fr 1fr}.corpus-dialog-button{min-height:44px;padding:0 20px;border:0;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer}.corpus-dialog-actions.phone .corpus-dialog-button{min-height:50px;border-radius:999px}.corpus-dialog-button.secondary{background:var(--color-surface-muted);color:var(--color-text)}.corpus-dialog-button.primary{background:var(--color-primary);color:var(--color-on-primary)}.corpus-dialog-button.danger{background:var(--color-danger);color:var(--color-on-primary)}.corpus-dialog-button:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.sentence-warnings{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:14px 16px;background:var(--color-warning-soft);border-radius:16px}.sentence-warnings strong{display:flex;align-items:center;gap:6px;color:var(--color-warning-text);font-size:14px;font-weight:700}.sentence-warnings span{color:var(--color-text-secondary);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.sentence-rows{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.sentence-row{display:flex;align-items:flex-start;gap:12px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--color-text);font-size:15px;line-height:1.5;text-align:left}button.sentence-row{cursor:pointer}button.sentence-row:disabled{cursor:not-allowed}.sentence-row.done{color:var(--color-text-secondary)}.sentence-row.current{background:var(--color-surface);border-color:var(--color-border-raised);box-shadow:var(--shadow-card-raised);font-weight:700}.sentence-row-badge{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:13px;font-weight:700}.sentence-row-badge.done{background:var(--color-success-soft);color:var(--color-success-text)}.sentence-row-badge.current{background:var(--color-primary);color:var(--color-on-primary);font-weight:800}.sentence-row-text{padding-top:3px}.sentence-list-note{color:var(--color-text-secondary);font-size:14px}.sentence-list-primary{flex-shrink:0;min-height:44px;padding:0 20px;border:0;border-radius:12px;background:var(--color-primary);color:var(--color-on-primary);font-size:15px;font-weight:700;cursor:pointer}.sentence-list-primary.wide{width:100%;min-height:52px;border-radius:999px;font-size:16px}.sentence-list-primary:disabled{opacity:var(--opacity-locked);cursor:not-allowed}@media (max-width: 767px){.sentence-row{padding:8px 10px;font-size:14px}.sentence-row-badge{width:26px;height:26px;font-size:12px}.sentence-row-text{padding-top:2px}}.library{display:grid;grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:24px}.library.phone{grid-template-columns:minmax(0,1fr)}.library-main{display:flex;flex-direction:column;gap:20px;min-width:0}.library.phone .library-main{gap:12px}.library-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.library-heading>div{display:flex;flex-direction:column;gap:6px}.library-heading h1{margin:0;font-size:32px;font-weight:800;letter-spacing:-.02em}.library-heading span{color:var(--color-text-secondary);font-size:15px}.library-degraded{display:flex;gap:12px;padding:14px 16px;background:var(--color-warning-soft);border-radius:18px}.library-degraded>svg{flex-shrink:0;color:var(--color-danger)}.library-degraded>span{display:flex;flex-direction:column;gap:4px}.library-degraded strong{font-size:15px}.library-degraded span span{color:var(--color-text-secondary);font-size:13px;line-height:1.5}.corpus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));align-content:start;gap:20px}.library.phone .corpus-grid{grid-template-columns:minmax(0,1fr);gap:12px}.corpus-card{display:flex;flex-direction:column;gap:12px;padding:22px;background:var(--color-surface);border:1px solid transparent;border-radius:22px}.library.phone .corpus-card{padding:18px}.corpus-card.current{border-color:var(--color-border-raised);box-shadow:var(--shadow-card-raised)}.corpus-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.corpus-card-title{display:flex;flex-direction:column;gap:4px;min-width:0}.corpus-card-title h2{margin:0;font-size:17px;font-weight:800;overflow-wrap:anywhere}.corpus-card-title span{color:var(--color-text-secondary);font-size:13px}.corpus-tag{display:flex;flex-shrink:0;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px;font-weight:600}.corpus-tag.current{background:var(--color-accent-soft);color:var(--color-accent);font-weight:700}.corpus-card-preview{display:-webkit-box;margin:0;overflow:hidden;color:var(--color-text-secondary);font-size:15px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.corpus-card-warnings{display:flex;align-items:center;gap:6px;color:var(--color-warning-text);font-size:13px;font-weight:600}.corpus-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.corpus-card-practice{min-height:44px;padding:0 18px;border:0;border-radius:12px;background:var(--color-surface-muted);color:var(--color-text);font-size:14px;font-weight:700;cursor:pointer}.corpus-card.current .corpus-card-practice{background:var(--color-primary);color:var(--color-on-primary)}.corpus-card-practice:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.corpus-card-view{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;border:0;border-radius:12px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer}.corpus-card-secondary-actions{display:flex;align-items:center;gap:2px}.library-add{position:sticky;top:16px;display:flex;flex-direction:column;gap:16px;min-height:min(720px,calc(100dvh - 140px));padding:24px;background:var(--color-surface);border-radius:28px}.library-add-heading{display:flex;flex-direction:column;gap:4px}.library-add-heading h2{margin:0;font-size:17px;font-weight:800}.library-add-heading span{color:var(--color-text-secondary);font-size:14px;line-height:1.5}.corpus-dropzone{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:180px;padding:20px;border:2px dashed var(--color-border-dashed);border-radius:20px;background:var(--color-surface-sunken);color:var(--color-text);cursor:pointer}.corpus-dropzone.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.corpus-dropzone strong{font-size:15px}.corpus-dropzone>span:last-child{color:var(--color-accent);font-size:14px;font-weight:600}.corpus-dropzone:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.corpus-add-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--color-accent-soft);color:var(--color-accent)}.corpus-add-icon.large{width:48px;height:48px;border-radius:14px}.corpus-format{display:flex;flex-direction:column;gap:8px}.corpus-format>span{color:var(--color-text-secondary);font-size:13px;font-weight:700}.corpus-format pre{margin:0;padding:14px 16px;overflow-x:auto;border-radius:16px;background:var(--color-surface-muted);color:var(--color-text);font-family:var(--font-mono);font-size:13px;line-height:1.6}.library-add-limits{color:var(--color-text-secondary);font-size:13px}.upload-feedback{display:flex;flex-direction:column;gap:8px}.upload-feedback-item{display:flex;gap:8px;margin:0;padding:12px 14px;border-radius:14px;background:var(--color-warning-soft);color:var(--color-warning-text);font-size:13px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.upload-feedback-item.error{color:var(--color-danger)}.upload-feedback-item svg{flex-shrink:0;margin-top:1px}.corpus-add-row{display:flex;flex-shrink:0;align-items:center;gap:14px;min-height:68px;padding:0 14px;border:1.5px dashed var(--color-border-dashed);border-radius:18px;background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer}.corpus-add-row>svg{color:var(--color-text-secondary)}.corpus-add-row:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.corpus-add-row-text{display:flex;flex:1;flex-direction:column;gap:2px}.corpus-add-row-text strong{font-size:16px;font-weight:800}.corpus-add-row-text span{color:var(--color-text-secondary);font-size:13px}.library-add-sheet{display:flex;flex-direction:column;gap:16px}.corpus-pick{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;border:0;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font-size:16px;font-weight:700;cursor:pointer}.corpus-pick:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.sheet-text-button{flex-shrink:0;min-height:44px;padding:0 14px;border:0;border-radius:12px;background:var(--color-surface-muted);color:var(--color-text);font-size:15px;font-weight:600;cursor:pointer}.playlist{display:flex;flex:1;flex-direction:column;gap:12px;min-height:min(720px,calc(100dvh - 140px));padding:24px 20px 20px;background:var(--color-surface);border-radius:28px}.playlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 6px 4px}.playlist-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.playlist-heading span{overflow:hidden;color:var(--color-text-secondary);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.playlist-heading h2{margin:0;font-size:17px;font-weight:800}.playlist-progress{flex-shrink:0;color:var(--color-text-secondary);font-size:13px;font-weight:700}.playlist-more,.playlist-foot>span{color:var(--color-text-secondary);font-size:13px}.playlist-more{min-height:1.4em;padding:0 6px}.playlist-rows{display:flex;flex:1;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.playlist-row{display:flex;align-items:flex-start;gap:12px;width:100%;min-height:72px;padding:12px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--color-text);font-size:15px;line-height:1.5;text-align:left;cursor:pointer}.playlist-row:disabled{cursor:not-allowed}.playlist-row.done{color:var(--color-text-secondary)}.playlist-row.current{padding:14px 12px;background:var(--color-surface);border-color:var(--color-border-raised);box-shadow:var(--shadow-card-raised);font-weight:700}.playlist-row.pending{background:var(--color-accent-soft)}.playlist-row-text{flex:1;min-width:0}.playlist-row:not(.current) .playlist-row-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.playlist-badge{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:13px;font-weight:700}.playlist-badge.done{background:var(--color-success-soft);color:var(--color-success-text)}.playlist-badge.current{background:var(--color-primary);color:var(--color-on-primary);font-weight:800}.playlist-pending-tag{flex-shrink:0;padding:2px 8px;border-radius:999px;background:var(--color-surface);color:var(--color-accent);font-size:12px;font-weight:700}.playlist-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 6px 0;border-top:1px solid var(--color-divider)}.playlist-show-all{min-height:40px;padding:0 14px;border:0;border-radius:10px;background:var(--color-surface-muted);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer}.playlist-show-all:disabled{opacity:var(--opacity-locked);cursor:not-allowed}.playlist-peek{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:0 14px 0 16px;border:0;border-radius:18px;background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer}.playlist-peek>svg{flex-shrink:0;color:var(--color-text-secondary)}.playlist-dots{display:flex;flex-shrink:0;align-items:center;gap:5px}.playlist-dot{display:flex;align-items:center;justify-content:center;width:14px;height:14px;border:2px solid var(--color-border-dashed);border-radius:50%}.playlist-dot.done{border:0;background:var(--color-success-soft);color:var(--color-success-text)}.playlist-dot.current{border:0;background:var(--color-primary)}.playlist-peek-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.playlist-peek-label{color:var(--color-text-secondary);font-size:12px;font-weight:700}.playlist-peek-next{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.reading-card{--reading-gap: 16px;display:flex;flex:1;flex-direction:column;gap:var(--reading-gap);min-width:0;padding:36px 56px 32px;background:var(--color-surface);border-radius:28px}.reading-card.phone{--reading-gap: 12px;flex:none;padding:20px 20px 16px;border-radius:26px}.reading-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.reading-tags,.reading-card-tools{display:flex;align-items:center;gap:10px}.reading-card.phone .reading-tags{flex-wrap:wrap;gap:6px}.reading-card.phone .reading-card-tools .icon-button{position:relative;width:36px;height:36px;border-radius:10px}.reading-card.phone .reading-card-tools .icon-button:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.reading-card.phone .reading-tag{min-height:28px;padding:0 10px;font-size:13px}.reading-card.phone .reading-badge{gap:6px;min-height:28px;font-size:13px}.reading-card.phone .reading-badge.listening{padding:0;background:transparent}.reading-hint{margin:0;color:var(--color-warning-text);font-size:14px}.reading-body{display:flex;flex:1;align-items:center;min-height:180px}.reading-card.phone .reading-body{min-height:252px}.reading-card.phone .reading-sentence{font-size:30px;line-height:1.4;letter-spacing:-.01em}.reading-card.phone .reading-strip{min-height:54px}.practice-layout{display:grid;flex:1;grid-template-columns:minmax(0,1fr) 380px;gap:24px}.practice-layout.phone{grid-template-columns:minmax(0,1fr)}.practice-main,.practice-side{display:flex;flex-direction:column;gap:14px;min-width:0}.practice-layout.phone .practice-main{gap:12px}.practice-layout.phone .reading-card{margin-bottom:auto}.practice-layout.phone .primary-controls{padding:4px 0 8px}.summary-layout{display:grid;flex:1;grid-template-columns:420px minmax(0,1fr);align-items:start;gap:24px}.summary-layout.phone{display:flex;flex-direction:column;gap:12px}.summary-toolbar{display:flex;grid-column:1 / -1;justify-content:flex-end}.app.immersive .summary-layout{padding:clamp(16px,3vw,40px)}.app.immersive .summary-layout.phone{padding:12px}.summary-card{background:var(--color-surface);border-radius:28px}.summary-overview{position:sticky;top:16px;max-height:calc(100dvh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:28px;padding:36px}.summary-layout.phone .summary-overview{position:static;max-height:none;gap:16px;padding:22px;border-radius:26px}.summary-head{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.summary-layout.phone .summary-head{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.summary-badge{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:999px;background:var(--color-success-soft);color:var(--color-success-text);font-size:14px;font-weight:700;white-space:nowrap}.summary-layout.phone .summary-badge{min-height:28px;font-size:13px}.summary-meta{color:var(--color-text-secondary);font-size:15px}.summary-layout.phone .summary-meta{font-size:13px;text-align:right}.summary-score{display:flex;flex-direction:column;gap:4px}.summary-layout.phone .summary-score{flex-direction:row;align-items:baseline;gap:12px}.summary-rate{font-size:96px;font-weight:800;line-height:1;letter-spacing:-.04em}.summary-layout.phone .summary-rate{font-size:64px}.summary-rate-unit{font-size:.5em}.summary-read{color:var(--color-text-secondary);font-size:16px}.summary-layout.phone .summary-read{font-size:14px}.summary-missed{display:flex;flex-direction:column;gap:12px}.summary-missed-title{color:var(--color-text-secondary);font-size:14px;font-weight:700}.summary-missed-none{margin:0;color:var(--color-success-text);font-size:15px;font-weight:600}.summary-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.summary-chip{display:flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:var(--color-warning-soft);color:var(--color-missed);font-size:14px;font-weight:700}.summary-layout.phone .summary-chips,.summary-rows .summary-chips{gap:6px}.summary-layout.phone .summary-chip,.summary-rows .summary-chip{min-height:30px;padding:0 10px;font-size:13px}.summary-actions{display:flex;flex-direction:column;gap:10px}.summary-restart{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 24px;border:0;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font-size:16px;font-weight:700;cursor:pointer}.summary-layout.phone .summary-restart{align-self:center;margin:2px 0 8px}.summary-library{min-height:48px;border:0;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text);font-size:15px;font-weight:600;cursor:pointer}.summary-side{display:flex;flex-direction:column;gap:14px;min-width:0}.summary-results{display:flex;flex-direction:column;gap:12px;padding:28px 32px}.summary-layout.phone .summary-results{gap:0;padding:8px 16px;border-radius:22px}.summary-results-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.summary-results-head h2{margin:0;font-size:18px;font-weight:800}.summary-results-head span{color:var(--color-text-secondary);font-size:13px}.summary-rows{margin:0;padding:0;list-style:none}.summary-row{display:flex;align-items:center;gap:14px;padding:14px 8px;border-bottom:1px solid var(--color-divider)}.summary-row:last-child{border-bottom:0}.summary-layout.phone .summary-row{align-items:flex-start;padding:12px 4px}.summary-row-marker{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:13px;font-weight:700}.summary-row.perfect .summary-row-marker{background:var(--color-success-soft);color:var(--color-success-text)}.summary-row-body{display:flex;flex-direction:column;flex-grow:1;gap:6px;min-width:0}.summary-row-text{overflow:hidden;font-size:15px;line-height:1.45;white-space:nowrap;text-overflow:ellipsis}.summary-layout.phone .summary-row-text{font-size:14px;white-space:normal}.summary-row-rate{flex-shrink:0;font-size:15px;font-weight:800}.summary-row.perfect .summary-row-rate{color:var(--color-success-text)}.summary-row.unpracticed .summary-row-rate{color:var(--color-text-secondary);font-size:14px;font-weight:600}
