/* public/css/style.css */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background-color: var(--ds-color-background);
  color: var(--ds-color-text);
  font-family: var(--ds-font-family);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

/* Fluid Layout Grid utilities */
.app-shell-container {
  display: grid;
  grid-template-columns: 280px 1fr;
  min-height: 100vh;
}

@media (max-width: 1024px) {
  .app-shell-container {
    grid-template-columns: 1fr;
  }
}

.main-content-viewport {
  padding: var(--ds-spacing-margin);
  display: flex;
  flex-direction: column;
  gap: var(--ds-spacing-gutter);
}

.ds-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--ds-spacing-gutter);
}

.ds-split-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--ds-spacing-gutter);
}

@media (max-width: 1100px) {
  .ds-split-layout {
    grid-template-columns: 1fr;
  }
}

/* Typography styles matching design-system.css specifications */
.display-metric {
  font-size: 40px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.h1-headline {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.3;
}

.h2-section {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
}

.h3-card-title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.4;
}

.label-bold-caps {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* ─── Utility: Card Accent Left Border ─── */
.ds-card-accent-left { border-left: 2px solid var(--ds-color-outline-variant); }
.ds-card-accent-left.green { border-left-color: #00450d; }
.ds-card-accent-left.blue { border-left-color: #0062ff; }
.ds-card-accent-left.amber { border-left-color: #b28600; }
.ds-card-accent-left.red { border-left-color: #ba1a1a; }

/* ─── Utility: Subtle Backgrounds ─── */
.ds-bg-subtle-green { background: rgba(0, 69, 13, 0.04); }
.ds-bg-subtle-blue { background: rgba(0, 98, 255, 0.04); }
.ds-bg-subtle-amber { background: rgba(178, 134, 0, 0.04); }

/* ─── Utility: Status Pills ─── */
.ds-status-pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px; border-radius: 9999px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.03em;
}
.ds-status-pill.stable { background: rgba(0,69,13,0.08); color: #00450d; }
.ds-status-pill.warning { background: rgba(178,134,0,0.1); color: #b28600; }
.ds-status-pill.critical { background: rgba(186,26,26,0.08); color: #ba1a1a; }
.ds-status-pill.good { background: rgba(22,163,74,0.08); color: #16a34a; }

/* ─── Utility: Section Headers ─── */
.ds-section-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--ds-color-text-secondary);
  margin-bottom: 8px;
}

/* ─── Utility: Card Inner Sections ─── */
.ds-card-section {
  padding: 16px 20px;
  border-top: 1px solid var(--ds-color-outline-variant);
}
.ds-card-section:first-child { border-top: none; }
