:root {
  color-scheme: light dark;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: Canvas;
  color: CanvasText;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: Canvas; }
body {
  margin: 0;
  min-height: 100dvh;
  background: Canvas;
  color: CanvasText;
}
button, select { font: inherit; }
button {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid color-mix(in srgb, CanvasText 24%, transparent);
  border-radius: 8px;
  background: Canvas;
  color: CanvasText;
}
button:disabled { opacity: .45; }
button:not(:disabled) { cursor: pointer; }

.shell {
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));
}

header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid color-mix(in srgb, CanvasText 18%, transparent);
  padding-bottom: 14px;
}
.header-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.eyebrow { margin: 0 0 4px; font-size: .72rem; letter-spacing: .12em; opacity: .62; }
h1 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.4rem); font-weight: 650; letter-spacing: -.035em; }
.subtitle { margin: 6px 0 0; max-width: 56rem; opacity: .68; font-size: .92rem; }

.toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 320px) auto;
  gap: 10px;
  align-items: end;
  margin: 14px 0 10px;
}
.field { display: grid; gap: 5px; }
.field label { font-size: .75rem; opacity: .62; }
select {
  min-height: 40px;
  width: 100%;
  padding: 0 10px;
  border: 1px solid color-mix(in srgb, CanvasText 24%, transparent);
  border-radius: 8px;
  background: Canvas;
  color: CanvasText;
}

.statusbar {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  min-height: 28px;
  align-items: center;
  font-size: .78rem;
  opacity: .72;
}
#status[data-level="error"] { color: #b42318; opacity: 1; }

.dashboard { display: grid; gap: 18px; }
.service { border-top: 1px solid color-mix(in srgb, CanvasText 15%, transparent); padding-top: 10px; }
.service > h2 { margin: 0 0 8px; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; opacity: .66; }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 8px; }
.metric {
  min-width: 0;
  padding: 12px;
  border: 1px solid color-mix(in srgb, CanvasText 16%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, Canvas 96%, CanvasText 4%);
}
.metric.warning { border-style: dashed; }
.metric.danger { border-width: 2px; }
.metric.unavailable { opacity: .7; }
.metric-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.metric h3 { margin: 0; font-size: .88rem; font-weight: 600; }
.badge { font-size: .72rem; opacity: .7; white-space: nowrap; }
.metric-value { margin: 10px 0 8px; font-size: 1.45rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.metric-value span { font-size: .78rem; opacity: .56; }
.bar { height: 4px; background: color-mix(in srgb, CanvasText 13%, transparent); overflow: hidden; margin-bottom: 10px; }
.bar > span { display: block; height: 100%; background: CanvasText; }
dl { margin: 0; display: grid; gap: 3px; font-size: .72rem; }
dl > div { display: flex; justify-content: space-between; gap: 10px; }
dt { opacity: .56; }
dd { margin: 0; text-align: right; }
.metric-note { margin: 9px 0 0; font-size: .7rem; line-height: 1.35; opacity: .6; }

.empty-state {
  border: 1px solid color-mix(in srgb, CanvasText 18%, transparent);
  border-radius: 8px;
  padding: 24px;
  margin-top: 8px;
}
.empty-state h2 { margin: 0 0 8px; font-size: 1.1rem; }
.empty-state p { margin: 0 0 14px; max-width: 42rem; opacity: .68; }

footer {
  margin-top: 24px;
  padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, CanvasText 15%, transparent);
  font-size: .7rem;
  line-height: 1.45;
  opacity: .55;
}

@media (max-width: 640px) {
  header { align-items: flex-start; }
  .subtitle { display: none; }
  .header-actions { flex-direction: column; }
  .header-actions button { min-width: 88px; }
  .toolbar { grid-template-columns: 1fr auto; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 430px) {
  .shell { padding-left: calc(12px + env(safe-area-inset-left)); padding-right: calc(12px + env(safe-area-inset-right)); }
  .metric-grid { grid-template-columns: 1fr; }
}
