:root{--bg-primary: #0a0c10;--bg-secondary: #0e1117;--bg-surface: #141821;--bg-elevated: #1a1f2a;--bg-hover: #222834;--bg-inset: #0c0e13;--surface-elevated: var(--bg-elevated);--border-subtle: #232a36;--border-strong: #313a49;--border-active: #3b82f6;--text-primary: #eef1f6;--text-secondary: #aab4c4;--text-muted: #79859a;--text-inverse: #0a0c10;--accent-blue: #4d8bff;--accent-cyan: #2dd4ee;--accent-green: #2dd4a8;--accent-amber: #f5a623;--accent-red: #f0564b;--accent-purple: #a78bfa;--accent-soft: #16243d;--accent-soft-green: #103027;--accent-soft-red: #2e1715;--severity-info: #4d8bff;--severity-warn: #f5a623;--severity-error: #f0564b;--severity-debug: #aab4c4;--severity-unknown: #79859a;--chart-grid: rgba(255, 255, 255, .06);--chart-axis: #79859a;--chart-tooltip-bg: #1a1f2a;--chart-tooltip-border: #313a49;--chart-1: #2dd4ee;--chart-2: #a78bfa;--chart-3: #2dd4a8;--chart-4: #f5a623;--chart-5: #f0564b;--chart-6: #4d8bff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-card: 0 1px 3px rgba(0, 0, 0, .45);--shadow-pop: 0 10px 30px rgba(0, 0, 0, .5);--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition: .15s ease;color-scheme:dark}:root[data-theme=light]{--bg-primary: #f4f6f9;--bg-secondary: #ffffff;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-hover: #eef1f6;--bg-inset: #f1f4f8;--surface-elevated: var(--bg-elevated);--border-subtle: #e3e8f0;--border-strong: #cdd5e1;--border-active: #2563eb;--text-primary: #16202e;--text-secondary: #4a5568;--text-muted: #6b7585;--text-inverse: #ffffff;--accent-blue: #2563eb;--accent-cyan: #0e7490;--accent-green: #0d9488;--accent-amber: #b45309;--accent-red: #dc2626;--accent-purple: #7c3aed;--accent-soft: #e8f0ff;--accent-soft-green: #e2f6f1;--accent-soft-red: #fdeceb;--severity-info: #2563eb;--severity-warn: #b45309;--severity-error: #dc2626;--severity-debug: #6b7585;--severity-unknown: #94a0b2;--chart-grid: rgba(15, 23, 42, .09);--chart-axis: #6b7585;--chart-tooltip-bg: #ffffff;--chart-tooltip-border: #cdd5e1;--chart-1: #0e7490;--chart-2: #7c3aed;--chart-3: #0d9488;--chart-4: #b45309;--chart-5: #dc2626;--chart-6: #2563eb;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-card: 0 1px 3px rgba(16, 24, 40, .08);--shadow-pop: 0 12px 32px rgba(16, 24, 40, .14);color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at top,var(--bg-secondary) 0%,var(--bg-primary) 70%)}.auth-oauth-group{display:flex;flex-direction:column;gap:10px;width:100%}.auth-oauth-btn{display:block;width:100%;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-primary);font-size:14px;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease}.auth-oauth-btn:hover{border-color:var(--border-active);background:var(--surface-elevated)}.auth-oauth-microsoft{border-color:var(--accent-blue)}.auth-oauth-google{border-color:#ea433559}.auth-divider{margin:14px 0 10px;font-size:12px;color:var(--text-muted);text-align:center}.auth-hint{margin-top:12px;font-size:12px;color:var(--text-muted);text-align:center}.auth-card{width:100%;max-width:360px;padding:32px 28px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:0 24px 48px #00000059;text-align:center}.auth-icon{font-size:28px;margin-bottom:12px}.auth-title{font-size:24px;font-weight:700;letter-spacing:-.02em}.auth-subtitle{margin-top:6px;color:var(--text-muted);font-size:13px}.auth-form{margin-top:24px;display:flex;flex-direction:column;gap:12px}.auth-input{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-primary);font-size:16px;text-align:center;letter-spacing:.08em}.auth-input:focus{outline:none;border-color:var(--accent-blue)}.auth-error{color:var(--accent-red);font-size:13px}.auth-submit{width:100%;justify-content:center}.app-layout{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden}.main-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:6px 10px 8px;gap:4px}.workspace-split{display:flex;flex:1;min-height:0;gap:0;overflow:hidden}.workspace-main{flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:16px;padding-right:4px;-webkit-overflow-scrolling:touch}.workspace-main>.dash-view,.workspace-main>.metrics-panel,.workspace-main>.logs-view{min-height:200vh}.workspace-canvas{flex-shrink:0;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column}.workspace-canvas-collapsed{position:fixed;left:-10000px;top:0;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;flex:none!important}.view-tabs-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-shrink:0}.view-tabs{display:flex;gap:4px;flex-shrink:0}.view-tab-btn{padding:7px 20px;font-size:13px;font-weight:400;border-radius:8px 8px 0 0;cursor:pointer;border:1px solid transparent;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);transition:all .15s ease;line-height:1.2;min-height:36px}.view-tab-btn.active,.view-tab-btn.listening{font-weight:600;border:1px solid var(--border-subtle);border-bottom:1px solid var(--bg-primary);background:var(--surface-elevated);color:var(--accent-cyan)}.view-tab-btn.listening{color:var(--accent-green)}.navbar{display:flex;flex-direction:column;gap:4px;padding:0 10px 4px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.navbar-compact-row{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:4px 10px}.navbar-compact-row .navbar-brand{flex-shrink:0}.navbar-compact-row .navbar-filters{flex:1;min-width:0}.navbar-account{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.navbar-account-email{font-size:11px;color:var(--text-muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-signout-btn{padding:5px 10px;font-size:11px;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.navbar-signout-btn:hover:not(:disabled){border-color:var(--text-muted);color:var(--text-primary)}.navbar-signout-btn:disabled{opacity:.6;cursor:default}.navbar-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px}.filters-toggle-btn{padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.navbar-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;letter-spacing:-.3px}.navbar-brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 8px var(--accent-green);animation:pulse-dot 2s ease-in-out infinite}.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:4px;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);font-size:14px;line-height:1;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.theme-toggle-btn:hover{border-color:var(--accent-blue);background:var(--bg-hover)}.app-layout-compact .theme-toggle-btn{width:36px;height:36px;font-size:16px}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 8px var(--accent-green)}50%{opacity:.6;box-shadow:0 0 16px var(--accent-green)}}.navbar-filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.navbar-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.filter-group{display:flex;align-items:center;gap:6px}.filter-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.filter-dropdown{position:relative}.filter-dropdown-trigger{cursor:pointer;text-align:left;min-width:88px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:168px;padding:6px 0;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);box-shadow:0 8px 24px #00000059}.filter-dropdown-option{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:var(--text-primary);cursor:pointer}.filter-dropdown-option:hover{background:var(--bg-hover)}.filter-dropdown-option input{accent-color:var(--accent-cyan)}.filter-select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 10px;font-size:13px;font-family:var(--font-family);cursor:pointer;transition:border-color var(--transition);outline:none}.filter-select:hover{border-color:var(--border-active)}.filter-select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px var(--accent-soft)}.query-bar{display:flex;align-items:center;gap:10px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 16px}.query-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;outline:none}.query-input::placeholder{color:var(--text-muted)}.btn{padding:6px 16px;border:none;border-radius:var(--radius-sm);font-family:var(--font-family);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition)}.btn-primary{background:var(--accent-blue);color:#fff}.btn-primary:hover{background:color-mix(in srgb,var(--accent-blue) 85%,#fff);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.log-table-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;flex:1}.log-table{width:100%;border-collapse:collapse;font-size:13px}.log-table thead{background:var(--bg-surface);position:sticky;top:0;z-index:1}.log-table th{text-align:left;padding:6px 14px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.log-table td{padding:4px 14px;border-bottom:1px solid rgba(42,51,72,.3);vertical-align:top;line-height:1.35}.log-table tbody tr{transition:background var(--transition)}.log-table tbody tr:hover{background:var(--bg-hover)}.log-timestamp{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);white-space:nowrap}.log-service{font-weight:500;color:var(--accent-purple);white-space:nowrap}.log-message{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);word-break:break-all;max-width:800px}.severity-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.severity-info{background:color-mix(in srgb,var(--severity-info) 15%,transparent);color:var(--severity-info)}.severity-warn,.severity-warning{background:color-mix(in srgb,var(--severity-warn) 15%,transparent);color:var(--severity-warn)}.severity-error{background:color-mix(in srgb,var(--severity-error) 15%,transparent);color:var(--severity-error)}.severity-debug{background:color-mix(in srgb,var(--severity-debug) 12%,transparent);color:var(--severity-debug)}.severity-unknown{background:color-mix(in srgb,var(--severity-unknown) 12%,transparent);color:var(--severity-unknown)}.volume-chart{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px;height:180px}.volume-chart-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.stats-bar{display:flex;gap:16px}.stat-card{display:flex;flex-direction:column;gap:4px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 20px;min-width:140px}.stat-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:22px;font-weight:700;color:var(--text-primary)}.stat-value.green{color:var(--accent-green)}.stat-value.amber{color:var(--accent-amber)}.stat-value.red{color:var(--accent-red)}.stat-value.blue{color:var(--accent-blue)}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-muted);font-size:14px}.spinner{width:20px;height:20px;border:2px solid var(--border-subtle);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .6s linear infinite;margin-right:10px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);gap:8px}.empty-state-icon{font-size:32px;opacity:.4}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.log-table tbody tr.log-row-main{cursor:pointer}.log-table tbody tr.log-row-main:hover{background:var(--bg-hover)}.log-table tbody tr.log-row-expanded{background:var(--bg-surface)}.log-row-expand-icon{display:inline-block;width:14px;font-size:10px;color:var(--text-muted);transition:transform var(--transition);-webkit-user-select:none;user-select:none}.log-row-expand-icon.open{transform:rotate(90deg)}.log-detail{background:var(--bg-surface);border-top:1px solid var(--border-subtle);animation:slideDown .15s ease}.log-detail td{padding:0!important}.log-detail-inner{padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}.log-detail-section{display:flex;flex-direction:column;gap:6px}.log-detail-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.log-detail-labels{display:flex;flex-wrap:wrap;gap:4px}.log-label-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-family:var(--font-mono);background:var(--bg-elevated);border:1px solid var(--border-subtle);transition:border-color var(--transition)}.log-label-chip:hover{border-color:var(--border-active)}.log-label-key{color:var(--accent-blue);font-weight:500}.log-label-value{color:var(--text-secondary)}.log-detail-message{font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px;white-space:pre-wrap;word-break:break-all;max-height:300px;overflow-y:auto}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auto-refresh-group{display:flex;align-items:center;gap:4px}.auto-refresh-btn{padding:3px 8px;font-size:11px;border-radius:12px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition);font-weight:400;font-family:var(--font-family)}.auto-refresh-btn:hover{border-color:var(--text-muted)}.auto-refresh-btn.active{border-color:var(--accent-green);background:var(--accent-soft-green);color:var(--accent-green);font-weight:600}.auto-refresh-btn.active.running{animation:pulse-refresh 2s ease-in-out infinite}@keyframes pulse-refresh{0%,to{box-shadow:0 0 #2dd4a833}50%{box-shadow:0 0 0 3px #2dd4a81a}}.btn-dedupe{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-family:var(--font-family);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition)}.btn-dedupe:hover{border-color:var(--text-muted);color:var(--text-secondary)}.btn-dedupe.active{border-color:var(--accent-purple);background:#a78bfa1a;color:var(--accent-purple);font-weight:600}.dedupe-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:1px 6px;border-radius:10px;font-size:10px;font-weight:700;font-family:var(--font-mono);background:var(--accent-purple);color:#fff;letter-spacing:-.3px}.log-row-grouped{border-left:2px solid var(--accent-purple)}.dedupe-timestamps{display:flex;flex-direction:column;gap:2px;padding:6px 0 0 8px;border-left:2px solid var(--border-subtle);margin-left:4px;max-height:200px;overflow-y:auto}.dedupe-timestamp-row{display:flex;align-items:center;gap:12px;padding:2px 4px;border-radius:2px}.dedupe-timestamp-row:hover{background:var(--bg-hover)}.download-group{display:flex;gap:4px}.btn-download{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-family:var(--font-family);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition)}.btn-download:hover{border-color:var(--accent-blue);color:var(--accent-blue);background:var(--accent-soft)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pane-divider{width:8px;cursor:col-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:10;transition:background .15s ease}.pane-divider:hover,.pane-divider:active{background:var(--accent-soft)}.pane-divider-grip{width:4px;height:32px;border-radius:2px;background:var(--border-subtle);transition:background .15s ease,height .15s ease}.pane-divider:hover .pane-divider-grip,.pane-divider:active .pane-divider-grip{background:var(--accent-blue);height:48px}.metrics-panel{display:flex;flex-direction:column;gap:16px;height:auto;min-height:0}.metrics-chart-box{flex:none;min-height:clamp(360px,52vh,620px);background:var(--surface-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:16px;display:flex;flex-direction:column}.metrics-chart-caption{margin:0 0 8px;font-size:12px;color:var(--text-secondary);line-height:1.45}.metrics-chart-query{font-size:11px;color:var(--text-muted);margin-bottom:12px;font-family:var(--font-mono);word-break:break-all;line-height:1.35}.metrics-chart-canvas{flex:1;min-height:clamp(300px,46vh,560px);height:clamp(300px,46vh,560px)}.canvas-header{padding:4px 8px;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);display:flex;flex-wrap:nowrap;align-items:center;gap:6px;flex-shrink:0;min-height:34px}.canvas-header-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.canvas-header-toolbar{display:flex;flex:1;min-width:0;align-items:center;gap:6px;flex-wrap:nowrap;overflow:hidden}.canvas-header .voice-select--model{flex:1 1 88px;max-width:128px;min-width:0}.canvas-header .voice-select--engine{flex:0 1 72px;max-width:72px;min-width:0}.canvas-header .voice-select--voice{flex:1 1 72px;max-width:104px;min-width:0}.canvas-header .voice-select{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.canvas-header-cost{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.canvas-header-stop{color:var(--accent-red)!important;border-color:var(--accent-red)!important;font-size:11px!important;font-weight:600;padding:4px 10px!important;min-width:auto;flex-shrink:0}.canvas-welcome{margin:auto;text-align:center;padding:24px 16px}.canvas-welcome-title{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.canvas-welcome-hint{margin:8px 0 0;font-size:13px;color:var(--text-muted);max-width:280px;line-height:1.45}.canvas-turn-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--text-muted)}.canvas-turn-label{font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary)}.canvas-turn-model{font-size:11px;color:var(--text-muted)}.canvas-input-area{padding:12px;border-top:1px solid var(--border-subtle);background:var(--bg-primary);flex-shrink:0}.canvas-input-row{display:flex;gap:8px;align-items:stretch}.canvas-input-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.canvas-input-actions .canvas-mic-btn,.canvas-ask-btn{width:56px;min-width:56px}.canvas-input-actions .canvas-mic-btn{height:34px}.canvas-ask-btn{padding:8px 12px;flex:1}.canvas-text-input{flex:1;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);resize:none;overflow-y:auto;line-height:1.4;min-height:72px;max-height:140px;field-sizing:content}.canvas-mobile-voice-hint{display:none;margin:0 0 8px;font-size:11px;color:var(--text-muted);text-align:center}.app-layout-compact .main-content{padding:10px;padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.app-layout-compact .view-tabs{display:none}.app-layout-compact .navbar{padding:0 10px 8px}.app-layout-compact .navbar-compact-row{flex-wrap:wrap}.app-layout-compact .navbar-filters-collapsed{display:none}.app-layout-compact .navbar-filters:not(.navbar-filters-collapsed){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-bottom:4px}.app-layout-compact .navbar-filters .filter-group{min-width:0}.app-layout-compact .filter-select{width:100%;min-height:40px;font-size:14px}.app-layout-compact .filter-group:has(.filter-dropdown){grid-column:1 / -1}.app-layout-compact .workspace-split{flex:1;min-height:0}.app-layout-compact .workspace-main{flex:1;min-height:0;padding-right:0}.app-layout-compact .workspace-split.mobile-show-data .workspace-canvas{display:none}@media(max-width:1024px)and (orientation:landscape){.app-layout-compact .workspace-split.mobile-show-data{flex-direction:row;gap:8px}.app-layout-compact .workspace-split.mobile-show-data .workspace-main{flex:1;min-width:0}.app-layout-compact .workspace-split.mobile-show-data .workspace-canvas{display:flex;flex:0 0 38%;width:38%!important;min-width:260px;max-width:420px;height:100%;min-height:0}.app-layout-compact .mobile-agent-fab{display:none}}.app-layout-compact .workspace-split.mobile-show-agent .workspace-main{display:none}.app-layout-compact .workspace-split.mobile-show-agent .workspace-canvas{flex:1;width:100%!important;height:100%;min-height:0}.app-layout-compact .pane-divider{display:none}.app-layout-compact .workspace-main>.dash-view,.app-layout-compact .workspace-main>.metrics-panel,.app-layout-compact .workspace-main>.logs-view{min-height:180vh}.app-layout-compact .metrics-panel{height:auto}.app-layout-compact .metrics-chart-box{flex:none;min-height:clamp(280px,42vh,480px)}.app-layout-compact .metrics-chart-canvas{min-height:clamp(240px,38vh,420px);height:clamp(240px,38vh,420px)}.app-layout-compact .query-bar{flex-wrap:wrap}.app-layout-compact .query-input{font-size:16px;min-width:0}.app-layout-compact .canvas-mobile-voice-hint{display:block}.app-layout-compact .canvas-mic-btn,.app-layout-compact .canvas-speak-toggle{width:48px;height:48px;min-width:48px;font-size:22px}.app-layout-compact .canvas-text-input{font-size:16px;min-height:48px}.app-layout-compact .btn-primary{min-height:48px;padding:10px 18px}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:100;display:flex;align-items:stretch;justify-content:space-around;gap:2px;padding:6px 8px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));background:var(--bg-secondary);border-top:1px solid var(--border-subtle);box-shadow:0 -4px 24px #00000059}.mobile-bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;min-height:52px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-family);transition:background .15s ease,color .15s ease}.mobile-bottom-nav-btn.active{background:var(--accent-soft);color:var(--accent-blue)}.mobile-bottom-nav-btn.active .mobile-bottom-nav-label{font-weight:600}.mobile-bottom-nav-icon{font-size:20px;line-height:1}.mobile-bottom-nav-label{font-size:10px;letter-spacing:.02em}.mobile-bottom-nav-btn:last-child.active{background:var(--accent-soft-green);color:var(--accent-green)}.mobile-agent-fab{position:fixed;right:14px;bottom:calc(68px + env(safe-area-inset-bottom,0px));z-index:99;display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid var(--accent-green);border-radius:999px;background:var(--accent-soft-green);color:var(--text-primary);font-size:14px;font-weight:600;box-shadow:0 8px 24px #00000059;cursor:pointer}.logs-view{display:flex;flex-direction:column;gap:12px;min-height:0}.app-layout-compact .logs-query-bar{flex-wrap:wrap}.app-layout-compact .logs-query-bar .btn-dedupe{min-height:40px}.app-layout-compact .log-table-container{min-height:280px;flex:none}.app-layout-compact .log-table th,.app-layout-compact .log-table td{padding:8px 10px}.app-layout-compact .log-message{word-break:break-word}.app-layout-compact .dash-panels{grid-template-columns:1fr}.app-layout-compact .dash-panel{grid-column:1 / -1!important}.app-layout-compact .dash-panel-chart-area{min-height:clamp(220px,34vh,360px);height:clamp(220px,34vh,360px)}.app-layout-compact .dash-rates{flex-wrap:wrap}.app-layout-compact .dash-rate-field input{min-height:40px;font-size:16px}.app-layout-compact .dash-panel-action-btn,.app-layout-compact .dash-copy-btn{min-height:40px;min-width:40px}.app-layout-compact .voice-select{max-width:120px;font-size:11px}.app-layout-compact .canvas-header-btn{min-width:40px;min-height:40px;justify-content:center}.canvas-header-btn{background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:3px 6px;font-size:14px;transition:all .15s ease;display:flex;align-items:center}.canvas-header-btn:hover{border-color:var(--text-muted);color:var(--text-secondary)}.canvas-header-btn.active{border-color:var(--accent-green);background:var(--accent-soft-green);color:var(--accent-green)}.canvas-speak-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.canvas-speak-toggle:hover{border-color:var(--accent-blue);color:var(--accent-blue);background:var(--accent-soft)}.canvas-speak-toggle.active{border-color:var(--accent-green);background:var(--accent-soft-green);color:var(--accent-green)}.canvas-mic-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.canvas-mic-btn:hover{border-color:var(--accent-green);color:var(--accent-green);background:var(--accent-soft-green)}.canvas-mic-btn.listening{border-color:var(--accent-red);background:var(--accent-soft-red);color:var(--accent-red);animation:pulse-mic 1.5s ease infinite}.canvas-mic-btn.speaking-stop{background:var(--accent-soft-red);border-color:var(--accent-red);color:var(--accent-red);min-width:44px;min-height:44px}.agent-voice-dock-btn.speaking-stop,.view-tab-btn.speaking-stop{background:var(--accent-soft-red)!important;border-color:var(--accent-red)!important;color:var(--accent-red)!important}@keyframes pulse-mic{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 6px #ef444400}}.canvas-speak-btn{background:transparent;border:none;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px;transition:all .15s ease;margin-left:auto;opacity:.6}.canvas-speak-btn:hover{opacity:1;background:var(--accent-soft)}.canvas-mermaid-wrap{-webkit-overflow-scrolling:touch}.canvas-mermaid-svg svg{max-width:100%;height:auto;min-width:260px}.canvas-mermaid-svg .node rect,.canvas-mermaid-svg .cluster rect{stroke:#5a6478;stroke-width:1px}.agent-voice-dock{position:fixed;right:16px;bottom:16px;z-index:120;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--border-active);background:#171d2af5;box-shadow:0 8px 28px #00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.agent-voice-dock-compact{right:12px;bottom:calc(72px + env(safe-area-inset-bottom,0px))}.agent-voice-dock-tabs{position:static;display:flex;align-items:flex-end;gap:4px;flex-shrink:0;margin-bottom:0}.agent-voice-dock-tabs .view-tab-btn{min-width:auto;padding:7px 16px}.agent-voice-dock-tabs .agent-voice-dock-status{align-self:center;margin-left:4px;margin-bottom:6px}.agent-voice-dock-open{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--accent-blue);background:var(--accent-soft);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer}.agent-voice-dock-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border-subtle);background:var(--bg-elevated);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.agent-voice-dock-btn.active,.agent-voice-dock-btn.listening{border-color:var(--accent-green);background:var(--accent-soft-green)}.agent-voice-dock-stop{border-color:var(--accent-red);background:var(--accent-soft-red)}.agent-voice-dock-status{font-size:11px;color:var(--accent-green);white-space:nowrap;display:flex;align-items:center;gap:6px}.agent-stop-speak-btn{min-width:44px}.voice-speaking-bar{position:fixed;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:1200;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 16px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border-strong);box-shadow:var(--shadow-card);max-width:min(92vw,420px)}.voice-speaking-bar-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);white-space:nowrap}.voice-speaking-bar-stop{flex-shrink:0;padding:6px 14px;border-radius:999px;border:1px solid var(--accent-red);background:var(--accent-soft-red);color:var(--accent-red);font-size:13px;font-weight:600;cursor:pointer}.voice-speaking-bar-stop:hover{filter:brightness(1.08)}@media(max-width:768px){.voice-speaking-bar{bottom:calc(4.75rem + env(safe-area-inset-bottom,0px));width:min(92vw,420px);justify-content:space-between;padding:12px 14px 12px 16px}.voice-speaking-bar-stop{min-width:72px;min-height:44px;padding:10px 18px;font-size:15px}.voice-speaking-bar-label{font-size:14px}}@media(max-width:1024px){.agent-voice-dock-open-label{display:none}.agent-voice-dock{padding:6px 10px;gap:6px}.agent-voice-dock-btn{width:48px;height:48px}}@media(max-width:640px){.canvas-viz{border-radius:var(--radius-sm)}.canvas-mermaid-wrap{max-height:55vh}.canvas-copy-mermaid-btn{flex-shrink:0}}.pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent-green);animation:pulse-dot-anim 1s ease infinite}@keyframes pulse-dot-anim{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.voice-select{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px 6px;font-size:11px;font-family:var(--font-mono);cursor:pointer;outline:none;transition:border-color .15s ease;text-transform:capitalize}.voice-select:hover,.voice-select:focus{border-color:var(--accent-blue)}.voice-select option{background:var(--bg-primary);color:var(--text-primary);text-transform:capitalize}.dash-hub-header h2{font-size:20px;margin-bottom:6px}.dash-hub-header p{color:var(--text-secondary);font-size:13px;margin-bottom:20px}.dash-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.dash-hub-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;text-align:left;box-shadow:var(--shadow-card);transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.dash-hub-card:hover{border-color:var(--accent-blue);transform:translateY(-2px);box-shadow:var(--shadow-pop)}.dash-hub-icon{font-size:28px}.dash-hub-title{font-size:16px;font-weight:600;color:var(--text-primary)}.dash-hub-sub{font-size:13px;color:var(--accent-cyan)}.dash-hub-desc{font-size:12px;color:var(--text-secondary);line-height:1.45}.dash-hub-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:color-mix(in srgb,var(--accent-amber) 16%,transparent);color:var(--accent-amber);font-weight:600}.dash-view-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.dash-view-header h2{font-size:18px}.dash-view-header p{font-size:13px;color:var(--text-secondary)}.dash-grafana-link{margin-left:auto;font-size:12px;color:var(--accent-blue);text-decoration:none}.dash-grafana-link:hover{text-decoration:underline}.btn-ghost{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius-md);cursor:pointer;font-size:12px}.btn-ghost:hover{border-color:var(--accent-blue);color:var(--text-primary)}.dash-rates{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:16px}.dash-rates-label{font-size:12px;color:var(--accent-amber);font-weight:600}.dash-rate-field{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--text-muted)}.dash-rate-field input{width:64px;padding:4px 6px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px}.dash-panels{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:stretch}.dash-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 16px;min-width:0;display:flex;flex-direction:column;box-shadow:var(--shadow-card)}.dash-panel-chart{min-height:0}.dash-panel-chart-area{flex:1;width:100%;min-height:260px}.dash-panel-tall .dash-table-wrap,.dash-panel-tall .dash-logs{flex:1;min-height:clamp(240px,32vh,480px);max-height:clamp(280px,40vh,560px)}.canvas-chart-area{width:100%;min-height:clamp(220px,30vh,380px);height:clamp(220px,30vh,380px)}.log-volume-chart-area{width:100%;min-height:clamp(140px,18vh,220px);height:clamp(140px,18vh,220px)}.dash-panel-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.dash-panel-title{font-size:12px;color:var(--text-secondary);margin-bottom:10px;font-weight:500}.dash-panel-titlebar .dash-panel-title{margin-bottom:0}.dash-panel-actions{display:flex;gap:6px;flex-shrink:0}.dash-panel-action-btn{font-size:11px;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--accent-cyan);cursor:pointer;white-space:nowrap;transition:background var(--transition),border-color var(--transition)}.dash-panel-action-btn:hover{background:var(--bg-hover);border-color:var(--accent-blue)}.dash-panel-hint{font-size:11px;color:var(--text-muted);margin:0 0 8px}.dash-empty{font-size:12px;color:var(--text-muted);padding:12px 0}.dash-panel-stat{container-type:inline-size}.dash-panel-stat .dash-stat-value{font-size:clamp(14px,21cqi,28px);font-weight:700;color:var(--accent-cyan);white-space:nowrap;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dash-panel-stat .dash-stat-value.cost{color:var(--accent-amber)}.dash-panel-markdown .dash-markdown{font-size:13px;color:var(--text-secondary);line-height:1.5}.dash-panel-error{color:var(--accent-red);font-size:12px;padding:8px}.dash-loading{color:var(--text-muted);font-size:13px;margin-bottom:12px}.dash-table-wrap{overflow:auto}.dash-table{width:100%;font-size:11px;border-collapse:collapse}.dash-table th,.dash-table td{padding:6px 8px;border-bottom:1px solid var(--border-subtle);text-align:left}.dash-table th{color:var(--text-muted);font-weight:500}.dash-logs{overflow:auto;font-family:var(--font-mono);font-size:11px}.dash-log-block{border-bottom:1px solid var(--border-subtle)}.dash-log-block.expanded{background:var(--bg-inset)}.dash-log-line{display:flex;gap:8px;align-items:flex-start;width:100%;padding:6px 4px;border:none;background:transparent;text-align:left;cursor:pointer;font-family:inherit;font-size:inherit}.dash-log-line:hover{background:var(--bg-hover)}.dash-log-expand-icon{color:var(--text-muted);font-size:9px;flex-shrink:0;margin-top:2px;transition:transform var(--transition)}.dash-log-expand-icon.open{transform:rotate(90deg)}.dash-log-ts{color:var(--text-muted);flex-shrink:0;min-width:42px}.dash-log-msg{color:var(--text-secondary);word-break:break-word;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-log-block.expanded .dash-log-msg{-webkit-line-clamp:unset;color:var(--text-primary)}.dash-log-detail{padding:8px 12px 12px 28px;display:flex;flex-direction:column;gap:10px}.dash-log-detail-section{display:flex;flex-direction:column;gap:4px}.dash-log-detail-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dash-log-detail-value{font-size:11px;color:var(--text-secondary)}.dash-log-detail-message{font-size:11px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;margin:0;padding:8px 10px;background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);max-height:200px;overflow:auto}.dash-table-series{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-table-actions-col{width:36px;text-align:right}.dash-copy-btn{font-size:13px;padding:2px 6px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm)}.dash-copy-btn:hover{color:var(--accent-cyan);background:var(--bg-hover)}
