/* Region Pulse tab. Chart colors: Sunday var(--c-sun), Wednesday var(--c-wed) (validated pair). Color is never the only cue. */
.pl-hero { display: flex; gap: 22px; align-items: center; padding: 22px 24px; background: var(--hero-bg); color: var(--on-chrome); border: 0; }
.pl-ringwrap { flex: none; width: 150px; }
.pl-ring { width: 100%; display: block; }
.pl-ring-bg { stroke: rgba(255,255,255,.14); }
.pl-ring-fg { stroke: var(--sky); transition: stroke-dashoffset .6s ease; }
.pl-hero.great .pl-ring-fg { stroke: #4FD6A3; } .pl-hero.good .pl-ring-fg { stroke: var(--sky); }
.pl-hero.warn .pl-ring-fg { stroke: var(--gold); } .pl-hero.low .pl-ring-fg { stroke: var(--coral); }
.pl-ring-num { fill: var(--on-chrome); font-size: 40px; font-weight: 800; letter-spacing: -.02em; font-family: var(--font); }
.pl-ring-of { fill: var(--chrome-muted); font-size: 12px; font-family: var(--font); }
.pl-eyebrow { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--chrome-muted); font-weight: 650; }
.pl-label { font-size: 32px; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; margin: 2px 0 6px; }
.pl-hero-s { display: flex; gap: 8px; align-items: center; min-height: 22px; }
.pl-hero .pl-sub { color: var(--chrome-muted); }
.pl-note { margin-top: 10px; font-size: 13.5px; color: var(--chrome-soft); max-width: 520px; }
.pl-delta { font-weight: 700; font-size: 13.5px; padding: 2px 9px; border-radius: 99px; white-space: nowrap; }
.pl-delta.up { background: var(--ok-soft); color: var(--ok-ink); } .pl-delta.down { background: var(--coral-soft); color: var(--coral-ink); } .pl-delta.flat { background: var(--slate-soft); color: var(--slate); }
.pl-sub { font-size: 13px; color: var(--muted); }

.pl-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
.pl-tile { padding: 18px 20px; }
.pl-tile-h { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.pl-tile-h .pl-when { margin-left: auto; font-weight: 600; font-size: 13px; color: var(--muted); }
.pl-dot { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.pl-tile-n { font-size: 40px; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; margin-top: 8px; display: flex; align-items: baseline; gap: 4px; }
.pl-tile-n small { font-size: 20px; color: var(--muted); font-weight: 650; }
.pl-pc { margin-left: auto; font-size: 20px; font-weight: 750; color: var(--sky-ink); }
.pl-tile-s { display: flex; gap: 8px; align-items: center; margin: 4px 0 2px; }
.pl-mixleg { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 10px; font-size: 12.5px; color: var(--muted); }
.pl-mixleg i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 5px; }
.pl-mixleg b { color: var(--ink); margin-left: 3px; }
.pl-empty { color: var(--muted); font-size: 14px; padding: 8px 0; }

.pl-card { padding: 18px 20px; }
.pl-trend { width: 100%; height: auto; display: block; overflow: visible; }
.pl-grid { stroke: var(--line); stroke-width: 1; }
.pl-ax { fill: var(--muted); font-size: 11.5px; font-family: var(--font); }
.pl-end { font-size: 12.5px; font-weight: 700; font-family: var(--font); }
.pl-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--muted); margin-top: 8px; }
.pl-legend span { display: inline-flex; align-items: center; gap: 6px; }
.pl-legend i { width: 14px; height: 4px; border-radius: 2px; display: inline-block; }
.pl-legend.g { margin-top: 12px; } .pl-legend.g .pl-g { width: auto; margin-right: 2px; }
.pl-tbl { margin-top: 12px; } .pl-tbl summary, .pl-how summary { cursor: pointer; font-weight: 650; color: var(--sky-ink); }
.pl-scroll { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
.pl-tbl table { border-collapse: collapse; width: 100%; font-size: 13.5px; margin-top: 8px; }
.pl-tbl th, .pl-tbl td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.pl-tbl th { color: var(--muted); font-weight: 600; }

.pl-checks { padding: 4px 0 0; }
.pl-check { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.pl-ck-w { flex: 1; min-width: 0; }
.pl-nm { font-weight: 650; } .pl-gl { font-size: 12px; color: var(--muted); font-weight: 600; margin-left: 6px; }
.pl-ck-s { font-size: 13.5px; color: var(--muted); }
.pl-priv { padding: 12px 18px; font-size: 12.5px; color: var(--muted); }

.pl-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.pl-bars { display: grid; gap: 12px; }
.pl-bar { display: grid; grid-template-columns: 92px 1fr 46px; align-items: center; gap: 10px; }
.pl-bl { font-weight: 650; font-size: 14px; } .pl-bl small { display: block; font-size: 11.5px; color: var(--muted); font-weight: 500; }
.pl-bt { height: 10px; border-radius: 99px; background: var(--slate-soft); overflow: hidden; }
.pl-bt i { display: block; height: 100%; border-radius: 99px; background: var(--c-sun); }
.pl-bt i.r { background: var(--c-warm); } .pl-bt i.g { background: var(--c-sun); }
.pl-bv { text-align: right; font-weight: 700; font-size: 14px; }
.pl-callout { margin-top: 14px; font-size: 13.5px; color: var(--muted); padding-top: 12px; border-top: 1px solid var(--line); }
.pl-callout b { color: var(--ink); }

.pl-gridwrap { padding: 14px 6px 14px 14px; }
.pl-gridt { border-collapse: separate; border-spacing: 0; font-size: 13px; min-width: 100%; }
.pl-gridt th, .pl-gridt td { padding: 5px 7px; text-align: center; white-space: nowrap; border-bottom: 1px solid var(--line); }
.pl-gridt thead th { font-size: 11.5px; color: var(--muted); font-weight: 600; vertical-align: bottom; }
.pl-gridt tbody th { text-align: left; position: sticky; left: 0; background: var(--card); z-index: 1; font-weight: 600; min-width: 112px; padding-right: 12px; }
.pl-gridt tr.flag th { box-shadow: inset 3px 0 0 var(--coral); }
.pl-colt { display: block; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.pl-colt.service { color: var(--c-sun); } .pl-colt.wednesday { color: var(--c-wed); }
.pl-g { display: inline-block; width: 22px; text-align: center; font-size: 16px; line-height: 1; font-weight: 700; }
.pl-g.ip, .pl-g.zon, .pl-g.zoff { position: relative; height: 14px; }
.pl-g.ip::before, .pl-g.zon::before, .pl-g.zoff::before { content: ''; display: inline-block; width: 12px; height: 12px; border-radius: 50%; box-sizing: border-box; vertical-align: -2px; }
.pl-g.ip::before { background: var(--c-sun); }
.pl-g.zon::before { border: 2px solid var(--c-sun); background: linear-gradient(90deg, var(--c-sun) 50%, transparent 50%); }
.pl-g.zoff::before { border: 2px solid var(--slate); background: transparent; }
.pl-g.abs { color: var(--coral); } .pl-g.none { color: var(--muted); }
.pl-rate { font-weight: 700; }

.pl-how { margin-top: 28px; max-width: 760px; }
.pl-how p { color: var(--navy-2); font-size: 14.5px; margin: 10px 0 0; }

@media (max-width: 760px) {
  .pl-hero { flex-direction: column; text-align: center; gap: 10px; padding: 20px 16px; }
  .pl-ringwrap { width: 132px; } .pl-hero-s { justify-content: center; } .pl-label { font-size: 28px; }
  .pl-tiles, .pl-two { grid-template-columns: 1fr; }
  .pl-bar { grid-template-columns: 98px 1fr 38px; }
  .pl-ax { font-size: 17px; } .pl-end { font-size: 17px; }
  .pl-check { padding: 12px 14px; }
}
.pl-seg { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.pl-seg-n { font-size: 36px; font-weight: 800; letter-spacing: -.02em; }
