:root {
  color-scheme: dark;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #07111f;
  color: #dce9f7;
}

body {
  min-height: 100vh;
  margin: 0;
  padding: 2rem 0;
  background: radial-gradient(circle at top, #17304a 0, #07111f 60%);
}

main {
  width: min(68rem, calc(100vw - 3rem));
  margin: 0 auto;
  padding: 2rem;
  border: 1px solid #244968;
  border-radius: 1rem;
  background: #0b1a2bcc;
  box-shadow: 0 1.5rem 4rem #0008;
}

.eyebrow {
  margin: 0 0 0.5rem;
  color: #19ddbb;
  font-weight: 700;
  letter-spacing: 0.08em;
}

h1 {
  margin: 0;
  font-size: 3rem;
}

audio {
  width: 100%;
  margin: 1.25rem 0 0.75rem;
}

.stations {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.55rem;
  margin-top: 1.4rem;
}

.stations button {
  border: 1px solid #2b5879;
  border-radius: 0.6rem;
  padding: 0.7rem 0.45rem;
  background: #0e253a;
  color: #bed3e6;
  cursor: pointer;
}

.stations button:hover,
.stations button:focus-visible {
  border-color: #43b7ff;
  outline: none;
}

.stations button[aria-pressed="true"] {
  border-color: #19ddbb;
  background: #0f4b48;
  color: #fff;
}

@media (max-width: 42rem) {
  .stations {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

#hls-status {
  min-height: 1.5rem;
  color: #91abc3;
}

#hls-status[data-state="error"] {
  color: #ff786f;
}

a {
  color: #43b7ff;
}

.direct {
  margin-bottom: 0;
}

.metrics {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #244968;
}

.metrics-heading,
.metric-label,
.network-metrics {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.metrics-heading h2 {
  margin: 0;
  font-size: 1.4rem;
}

.metrics-freshness {
  margin: 0;
  color: #19ddbb;
  font-size: 0.9rem;
}

.metrics-freshness[data-state="stale"] {
  color: #ffba57;
}

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

.metric-card {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid #1c3c58;
  border-radius: 0.75rem;
  background: #081727;
}

.metric-label strong {
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.metric-name {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.metric-help {
  position: relative;
  z-index: 2;
  width: 1.15rem;
  height: 1.15rem;
  padding: 0;
  border: 1px solid #3c607c;
  border-radius: 50%;
  background: transparent;
  color: #91abc3;
  font: inherit;
  font-size: 0.72rem;
  line-height: 1;
  cursor: help;
}

.metric-help::after {
  position: absolute;
  z-index: 10;
  bottom: calc(100% + 0.55rem);
  left: -0.5rem;
  width: min(18rem, 70vw);
  padding: 0.7rem;
  border: 1px solid #3c607c;
  border-radius: 0.55rem;
  background: #06111e;
  box-shadow: 0 0.75rem 2rem #000b;
  color: #dce9f7;
  content: attr(data-tooltip);
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  text-align: left;
  transform: translateY(0.25rem);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.metric-help:hover::after,
.metric-help:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.metric-help:focus-visible {
  border-color: #43b7ff;
  outline: 2px solid #43b7ff55;
  outline-offset: 2px;
}

.metric-track {
  height: 0.5rem;
  margin: 0.65rem 0 0.55rem;
  overflow: hidden;
  border-radius: 999px;
  background: #183149;
}

.metric-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #19ddbb;
  transition: width 0.5s ease, background-color 0.2s ease;
}

.metric-track[data-level="warning"] span {
  background: #ffba57;
}

.metric-track[data-level="danger"] span {
  background: #ff675f;
}

.metric-card small {
  display: block;
  overflow: hidden;
  color: #7893aa;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.network-metrics {
  justify-content: flex-start;
  margin-top: 0.85rem;
  color: #91abc3;
  font-variant-numeric: tabular-nums;
}

.network-metrics strong {
  color: #dce9f7;
}

.metrics-overhead {
  margin: 0.7rem 0 0;
  color: #607f98;
  font-size: 0.78rem;
}

.capacity-calculator {
  margin-top: 1.4rem;
  padding: 1rem;
  border: 1px solid #244968;
  border-radius: 0.8rem;
  background: #091827;
}

.calculator-heading,
.calculator-inputs,
.calculator-results,
.server-recommendations,
.server-specs {
  display: grid;
  gap: 0.75rem;
}

.calculator-heading {
  grid-template-columns: 1fr auto;
  align-items: start;
}

.calculator-heading h3 {
  margin: 0;
  font-size: 1.2rem;
}

.calculator-heading > span {
  color: #7893aa;
  font-size: 0.82rem;
}

.calculator-inputs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.9rem;
}

.calculator-inputs label {
  display: grid;
  gap: 0.35rem;
  color: #91abc3;
  font-size: 0.82rem;
}

.calculator-inputs label small {
  color: #607f98;
  font-size: 0.72rem;
}

.calculator-inputs input {
  min-width: 0;
  padding: 0.65rem 0.7rem;
  border: 1px solid #2b5879;
  border-radius: 0.55rem;
  background: #07131f;
  color: #fff;
  font: inherit;
}

.calculator-inputs input:focus-visible {
  border-color: #43b7ff;
  outline: 2px solid #43b7ff33;
}

.server-recommendations {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.server-plan {
  padding: 0.8rem;
  border: 1px solid #2b5879;
  border-radius: 0.65rem;
  background: #07131f;
}

.server-plan-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.server-plan-heading h4 {
  margin: 0;
  color: #dce9f7;
  font-size: 0.95rem;
}

.server-plan-heading span {
  color: #607f98;
  font-size: 0.68rem;
  text-align: right;
}

.server-specs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 0.7rem;
}

.server-specs div {
  display: grid;
  gap: 0.15rem;
}

.server-specs span {
  color: #7893aa;
  font-size: 0.7rem;
}

.server-specs strong {
  color: #43d8b2;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}

.buffer-explanation {
  margin: 0.9rem 0 0;
  padding: 0.7rem 0.8rem;
  border-left: 3px solid #43b7ff;
  background: #0d2235;
  color: #91abc3;
  font-size: 0.8rem;
  line-height: 1.4;
}

.buffer-explanation strong {
  color: #dce9f7;
}

.calculator-results {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.9rem;
}

.calculator-results div {
  display: grid;
  gap: 0.2rem;
  padding: 0.65rem;
  border-radius: 0.5rem;
  background: #0d2235;
}

.calculator-results span {
  color: #7893aa;
  font-size: 0.75rem;
}

.calculator-results strong {
  overflow-wrap: anywhere;
  color: #dce9f7;
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
}

.calculator-note {
  margin: 0.85rem 0 0;
  color: #91abc3;
  font-size: 0.8rem;
}

.calculator-note[data-state="warning"] {
  color: #ffba57;
}

@media (max-width: 52rem) {
  .metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calculator-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calculator-inputs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 32rem) {
  body {
    padding: 0.75rem 0;
  }

  main {
    width: calc(100vw - 2.5rem);
    padding: 1.25rem;
  }

  h1 {
    font-size: 2.1rem;
  }

  .metrics-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .metrics-grid {
    grid-template-columns: 1fr;
  }

  .calculator-heading,
  .calculator-inputs,
  .calculator-results,
  .server-recommendations {
    grid-template-columns: 1fr;
  }

  .server-plan-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .server-plan-heading span {
    text-align: left;
  }
}
