:root{--app-bg: #F8F7F4;--app-surface: rgba(255, 254, 251, .82);--app-surface-strong: #fffefb;--app-ink: #1E1F22;--app-muted: #8A8A86;--app-line: #E7DED6;--app-line-strong: #D8CCC2;--app-accent: #D97745;--app-accent-soft: #F6E5DA;--app-accent-strong: #B55B2A;--app-danger: #B42318;--app-radius: 16px;--app-radius-lg: 24px;--app-shadow: 0 22px 70px rgba(30, 31, 34, .07);color:var(--app-ink);background:var(--app-bg);font-family:Inter Variable,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--app-bg)}button,input,textarea,select{font:inherit}button{border:1px solid var(--app-line);border-radius:var(--app-radius);background:var(--app-surface);color:var(--app-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 13px;box-shadow:0 1px 2px #1e1f2209;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}button:hover{background:var(--app-surface-strong);border-color:var(--app-line-strong);box-shadow:0 10px 28px #1e1f2212;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.58;transform:none}textarea,input,select{border:1px solid var(--app-line);border-radius:var(--app-radius);background:#fffefbe6;color:var(--app-ink);outline:none;box-shadow:0 1px 2px #1e1f2209}textarea:focus,input:focus,select:focus{border-color:#d9774585;box-shadow:0 0 0 4px #d9774524}textarea{min-height:118px;resize:vertical;padding:12px;line-height:1.55}select,input{min-height:40px;padding:0 12px}.center-screen,.login-screen{min-height:100vh;display:grid;place-items:center}.login-panel,.sidebar,.inspector,.topbar,.segment,.modal{border:1px solid rgba(231,222,214,.84);background:var(--app-surface);box-shadow:var(--app-shadow);-webkit-backdrop-filter:blur(16px) saturate(126%);backdrop-filter:blur(16px) saturate(126%)}.login-panel{width:min(460px,calc(100vw - 32px));padding:30px;border-radius:var(--app-radius-lg);text-align:center}.brand-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin:0 auto 14px;color:var(--app-accent-strong);background:var(--app-accent-soft);border:1px solid rgba(217,119,69,.2)}.primary-link{display:inline-flex;margin-top:12px;border-radius:var(--app-radius);background:var(--app-ink);color:#fff;padding:11px 16px;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}.app-shell.practice-open{grid-template-columns:minmax(0,1fr) 340px}.sidebar,.inspector{border-radius:var(--app-radius-lg);padding:16px;max-height:calc(100vh - 32px);overflow:auto}.app-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.app-title span{display:block;font-size:22px;font-weight:760}.app-title small,.doc-item small,.feedback small,.muted{color:var(--app-muted)}.icon-button{width:40px;min-width:40px;padding:0}.project-button{display:inline-flex}.topbar-left{display:flex;align-items:center;gap:8px}.topbar-left strong{font-size:17px;font-weight:760}.topbar-left small{color:var(--app-muted)}.active-soft{background:var(--app-accent-soft);border-color:#d9774547;color:var(--app-accent-strong)}.import-button{width:100%;background:var(--app-ink);border-color:var(--app-ink);color:#fff;margin-bottom:16px}.doc-list{display:grid;gap:10px}.doc-item{display:grid;justify-content:stretch;text-align:left;gap:5px;border-radius:14px;padding:13px}.doc-item.active{border-color:#d9774547;background:var(--app-accent-soft)}.main-workspace{min-width:0;display:flex;flex-direction:column;min-height:calc(100vh - 32px)}.topbar{border-radius:18px;padding:10px 12px;display:flex;justify-content:center;gap:10px}.title-input{border:0;background:transparent;box-shadow:none;min-height:34px;padding:0;font-size:26px;font-weight:760;width:min(600px,44vw)}.status-line{min-height:22px;color:var(--app-muted);font-size:14px}.error-inline,.error{color:var(--app-danger)}.error-inline{margin-left:12px}.top-actions,.mode-strip,.practice-actions,.modal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.pill-count{border-radius:999px;background:var(--app-accent-soft);color:var(--app-accent-strong);padding:2px 7px;font-size:12px}.rate-control{display:inline-flex;align-items:center;gap:8px;min-height:38px;border:1px solid var(--app-line);border-radius:var(--app-radius);background:var(--app-surface);padding:6px 10px;box-shadow:0 1px 2px #1e1f2209}.rate-control span{min-width:42px;font-size:13px;color:var(--app-muted);font-variant-numeric:tabular-nums}.rate-control input{width:94px;min-height:0;padding:0;box-shadow:none}.mode-strip{margin:0;padding:6px;border:1px solid var(--app-line);border-radius:var(--app-radius);background:#fffefba3;width:fit-content}.mode-strip button{box-shadow:none;border-radius:10px;background:transparent}.mode-strip button.active{background:var(--app-ink);color:#fff;border-color:var(--app-ink)}.segments{padding:16px 0 0;display:grid;gap:16px}.reader{position:relative;padding:14px 0 138px;display:grid;gap:16px;border-radius:28px;overflow:visible}.reader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.42;background:radial-gradient(circle at 18% 0%,rgba(255,254,251,.68),transparent 28%),radial-gradient(circle at 86% 8%,rgba(217,119,69,.06),transparent 28%);background-size:auto,auto;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 88%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 88%,transparent 100%)}.reader>*{position:relative;z-index:1}.reader-action-fab{position:absolute;top:18px;right:18px;z-index:5}.reader-player{position:fixed;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:20;isolation:isolate;border:1px solid rgba(231,222,214,.88);border-radius:20px;background:#fffefbeb;box-shadow:0 -16px 44px #1e1f220b,0 18px 45px #1e1f2212;padding:8px 10px;display:grid;gap:5px;max-width:1180px;margin:0 auto;width:100%}.reader-player:before{content:"";position:fixed;left:0;right:0;bottom:0;z-index:-1;height:96px;pointer-events:none;background:linear-gradient(180deg,rgba(248,247,244,0),rgba(248,247,244,.95) 26%,var(--app-bg) 100%)}.app-shell.practice-open .reader-player{right:368px}.reader-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.reader-tools .icon-button{width:36px;min-width:36px;min-height:36px}.reader-tool-button{min-height:36px;border-radius:11px;padding:7px 10px;gap:6px}.reader-tool-button strong{font-size:12px;font-variant-numeric:tabular-nums;color:var(--app-muted)}.rate-control.compact{min-height:36px;border-radius:11px;padding:6px 9px}.rate-control.compact span{min-width:36px}.rate-control.compact input{width:76px}.speed-wrapper{position:relative}.speed-dropdown{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--app-surface-strong);border:1px solid var(--app-line);border-radius:14px;box-shadow:0 12px 40px #1e1f221f;padding:4px;display:grid;gap:1px;z-index:6;min-width:68px}.speed-dropdown button{width:100%;min-height:30px;border:none;box-shadow:none;border-radius:9px;padding:4px 10px;font-size:13px;font-variant-numeric:tabular-nums;justify-content:center}.speed-dropdown button.active{background:var(--app-ink);color:#fff}.underscore-text .reader-word{color:transparent!important;position:relative}.underscore-text .reader-word:after{content:"";position:absolute;left:0;right:0;bottom:.18em;height:2px;background:var(--app-muted)}.underscore-text .reader-word.word-active{box-shadow:none;background:transparent;border-radius:0}.underscore-text .reader-word.word-active:after{height:3px;background:var(--app-accent)}.underscore-text .reader-word.word-active:before{display:none}.reader-tool-button.lang-toggle{min-height:32px;min-width:44px;padding:5px 8px;border-radius:11px;gap:5px;font-weight:670}.reader-progress{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--app-muted);font-size:12px;font-variant-numeric:tabular-nums}.reader-progress input{width:100%;min-height:0;padding:0;box-shadow:none}.reader-progress-fill{height:4px;border-radius:999px;background:var(--app-accent);transition:width .16s ease}.reader-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px}.reader-play{width:44px;min-width:44px;min-height:36px;padding:0;background:var(--app-ink);color:#fff;border-color:var(--app-ink)}.reader-play:hover{background:#303136;border-color:#303136;color:#fff}.reader-meta-trigger{min-height:22px;min-width:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(217,119,69,.24);border-radius:999px;padding:3px 6px;background:#fffefb9e;color:var(--app-accent-strong);box-shadow:none}.reader-meta-trigger:hover{background:#fffefbdb}.reader-meta-trigger:disabled{opacity:.72;cursor:default}.project-action-menu{position:relative}.project-action-trigger{min-height:32px;min-width:34px;border-color:#d9774542;background:#fffefbb8;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%)}.project-action-dropdown{z-index:999;display:grid;gap:2px;padding:6px;border:1px solid rgba(231,222,214,.92);border-radius:14px;background:#fffefbf5;box-shadow:0 18px 48px #1e1f221f;-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);min-width:200px;max-width:240px}.project-action-dropdown>button{min-width:100%;min-height:34px;padding:6px 10px;border-radius:9px;justify-content:flex-start;color:var(--app-ink);background:transparent;border:none;box-shadow:none;gap:9px;font-size:14px;white-space:nowrap}.project-action-dropdown>button:hover,.project-action-dropdown>button.active-soft{background:var(--app-accent-soft)}.menu-status{margin-left:auto;color:var(--app-muted);font-size:12px;font-weight:560;white-space:nowrap}.menu-status-block{display:block;margin:-3px 10px 4px 35px;color:var(--app-muted);font-size:12px;font-weight:560;line-height:1.25;white-space:nowrap}.menu-section{display:grid;gap:2px}.menu-section>button{min-width:100%;min-height:34px;padding:6px 10px;border-radius:9px;justify-content:flex-start;color:var(--app-ink);background:transparent;border:none;box-shadow:none;gap:9px;font-size:14px}.menu-section>button:hover{background:var(--app-accent-soft)}.menu-sub-items{display:grid;gap:1px;padding:2px 0 2px 28px}.menu-sub-items a,.menu-sub-items button{min-height:28px;min-width:100%;padding:4px 8px;border:none;box-shadow:none;border-radius:7px;justify-content:flex-start;background:transparent;color:var(--app-ink);text-decoration:none;white-space:nowrap;font-size:13px}.menu-sub-items a:hover,.menu-sub-items button:hover{background:#f7f1ea}.menu-sub-separator{height:1px;margin:4px;background:#e5e7eb}.menu-download-row{display:flex;gap:4px}.menu-dl-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;font-size:13px;font-weight:620;border-radius:8px;border:1px solid #d8cabb;background:#f7f1ea;color:#61452f;text-decoration:none;min-height:30px}.menu-dl-btn:hover{background:#ede0d2;color:#3d2b1c}.menu-dl-btn:only-child{flex:none;width:100%}.menu-download-links{display:flex;flex-wrap:wrap;gap:2px;padding-bottom:2px}.menu-download-links a{font-size:12px;padding:3px 7px;border-radius:6px;background:#ffffffb3;border:1px solid #e5e7eb;color:#0f172a;text-decoration:none}.menu-download-links a:hover{background:#f7f1ea}.menu-error{padding:4px 10px;color:var(--app-danger);font-size:12px;line-height:1.4;max-width:240px;white-space:normal;word-break:break-word}.practice-dock{border:1px solid rgba(231,222,214,.84);border-radius:var(--app-radius-lg);background:var(--app-surface);box-shadow:var(--app-shadow);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);padding:16px;display:grid;align-content:start;gap:12px;max-height:calc(100vh - 32px);overflow:auto}.practice-dock-header{display:flex;align-items:start;justify-content:space-between;gap:12px}.practice-dock-header h2{margin:0;font-size:18px}.practice-dock-header p{margin:4px 0 0;color:var(--app-muted);font-size:13px}.practice-play{justify-content:center}.practice-dock-input{min-height:220px}.segment{border-radius:22px;padding:16px}.segment.selected{border-color:#d9774557;box-shadow:0 0 0 4px #d977451f,var(--app-shadow)}.segment-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.segment-head>span{color:var(--app-muted);font-weight:720}.segment-head div{display:flex;gap:7px}.segment-head button{width:36px;min-height:36px;padding:0}.audio-ready{background:var(--app-accent-soft);border-color:#d9774552;color:var(--app-accent-strong)}.danger-icon{color:var(--app-danger)}.segment-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.segment-grid.single-col{grid-template-columns:1fr}label{display:grid;gap:7px}label span,.inspector h2{font-weight:700}.hidden-panel{min-height:118px;border:1px dashed var(--app-line-strong);border-radius:14px;display:grid;place-items:center;color:var(--app-muted);background:#fffefb9e}.practice-box{margin-top:12px;display:grid;gap:9px}.practice-box textarea{min-height:100px}.diff-box{margin-top:12px;display:grid;gap:4px;padding:12px;border:1px solid var(--app-line);border-radius:14px;background:#fffefbb8;color:var(--app-ink)}.inspector{display:grid;align-content:start;gap:18px}.inspector section{display:grid;gap:11px}.inspector h2{display:flex;align-items:center;gap:8px;margin:0 0 2px;font-size:17px}.small-textarea{min-height:88px}.feedback{display:grid;gap:8px}.feedback pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface-strong);padding:12px;max-height:360px;overflow:auto}.expression-list{display:grid;gap:9px;max-height:360px;overflow:auto}.expression{border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface-strong);padding:11px;display:grid;gap:4px}.expression span,.expression small,.expression em{color:var(--app-muted)}.danger{border-color:#b4231838;color:var(--app-danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1e1f2238;display:grid;place-items:center;padding:20px}.modal{width:min(820px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:22px;padding:22px;display:grid;gap:13px}.settings-modal{width:min(620px,100%)}.projects-modal{width:min(960px,100%)}.import-modal{width:min(840px,100%)}.projects-layout{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:16px;max-height:min(58vh,520px);min-height:360px}.project-list-sidebar{overflow:auto;display:grid;gap:8px;align-content:start;padding-right:4px}.project-preview{display:grid;gap:12px;align-content:start;overflow:auto;border-left:1px solid var(--app-line);padding-left:16px}.project-preview-empty{display:grid;place-items:center;border-left:1px solid var(--app-line)}.project-preview-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-preview-header h3{margin:0;font-size:17px;font-weight:720;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-header-actions{display:flex;gap:6px;flex-shrink:0}.project-preview-segments,.import-preview-segments{display:grid;gap:6px;overflow:auto;max-height:min(42vh,380px);padding-right:2px}.preview-segment-pair{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 28px;gap:6px;align-items:start}.preview-segment-index{display:grid;place-items:center;color:var(--app-muted);font-size:12px;font-weight:720;min-height:52px}.preview-segment-sv,.preview-segment-zh{min-height:48px!important;padding:8px 10px;font-size:13px;line-height:1.48;resize:none}.preview-segment-sv{border-color:var(--app-line)}.preview-segment-zh{border-color:var(--app-line);background:#fffefbb8}.preview-segment-delete{min-width:28px;min-height:28px;padding:0;border-radius:8px;color:var(--app-muted);margin-top:10px}.preview-segment-delete:hover{color:var(--app-danger);border-color:#b4231838;background:#fff1ec}.preview-add-segment{justify-content:center;border-style:dashed;color:var(--app-muted);min-height:34px}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.modal h2,.modal p{margin:0}.modal p{color:var(--app-muted)}.project-actions{display:flex;flex-wrap:wrap;gap:9px}.project-actions button{flex:1 1 170px}.project-list{display:grid;gap:9px;max-height:min(52vh,460px);overflow:auto;padding-right:2px}.project-item{display:grid;justify-content:stretch;text-align:left;gap:5px;border-radius:14px;padding:13px}.project-item.active{border-color:#d9774547;background:var(--app-accent-soft)}.project-item small{color:var(--app-muted)}.import-grid textarea{min-height:300px}.import-modal .import-grid textarea{min-height:280px}.settings-modal textarea{min-height:120px}.import-grid,.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.modal-actions{justify-content:flex-end}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1120px){.app-shell{padding:12px}.app-shell.practice-open{grid-template-columns:minmax(0,1fr) 320px}}@media(max-width:780px){.app-shell{display:block;padding:10px}.app-shell.practice-open{display:block}.practice-dock{position:sticky;bottom:98px;z-index:5;width:100%;margin-top:12px;background:#fffefbf0;box-shadow:0 18px 55px #1e1f221f}.practice-dock-input{min-height:180px}.topbar,.segment,.reader-hero,.reader-player,.practice-dock{border-radius:18px;margin-bottom:12px;max-height:none}.topbar,.segment-grid,.import-grid,.settings-grid{display:grid;grid-template-columns:1fr}.title-input{width:100%}.top-actions{justify-content:flex-end}.modal{width:100%;max-height:calc(100dvh - 24px);padding:18px}.import-grid textarea{min-height:200px}.reader{padding-bottom:100px}.reader-hero{min-height:92px;padding:14px}.reader-hero h1{font-size:28px}.reader-player{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));padding:7px 8px}.reader-player:before{height:92px}.reader-sv{font-size:19px}.reader-zh{font-size:16px}.projects-layout{grid-template-columns:1fr;max-height:none;min-height:auto}.project-preview{border-left:0;border-top:1px solid var(--app-line);padding-left:0;padding-top:12px;max-height:min(300px,44vh)}.project-preview-empty{border-left:0;border-top:1px solid var(--app-line);padding-top:12px;min-height:100px}.project-preview-segments,.import-preview-segments{max-height:min(220px,36vh)}.preview-segment-pair{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 22px;gap:4px}}
