:root{--bg-main: #0b0f19;--bg-panel: #111827;--bg-card: #1f293d;--bg-card-hover: #26334d;--bg-input: #151d30;--border-color: #2a3854;--border-focus: #38bdf8;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-cyan: #0ea5e9;--accent-cyan-glow: rgba(14, 165, 233, .25);--accent-emerald: #10b981;--accent-emerald-glow: rgba(16, 185, 129, .25);--accent-amber: #f59e0b;--accent-amber-glow: rgba(245, 158, 11, .25);--accent-rose: #f43f5e;--accent-purple: #8b5cf6;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-panel: 0 10px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5);--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);min-height:100vh;overflow-x:hidden;line-height:1.5}.app-container{display:flex;flex-direction:column;height:100vh;max-width:1920px;margin:0 auto}.app-header{height:64px;padding:0 24px;background:var(--bg-panel);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.header-left,.logo-badge{display:flex;align-items:center;gap:12px}.logo-icon{font-size:24px;background:#0ea5e926;border:1px solid rgba(14,165,233,.3);padding:6px 10px;border-radius:var(--radius-md)}.logo-text h1{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.logo-text h1 span{color:var(--accent-cyan)}.provider-tag{font-size:.72rem;color:var(--text-secondary);display:block}.header-center{display:flex;align-items:center;gap:12px}.status-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;background:#64748b26;border:1px solid rgba(100,116,139,.3);transition:all .3s ease}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-badge.connected{background:#10b98126;border-color:#10b98166;color:#34d399}.status-badge.connected .status-dot{background:#10b981;box-shadow:0 0 8px #10b981}.status-badge.connecting{background:#f59e0b26;border-color:#f59e0b66;color:#fbbf24}.status-badge.connecting .status-dot{background:#f59e0b;animation:pulse-dot 1s infinite alternate}.status-badge.error{background:#f43f5e26;border-color:#f43f5e66;color:#fb7185}.status-badge.error .status-dot{background:#f43f5e}.metric-pill{padding:6px 12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:.78rem;display:flex;gap:6px}.pill-label{color:var(--text-muted)}.pill-value{font-family:var(--font-mono);color:var(--accent-cyan);font-weight:600}.header-right{display:flex;align-items:center;gap:12px}.main-layout{display:grid;grid-template-columns:360px 1fr 340px;gap:16px;padding:16px;flex:1;min-height:0;overflow:hidden}.panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-height:0;overflow:hidden;box-shadow:var(--shadow-panel)}.panel-header{padding:14px 18px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.panel-header h2{font-size:.95rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.voice-mode-tag{font-size:.72rem;padding:3px 8px;border-radius:var(--radius-sm);background:#0ea5e926;color:var(--accent-cyan);border:1px solid rgba(14,165,233,.3);font-weight:600}.voice-panel{overflow-y:auto}.visualizer-container{position:relative;height:200px;background:radial-gradient(circle at center,#151d30,#0c121e);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;overflow:hidden}#visualizerCanvas{width:100%;height:100%;display:block}.orb-overlay{position:absolute;bottom:12px;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.orb-state-text{font-size:.78rem;font-weight:600;color:var(--text-secondary);background:#0f172ab3;padding:3px 12px;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.audio-level-meter{width:120px;height:4px;background:#ffffff1a;border-radius:var(--radius-full);overflow:hidden}.audio-level-bar{width:0%;height:100%;background:linear-gradient(90deg,#38bdf8,#10b981);transition:width .05s ease}.voice-actions{padding:16px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--border-color)}.btn-mic{width:100%;min-height:64px;background:linear-gradient(135deg,#1e293b,#0f172a);border:2px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:14px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;padding:8px 16px}.btn-mic:not(:disabled):hover{border-color:var(--accent-cyan);box-shadow:0 0 15px var(--accent-cyan-glow)}.btn-mic.active{background:linear-gradient(135deg,#059669,#047857);border-color:#34d399;box-shadow:0 0 25px #34d39966}.btn-subtext-hint{display:block;font-size:.68rem;font-weight:400;color:var(--text-muted)}.barge-in-row{margin-top:4px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.barge-in-row .checkbox-label{display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.btn-mic:disabled{opacity:.5;cursor:not-allowed}.secondary-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.voice-config-card{padding:16px;display:flex;flex-direction:column;gap:14px}.config-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.config-field{display:flex;flex-direction:column;gap:6px}.config-field label{font-size:.76rem;font-weight:600;color:var(--text-secondary)}.label-with-presets{display:flex;align-items:center;justify-content:space-between}.preset-dropdown{background:transparent;color:var(--accent-cyan);border:1px solid rgba(14,165,233,.3);border-radius:var(--radius-sm);font-size:.72rem;padding:2px 6px;cursor:pointer}.preset-dropdown option{background:var(--bg-panel);color:var(--text-primary)}.form-select,.form-input,.form-textarea{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);padding:8px 10px;font-size:.82rem;font-family:inherit;transition:border-color .2s ease}.form-select:focus,.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--border-focus)}.form-textarea{resize:vertical;line-height:1.4}.quick-text-box{background:var(--bg-card);padding:12px;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:8px;border:1px solid var(--border-color)}.quick-text-box label{font-size:.74rem;font-weight:600;color:var(--text-secondary)}.text-input-group{display:flex;gap:6px}.text-input-group input{flex:1}.diagnostics-panel{display:flex;flex-direction:column}.benchmark-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;background:var(--bg-card);border-bottom:1px solid var(--border-color)}.metric-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px;display:flex;gap:10px;position:relative;overflow:hidden;transition:transform .2s ease,border-color .2s ease}.metric-card:hover{border-color:#fff3}.metric-icon{font-size:1.4rem;display:flex;align-items:center;justify-content:center}.metric-info{display:flex;flex-direction:column;gap:2px;min-width:0}.metric-title{font-size:.72rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.metric-main-val{font-family:var(--font-mono);font-size:1.3rem;font-weight:800;color:var(--text-primary);display:flex;align-items:baseline;gap:3px}.metric-unit{font-size:.72rem;color:var(--text-muted);font-weight:500}.metric-sub{font-size:.68rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-title-with-btn{display:flex;align-items:center;justify-content:space-between;gap:4px}.billing-info-tag{font-size:.62rem;color:var(--accent-cyan);background:#0ea5e91f;padding:1px 5px;border-radius:var(--radius-sm);border:1px solid rgba(14,165,233,.25);font-weight:600;cursor:pointer}.metric-cost{cursor:pointer}.billing-table-wrapper{overflow-x:auto}.billing-table{width:100%;border-collapse:collapse;font-size:.8rem}.billing-table th,.billing-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.billing-table th{background:var(--bg-card);color:var(--text-secondary);font-weight:600;font-size:.74rem;text-transform:uppercase}.usage-pill{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.72rem;font-weight:600;font-family:var(--font-mono)}.usage-pill.text-in{background:#38bdf826;color:#38bdf8}.usage-pill.audio-in{background:#fbbf2426;color:#fbbf24}.usage-pill.text-out{background:#a855f726;color:#c084fc}.usage-pill.audio-out{background:#f43f5e26;color:#fb7185}.billing-total-row{background:#0ea5e914;font-family:var(--font-mono);color:var(--accent-cyan)}.billing-note{font-size:.72rem;color:var(--text-muted);line-height:1.4;margin-top:8px}.live-pipeline-widget{background:#151d2f;border-bottom:1px solid var(--border-color);padding:12px 16px;display:flex;flex-direction:column;gap:10px}.pipeline-header{display:flex;align-items:center;justify-content:space-between}.pipeline-title{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.pulse-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.pulse-indicator.active{background:#38bdf8;box-shadow:0 0 10px #38bdf8;animation:pulse-dot .8s infinite alternate}.pipeline-timer{display:flex;align-items:baseline;gap:6px}.timer-label{font-size:.72rem;color:var(--text-muted)}.timer-digits{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:#38bdf8}.pipeline-steps{display:flex;align-items:center;justify-content:space-between;gap:6px}.pipeline-step{flex:1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:all .2s ease}.pipeline-step.active{border-color:#38bdf8;background:#0ea5e926;box-shadow:0 0 10px #0ea5e940}.pipeline-step.done{border-color:#10b981;background:#10b9811a}.step-badge{font-size:.68rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.step-time{font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--text-primary)}.pipeline-step.done .step-time{color:#34d399}.pipeline-arrow{color:var(--text-muted);font-weight:700;font-size:.8rem}.live-stream-box{background:#0d1424;border-bottom:1px solid var(--border-color);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.stream-box-header{display:flex;align-items:center;justify-content:space-between}.stream-status{display:flex;align-items:center;gap:8px;font-size:.76rem;font-weight:700;color:var(--accent-cyan);text-transform:uppercase;letter-spacing:.03em}.stream-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan);animation:pulse-dot .8s infinite alternate}.tokens-badge{font-family:var(--font-mono);font-size:.72rem;background:#0ea5e926;color:#38bdf8;border:1px solid rgba(14,165,233,.3);padding:2px 8px;border-radius:var(--radius-full)}.stream-text-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:10px 14px;font-size:.88rem;line-height:1.5;color:var(--text-primary);min-height:50px;max-height:120px;overflow-y:auto;font-family:var(--font-sans);position:relative}.placeholder-stream{color:var(--text-muted);font-style:italic;font-size:.82rem}.streaming-cursor{display:inline-block;width:2px;height:1.1em;background:#38bdf8;margin-left:2px;vertical-align:middle;animation:cursor-blink .7s infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.chat-container{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column}.chat-messages{display:flex;flex-direction:column;gap:16px}.system-welcome-message{background:#1f293d99;border:1px dashed var(--border-color);border-radius:var(--radius-md);padding:16px;display:flex;gap:12px;align-items:flex-start;color:var(--text-secondary);font-size:.85rem}.welcome-icon{font-size:1.3rem}.welcome-text strong{color:var(--text-primary);display:block;margin-bottom:4px}.message-row{display:flex;flex-direction:column;gap:6px;max-width:88%}.message-row.user{align-self:flex-end}.message-row.assistant{align-self:flex-start}.message-meta{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--text-muted)}.message-row.user .message-meta{justify-content:flex-end}.message-bubble{padding:12px 16px;border-radius:var(--radius-md);font-size:.9rem;line-height:1.55;word-break:break-word}.message-row.user .message-bubble{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-bottom-right-radius:2px}.message-row.assistant .message-bubble{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);border-bottom-left-radius:2px}.msg-latency-footer{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.latency-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);font-size:.7rem;font-family:var(--font-mono);font-weight:600;background:#141c2c;border:1px solid var(--border-color)}.latency-tag.ttft{color:#38bdf8;border-color:#38bdf84d}.latency-tag.ttfa{color:#34d399;border-color:#34d3994d}.latency-tag.dur{color:#fbbf24;border-color:#fbbf244d}.latency-tag.cost{color:#c084fc;border-color:#c084fc4d}.audio-playing-indicator{display:inline-flex;align-items:center;gap:5px;color:var(--accent-emerald);font-size:.74rem;font-weight:600;margin-top:2px}.pulse-bars{display:inline-flex;align-items:center;gap:2px;height:12px}.pulse-bars span{width:2px;height:100%;background:var(--accent-emerald);animation:bar-dance .8s ease-in-out infinite alternate}.pulse-bars span:nth-child(2){animation-delay:.2s}.pulse-bars span:nth-child(3){animation-delay:.4s}.inspector-panel{display:flex;flex-direction:column}.inspector-controls{display:flex;align-items:center;gap:8px}.autoscroll-toggle{font-size:.72rem;color:var(--text-secondary);display:flex;align-items:center;gap:4px;cursor:pointer}.inspector-filter-bar{padding:8px 12px;background:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;gap:6px;overflow-x:auto}.filter-chip{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-full);padding:3px 10px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-chip.active{background:var(--accent-cyan);color:#04111d;border-color:var(--accent-cyan)}.events-log-container{flex:1;min-height:0;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px;font-family:var(--font-mono)}.event-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 8px;font-size:.72rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}.event-item:hover{background:var(--bg-card-hover);border-color:var(--border-focus)}.event-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}.event-type-badge{font-weight:700;padding:1px 6px;border-radius:4px;font-size:.68rem}.event-type-badge.out{background:#0ea5e933;color:#38bdf8}.event-type-badge.in{background:#10b98133;color:#34d399}.event-type-badge.error{background:#f43f5e33;color:#fb7185}.event-time{color:var(--text-muted);font-size:.65rem}.event-summary{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-detail-drawer{height:220px;background:#0d1322;border-top:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.event-detail-drawer.hidden{display:none}.drawer-header{padding:8px 12px;background:var(--bg-card);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color)}.drawer-title{font-size:.76rem;font-weight:700;color:var(--accent-cyan);font-family:var(--font-mono)}.drawer-json{flex:1;overflow:auto;padding:10px;font-family:var(--font-mono);font-size:.7rem;color:#a5b4fc;line-height:1.4;white-space:pre-wrap;word-break:break-all}button{font-family:inherit}.btn-primary{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;border:1px solid #38bdf8;padding:8px 16px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease}.btn-primary:hover{box-shadow:0 0 12px var(--accent-cyan-glow);background:linear-gradient(135deg,#0ea5e9,#0284c7)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);padding:8px 12px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.btn-secondary:not(:disabled):hover{background:var(--bg-card-hover);border-color:var(--border-focus)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:#f43f5e26;color:#fb7185;border:1px solid rgba(244,63,94,.3);padding:8px 12px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.btn-danger:not(:disabled):hover{background:#f43f5e4d}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.btn-icon{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-sm);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.btn-icon:hover{color:var(--text-primary);border-color:var(--border-focus)}.btn-small{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);padding:4px 8px;border-radius:var(--radius-sm);font-size:.72rem;font-weight:600;cursor:pointer;align-self:flex-start}.btn-small:hover{border-color:var(--border-focus)}.btn-text-small{background:transparent;border:none;color:var(--text-muted);font-size:.72rem;cursor:pointer}.btn-text-small:hover{color:var(--text-primary)}.btn-icon-small{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem}.btn-icon-small:hover{color:var(--text-primary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-backdrop.hidden{display:none}.modal-card{width:480px;max-width:90vw;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);display:flex;flex-direction:column}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:1rem;font-weight:700}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.modal-footer{padding:14px 20px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.field-hint{font-size:.7rem;color:var(--text-muted)}.vad-tuning-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:10px}.vad-tuning-header{display:flex;align-items:center;justify-content:space-between}.tuning-title{font-size:.8rem;font-weight:700;color:var(--text-primary)}.vad-state-indicator{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);transition:all .2s ease}.vad-state-indicator.speaking{background:#10b98133;border-color:#10b98180;color:#34d399}.meter-wrapper{display:flex;flex-direction:column;gap:4px}.meter-track{position:relative;height:12px;background:#0006;border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.meter-fill-bar{height:100%;background:linear-gradient(90deg,#0ea5e9,#10b981 70%,#f59e0b);width:0%;border-radius:5px;transition:width .05s ease-out}.meter-threshold-needle{position:absolute;top:0;bottom:0;width:3px;background:#ef4444;box-shadow:0 0 6px #ef4444;z-index:2;transform:translate(-50%)}.meter-legend{display:flex;justify-content:space-between;font-size:.68rem;color:var(--text-muted);font-family:var(--font-mono)}.meter-val-text{color:var(--accent-cyan);font-weight:600}.tuning-sliders-grid{display:flex;flex-direction:column;gap:10px}.tuning-slider-item{display:flex;flex-direction:column;gap:4px}.slider-header-row{display:flex;align-items:center;justify-content:space-between}.slider-header-row label{font-size:.76rem;font-weight:600;color:var(--text-secondary)}.slider-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--accent-cyan);background:#0ea5e91f;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid rgba(14,165,233,.25)}.custom-range-slider{-webkit-appearance:none;width:100%;height:6px;border-radius:3px;background:#ffffff1a;outline:none}.custom-range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-cyan);cursor:pointer;box-shadow:0 0 8px #0ea5e999;transition:transform .1s ease}.custom-range-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.slider-subtext{font-size:.68rem;color:var(--text-muted)}@keyframes pulse-dot{0%{transform:scale(.9);opacity:.6}to{transform:scale(1.3);opacity:1}}@keyframes bar-dance{0%{height:4px}to{height:14px}}@media(max-width:1200px){.main-layout{grid-template-columns:320px 1fr 280px}.benchmark-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.main-layout{grid-template-columns:1fr;overflow-y:auto}.app-container{height:auto;min-height:100vh}}
