#root{width:100%;height:100vh}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#fff;--bg-secondary:#f7f8fa;--bg-card:#fff;--border:#e4e7ec;--border-light:#f0f2f5;--text-primary:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--accent:#2563eb;--accent-light:#2563eb14;--success:#059669;--success-light:#05966914;--warning:#d97706;--warning-light:#d9770614;--critical:#dc2626;--critical-light:#dc262614;--shadow-sm:none;--shadow-md:none;--radius:0px}body{background:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.app{flex-direction:column;height:100vh;display:flex}.header{background:var(--bg-primary);border-bottom:1px solid var(--border);align-items:center;gap:24px;height:72px;padding:0 24px;display:flex}.header-logo{align-items:center;gap:10px;display:flex}.logo-icon{font-size:22px}.header-logo-icon{flex-shrink:0}.header-logo h1{color:var(--text-primary);letter-spacing:-.3px;font-size:22px;font-weight:700}.header-status{margin-left:auto}.status-badge{border-radius:100px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-badge.status-normal{background:var(--success-light);color:var(--success)}.header-center{flex:1}.header-right{margin-left:auto}.footer{background:var(--bg-primary);border-top:1px solid var(--border);justify-content:center;align-items:center;gap:12px;padding:8px 24px;display:flex}.header-support{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.support-text{color:var(--text-primary);font-size:10px;font-weight:500}.support-phone{color:var(--text-primary);letter-spacing:.3px;font-size:14px;font-weight:700}.header-time{flex-direction:column;align-items:flex-end;gap:1px;font-family:JetBrains Mono,Fira Code,monospace;display:flex}.header-date{color:var(--text-secondary);font-size:11px;font-weight:500}.header-clock{color:var(--text-primary);letter-spacing:.5px;font-size:20px;font-weight:700}.header-connections{gap:10px;display:flex}.connection-dot{align-items:center;gap:3px;font-size:11px;font-weight:500;display:inline-flex}.connection-dot.connection-online{color:var(--success)}.connection-dot.connection-offline{color:var(--critical)}.header-tabs{background:var(--bg-secondary);border-radius:10px;gap:2px;padding:4px;display:flex}.tab{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 18px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.tab:hover{color:var(--text-primary)}.tab.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:600}.tab-info{flex-direction:column;gap:1px;display:flex}.tab-name{font-size:12px;font-weight:600}.tab-server{color:var(--text-muted);font-size:10px;font-weight:400}.tab-health{align-items:center;gap:2px;font-size:10px;font-weight:600;display:inline-flex}.tab-health-normal{color:var(--success)}.tab-health-warning{color:var(--warning)}.tab-health-critical{color:var(--critical)}.tab-status{font-size:10px;line-height:1}.tab-status-normal{color:var(--success)}.tab-status-warning{color:var(--warning);font-size:9px}.tab-status-critical{color:var(--critical);font-size:11px;font-weight:800}.content{flex:1;display:flex;overflow:hidden}.main-panel{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.infra-main{flex-direction:column;gap:12px;display:flex}.infra-left{flex-flow:row;gap:12px;display:flex}.infra-left .server-card{flex:1;min-width:0}.infra-middle{flex-direction:row;gap:12px;display:flex}.infra-middle .resource-card{flex:1;min-width:0}.infra-bottom{flex-direction:row;gap:12px;display:flex}.infra-bottom .resource-card{flex:1;min-width:0}.infra-right{flex-direction:column;flex:1;gap:12px;display:flex}.infra-topology{align-items:center;gap:16px;display:flex}.lb-section{align-items:center;gap:12px;display:flex}.lb-badge{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:4px;padding:12px 16px;display:flex}.lb-badge span{color:var(--text-secondary);font-size:11px;font-weight:600}.lb-icon{width:24px;height:24px;color:var(--accent)}.lb-lines{flex-direction:column;gap:20px;display:flex}.lb-line{background:var(--border);width:24px;height:2px}.server-cards{flex:1;gap:12px;display:flex}.server-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex:1;padding:16px;transition:box-shadow .15s}.server-card:hover{box-shadow:none}.server-card.server-critical{border:2px solid var(--critical);background:var(--critical-light)}.server-card.server-normal{border:2px solid var(--success);background:var(--success-light)}.server-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.server-name{color:var(--text-primary);font-size:13px;font-weight:600}.server-type-badge{color:var(--accent);background:var(--accent-light);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.server-status-badge{border-radius:100px;padding:2px 8px;font-size:10px;font-weight:600}.server-status-badge.status-critical{background:var(--critical-light);color:var(--critical)}.server-status-badge.status-normal{background:var(--success-light);color:var(--success)}.server-meta{gap:12px;margin-bottom:12px;display:flex}.server-instance-id{color:var(--text-secondary);font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.server-type{color:var(--text-muted);background:var(--bg-secondary);border-radius:3px;padding:1px 6px;font-size:11px}.server-metrics{border-top:1px solid var(--border-light);flex-direction:column;gap:4px;margin-top:12px;padding-top:12px;display:flex}.server-metric-chart{flex-direction:column;gap:4px;display:flex}.mini-chart-svg{width:100%;height:32px}.mini-chart-img{object-fit:fill;width:100%;height:120px}.server-metric-chart .server-metric-label{width:auto}.server-metric-chart .server-metric-value{text-align:left;width:auto}.chart-threshold-line{stroke:var(--critical);stroke-width:.5px;stroke-dasharray:3 2;opacity:.4}.server-metric{align-items:center;gap:8px;display:flex}.server-metric-label{color:var(--text-secondary);width:32px;font-size:11px;font-weight:500}.server-metric-bar{background:var(--bg-secondary);border-radius:6px;flex:1;height:12px;position:relative;overflow:hidden}.server-metric-fill{border-radius:6px;height:100%;transition:width .3s}.server-metric-threshold{width:2px;position:absolute;top:0;bottom:0}.server-metric-threshold.threshold-warning{background:var(--warning);opacity:.35}.server-metric-threshold.threshold-critical{background:var(--critical);opacity:.35}.threshold-label{white-space:nowrap;font-size:9px;font-weight:500;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.threshold-warning .threshold-label{color:var(--warning)}.threshold-critical .threshold-label{color:var(--critical)}.server-metric-fill.fill-normal{background:var(--success)}.server-metric-fill.fill-warning{background:var(--warning)}.server-metric-fill.fill-critical{background:var(--critical)}.server-metric-value{text-align:right;width:32px;color:var(--text-primary);font-size:11px;font-weight:600}.server-metric-value.value-critical{color:var(--critical)}.summary-cards{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:16px;transition:box-shadow .15s;display:flex}.card:hover{box-shadow:none}.card-header{align-items:center;gap:8px;display:flex}.card-icon{font-size:16px}.card-icon-svg{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;font-size:12px;font-weight:500}.card-body{align-items:baseline;gap:6px;display:flex}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.card-label{color:var(--text-secondary);font-size:12px}.card-status{border-radius:100px;width:fit-content;padding:2px 8px;font-size:11px;font-weight:500}.card-status.status-normal{background:var(--success-light);color:var(--success)}.card-status.status-warning{background:var(--warning-light);color:var(--warning)}.resource-cards{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.resource-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;transition:box-shadow .15s}.resource-card:hover{box-shadow:none}.resource-card-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.resource-card-title{color:var(--text-primary);flex:1;font-size:13px;font-weight:600}.resource-card-body{grid-template-columns:1fr 1fr;gap:8px;display:grid}.resource-detail{flex-direction:column;gap:2px;display:flex}.resource-detail-label{color:var(--text-muted);font-size:10px;font-weight:500}.resource-detail-value{color:var(--text-primary);font-size:12px;font-weight:600}.resource-detail-value.cost-value{color:var(--accent);font-size:16px}.metrics{flex:1;grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.metric-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;padding:16px;display:flex}.metric-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.metric-header h3{color:var(--text-primary);font-size:13px;font-weight:600}.metric-period{color:var(--text-muted);background:var(--bg-secondary);border-radius:4px;padding:2px 8px;font-size:11px}.metric-badge{color:var(--critical);background:var(--critical-light);border-radius:100px;padding:2px 8px;font-size:11px;font-weight:600}.line-chart{flex-direction:column;flex:1;display:flex}.chart-svg{width:100%;height:100px}.chart-line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chart-line-critical{stroke:var(--critical)}.chart-line-normal,.chart-line-accent{stroke:var(--accent)}.chart-line-secondary{stroke:var(--success)}.chart-threshold{stroke:var(--critical);stroke-width:1px;stroke-dasharray:4 3;opacity:.5}.chart-legend{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.legend-item{color:var(--text-secondary);font-size:11px}.legend-critical{color:var(--critical)}.legend-normal,.legend-accent{color:var(--accent)}.legend-secondary{color:var(--success)}.legend-threshold{color:var(--text-muted)}.alert-list{flex-direction:column;flex:1;gap:8px;display:flex}.alert-item{border-left:3px solid;border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.alert-item.alert-critical{background:var(--critical-light);border-left-color:var(--critical)}.alert-top{justify-content:space-between;align-items:center;display:flex}.alert-severity{color:var(--critical);letter-spacing:.5px;font-size:10px;font-weight:700}.alert-time{color:var(--text-muted);font-size:10px}.alert-message{font-size:12px;font-weight:500}.alert-resource{color:var(--text-secondary);font-size:11px}.panel-resizer{cursor:col-resize;background:var(--border);flex-shrink:0;width:4px;transition:background .2s}.panel-resizer:hover,.panel-resizer:active{background:var(--accent)}.logs-section{grid-template-columns:1fr 1fr;gap:12px;display:grid}.event-log-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.event-log-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.event-log-header h3{font-size:13px;font-weight:600}.event-log-count{color:var(--text-muted);font-size:11px}.event-log-filters{gap:4px;margin-bottom:12px;display:flex}.event-filter-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:0;padding:4px 10px;font-size:11px;font-weight:500;transition:all .15s}.event-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.event-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.event-log-empty{color:var(--text-muted);text-align:center;padding:16px;font-size:12px}.event-log-list{flex-direction:column;gap:6px;display:flex}.event-log-item{border-radius:0;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.event-log-item.event-critical{background:var(--critical-light)}.event-log-item.event-resolve{background:var(--success-light)}.event-log-item.event-info{background:var(--bg-secondary)}.event-time{color:var(--text-muted);flex-shrink:0;width:60px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.event-badge{letter-spacing:.3px;text-align:center;border-radius:0;flex-shrink:0;width:56px;padding:2px 6px;font-size:9px;font-weight:700}.event-badge-alert{background:var(--critical);color:#fff}.event-badge-action{background:var(--accent);color:#fff}.event-badge-approve,.event-badge-resolve{background:var(--success);color:#fff}.event-badge-info{background:var(--text-muted);color:#fff}.event-message{color:var(--text-primary);flex:1;align-items:center;gap:6px;font-weight:500;display:flex}.event-approved-icon{background:var(--success);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;font-weight:700;display:inline-flex}.event-target{color:var(--text-secondary);flex-shrink:0;font-size:11px}.alert-log-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.alert-log-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.alert-log-header h3{font-size:13px;font-weight:600}.alert-log-count{color:var(--critical);background:var(--critical-light);border-radius:100px;padding:2px 8px;font-size:11px;font-weight:600}.alert-log-list{flex-direction:column;gap:8px;display:flex}.alert-log-item{border-left:3px solid;border-radius:4px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.alert-log-item.alert-log-critical{background:var(--critical-light);border-left-color:var(--critical)}.alert-log-item.alert-log-warning{background:var(--warning-light);border-left-color:var(--warning)}.alert-log-item.alert-log-info{background:var(--accent-light);border-left-color:var(--accent)}.alert-log-item.alert-log-resolved{background:var(--bg-secondary);border-left-color:var(--text-muted);opacity:.7}.alert-log-top{justify-content:space-between;align-items:center;display:flex}.alert-log-severity{letter-spacing:.5px;font-size:10px;font-weight:700}.alert-log-severity.severity-critical{color:var(--critical)}.alert-log-severity.severity-warning{color:var(--warning)}.alert-log-severity.severity-info{color:var(--accent)}.alert-log-severity.severity-resolved{color:var(--text-muted)}.alert-log-time{color:var(--text-muted);font-size:10px}.alert-log-title{font-size:12px;font-weight:500}.alert-log-detail{color:var(--text-secondary);gap:12px;font-size:11px;display:flex}.alert-log-empty{color:var(--text-muted);text-align:center;padding:16px;font-size:12px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.demo-panel{background:var(--bg-primary);border:2px solid var(--accent);z-index:1000;min-width:240px;padding:16px;position:fixed;bottom:60px;left:24px}.demo-panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.demo-panel-title{color:var(--accent);font-size:13px;font-weight:700}.demo-panel-hint{color:var(--text-muted);font-size:10px}.demo-panel-actions{flex-direction:column;gap:8px;display:flex}.demo-btn{border:1px solid var(--border);background:var(--bg-primary);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.demo-btn:hover{border-color:var(--accent)}.demo-btn-alert:hover{border-color:var(--critical);color:var(--critical)}.demo-btn-resolve:hover{border-color:var(--success);color:var(--success)}.demo-btn-reset:hover{border-color:var(--warning);color:var(--warning)}.demo-btn-session:hover{border-color:var(--accent);color:var(--accent)}.demo-shortcut{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:10px}.login-screen{background:var(--bg-secondary);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--bg-primary);border:1px solid var(--border);width:360px;padding:40px}.login-title{margin-bottom:4px;font-size:24px;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:13px}.login-form{flex-direction:column;gap:16px;display:flex}.login-field{flex-direction:column;gap:4px;display:flex}.login-label{color:var(--text-secondary);font-size:12px;font-weight:500}.login-input{border:1px solid var(--border);outline:none;padding:10px 12px;font-size:13px}.login-input:focus{border-color:var(--accent)}.login-error{color:var(--critical);font-size:12px}.login-button{background:var(--accent);color:#fff;cursor:pointer;border:none;padding:10px;font-size:13px;font-weight:600;transition:opacity .15s}.login-button:hover{opacity:.9}.login-button:disabled{opacity:.5;cursor:not-allowed}.metric-chart-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.chart-nodata{height:80px;color:var(--text-muted);background:var(--bg-secondary);justify-content:center;align-items:center;font-size:11px;display:flex}.metric-threshold-label{color:var(--critical);text-align:right;opacity:.6;margin-top:2px;font-size:10px}.alarm-list{flex-direction:column;gap:6px;max-height:120px;display:flex;overflow-y:auto}.alarm-item{border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.alarm-item.alarm-critical{background:var(--critical-light)}.alarm-item.alarm-normal{background:var(--bg-secondary)}.alarm-icon{flex-shrink:0;font-size:14px}.alarm-detail{flex-direction:column;flex:1;gap:1px;display:flex}.alarm-metric{font-weight:500}.alarm-resource{color:var(--text-muted);font-size:10px}.alarm-state{flex-shrink:0;font-size:10px;font-weight:700}.alarm-state.state-ALARM{color:var(--critical)}.alarm-state.state-OK{color:var(--success)}.alarm-state.state-INSUFFICIENT_DATA{color:var(--text-muted)}.alarm-empty{color:var(--text-muted);text-align:center;padding:12px;font-size:12px}.cost-bar-wrap{border-top:1px solid var(--border-light);margin-top:8px;padding-top:8px}.cost-bar{background:var(--bg-secondary);border-radius:3px;height:6px;overflow:hidden}.cost-bar-fill{border-radius:3px;height:100%;transition:width .3s}.cost-bar-fill.fill-normal{background:var(--success)}.cost-bar-fill.fill-warning{background:var(--warning)}.connection-pct{color:var(--text-muted);font-size:10px}.value-warning{color:var(--warning)}.mini-line-chart{width:100%;height:60px;display:block}.cloudwatch-widget-img{width:100%;height:auto;margin-top:4px;display:block}.resource-detail-secondary{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.ec2-name{color:var(--text-primary);margin-bottom:4px;padding:4px 0;font-size:15px;font-weight:600}.ec2-meta{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.ec2-meta-item{align-items:baseline;gap:8px;display:flex}.ec2-meta-label{color:var(--text-secondary);flex-shrink:0;min-width:80px;font-size:11px;font-weight:500}.ec2-meta-value{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.period-selector{gap:2px;display:flex}.period-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:500;transition:all .15s}.period-btn:hover{border-color:var(--accent);color:var(--accent)}.period-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.history-chart-wrap{border-top:1px solid var(--border-light);margin-top:12px;padding-top:12px}.history-chart-title{color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:600}.history-chart-svg{width:100%;height:80px;display:block}.history-chart-xaxis{justify-content:space-between;margin-top:2px;display:flex}.history-chart-xlabel{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:10px}.history-chart-legend{margin-top:4px}.history-chart-threshold-label{color:var(--critical);opacity:.7;font-size:10px}.period-selector-right{justify-content:flex-end;gap:2px;margin-bottom:4px;display:flex}.cloudwatch-widget-wrap{justify-content:center;align-items:center;width:100%;height:160px;display:flex}.cloudwatch-widget-wrap .cloudwatch-widget-img{object-fit:contain;width:100%;height:160px}.cloudwatch-widget-wrap .chart-nodata{color:var(--text-muted);font-size:11px}.infra-left .server-card{min-height:420px}.loading-screen{background:var(--bg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:24px;height:100vh;display:flex}.loading-robot{justify-content:center;align-items:center;display:flex;position:relative}.loading-robot-svg{z-index:1;animation:2s ease-in-out infinite loading-float;position:relative}.loading-antenna{animation:1.5s ease-in-out infinite loading-blink}.loading-eye{animation:2s ease-in-out infinite loading-blink}.loading-chest{animation:1.5s ease-in-out infinite loading-pulse-glow}.loading-pulse-ring{border:2px solid var(--accent);opacity:0;border-radius:50%;width:120px;height:120px;animation:2s ease-out infinite loading-ring;position:absolute}.loading-text{color:var(--text-secondary);font-size:14px;font-weight:500}.loading-dots{gap:8px;display:flex}.loading-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite loading-dot-bounce}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes loading-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes loading-blink{0%,90%,to{opacity:1}95%{opacity:.2}}@keyframes loading-pulse-glow{0%,to{fill:var(--accent-light)}50%{fill:#2563eb4d}}@keyframes loading-ring{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@keyframes loading-dot-bounce{0%,80%,to{opacity:.5;transform:scale(1)}40%{opacity:1;transform:scale(1.3)}}.chat-panel{width:var(--chat-width,30%);border-left:1px solid var(--border);background:var(--bg-primary);flex-direction:column;flex:none;display:flex}.chat-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;height:48px;padding:0 16px;display:flex}.chat-header h2{flex-shrink:0;font-size:13px;font-weight:600}.chat-header-right{align-items:center;margin-left:auto;display:flex}.chat-history-btn{border:1px solid var(--border);background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .15s}.chat-history-btn:hover{border-color:var(--accent);color:var(--accent)}.robot-state{color:var(--success);font-size:11px;font-weight:500}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.message{align-items:flex-start;gap:8px;display:flex}.message-user{flex-direction:row-reverse}.message-icon{text-align:center;flex-shrink:0;width:20px;margin-top:4px;font-size:14px}.message-body{flex-direction:column;gap:2px;max-width:85%;display:flex}.message-content{border-radius:var(--radius);word-break:break-word;padding:8px 12px;font-size:13px;line-height:1.6;overflow:hidden}.message-user .message-content{background:var(--bg-secondary);color:var(--text-primary)}.message-ai .message-content{background:var(--accent-light);color:var(--text-primary)}.message-time{color:var(--text-muted);padding:0 4px;font-size:10px}.message-user .message-time{text-align:right}.message-ai .message-time{text-align:left}.message-content table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.message-content th,.message-content td{border:1px solid var(--border);text-align:left;padding:4px 8px}.message-content th{background:var(--bg-secondary);font-weight:600}.message-content p{margin:4px 0}.message-content ul,.message-content ol{margin:4px 0;padding-left:1.2em}.message-content li{margin:2px 0}.message-content strong{font-weight:600}.message-content.streaming{border-left:2px solid var(--accent);padding-left:10px}.approval-card{background:var(--bg-primary);border:1px solid var(--warning);border-radius:var(--radius);margin-top:4px;margin-left:28px;padding:12px}.approval-header{color:var(--warning);margin-bottom:8px;font-size:12px;font-weight:600}.approval-body{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.approval-description{font-size:12px;font-weight:500}.approval-command{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);border-radius:4px;padding:6px 8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.approval-severity{color:var(--warning);font-size:11px;font-weight:500}.approval-actions{gap:8px;margin-bottom:8px;display:flex}.btn-approve{background:var(--success);color:#fff;cursor:pointer;border:none;border-radius:6px;flex:1;padding:7px;font-size:12px;font-weight:600;transition:opacity .15s}.btn-approve:hover{opacity:.9}.btn-reject{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border-radius:6px;flex:1;padding:7px;font-size:12px;font-weight:500;transition:all .15s}.btn-reject:hover{border-color:var(--critical);color:var(--critical)}.approval-timeout{color:var(--text-muted);text-align:right;font-size:11px}.approval-timeout.timeout-urgent{color:var(--critical);font-weight:600;animation:1s infinite chat-pulse}.approval-timeout.timeout-warning{color:var(--warning);font-weight:500}.approval-card.approval-approved{border-color:var(--success);background:var(--success-light)}.approval-card.approval-rejected{border-color:var(--critical);background:var(--critical-light)}.approval-card.approval-timeout{border-color:var(--text-muted);background:var(--bg-secondary)}.approval-resolved-message{align-items:center;gap:6px;margin-bottom:4px;font-size:13px;font-weight:600;display:flex}.approval-icon{border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:inline-flex}.approved-icon{background:var(--success);color:#fff}.rejected-icon{background:var(--critical);color:#fff}.timeout-icon{background:var(--text-muted);color:#fff}.approval-description-small{color:var(--text-secondary);font-size:11px}.chat-input{border-top:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.text-input-field{border:1px solid var(--border);background:var(--bg-secondary);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:12px}.text-input-field:focus{border-color:var(--accent)}.volume-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.volume-btn:hover{background:var(--bg-secondary);color:var(--accent)}.volume-btn.volume-playing{color:var(--accent);animation:1s infinite chat-pulse}.volume-popup{background:var(--bg-secondary);z-index:10;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:none;position:absolute;bottom:48px;left:40px;box-shadow:0 2px 8px #0003}.volume-popup-visible{display:flex!important}.volume-label{color:var(--text-secondary);min-width:28px;font-size:10px}.volume-slider{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;width:80px;height:4px}.volume-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:12px;height:12px}.volume-slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px}.mic-button{cursor:pointer;background:var(--bg-secondary);border:none;border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:36px;height:36px;font-size:16px;transition:all .15s}.mic-button:disabled{opacity:.4;cursor:not-allowed}.mic-button.mic-active{background:var(--critical-light);border-color:var(--critical);animation:1.5s infinite chat-pulse}.mic-info{flex-direction:column;gap:2px;min-width:0;display:flex}.mic-status{color:var(--text-muted);font-size:12px}.interim-text{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.tool-status{color:var(--text-secondary);background:var(--bg-secondary);border-left:2px solid var(--accent);flex-direction:column;gap:4px;margin-left:28px;padding:6px 12px;font-size:12px;animation:1.5s infinite chat-pulse;display:flex}.tool-status.tool-done{opacity:.8;border-left-color:var(--success);animation:none}.tool-status-header{align-items:center;gap:4px;display:flex}.tool-status-icon{font-size:14px}.tool-detail{background:var(--bg-secondary);border-radius:4px;max-height:300px;margin-top:4px;padding:8px 10px;font-size:11px;overflow-y:auto}.tool-detail-section{margin-bottom:6px}.tool-detail-section:last-child{margin-bottom:0}.tool-detail-label{color:var(--text-secondary);margin-bottom:2px;font-size:10px;font-weight:600;display:block}.tool-detail-truncated{color:var(--warning);font-size:10px;font-weight:400}.tool-detail-json{background:var(--bg-primary);white-space:pre-wrap;word-break:break-all;max-height:200px;color:var(--text-primary);border-radius:3px;margin:0;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.4;overflow-y:auto}.robot-state-normal{color:var(--success)}.robot-state-thinking{color:var(--accent);animation:1.5s infinite chat-pulse}.robot-state-warning{color:var(--warning)}.robot-state-critical{color:var(--critical)}.robot-state-waiting_approval{color:var(--warning);animation:1.5s infinite chat-pulse}.robot-state-success{color:var(--success)}.robot-state-error{color:var(--critical)}.robot-state-maintenance,.robot-state-offline{color:var(--text-muted)}.session-drawer-overlay{z-index:2000;background:#0000004d;justify-content:flex-end;display:flex;position:fixed;inset:0}.session-drawer{background:var(--bg-primary);border-left:1px solid var(--border);flex-direction:column;width:480px;height:100%;display:flex}.session-drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px;display:flex}.session-drawer-header h3{font-size:14px;font-weight:600}.session-drawer-actions{align-items:center;gap:8px;display:flex}.session-new-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .15s}.session-new-btn:hover{background:var(--accent-light)}.session-close-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:4px;padding:4px 8px;font-size:14px}.session-drawer-body{flex-direction:column;flex:1;display:flex;overflow-y:auto}.session-list{border-bottom:1px solid var(--border)}.session-loading,.session-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.session-item{border-bottom:1px solid var(--border-light);cursor:pointer;padding:12px 16px;transition:background .15s}.session-item:hover{background:var(--bg-secondary)}.session-item.active{background:var(--accent-light);border-left:3px solid var(--accent)}.session-item-preview{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.session-item-meta{margin-top:4px}.session-item-date{color:var(--text-muted);font-size:11px}.session-history{flex-direction:column;flex:1;display:flex;overflow:hidden}.session-history-header{border-bottom:1px solid var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;font-weight:600;display:flex}.session-resume-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:600;transition:opacity .15s}.session-resume-btn:hover{opacity:.9}.session-history-messages{flex-direction:column;flex:1;gap:8px;padding:12px 16px;display:flex;overflow-y:auto}.session-history-msg{align-items:flex-start;gap:8px;font-size:12px;display:flex}.session-history-user .session-history-content{background:var(--bg-secondary);border-radius:4px;padding:6px 10px}.session-history-assistant .session-history-content{background:var(--accent-light);border-radius:4px;padding:6px 10px}.session-history-tool .session-history-content{color:var(--text-muted);font-size:11px}.session-history-role{flex-shrink:0;margin-top:2px}.session-history-content{flex:1;line-height:1.5}@keyframes chat-pulse{0%,to{opacity:1}50%{opacity:.6}}.debug-page{color:#e0e0e0;background:#1a1a2e;flex-direction:column;min-height:100vh;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;display:flex}.debug-header{background:#16213e;border-bottom:1px solid #0f3460;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.debug-header h1{color:#00d4aa;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;display:flex}.debug-header-actions{align-items:center;gap:12px;display:flex}.debug-status{align-items:center;gap:6px;font-size:12px;display:flex}.debug-status-dot{background:#666;border-radius:50%;width:8px;height:8px}.debug-status-dot.connected{background:#00d4aa;box-shadow:0 0 6px #00d4aa}.debug-status-dot.connecting{background:orange;animation:1s infinite pulse}.debug-status-dot.error{background:#ff4757}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.debug-btn{color:#e0e0e0;cursor:pointer;background:#0f3460;border:1px solid #1a5276;border-radius:4px;padding:6px 12px;font-family:inherit;font-size:12px;transition:background .2s}.debug-btn:hover{background:#1a5276}.debug-btn.danger{color:#ff6b6b;border-color:#c0392b}.debug-btn.danger:hover{color:#fff;background:#c0392b}.debug-content{flex:1;display:flex;overflow:hidden}.debug-log-panel{border-right:1px solid #0f3460;flex-direction:column;flex:1;min-width:0;display:flex}.debug-log-header{color:#888;background:#16213e;border-bottom:1px solid #0f3460;justify-content:space-between;align-items:center;padding:8px 16px;font-size:12px;display:flex}.debug-log-list{flex:1;padding:8px 0;overflow-y:auto}.debug-log-entry{cursor:pointer;border-bottom:1px solid #0f3460;padding:6px 16px;transition:background .15s}.debug-log-entry:hover,.debug-log-entry.expanded{background:#16213e}.debug-log-meta{align-items:center;gap:10px;margin-bottom:2px;display:flex}.debug-log-time{color:#666;min-width:80px;font-size:11px}.debug-log-topic{color:#00d4aa;word-break:break-all;font-weight:500}.debug-log-topic.alert{color:#ff6b6b}.debug-log-topic.shadow{color:#a29bfe}.debug-log-topic.button{color:orange}.debug-log-topic.heartbeat{color:#636e72}.debug-log-payload{white-space:pre-wrap;word-break:break-all;color:#b2bec3;background:#0d1b2a;border-radius:4px;max-height:300px;margin-top:6px;padding:8px 12px;font-size:12px;overflow:auto}.debug-side-panel{flex-direction:column;width:320px;display:flex;overflow-y:auto}.debug-section{border-bottom:1px solid #0f3460;padding:12px 16px}.debug-section h3{color:#888;text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;font-size:12px}.debug-filter-item{align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.debug-filter-item input[type=checkbox]{accent-color:#00d4aa}.debug-filter-item label{cursor:pointer;color:#b2bec3}.debug-shadow-content{white-space:pre-wrap;word-break:break-all;color:#a29bfe;background:#0d1b2a;border-radius:4px;max-height:300px;padding:10px 12px;font-size:12px;overflow-y:auto}.debug-shadow-timestamp{color:#666;margin-top:6px;font-size:11px}.debug-empty{color:#555;flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.debug-back-link{color:#00d4aa;font-size:12px;text-decoration:none}.debug-back-link:hover{text-decoration:underline}.debug-trigger-actions{flex-direction:column;gap:8px;display:flex}.debug-btn-trigger{color:#f39c12!important;background:#2d1b00!important;border-color:#e67e22!important}.debug-btn-trigger:hover:not(:disabled){color:#fff!important;background:#e67e22!important}.debug-btn-reset{color:#2ecc71!important;background:#0d2818!important;border-color:#27ae60!important}.debug-btn-reset:hover:not(:disabled){color:#fff!important;background:#27ae60!important}.debug-btn:disabled{opacity:.5;cursor:not-allowed}.debug-lambda-result{border-radius:4px;margin-top:10px;overflow:hidden}.debug-lambda-result.success{border:1px solid #27ae60}.debug-lambda-result.error{border:1px solid #e74c3c}.debug-lambda-result-header{padding:6px 10px;font-size:12px;font-weight:600}.debug-lambda-result.success .debug-lambda-result-header{color:#2ecc71;background:#0d2818}.debug-lambda-result.error .debug-lambda-result-header{color:#e74c3c;background:#2d0f0f}.debug-lambda-result-body{color:#b2bec3;white-space:pre-wrap;word-break:break-all;background:#0d1b2a;max-height:150px;margin:0;padding:8px 10px;font-size:11px;overflow-y:auto}.debug-toggle-btn{align-items:center;gap:10px;width:100%;transition:all .2s;display:flex;border-radius:6px!important;padding:10px 14px!important;font-size:13px!important}.debug-toggle-btn .debug-toggle-indicator{color:#636e72;font-size:16px;transition:color .2s}.debug-toggle-btn.active .debug-toggle-indicator{color:#ff6b6b;text-shadow:0 0 6px #ff6b6b}.debug-toggle-btn.active{color:#ff6b6b!important;background:#2d0f0f!important;border-color:#e74c3c!important}.debug-toggle-btn:not(.active){background:#0f3460!important;border-color:#1a5276!important}.debug-toggle-btn:not(.active):hover:not(:disabled){background:#1a5276!important}.debug-toggle-btn.active:hover:not(:disabled){background:#3d1f1f!important}.debug-log-count{color:#00d4aa;background:#0f3460;border-radius:10px;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:600}.debug-log-sub-entry{border-bottom:1px solid #16213e;padding:4px 0}.debug-log-sub-entry:last-child{border-bottom:none}.debug-log-sub-time{color:#666;margin-right:8px;font-size:11px}.debug-log-sub-ellipsis{color:#555;font-size:11px;font-style:italic}.debug-log-sub-entry pre{color:#b2bec3;white-space:pre-wrap;word-break:break-all;margin:4px 0 0;font-size:11px}.debug-resizer{cursor:col-resize;background:#0f3460;flex-shrink:0;width:6px;transition:background .2s}.debug-resizer:hover{background:#00d4aa}.debug-log-panel{flex:none!important}.debug-side-panel{width:auto;flex:none!important}.debug-btn-sm{vertical-align:middle;margin-left:8px;border-radius:3px!important;padding:2px 8px!important;font-size:12px!important}.debug-section h3{align-items:center;gap:0;display:flex}
