/* Page frame: header, navigation, main column, footer. */
.pl-top, .pl-main, .pl-foot { font-family: var(--pl-font); color: var(--pl-ink); }
body:has(.pl-top) { margin: 0; background: var(--pl-bg); }

.pl-top {
  display: flex; align-items: center; gap: var(--pl-gap); flex-wrap: wrap;
  padding: 10px 20px; background: var(--pl-surface); border-bottom: 1px solid var(--pl-line);
  position: sticky; top: 0; z-index: 5;
}
.pl-brand { color: var(--pl-ink); text-decoration: none; font-size: 17px; }
.pl-nav { display: flex; gap: 4px; flex-wrap: wrap; }
.pl-nav a {
  color: var(--pl-muted); text-decoration: none; padding: 6px 10px; border-radius: var(--pl-radius);
}
.pl-nav a:hover, .pl-nav a:focus-visible, .pl-nav a.pl-active { color: var(--pl-ink); background: var(--pl-bg); }
.pl-top-right { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.pl-health { font-size: 18px; color: var(--pl-muted); }
.pl-health[data-status="ok"] { color: var(--pl-good); }
.pl-health[data-status="degraded"] { color: var(--pl-warn); }
.pl-health[data-status="down"] { color: var(--pl-bad); }

.pl-main { max-width: 1180px; margin: 0 auto; padding: 24px 20px 60px; }
.pl-main h1 { font-size: 22px; margin: 0 0 4px; }
.pl-main h2 { font-size: 17px; margin: 28px 0 10px; }
.pl-lede { color: var(--pl-muted); margin: 0 0 20px; max-width: 70ch; }
.pl-muted { color: var(--pl-muted); }
.pl-foot { text-align: center; color: var(--pl-muted); font-size: 12px; padding: 16px; }

.pl-grid { display: grid; gap: var(--pl-gap); grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.pl-card {
  background: var(--pl-surface); border: 1px solid var(--pl-line); border-radius: var(--pl-radius); padding: 16px;
}
.pl-card h3 { margin: 0 0 4px; font-size: 15px; }
.pl-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pl-spread { justify-content: space-between; }
