:root{--paper: #f7f8f7;--panel: #ffffff;--ink: #191c1a;--slate: #5c6360;--mute: #8b9290;--rule: #e3e6e3;--rule-soft: #eef0ee;--seal: #b5342a;--seal-soft: #fbf1ef;--serif: Charter, "Iowan Old Style", "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;--mono: Menlo, "SF Mono", ui-monospace, monospace;--gutter: 76px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}button:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:18px;padding:0 24px;height:56px;border-bottom:1px solid var(--rule);background:var(--panel);flex:none}.topbar h1{font-family:var(--serif);font-size:16px;font-weight:500;margin:0;letter-spacing:.01em}.topbar .spacer{flex:1}.pipe{width:1px;height:18px;background:var(--rule)}.status{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--slate)}.dot{width:7px;height:7px;border-radius:50%;background:var(--rule);flex:none}.dot.live{background:var(--seal)}.dot.warn{background:#c98a2e}.workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:0;flex:1;min-height:0}.column{display:flex;flex-direction:column;min-height:0;min-width:0}.column+.column{border-left:1px solid var(--rule)}.column-head{display:flex;align-items:center;gap:12px;padding:16px 24px 12px;flex:none}.column-head .spacer{flex:1}.record{flex:1;overflow-y:auto;padding:0 24px 140px;background:var(--panel)}.entry{display:grid;grid-template-columns:var(--gutter) minmax(0,1fr);border-top:1px solid var(--rule-soft);padding:18px 0}.entry:first-child{border-top:none}.entry .stamp{font-family:var(--mono);font-size:11px;color:var(--mute);padding-top:6px;-webkit-user-select:none;user-select:none}.entry.speaking .stamp{color:var(--seal);display:flex;align-items:flex-start;gap:6px;padding-top:9px}.entry.speaking .seal-square{margin-top:3px}.seal-square{width:8px;height:8px;background:var(--seal);flex:none}.entry .source{font-family:var(--serif);font-size:var(--src-size, 18px);line-height:1.52;letter-spacing:.002em;margin:0;text-wrap:pretty}.entry .target{font-family:var(--sans);font-size:var(--tgt-size, 14px);line-height:1.78;color:var(--slate);margin:9px 0 0;text-wrap:pretty}.entry.speaking .source{color:var(--ink)}.entry .pair+.pair{margin-top:14px}.arrive{animation:arrive .42s ease-out both}@keyframes arrive{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.empty{padding:40px var(--gutter) 0;max-width:46ch}.empty p{font-family:var(--serif);font-size:14px;line-height:1.7;color:var(--mute);margin:0}.recorder{position:absolute;bottom:28px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:10px 14px 10px 12px;background:var(--panel);border:1px solid var(--rule);border-radius:999px;box-shadow:0 8px 26px #191c1a17;z-index:5}.record-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.rec-btn{display:flex;align-items:center;gap:9px;padding:8px 16px;border-radius:999px;background:var(--ink);color:#fff;font-size:12.5px;letter-spacing:.02em}.rec-btn.stop{background:var(--seal-soft);color:var(--seal);border:1px solid rgba(181,52,42,.22)}.rec-btn:disabled{opacity:.45;cursor:not-allowed}.timer{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink);min-width:62px}.meter{display:flex;align-items:flex-end;gap:2px;height:16px;width:26px}.meter i{flex:1;background:var(--rule);min-height:2px;border-radius:1px;transition:height 90ms linear,background .2s}.meter i.on{background:var(--seal)}select{font-family:var(--mono);font-size:10.5px;color:var(--slate);background:transparent;border:1px solid var(--rule);border-radius:6px;padding:5px 6px}.draft-col{background:var(--paper)}.thread{flex:1;overflow-y:auto;padding:0 22px 18px;display:flex;flex-direction:column;gap:16px}.ask{font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--slate);padding-left:12px;border-left:2px solid var(--rule)}.card{background:var(--panel);border:1px solid var(--rule);border-radius:3px}.card .en{font-family:var(--serif);font-size:16px;line-height:1.58;padding:16px 18px 0;margin:0;white-space:pre-wrap;text-wrap:pretty}.card .zh{font-size:13px;line-height:1.75;color:var(--slate);padding:12px 18px 0;margin:12px 0 0;border-top:1px solid var(--rule-soft);white-space:pre-wrap}.card .note{font-size:12.5px;line-height:1.7;color:var(--seal);background:var(--seal-soft);padding:10px 18px;margin:12px 0 0;white-space:pre-wrap}.card .actions{display:flex;align-items:center;gap:4px;padding:12px 12px 12px 18px}.card .actions .spacer{flex:1}.mini{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--slate);padding:5px 9px;border-radius:4px}.mini:hover{background:var(--rule-soft);color:var(--ink)}.composer{flex:none;border-top:1px solid var(--rule);background:var(--panel);padding:12px 16px 14px}.composer textarea{width:100%;border:none;resize:none;font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--ink);background:transparent;min-height:52px;outline:none}.composer textarea::placeholder{color:var(--mute)}.composer .row{display:flex;align-items:center;gap:8px;margin-top:6px}.composer .row .spacer{flex:1}.send{padding:7px 15px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px}.send:disabled{opacity:.35;cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--slate);border:1px solid var(--rule);border-radius:999px;padding:5px 11px;background:var(--panel)}.chip:hover{border-color:var(--slate)}.sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#191c1a47;display:flex;justify-content:flex-end;z-index:20}.sheet{width:min(520px,100%);background:var(--panel);height:100%;overflow-y:auto;padding:26px 28px 40px;border-left:1px solid var(--rule)}.sheet h2{font-family:var(--serif);font-weight:500;font-size:17px;margin:0 0 4px}.sheet .hint{font-size:12.5px;line-height:1.7;color:var(--slate);margin:0 0 20px}.drop{display:block;border:1px dashed var(--rule);border-radius:4px;padding:22px;text-align:center;font-size:12.5px;color:var(--slate);background:var(--paper);cursor:pointer}.drop:hover,.drop.over{border-color:var(--slate);color:var(--ink)}.sheet textarea{width:100%;margin-top:14px;border:1px solid var(--rule);border-radius:4px;padding:11px 12px;font-family:var(--sans);font-size:12.5px;line-height:1.65;min-height:92px;resize:vertical;background:var(--paper)}.field{display:block;margin-top:12px}.field .label{display:block;margin-bottom:5px}.field input{width:100%;border:1px solid var(--rule);border-radius:4px;padding:8px 10px;font-family:var(--mono);font-size:11.5px;color:var(--ink);background:var(--paper)}.field input:focus{outline:none;border-color:var(--slate)}.sheet .row{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.sheet .row .mini{border:1px solid var(--rule)}.test{font-family:var(--mono);font-size:10.5px;line-height:1.6;margin:8px 0 0;color:var(--slate)}.test.ok{color:#2f6b46}.test.bad{color:var(--seal)}.sheet code{font-family:var(--mono);font-size:11px;background:var(--paper);padding:1px 4px;border-radius:3px}.ok-note{font-size:12px;line-height:1.7;color:#2f6b46;background:#f1f7f3;border:1px solid #cfe3d8;border-radius:4px;padding:10px 12px;margin:14px 0 0}.brief{margin-top:24px;border-top:1px solid var(--rule);padding-top:18px}.brief dl{margin:0}.brief dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:16px}.brief dd{margin:6px 0 0;font-size:12.5px;line-height:1.7}.terms{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-top:8px;font-size:12px}.terms .en{font-family:var(--serif);font-size:13px}.terms .zh{color:var(--slate)}.file-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--slate);padding:6px 0;border-bottom:1px solid var(--rule-soft)}.notice{font-size:12px;line-height:1.7;color:var(--seal);background:var(--seal-soft);border:1px solid rgba(181,52,42,.18);border-radius:4px;padding:10px 12px;margin:14px 0 0}@media(max-width:900px){.workspace{grid-template-columns:1fr;grid-template-rows:1.2fr 1fr}.column+.column{border-left:none;border-top:1px solid var(--rule)}.entry{grid-template-columns:52px minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.arrive{animation:none}.meter i{transition:none}}.minutes-preview{font-family:var(--sans);font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;max-height:46vh;overflow-y:auto;background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:12px 14px}.rec-btn.pause{background:var(--panel);color:var(--ink);border:1px solid var(--rule)}a.mini{text-decoration:none;border:1px solid var(--rule);display:inline-block}@media(max-width:820px){:root{--gutter: 52px}html,body,#root{height:100dvh}.topbar{height:auto;min-height:48px;padding:6px 12px;gap:8px;flex-wrap:wrap}.topbar h1{font-size:14px}.workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.column+.column{border-left:none;border-top:1px solid var(--rule)}.column-head{padding:10px 14px 8px}.workspace{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.record{padding:0 14px 16px}.entry{padding:12px 0}.thread{padding:0 14px 14px;gap:12px}.card .en{font-size:15px;padding:13px 14px 0}.card .zh{padding:10px 14px 0}.card .actions{padding:10px 10px 10px 14px;flex-wrap:wrap}.composer{padding:10px 12px 12px}.recorder{position:fixed;left:0;right:0;bottom:0;transform:none;width:100%;border-radius:0;border-left:none;border-right:none;border-bottom:none;justify-content:center;flex-wrap:wrap;gap:8px 10px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px #191c1a14}.recorder .meter{flex:none}.rec-btn{min-height:44px;padding:10px 18px;font-size:14px}.recorder select{flex:1 1 44%;min-width:0;max-width:none;font-size:13px}.recorder select:first-of-type{margin-left:0}.recorder .pipe{display:none}.chip,.mini{min-height:34px}.sheet{padding:20px 16px 40px}}@media(max-width:820px)and (max-height:520px){.workspace{grid-template-rows:minmax(0,.8fr) minmax(0,1.2fr)}}.onboard-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#191c1a52;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.onboard{background:var(--panel);border:1px solid var(--rule);border-radius:14px;padding:26px 26px 20px;width:min(440px,100%);max-height:88dvh;overflow-y:auto;box-shadow:0 18px 50px #191c1a2e}.onboard h2{font-family:var(--serif);font-weight:500;font-size:20px;margin:0 0 14px}.onboard h3{font-size:12px;letter-spacing:.12em;color:var(--mute);margin:18px 0 8px;font-weight:500}.onboard p{margin:0 0 8px;font-size:13.5px;line-height:1.7;color:var(--ink)}.onboard-lead{color:var(--slate)}.onboard .yes,.onboard .no{display:inline-block;min-width:38px;margin-right:8px;font-size:12px;text-align:center;padding:1px 7px;border-radius:4px}.onboard .yes{background:var(--seal-soft);color:var(--seal)}.onboard .no{background:#f1f3f1;color:var(--slate)}.onboard-ok{margin-top:14px;width:100%;min-height:44px;border-radius:999px;background:var(--ink);color:#fff;font-size:14px}.cfg-state{margin:0 0 16px;padding:10px 12px;border-radius:8px;font-size:12.5px;line-height:1.7}.cfg-state.ok{background:#f1f5f1;color:var(--slate)}.cfg-state.bad{background:var(--seal-soft);color:var(--seal)}.advanced{margin:4px 0 12px}.advanced>summary{cursor:pointer;font-size:12px;letter-spacing:.1em;color:var(--mute);padding:6px 0;list-style:none}.advanced>summary::-webkit-details-marker{display:none}.advanced>summary:before{content:"＋ "}.advanced[open]>summary:before{content:"－ "}.ready{margin:0 24px 14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2, #fbfaf7)}.ready h3{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--ink-3, #6b6b6b)}.ready-row{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:13px;line-height:1.6}.ready-label{flex:0 0 68px;color:var(--ink-3, #6b6b6b)}.ready-body{flex:1 1 auto;min-width:0}.ready-body .good{color:#2f7a4f}.ready-body .bad{color:#a33}.ready-row .chip{flex:0 0 auto}.mtg-new,.mtg-list{margin-top:18px}.mtg-new h3,.mtg-list h3{margin:0 0 8px;font-size:14px;font-weight:600}.mtg-new input[type=text],.mtg-new input:not([type]){width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}.mtg-adopt{display:flex;align-items:flex-start;gap:8px;margin:10px 0;font-size:13px;line-height:1.6}.mtg-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.mtg-row.cur{background:var(--paper-2, #fbfaf7)}.mtg-meta{flex:1 1 auto;min-width:0}.mtg-meta b{display:block;font-size:14px}.mtg-meta span,.mtg-cur{font-size:12px;color:var(--ink-3, #6b6b6b)}.mtg-hint{margin:10px 0 0;font-size:12px;line-height:1.7;color:var(--ink-3, #6b6b6b)}.sheet-err{margin-top:12px;color:#a33;font-size:13px}.profile{margin-bottom:20px}.profile h3{margin:0 0 6px;font-size:14px;font-weight:600}.profile-row{display:block;margin:10px 0}.profile-row span{display:block;margin-bottom:4px;font-size:13px;color:var(--ink-3, #6b6b6b)}.profile-row textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;line-height:1.6;resize:vertical}.storage{margin-top:18px;font-size:12.5px;line-height:1.8;color:var(--ink-3, #6b6b6b)}.storage>summary{cursor:pointer;font-size:13px}.storage p{margin:8px 0 0}.evidence{margin:10px 0 0;padding-top:8px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.75}.evidence>summary{cursor:pointer;color:var(--ink-3, #6b6b6b)}.evidence p{margin:6px 0 0}.ev-ok b{color:var(--ink-2, #333)}.ev-bad{color:#a33}.ev-todo,.ev-note{color:var(--ink-3, #6b6b6b)}.speaker-note{margin:0 0 10px;font-size:12px;color:var(--ink-3, #6b6b6b)}.rec-block{flex:0 0 auto;margin-left:10px;font-size:12.5px;white-space:nowrap;color:#a33}
