:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--color-operational: #10b981;--color-operational-bg: rgba(16, 185, 129, .12);--color-operational-border: rgba(16, 185, 129, .3);--color-degraded: #f59e0b;--color-degraded-bg: rgba(245, 158, 11, .12);--color-degraded-border: rgba(245, 158, 11, .3);--color-partial: #f97316;--color-partial-bg: rgba(249, 115, 22, .12);--color-partial-border: rgba(249, 115, 22, .3);--color-major: #ef4444;--color-major-bg: rgba(239, 68, 68, .12);--color-major-border: rgba(239, 68, 68, .3);--color-unknown: #64748b;--color-unknown-bg: rgba(100, 116, 139, .12);--color-unknown-border: rgba(100, 116, 139, .3);--color-accent: #6366f1}[data-theme=dark]{--bg-page: #090d16;--bg-card: #121929;--bg-card-hover: #162035;--bg-sub: #172138;--bg-sub-hover: #1e2b47;--border-main: #202c45;--border-light: #283754;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--bar-empty: #1e293b;--tooltip-bg: #1e293b;--shadow-card: 0 4px 20px -2px rgba(0, 0, 0, .4)}[data-theme=light]{--bg-page: #f8fafc;--bg-card: #ffffff;--bg-card-hover: #f1f5f9;--bg-sub: #f8fafc;--bg-sub-hover: #e2e8f0;--border-main: #e2e8f0;--border-light: #cbd5e1;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--bar-empty: #e2e8f0;--tooltip-bg: #0f172a;--shadow-card: 0 4px 16px -2px rgba(0, 0, 0, .06)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{overflow-x:hidden;max-width:100vw;width:100%}body{font-family:var(--font-sans);background-color:var(--bg-page);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .2s ease,color .2s ease}.app-container{max-width:1140px;margin:0 auto;padding:24px 20px 80px}.app-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--border-main);flex-wrap:wrap;gap:16px}.header-left{display:flex;align-items:center;gap:12px}.logo-badge{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b9814d;flex-shrink:0}.header-title{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.version-chip{font-size:.7rem;font-weight:500;color:var(--text-muted);padding:1px 6px;border-radius:4px;background:var(--bg-sub);border:1px solid var(--border-main);line-height:1.2}.header-subtitle{font-size:.85rem;color:var(--text-secondary)}.header-right{display:flex;align-items:center;gap:12px}.sse-badge{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;padding:4px 10px;border-radius:9999px;background-color:var(--bg-sub);border:1px solid var(--border-main);color:var(--text-secondary)}.pulse-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-operational);box-shadow:0 0 #10b981b3;animation:pulse-ring 2s infinite}.pulse-dot.disconnected{background-color:var(--color-major);animation:none}@keyframes pulse-ring{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.icon-btn{background:var(--bg-card);border:1px solid var(--border-main);color:var(--text-primary);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0;box-sizing:border-box}.icon-btn:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.action-btn{background:var(--bg-card);border:1px solid var(--border-main);color:var(--text-primary);height:36px;padding:0 14px;border-radius:8px;font-size:.85rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:all .15s ease;box-sizing:border-box;flex-shrink:0}.action-btn:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.action-btn:disabled{opacity:.6;cursor:not-allowed}.header-check-btn{color:var(--color-operational);border-color:var(--color-operational-border);background:var(--color-operational-bg)}.header-check-btn:hover{background:#10b98133;border-color:var(--color-operational)}.spinning-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.overall-banner{padding:20px 24px;border-radius:12px;margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;transition:all .2s ease;box-shadow:var(--shadow-card);gap:20px}.overall-banner.operational{background-color:var(--color-operational-bg);border-color:var(--color-operational-border);color:var(--color-operational)}.overall-banner.degraded{background-color:var(--color-degraded-bg);border-color:var(--color-degraded-border);color:var(--color-degraded)}.overall-banner.partial_outage{background-color:var(--color-partial-bg);border-color:var(--color-partial-border);color:var(--color-partial)}.overall-banner.major_outage{background-color:var(--color-major-bg);border-color:var(--color-major-border);color:var(--color-major)}.banner-content{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 auto}.banner-icon{width:32px;height:32px;flex-shrink:0}.banner-text-block{min-width:0}.banner-title{font-size:1.25rem;font-weight:700;line-height:1.3}.banner-desc{font-size:.875rem;opacity:.85;margin-top:2px;line-height:1.4}.banner-meta{text-align:right;font-size:.8rem;opacity:.85;white-space:nowrap;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.banner-meta-val{font-weight:700;font-size:1rem;font-family:var(--font-mono);line-height:1.2}.banner-meta-label{font-size:.75rem;opacity:.85;line-height:1.2}.section-header-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;flex-wrap:wrap;gap:8px}.section-header-subtitle{font-size:.8rem;color:var(--text-muted)}.section-header-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary);flex-wrap:wrap}.section-title{font-size:1.125rem;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.services-list{display:flex;flex-direction:column;gap:16px;margin-bottom:40px}.service-card{background:var(--bg-card);border:1px solid var(--border-main);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease}.service-card:hover{border-color:var(--border-light)}.service-card-header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;background:var(--bg-card);gap:20px;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.service-card-header:hover{background:var(--bg-card-hover)}.service-header-info{flex:1 1 auto;min-width:220px;display:flex;flex-direction:column;gap:3px}.service-name{font-size:1.05rem;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--text-primary);letter-spacing:-.01em}.subsystems-count-badge{font-size:.8rem;font-weight:500;color:var(--text-muted)}.service-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.35}.service-header-stats{display:flex;align-items:center;gap:16px;flex-shrink:0}.service-header-uptime{width:260px;max-width:300px;flex-shrink:1}.uptime-summary-col{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;flex-shrink:0;min-width:74px;gap:1px}.uptime-label{font-size:.85rem;font-family:var(--font-mono);font-weight:600;color:var(--color-operational);line-height:1.2}.uptime-subtext{font-size:.7rem;color:var(--text-muted);line-height:1.2;white-space:nowrap}.service-header-status{flex-shrink:0;display:flex;align-items:center}.service-expand-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:var(--text-muted);transition:color .15s ease,background-color .15s ease;flex-shrink:0}.service-card-header:hover .service-expand-btn{color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:6px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;min-width:90px;text-align:center;box-sizing:border-box}.status-badge.operational{background:var(--color-operational-bg);color:var(--color-operational);border:1px solid var(--color-operational-border)}.status-badge.degraded{background:var(--color-degraded-bg);color:var(--color-degraded);border:1px solid var(--color-degraded-border)}.status-badge.partial_outage{background:var(--color-partial-bg);color:var(--color-partial);border:1px solid var(--color-partial-border)}.status-badge.major_outage{background:var(--color-major-bg);color:var(--color-major);border:1px solid var(--color-major-border)}.status-badge.unknown{background:var(--color-unknown-bg);color:var(--text-secondary);border:1px solid var(--color-unknown-border)}.tier-badge{font-size:.65rem;padding:2px 7px;border-radius:4px;background:var(--bg-sub);color:var(--text-secondary);border:1px solid var(--border-main);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.tier-badge.tier-1{background:#6366f11f;color:#818cf8;border-color:#6366f147}.tier-badge.tier-2{background:#3b82f61f;color:#60a5fa;border-color:#3b82f647}.tier-badge.tier-3{background:#94a3b81a;color:#94a3b8;border-color:#94a3b838}.subsystems-container{border-top:1px solid var(--border-main);background:var(--bg-sub)}.subsystem-row{padding:12px 20px;border-bottom:1px solid var(--border-main);display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;transition:background-color .12s ease}.subsystem-row:last-child{border-bottom:none}.subsystem-row:hover{background:var(--bg-sub-hover)}.subsystem-meta{width:280px;min-width:260px;max-width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:3px}.subsystem-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.subsystem-title{font-size:.875rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.subsystem-desc{font-size:.75rem;color:var(--text-secondary);line-height:1.35}.subsystem-error-chip{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:3px 8px;border-radius:6px;background:var(--color-major-bg);border:1px solid var(--color-major-border);color:var(--color-major);max-width:100%;box-sizing:border-box}.error-chip-icon{flex-shrink:0}.error-chip-text{font-size:.7rem;font-family:var(--font-mono);font-weight:500;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subsystem-center{flex:1 1 0;min-width:180px;display:flex;align-items:center}.subsystem-metrics{display:flex;align-items:center;gap:16px;justify-content:flex-end;flex-shrink:0}.subsystem-sparkline-wrap{width:88px;height:28px;flex-shrink:0;display:flex;align-items:center}.latency-value{font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary);display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:64px;flex-shrink:0;gap:1px}.latency-number{font-weight:600;line-height:1.2}.latency-label{font-size:.65rem;color:var(--text-muted);line-height:1.2;font-weight:500}.subsystem-status-wrap{min-width:104px;display:flex;justify-content:flex-end;flex-shrink:0}.uptime-bar-container{position:relative;display:flex;flex-direction:column;gap:4px;width:100%}.uptime-bars{display:flex;align-items:center;gap:1px;height:24px;width:100%}.uptime-bar-compact .uptime-bars{height:20px}.uptime-bar-item{flex:1 1 0;height:100%;min-width:0;max-width:8px;border-radius:1.5px;background-color:var(--bar-empty);cursor:pointer;transition:transform .12s ease,filter .12s ease;margin:0}.uptime-bar-item:hover{transform:scaleY(1.35);filter:brightness(1.25);z-index:2}.uptime-bar-item.operational{background-color:var(--color-operational)}.uptime-bar-item.degraded{background-color:var(--color-degraded)}.uptime-bar-item.outage{background-color:var(--color-major)}.uptime-bar-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted);margin-top:2px}.day-tooltip{position:fixed;background:var(--tooltip-bg);color:var(--text-primary);padding:8px 12px;border-radius:8px;font-size:.75rem;line-height:1.4;white-space:nowrap;pointer-events:none;box-shadow:0 10px 25px -3px #00000073,0 4px 6px -2px #00000040;z-index:9999;border:1px solid var(--border-light);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:2px}.day-tooltip:after{content:"";position:absolute;left:50%;transform:translate(-50%);border-width:5px;border-style:solid}.day-tooltip.tooltip-top:after{top:100%;border-color:var(--tooltip-bg) transparent transparent transparent}.day-tooltip.tooltip-below:after{bottom:100%;border-color:transparent transparent var(--tooltip-bg) transparent}.sparkline-box{width:88px;height:28px;flex-shrink:0}.host-telemetry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:40px}.telemetry-card{background:var(--bg-card);border:1px solid var(--border-main);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow-card)}.telemetry-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.telemetry-card-title{font-size:.875rem;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--text-primary)}.metric-big-val{font-size:1.75rem;font-weight:700;font-family:var(--font-mono);margin-bottom:8px;display:flex;align-items:baseline;gap:4px}.metric-unit{font-size:.9rem;color:var(--text-muted);font-weight:500}.progress-bar-bg{width:100%;height:8px;background:var(--bg-sub);border-radius:9999px;overflow:hidden;margin-bottom:8px}.progress-bar-fill{height:100%;border-radius:9999px;transition:width .3s ease,background-color .3s ease}.progress-bar-fill.normal{background-color:var(--color-operational)}.progress-bar-fill.warning{background-color:var(--color-degraded)}.progress-bar-fill.danger{background-color:var(--color-major)}.telemetry-subtext{font-size:.75rem;color:var(--text-secondary);display:flex;justify-content:space-between}.docker-containers-list{display:flex;flex-direction:column;gap:10px;margin-top:12px;max-height:560px;overflow-y:auto}.docker-container-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px;background:var(--bg-sub);font-size:.75rem;border:1px solid var(--border-main);transition:border-color .15s ease,background-color .15s ease}.docker-container-item:hover{border-color:var(--color-brand)}.docker-container-meta{display:flex;flex-direction:column;gap:3px}.docker-container-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.docker-project-name{font-weight:600;font-size:.85rem;color:var(--text-primary)}.docker-name-chip{font-family:var(--font-mono);font-size:.7rem;padding:1px 7px;border-radius:4px;background:#94a3b81a;color:var(--text-secondary);border:1px solid var(--border-main);font-weight:500}.docker-container-subtext{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--text-muted)}.container-name{font-weight:600;font-family:var(--font-mono)}.container-status{display:flex;align-items:center;gap:8px}.incident-section{margin-bottom:40px}.incident-card{background:var(--bg-card);border:1px solid var(--border-main);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow-card)}.incident-card.active{border-left:4px solid var(--color-major)}.incident-card.resolved{border-left:4px solid var(--color-operational)}.incident-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.incident-title{font-size:1rem;font-weight:600}.incident-updates{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-left:12px;border-left:2px solid var(--border-main)}.incident-update-item{display:flex;flex-direction:column;gap:2px}.update-header{display:flex;align-items:center;gap:8px;font-size:.75rem}.update-status-badge{font-weight:600;text-transform:uppercase;font-size:.65rem}.update-time{color:var(--text-muted)}.update-message{font-size:.825rem;color:var(--text-secondary)}.app-footer{margin-top:60px;padding-top:24px;border-top:1px solid var(--border-main);display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-muted);flex-wrap:wrap;gap:12px}@media(max-width:1024px){.service-header-uptime{width:200px}.subsystem-meta{width:240px;min-width:220px}}@media(max-width:860px){.service-card-header{flex-direction:column;align-items:flex-start;gap:12px}.service-header-info{width:100%}.service-header-stats{width:100%;justify-content:space-between}.service-header-uptime{display:none}.subsystem-row{flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px}.subsystem-meta{width:100%;min-width:100%;max-width:100%}.subsystem-center{width:100%}.subsystem-metrics{width:100%;justify-content:space-between}}@media(max-width:680px){.overall-banner{flex-direction:column;align-items:stretch;gap:14px;padding:16px;margin-bottom:24px}.banner-content{align-items:flex-start;gap:12px;width:100%}.banner-icon{width:26px;height:26px;margin-top:2px}.banner-title{font-size:1.05rem;line-height:1.3}.banner-desc{font-size:.8rem;line-height:1.4;margin-top:3px}.banner-meta{width:100%;flex-direction:row;justify-content:space-between;align-items:center;text-align:left;padding-top:10px;margin-top:2px;border-top:1px solid currentColor;border-color:inherit;white-space:normal;opacity:.95}.banner-meta-val{font-size:.95rem;text-align:right}.banner-meta-label{font-size:.75rem;text-align:left}.app-header{flex-direction:column;align-items:stretch;gap:14px;padding-bottom:16px;margin-bottom:20px}.header-left{width:100%;gap:10px}.logo-badge{width:36px;height:36px;border-radius:8px}.header-title{font-size:1.15rem}.header-subtitle{font-size:.78rem}.header-right{width:100%;justify-content:space-between;gap:8px;flex-wrap:wrap}.sse-badge{font-size:.72rem;padding:4px 8px}.host-telemetry-grid{grid-template-columns:1fr;gap:12px;margin-bottom:28px}.telemetry-card{padding:14px 16px}.docker-container-item{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}.container-status{width:100%;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-main);padding-top:6px}.app-footer{flex-direction:column;align-items:flex-start;gap:10px;margin-top:40px;font-size:.75rem}}@media(max-width:540px){.subsystem-sparkline-wrap{display:none}}@media(max-width:480px){.app-container{padding:14px 10px 48px}.header-right{gap:6px}.header-check-btn .btn-label{display:none}.header-check-btn{width:36px;height:36px;padding:0;justify-content:center}.service-card-header{padding:12px}.service-name{font-size:.95rem}.subsystems-count-badge{font-size:.72rem}.service-desc{font-size:.75rem}.service-header-stats{gap:8px}.uptime-label{font-size:.8rem}.status-badge{font-size:.65rem;padding:2px 7px;min-width:auto}.subsystem-row{padding:10px 12px;gap:8px}.subsystem-title{font-size:.8rem}.tier-badge{font-size:.58rem;padding:1px 5px}.subsystem-desc{font-size:.7rem}.latency-number{font-size:.75rem}.latency-label{font-size:.6rem}}
