:root{color-scheme:light;--page-plane: #f9f9f7;--surface-1: #fcfcfb;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--border: rgba(11, 11, 11, .1);--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #d03b3b;--status-neutral: #898781}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page-plane: #0d0d0d;--surface-1: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--border: rgba(255, 255, 255, .1);--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #d03b3b;--status-neutral: #898781}}*{box-sizing:border-box}body{margin:0;background:var(--page-plane);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.page{max-width:1100px;margin:0 auto;padding:0 20px 64px}.page__loading{padding-top:32px;color:var(--text-muted)}.dashboard-nav{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;gap:8px;padding:20px 0;margin-bottom:24px;background:var(--page-plane);border-bottom:1px solid var(--border)}.dashboard-nav__button{appearance:none;border:1px solid var(--border);background:var(--surface-1);color:var(--text-secondary);font:inherit;font-size:.8rem;font-weight:600;padding:6px 14px;border-radius:999px;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.dashboard-nav__button:hover{color:var(--text-primary);border-color:var(--text-muted)}.dashboard-nav__button:active{background:var(--border)}.dashboard-group{margin-bottom:16px;scroll-margin-top:76px}.dashboard-group__toggle{appearance:none;background:none;border:none;display:flex;align-items:center;gap:10px;width:100%;margin:0 0 16px;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.dashboard-group__chevron{flex-shrink:0;width:7px;height:7px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .2s ease}.dashboard-group__chevron.is-collapsed{transform:rotate(-45deg)}.dashboard-group__title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.dashboard-group__count{font-size:.72rem;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.dashboard-group__collapse{display:grid;grid-template-rows:1fr;transition:grid-template-rows .22s ease}.dashboard-group__collapse.is-collapsed{grid-template-rows:0fr}.dashboard-group__collapse-inner{overflow:hidden;min-height:0}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.service-card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:20px}.service-card__name{margin:0 0 16px;font-size:1.05rem}.service-card__envs{display:flex;flex-direction:column;gap:14px}.env-row+.env-row{padding-top:14px;border-top:1px solid var(--border)}.env-row__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.env-row__label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.env-row__meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:0}.env-row__meta dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.env-row__meta dd{margin:2px 0 0;font-variant-numeric:tabular-nums;color:var(--text-primary)}.env-row__error{margin:10px 0 0;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--status-critical) 12%,transparent);color:var(--status-critical);font-size:.8rem}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--border)}.status-badge__dot{width:8px;height:8px;border-radius:50%}.status-badge--up{color:var(--status-good)}.status-badge--up .status-badge__dot{background:var(--status-good)}.status-badge--down{color:var(--status-critical)}.status-badge--down .status-badge__dot{background:var(--status-critical)}.status-badge--checking{color:var(--status-neutral)}.status-badge--checking .status-badge__dot{background:var(--status-neutral)}
