:root{--bg-primary:#0e0e1a;--bg-sidebar:#151524;--bg-hover:#1e1e36;--bg-active:#2a2a4a;--text-primary:#e0e0e8;--text-secondary:#8888a0;--text-muted:#5c5c70;--border-color:#2a2a3e;--accent:#8be9fd;--sidebar-width:320px;--sidebar-rail:56px;--sidebar-panel:240px;--health-healthy:#50fa7b;--health-degraded:#f1fa8c;--health-unhealthy:#f55;--health-unknown:#6272a4}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:var(--bg-primary);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}.layout{height:100%;display:flex}.sidebar{flex-shrink:0;height:100%;display:flex}.sidebar__rail{background:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;align-items:center;gap:2px;width:56px;min-width:56px;padding:.5rem 0;display:flex}.sidebar__rail-logo{background:#ffffff0f;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:.25rem;transition:background .1s;display:flex}.sidebar__rail-logo:hover{background:var(--bg-hover)}.sidebar__rail-logo .sidebar__logo-inline,.sidebar__rail-logo .sidebar__logo-img{object-fit:contain;width:auto;max-width:32px;height:20px}.sidebar__rail-logo .sidebar__logo-inline svg{width:auto;max-width:32px;height:20px}.sidebar__rail-links{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__rail-link{width:44px;height:44px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;text-decoration:none;transition:background .1s,color .1s;display:flex}.sidebar__rail-link:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar__rail-link--active{background:var(--bg-active);color:var(--text-primary)}.sidebar__rail-toggle{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;margin-top:auto;transition:background .1s,color .1s;display:flex}.sidebar__rail-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar__panel{width:var(--sidebar-panel);background:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;display:flex;overflow-y:auto}.sidebar__panel-header{color:var(--accent);align-items:center;min-height:40px;padding:1.25em .75em .75em;font-size:14px;font-weight:600;display:flex}.layout__main{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar__brand{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;height:24px;overflow:hidden}.sidebar__secondary-nav{flex:1;overflow-y:auto}.sidebar__footer{margin-top:auto}.sidebar__logo-inline{align-items:center;height:100%;display:flex}.sidebar__logo-inline svg{width:auto;height:100%}.sidebar__logo-img{object-fit:contain;width:auto;height:100%}.sidebar__section{border-bottom:1px solid var(--border-color);padding:1rem}.sidebar__item{cursor:pointer;min-height:36px;color:var(--text-secondary);align-items:center;padding:.5rem 36px .5rem 1rem;text-decoration:none;transition:background .1s;display:flex;position:relative}.sidebar__item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar__item--active{background:var(--bg-active);color:var(--accent)}.sidebar__category{color:var(--text-primary);-webkit-user-select:none;user-select:none;align-items:center;padding-right:36px;font-weight:500;display:flex;position:relative}.sidebar__category-label{cursor:pointer;flex:1;padding:.5rem 0 .5rem .75rem;font-size:13px}.sidebar__category-label:hover{color:var(--accent)}.sidebar__item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar__chevron{width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex;position:absolute;right:4px}.sidebar__chevron:after{content:"";width:40px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sidebar__chevron:hover{background:var(--bg-hover);color:var(--text-secondary)}.health-badges{padding:8px 0}.health-badges__header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);align-items:center;gap:8px;padding:4px 16px;font-size:10px;display:flex}.health-badges__title{flex:1}.health-badges__list{padding:4px 0}.health-badge{color:var(--text-secondary);align-items:center;gap:8px;padding:3px 16px;font-size:12px;display:flex}.health-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.health-dot--healthy{background:var(--health-healthy)}.health-dot--degraded{background:var(--health-degraded)}.health-dot--unhealthy{background:var(--health-unhealthy)}.health-dot--unknown{background:var(--health-unknown)}.breadcrumb{color:var(--text-muted);border-bottom:1px solid var(--border-color);background:var(--bg-sidebar);align-items:center;gap:6px;height:fit-content;min-height:1rem;padding:1rem;font-size:12px;display:flex}.breadcrumb__separator{color:var(--text-muted)}.breadcrumb__segment{color:var(--text-secondary)}.breadcrumb__segment--current{color:var(--text-primary)}.dashboard-toggle{background:var(--bg-sidebar);border-bottom:1px solid var(--border-color);gap:2px;padding:1em;display:flex}.dashboard-toggle__btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px;font-size:12px;transition:background .1s,color .1s,border-color .1s}.dashboard-toggle__btn:hover{background:var(--bg-hover);color:var(--text-primary)}.dashboard-toggle__btn--active{background:var(--bg-active);color:var(--text-primary);border-color:var(--accent)}.frame-container{flex:1;min-height:0;position:relative}.frame-layer{position:absolute;inset:0}.frame-layer .grafana-frame{width:100%;height:100%}.frame--hidden{visibility:hidden;pointer-events:none}.grafana-frame{border:none;flex:1;width:100%}.data2-frame{border:none;width:100%;height:100%}.data2-shim{background:var(--bg-primary);color:var(--text-secondary);pointer-events:none;justify-content:center;align-items:center;font-size:.875rem;display:flex;position:absolute;inset:0}
