.pt-chart-wrap {
      background: var(--card-bg, #fff);
      border: 1px solid var(--gray-300);
      border-radius: 3px;
      padding: 1.5rem 1.5rem 1rem;
      margin-bottom: 1.5rem;
      box-shadow: 0 2px 12px rgba(0,0,0,.05);
    }
    [data-theme="dark"] .pt-chart-wrap { background: #1a2520; }
    .pt-toggles {
      display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem;
    }
    .pt-toggle {
      display: inline-flex; align-items: center; gap: .45rem;
      padding: .35rem .85rem; border-radius: 4px; border: 2px solid transparent;
      font-size: .82rem; font-weight: 600; font-family: inherit;
      cursor: pointer; transition: opacity .15s, transform .1s;
      white-space: nowrap; color: #fff; user-select: none;
    }
    .pt-toggle:hover { transform: translateY(-1px); }
    .pt-toggle.hidden { opacity: .32; filter: grayscale(.6); }
    .pt-group-label {
      width: 100%; font-size: .72rem; font-weight: 700;
      letter-spacing: .08em; text-transform: uppercase;
      color: var(--gray-600); margin: .6rem 0 .1rem;
    }
    .pt-group-label:first-child { margin-top: 0; }
    .pt-source {
      font-size: .78rem; color: var(--gray-600);
      text-align: center; margin-top: 1rem; line-height: 1.6;
    }
    .pt-source a { color: var(--green); }
    .pt-stat-row { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
    .pt-stat {
      background: var(--card-bg, #fff); border: 1px solid var(--gray-300);
      border-radius: 3px; padding: .85rem 1.1rem; flex: 1; min-width: 130px; text-align: center;
    }
    [data-theme="dark"] .pt-stat { background: #1a2520; }
    .pt-stat-val { font-size: 1.5rem; font-weight: 700; color: var(--green); line-height: 1.1; }
    .pt-stat-lbl { font-size: .75rem; color: var(--gray-600); margin-top: .2rem; }
    .pt-legend { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin-bottom: 1rem; }
    .pt-legend-item {
      display: inline-flex; align-items: center; gap: .45rem;
      font-size: .82rem; color: var(--gray-700);
    }
    .pt-legend-dot { width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0; }

/* Today's readings, server-rendered by scripts/inject_readings.py.
   Wide on a phone, so it scrolls inside its own box rather than
   pushing the page sideways. */
.pt-levels { overflow-x: auto; }
.pt-levels-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.pt-levels-table caption {
  caption-side: top; text-align: left; font-size: .82rem;
  color: var(--gray-600); padding-bottom: .7rem;
}
.pt-levels-table th[scope="col"] {
  text-align: left; font-size: .74rem; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase; color: var(--gray-600);
  border-bottom: 1px solid var(--gray-300); padding: .45rem .8rem .45rem 0;
}
.pt-levels-table th[scope="row"] { text-align: left; font-weight: 600; }
.pt-levels-table td, .pt-levels-table th[scope="row"] {
  padding: .62rem .8rem .62rem 0; border-bottom: 1px solid var(--gray-200, #e6e8ea);
  white-space: nowrap;
}
.pt-levels-table tr:last-child td,
.pt-levels-table tr:last-child th { border-bottom: none; }
