:root{--brand: #4f56d6;--brand-hover: #444bc4;--brand-soft: #eef0fb;--brand-soft-2: #e3e6f8;--bg: #f6f7f9;--card: #ffffff;--text: #1c1e24;--text-sub: #868a94;--border: #ececef;--border-strong: #e0e1e6;--danger: #d84a4f;--danger-soft: #fbecec;--ok: #1a9d68;--ok-soft: #e9f6f0;--warn: #c98400;--warn-soft: #fbf3e2;--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(24, 28, 40, .05);--shadow-md: 0 8px 28px rgba(24, 28, 40, .08);--shadow-lg: 0 24px 60px rgba(24, 28, 40, .14)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14.5px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{scrollbar-width:thin;scrollbar-color:#d6d8de transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#d6d8de;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#c2c5cd}*::-webkit-scrollbar-track{background:transparent}.app{max-width:780px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:15px 24px;position:sticky;top:0;z-index:20;background:#f6f7f9d1;backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--border)}.topbar h1{font-size:17px;margin:0;flex:1;font-weight:650;letter-spacing:-.015em}.back-btn{border:none;background:none;color:var(--text-sub);font-size:14.5px;font-weight:500;cursor:pointer;padding:6px 10px;border-radius:8px;transition:background .15s,color .15s}.back-btn:hover{background:#eceef1;color:var(--text)}.content{flex:1;padding:22px 24px 32px;overflow-y:auto}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow);transition:border-color .2s ease,box-shadow .2s ease}.card:hover{border-color:var(--border-strong)}.card-title{font-size:14.5px;font-weight:650;letter-spacing:-.01em;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.btn{border:none;border-radius:10px;padding:12px 20px;font-size:14.5px;font-weight:600;cursor:pointer;width:100%;transition:background .15s,transform .1s,box-shadow .15s,opacity .15s}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow)}.btn-primary:not(:disabled):hover{background:var(--brand-hover)}.btn-ghost{background:#eef0f3;color:var(--text)}.btn-ghost:not(:disabled):hover{background:#e5e7ec}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:not(:disabled):hover{background:#f8e2e2}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:8px;font-size:12.5px;font-weight:550;background:#f0f1f4;color:#55596a}.chip.recording{background:var(--danger-soft);color:var(--danger)}.dot{width:7px;height:7px;border-radius:50%;background:#b7bac2;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:12.5px}.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:11px 13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14.5px;background:#fff;color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #4f56d61f}.list-item{display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.list-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.list-item:active{transform:none}.footer{padding:16px 24px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg)}.rec-dot{width:9px;height:9px;border-radius:50%;background:#b7bac2;flex:none}.rec-dot.live{background:var(--danger);box-shadow:0 0 #d84a4f80;animation:ring 1.6s infinite}@keyframes ring{0%{box-shadow:0 0 #d84a4f73}70%{box-shadow:0 0 0 7px #d84a4f00}to{box-shadow:0 0 #d84a4f00}}.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:8px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700}.sub-text{flex:1;color:#2a2d36;padding-top:2px}.sub-line.partial .sub-text{color:var(--text-sub)}.lowconf{color:var(--warn);font-size:11px;margin-left:6px;background:var(--warn-soft);padding:1px 6px;border-radius:5px}.ana-item{padding:11px 0;border-top:1px solid var(--border)}.ana-item:first-child{border-top:none;padding-top:2px}.ana-meta{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap;align-items:center}.speaker-tag{font-size:11.5px;font-weight:600;color:var(--brand);background:var(--brand-soft);padding:1px 8px;border-radius:6px}.app.wide{max-width:min(1720px,95vw)}.two-col{display:flex;gap:20px;align-items:stretch}.col-left{flex:1;min-width:0;display:flex;flex-direction:column}.col-right{flex:1.08;min-width:0}.transcript-card{margin-bottom:0;flex:1;display:flex;flex-direction:column}.transcript-scroll{flex:1;min-height:0;overflow-y:auto;padding-right:6px}.assistant-card{border-color:var(--border-strong)}.assistant-box{min-height:100px;max-height:280px;overflow-y:auto;line-height:1.65;margin:10px 0 14px;white-space:pre-wrap;background:#f7f8fa;border:1px solid var(--border);border-radius:12px;padding:12px 14px}.assistant-btns{display:flex;gap:10px}.assistant-btns .btn{flex:1}@media(max-width:860px){.two-col{flex-direction:column}.col-left,.col-right{width:100%}.transcript-card{flex:none}.transcript-scroll{flex:none;max-height:42vh}}.warn-bar{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 14px;font-size:12.5px;margin-bottom:14px;cursor:pointer;border:1px solid rgba(216,74,79,.16)}.hint{background:#fff;color:var(--text-sub);border-radius:10px;padding:10px 14px;font-size:12.5px;margin-bottom:14px;border:1px solid var(--border);border-left:3px solid var(--warn)}.tabs{display:flex;gap:3px;margin-bottom:16px;background:#ebedf0;padding:3px;border-radius:10px}.tab{flex:1;text-align:center;padding:8px 10px;border-radius:8px;color:var(--text-sub);cursor:pointer;font-size:13.5px;font-weight:550;transition:color .15s,background .2s,box-shadow .2s}.tab:hover{color:var(--text)}.tab.active{background:#fff;color:var(--text);box-shadow:var(--shadow)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#14182466;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:fade .16s ease both}.modal{background:#fff;border-radius:16px;padding:22px;width:min(440px,100%);box-shadow:var(--shadow-lg);animation:pop .2s cubic-bezier(.22,1,.36,1) both}.modal-btns{display:flex;gap:10px;margin-top:20px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.mini-btn{border:1px solid var(--border-strong);background:#fff;color:var(--text-sub);border-radius:8px;font-size:11.5px;font-weight:550;padding:4px 11px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.mini-btn:hover{background:#f4f5f7;color:var(--brand);border-color:var(--brand-soft-2)}.mini-btn:disabled{opacity:.5;cursor:default}.turn{border-left:3px solid var(--border-strong);background:#f7f8fa;padding:10px 14px;border-radius:0 10px 10px 0}.turn.assistant{border-left-color:var(--brand)}.source-line{display:flex;gap:8px;align-items:center;font-size:12.5px;margin-top:5px}.src-kind{flex:none;padding:1px 8px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-weight:600;font-size:11.5px}.robot-card{overflow:hidden}.robot-chip{flex:none;white-space:nowrap}.robot-online{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 1px #16a06a24}.robot-offline{background:var(--danger-soft);color:var(--danger);box-shadow:inset 0 0 0 1px #e5484d24}.robot-video-frame{width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:12px;background:#172033;border:1px solid var(--border)}.robot-video-frame img{width:100%;height:100%;object-fit:cover;display:block}.robot-video-error,.robot-control-error{margin-top:10px;font-size:13px;border-radius:9px;padding:8px 10px}.robot-video-error{color:#9a6a00;background:var(--warn-soft)}.robot-control-error{color:var(--danger);background:var(--danger-soft)}.robot-pad{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:9px;max-width:360px;margin:16px auto}.robot-direction{min-width:44px;min-height:44px;border:1px solid var(--brand-soft-2);border-radius:12px;background:var(--brand-soft);color:var(--brand);font:inherit;font-size:14px;font-weight:700;cursor:pointer;touch-action:none;transition:transform .12s ease,background .15s,box-shadow .15s}.robot-direction:not(:disabled):hover{background:var(--brand-soft-2)}.robot-direction:not(:disabled):active{transform:scale(.97)}.robot-direction:disabled{opacity:.5;cursor:not-allowed}.robot-forward{grid-column:2;grid-row:1}.robot-left{grid-column:1;grid-row:2}.robot-stop{grid-column:2;grid-row:2;background:#f4f6fb;border-color:var(--border);color:var(--text-sub)}.robot-right{grid-column:3;grid-row:2}.robot-backward{grid-column:2;grid-row:3}.robot-emergency{margin-top:2px}.robot-demos{margin-top:4px}.robot-demos-title{font-size:12px;font-weight:600;color:var(--text-sub);margin-bottom:8px}.robot-demos-grid{display:grid;gap:8px}.robot-demo-btn{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border:1px solid var(--brand-soft-2);border-radius:12px;background:var(--brand-soft);color:var(--brand);cursor:pointer;font:inherit;transition:transform .12s ease,background .15s,box-shadow .15s}.robot-demo-btn:not(:disabled):hover{background:var(--brand-soft-2)}.robot-demo-btn:not(:disabled):active{transform:scale(.99)}.robot-demo-btn:disabled{opacity:.5;cursor:not-allowed}.robot-demo-btn.active{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.robot-demo-label{font-size:14px;font-weight:700}.robot-demo-desc{font-size:11.5px;font-weight:500;color:var(--text-sub)}.robot-demo-btn.active .robot-demo-desc{color:var(--danger);opacity:.85}
