@media (min-width: 576px) {
  :root,
  :host {
    --pico-font-size: 87.50%;
  }
}
@media (min-width: 768px) {
  :root,
  :host {
    --pico-font-size: 93.75%;
  }
}
@media (min-width: 1024px) {
  :root,
  :host {
    --pico-font-size: 100%;
  }
}
@media (min-width: 1280px) {
  :root,
  :host {
    --pico-font-size: 106.25%;
  }
}
@media (min-width: 1536px) {
  :root,
  :host {
    --pico-font-size: 112.5%;
  }
}

a.back-to-top {
    opacity: 0;
    margin-left: 0.5rem;
    text-decoration: none;
    transition: opacity 0.2s ease-in-out;
}

h2:hover a.back-to-top {
  opacity: 1;
}

h3:hover a.back-to-top {
  opacity: 1;
}

table.sortable {
  th:not(.no-sort) {
    cursor: pointer;
    position: relative;
    padding-right: 1.5rem;
    white-space: nowrap;
  }

  th:not(.no-sort)::after {
    content: '';
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    border-bottom: none;
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: #404040 transparent;
    visibility: hidden;
    opacity: 0;
    user-select: none;
  }

  th[aria-sort=ascending]:not(.no-sort)::after {
    border-width: 0 6px 6px;
  }

  th:not(.no-sort):focus::after,
  th:not(.no-sort):hover::after {
    visibility: visible;
    opacity: 1;
  }
}

.chart-tabs { display: flex; gap: 8px; margin-bottom: 1.5rem; flex-wrap: wrap; }
button.chart-tab {
  --chart-tab-hover-color: var(--pico-color);
  --pico-background-color: transparent;
  --pico-border-color: var(--pico-muted-border-color);
  --pico-color: var(--pico-muted-color);
  --pico-box-shadow: none;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 0.85rem;
  cursor: pointer;
  background-color: var(--pico-background-color);
  border: 1px solid var(--pico-border-color);
  color: var(--pico-color);
  box-shadow: var(--pico-box-shadow);
}
button.chart-tab.active {
  --pico-background-color: var(--pico-primary-background);
  --pico-border-color: var(--pico-primary);
  --pico-color: var(--pico-primary-inverse);
  font-weight: 500;
}
button.chart-tab:not(.active):is(:hover, :active, :focus) {
  --pico-background-color: var(--pico-card-background-color);
  --pico-border-color: var(--pico-muted-border-color);
  --pico-color: var(--chart-tab-hover-color);
  --pico-box-shadow: none;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 1.5rem;
}
.metric-card {
  background: var(--pico-card-background-color);
  border-radius: 8px;
  padding: 12px 14px;
}
.metric-label { font-size: 0.8rem; color: var(--pico-muted-color); margin-bottom: 4px; }
.metric-value { font-size: 1.4rem; font-weight: 500; }
.metric-sub { font-size: 0.75rem; color: var(--pico-muted-color); margin-top: 2px; }

@media (max-width: 600px) {
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
