:root{--brand: #3b6cf0;--brand-soft: #eaf0ff;--bg: #f5f6f8;--card: #ffffff;--text: #1a1a1a;--text-sub: #8a8f99;--danger: #e5484d;--ok: #2ba471;--warn: #f0a020}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px}.app{max-width:720px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.topbar{display:flex;align-items:center;gap:12px;padding:16px 20px;position:sticky;top:0;background:var(--bg);z-index:10}.topbar h1{font-size:18px;margin:0;flex:1}.back-btn{border:none;background:none;color:var(--brand);font-size:15px;cursor:pointer;padding:4px 8px}.content{flex:1;padding:0 20px 24px;overflow-y:auto}.card{background:var(--card);border-radius:14px;padding:18px;margin-bottom:14px;box-shadow:0 2px 12px #0000000a}.card-title{font-size:16px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.btn{border:none;border-radius:999px;padding:12px 20px;font-size:15px;cursor:pointer;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-ghost{background:var(--brand-soft);color:var(--brand)}.btn-danger{background:#fdecec;color:var(--danger)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:999px;font-size:13px;background:var(--brand-soft);color:var(--brand)}.chip.recording{background:#fdecec;color:var(--danger)}.dot{width:8px;height:8px;border-radius:50%;background:var(--text-sub);display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.danger{background:var(--danger)}.muted{color:var(--text-sub)}.sm{font-size:13px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.mt{margin-top:12px}.center{text-align:center}input,select{width:100%;padding:12px;border:1px solid #e3e5e9;border-radius:10px;font-size:15px;background:#fff}.list-item{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.list-item:active{opacity:.7}.footer{padding:16px 20px calc(16px + env(safe-area-inset-bottom))}.rec-dot{width:12px;height:12px;border-radius:50%;background:var(--text-sub)}.rec-dot.live{background:var(--danger);animation:pulse 1.4s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.sub-line{display:flex;gap:10px;margin-bottom:12px;align-items:flex-start}.spk{flex:none;width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:13px;font-weight:600}.sub-line.partial .sub-text{color:var(--text-sub);font-style:italic}.lowconf{color:var(--warn);font-size:12px;margin-left:6px}.ana-item{padding:12px 0;border-top:1px solid rgba(0,0,0,.06)}.ana-item:first-child{border-top:none}.ana-meta{display:flex;gap:12px;margin-top:6px}.speaker-tag{font-size:12px;color:var(--brand);background:var(--brand-soft);padding:1px 8px;border-radius:6px}.assistant{position:fixed;left:50%;transform:translate(-50%);bottom:96px;width:min(680px,calc(100% - 32px));background:#1f2430;color:#fff;border-radius:16px;padding:18px;box-shadow:0 12px 40px #00000040;z-index:50}.assistant .chip{background:#ffffff24;color:#fff}.assistant-body{line-height:1.6;max-height:200px;overflow-y:auto;margin:10px 0}.assistant-btns{display:flex;gap:12px}.warn-bar{background:#fdecec;color:var(--danger);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px;cursor:pointer}.hint{background:#fff8e6;color:#a06800;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px}.tabs{display:flex;gap:8px;margin-bottom:14px}.tab{flex:1;text-align:center;padding:10px;border-radius:999px;background:#fff;color:var(--text-sub);cursor:pointer;font-size:14px}.tab.active{background:var(--brand);color:#fff;font-weight:600}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:#fff;border-radius:16px;padding:20px;width:min(440px,100%)}.modal-btns{display:flex;gap:12px;margin-top:18px}.turn{border-left:4px solid var(--brand-soft);padding-left:12px}.turn.assistant{border-left-color:var(--ok)}.source-line{display:flex;gap:8px;align-items:center;font-size:13px;margin-top:4px}.src-kind{flex:none;padding:1px 8px;border-radius:6px;background:var(--brand-soft);color:var(--brand)}
