/* ==========================================================
   Workshop Hub & Vote — stateofai.pages.dev/workshop/
   Mobile-first. Minimum 18px body. 48px touch targets.
   Brand: Navy #1C3A5E · Gold #B8860B · IBM Plex Sans
   ========================================================== */

/* ── Reset & base ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:    #1C3A5E;
  --gold:    #B8860B;
  --white:   #FFFFFF;
  --bg:      #FAFAF8;
  --lgray:   #F3F2EF;
  --mgray:   #6B6B68;
  --text:    #1A1A18;
  --rule:    #E2E0DC;
  --success: #2D7A47;
  --warn:    #8B5E00;
  --r:       8px;
  --font:    'IBM Plex Sans', system-ui, -apple-system, sans-serif;
}

html { font-size: 20px; scroll-behavior: smooth; }

body.workshop-page {
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

/* ── Workshop wrapper (overrides global site layout) ───────── */
.ws-wrap {
  max-width: 680px;
  margin: 0 auto;
  padding: 1.5rem 1rem 4rem;
}

/* ── Sticky section nav ────────────────────────────────────── */
.ws-nav {
  position: sticky;
  top: 56px; /* below site header */
  z-index: 90;
  background: var(--navy);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.ws-nav::-webkit-scrollbar { display: none; }
.ws-nav-inner {
  display: flex;
  gap: 0;
  min-width: max-content;
  padding: 0 0.5rem;
}
.ws-nav a {
  display: block;
  padding: 0.75rem 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
  transition: color 0.15s, border-color 0.15s;
  min-height: 48px;
  display: flex;
  align-items: center;
}
.ws-nav a:hover, .ws-nav a.active {
  color: #fff;
  border-bottom-color: var(--gold);
}

/* ── Hero banner ───────────────────────────────────────────── */
.ws-hero {
  background: var(--navy);
  color: #fff;
  padding: 2rem 1.5rem 1.75rem;
  border-radius: var(--r);
  margin-bottom: 2.5rem;
}
.ws-hero-eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.ws-hero h1 {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 0.5rem;
}
.ws-hero p {
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  margin-bottom: 1rem;
}
.ws-hero-meta {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.55);
}

/* ── Section headers ───────────────────────────────────────── */
.ws-section {
  margin-top: 3rem;
  scroll-margin-top: 130px;
}
.ws-section-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--rule);
}
.ws-section-number {
  background: var(--navy);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ws-section-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--navy);
}
.ws-section-sub {
  font-size: 0.85rem;
  color: var(--mgray);
  margin-top: 0.25rem;
}

/* ── Cards ─────────────────────────────────────────────────── */
.ws-card {
  background: var(--lgray);
  border-radius: var(--r);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
}
.ws-card-navy {
  background: var(--navy);
  color: #fff;
}
.ws-card-navy .ws-label { color: rgba(255,255,255,0.6); }

/* ── Slide deck link ────────────────────────────────────────── */
.ws-deck-cta {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--navy);
  color: #fff;
  border-radius: var(--r);
  padding: 1.25rem 1.5rem;
  text-decoration: none;
  transition: background 0.15s;
}
.ws-deck-cta:hover { background: #152d4b; text-decoration: none; }
.ws-deck-icon { font-size: 2rem; flex-shrink: 0; }
.ws-deck-text strong { display: block; font-size: 1.05rem; }
.ws-deck-text span { font-size: 0.85rem; color: rgba(255,255,255,0.65); }

/* ── Instructions accordion ─────────────────────────────────── */
.ws-steps { list-style: none; counter-reset: ws-step; }
.ws-steps li {
  counter-increment: ws-step;
  display: flex;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--rule);
}
.ws-steps li::before {
  content: counter(ws-step);
  background: var(--gold);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  min-width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

/* ── Poll forms ─────────────────────────────────────────────── */
.ws-poll-status {
  font-size: 0.85rem;
  color: var(--mgray);
  margin-bottom: 0.75rem;
}
.ws-poll-status.done {
  color: var(--success);
  font-weight: 600;
}

.ws-question { margin-bottom: 1.5rem; }
.ws-question-label {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.6rem;
  display: block;
}
.ws-question-optional {
  font-size: 0.78rem;
  font-weight: 400;
  color: var(--mgray);
  margin-left: 0.4rem;
}

.ws-options { display: flex; flex-direction: column; gap: 0.5rem; }
.ws-option {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--white);
  border: 2px solid var(--rule);
  border-radius: var(--r);
  padding: 0.9rem 1rem;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  min-height: 52px;
  font-size: 1rem;
  text-align: left;
  width: 100%;
  color: var(--text);
  font-family: var(--font);
}
.ws-option:hover { border-color: var(--navy); background: #EEF4F9; }
.ws-option.selected {
  border-color: var(--navy);
  background: #EEF4F9;
  font-weight: 600;
  color: var(--navy);
}
.ws-option input[type="radio"],
.ws-option input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--navy);
  flex-shrink: 0;
}

/* Agent declaration toggle */
.ws-agent-toggle {
  background: #EEF4F9;
  border: 2px solid var(--rule);
  border-radius: var(--r);
  padding: 0.9rem 1rem;
  margin-top: 1rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  cursor: pointer;
}
.ws-agent-toggle input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--navy);
  margin-top: 0.15rem;
  flex-shrink: 0;
}
.ws-agent-toggle-text strong { display: block; font-size: 0.95rem; color: var(--navy); }
.ws-agent-toggle-text span { font-size: 0.82rem; color: var(--mgray); }
.ws-agent-name-field {
  margin-top: 0.75rem;
  display: none;
}
.ws-agent-name-field.visible { display: block; }
.ws-agent-name-field input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--rule);
  border-radius: var(--r);
  font-size: 0.95rem;
  font-family: var(--font);
  color: var(--text);
  background: var(--white);
}
.ws-agent-name-field input:focus {
  outline: none;
  border-color: var(--navy);
}

/* Session ID badge */
.ws-session-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--lgray);
  border-radius: 4px;
  padding: 0.3rem 0.75rem;
  font-size: 0.8rem;
  color: var(--mgray);
  margin-bottom: 1rem;
  font-family: monospace;
}
.ws-session-badge strong { color: var(--navy); }

/* Submit button */
.ws-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--navy);
  color: #fff;
  border: none;
  border-radius: var(--r);
  padding: 1rem 2rem;
  font-size: 1.05rem;
  font-weight: 700;
  font-family: var(--font);
  cursor: pointer;
  min-height: 48px;
  width: 100%;
  transition: background 0.15s, transform 0.1s;
}
.ws-btn:hover:not(:disabled) { background: #152d4b; }
.ws-btn:active:not(:disabled) { transform: scale(0.98); }
.ws-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.ws-btn-gold { background: var(--gold); }
.ws-btn-gold:hover:not(:disabled) { background: #9a7009; }

/* Thank you state */
.ws-poll-thanks {
  display: none;
  background: #EEF8F1;
  border: 2px solid var(--success);
  border-radius: var(--r);
  padding: 1.25rem 1.5rem;
  text-align: center;
}
.ws-poll-thanks.visible { display: block; }
.ws-poll-thanks h3 { color: var(--success); font-size: 1.1rem; margin-bottom: 0.4rem; }
.ws-poll-thanks p { font-size: 0.9rem; color: var(--text); }

/* ── Dashboard ──────────────────────────────────────────────── */
.ws-dashboard-loading {
  text-align: center;
  color: var(--mgray);
  padding: 2rem;
  font-size: 0.9rem;
}

.ws-stat-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
@media (min-width: 480px) {
  .ws-stat-row { grid-template-columns: repeat(4, 1fr); }
}
.ws-stat-box {
  background: var(--lgray);
  border-radius: var(--r);
  padding: 0.85rem;
  text-align: center;
}
.ws-stat-num {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--navy);
  line-height: 1;
}
.ws-stat-label {
  font-size: 0.75rem;
  color: var(--mgray);
  margin-top: 0.3rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ws-stat-agents { color: var(--gold); }

.ws-chart-wrap {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r);
  padding: 1rem;
  margin-bottom: 1rem;
}
.ws-chart-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.75rem;
}
.ws-bar-chart { display: flex; flex-direction: column; gap: 0.5rem; }
.ws-bar-item { display: flex; align-items: center; gap: 0.6rem; font-size: 0.88rem; }
.ws-bar-label { min-width: 120px; color: var(--text); }
.ws-bar-track { flex: 1; background: var(--lgray); border-radius: 4px; height: 1.25rem; overflow: hidden; }
.ws-bar-fill  { height: 100%; background: var(--navy); border-radius: 4px; transition: width 0.5s ease; }
.ws-bar-fill.gold { background: var(--gold); }
.ws-bar-count { min-width: 2rem; text-align: right; color: var(--mgray); font-size: 0.82rem; }

/* Eureka stacked bar chart */
.ws-eureka-legend { font-size: 0.8rem; color: var(--mgray); margin-bottom: 0.6rem; display: flex; align-items: center; gap: 0.4rem; }
.ws-eureka-dot { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.ws-eureka-dot-yes { background: var(--navy); }
.ws-eureka-dot-search { background: #c8d8e8; }
.ws-eureka-chart { display: flex; flex-direction: column; gap: 0.5rem; }
.ws-eureka-row { display: flex; align-items: center; gap: 0.6rem; font-size: 0.88rem; }
.ws-eureka-label { min-width: 120px; color: var(--text); }
.ws-eureka-bar { flex: 1; display: flex; height: 1.25rem; border-radius: 4px; overflow: hidden; background: #c8d8e8; }
.ws-eureka-yes { background: var(--navy); height: 100%; transition: width 0.5s ease; }
.ws-eureka-search { background: #c8d8e8; height: 100%; }
.ws-eureka-pct { min-width: 5rem; text-align: right; color: var(--mgray); font-size: 0.82rem; }

.ws-refresh-note {
  font-size: 0.78rem;
  color: var(--mgray);
  text-align: right;
  margin-top: 0.5rem;
}

/* Benchmark card */
.ws-benchmark {
  background: var(--navy);
  color: #fff;
  border-radius: var(--r);
  padding: 1.25rem 1.5rem;
  margin-top: 1.25rem;
  display: none;
}
.ws-benchmark.visible { display: block; }
.ws-benchmark-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.ws-benchmark h3 {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 0.75rem;
}
.ws-benchmark p { font-size: 0.92rem; color: rgba(255,255,255,0.85); margin-bottom: 0.5rem; }
.ws-benchmark .ws-insight {
  background: rgba(255,255,255,0.08);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.9);
  margin-top: 0.75rem;
  border-left: 3px solid var(--gold);
}
.ws-benchmark .ws-group-assign {
  margin-top: 1rem;
  background: var(--gold);
  color: #fff;
  border-radius: 6px;
  padding: 0.6rem 1rem;
  font-size: 1rem;
  font-weight: 700;
}
.ws-benchmark-share {
  margin-top: 1rem;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.5);
}

/* Agents in the room */
.ws-agents-section {
  background: #FFF8E8;
  border: 1px solid var(--gold);
  border-radius: var(--r);
  padding: 1rem 1.25rem;
  margin-top: 1rem;
}
.ws-agents-title { font-weight: 700; color: var(--warn); margin-bottom: 0.5rem; font-size: 0.9rem; }
.ws-leaderboard { list-style: none; }
.ws-leaderboard li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--rule);
  font-size: 0.92rem;
}
.ws-leaderboard li:last-child { border-bottom: none; }
.ws-rank {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--mgray);
  min-width: 1.4rem;
}
.ws-agent-name { flex: 1; font-weight: 600; color: var(--navy); }
.ws-vote-count {
  font-size: 0.82rem;
  background: var(--navy);
  color: #fff;
  border-radius: 12px;
  padding: 0.15rem 0.6rem;
}

/* ── Feedback form ──────────────────────────────────────────── */
.ws-nps-scale {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.ws-nps-btn {
  width: 2.5rem;
  height: 2.5rem;
  border: 2px solid var(--rule);
  border-radius: 6px;
  background: var(--white);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  font-family: var(--font);
  transition: border-color 0.15s, background 0.15s;
  flex-shrink: 0;
}
.ws-nps-btn:hover { border-color: var(--navy); }
.ws-nps-btn.selected { background: var(--navy); color: #fff; border-color: var(--navy); }
.ws-nps-labels { display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--mgray); margin-top: 0.3rem; }

.ws-textarea {
  width: 100%;
  min-height: 90px;
  padding: 0.75rem 1rem;
  border: 2px solid var(--rule);
  border-radius: var(--r);
  font-family: var(--font);
  font-size: 1rem;
  color: var(--text);
  background: var(--white);
  resize: vertical;
}
.ws-textarea:focus { outline: none; border-color: var(--navy); }

.ws-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--rule);
  border-radius: var(--r);
  font-family: var(--font);
  font-size: 0.95rem;
  color: var(--text);
  background: var(--white);
}
.ws-input:focus { outline: none; border-color: var(--navy); }

.ws-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ws-field { margin-bottom: 1.1rem; }

.ws-checkbox-group { display: flex; flex-direction: column; gap: 0.45rem; }
.ws-checkbox-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.95rem;
  cursor: pointer;
  min-height: 36px;
}
.ws-checkbox-item input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--navy);
  flex-shrink: 0;
}

/* ── Resources grid ─────────────────────────────────────────── */
.ws-resources { display: flex; flex-direction: column; gap: 0.6rem; }
.ws-resource-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--lgray);
  border-radius: var(--r);
  padding: 0.9rem 1rem;
  text-decoration: none;
  color: var(--text);
  transition: background 0.15s;
  min-height: 48px;
}
.ws-resource-link:hover { background: #E8E7E3; text-decoration: none; }
.ws-resource-link strong { display: block; font-size: 1rem; color: var(--navy); }
.ws-resource-link span { font-size: 0.85rem; color: var(--mgray); }
.ws-resource-arrow { margin-left: auto; color: var(--navy); flex-shrink: 0; }

/* ── Vote page ──────────────────────────────────────────────── */
.ws-vote-prompt {
  background: #EEF4F9;
  border: 2px solid var(--navy);
  border-radius: var(--r);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.ws-vote-prompt .ws-label { color: var(--navy); }
.ws-prompt-code {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 0.85rem 1rem;
  font-size: 0.88rem;
  font-style: italic;
  color: var(--navy);
  line-height: 1.55;
  margin-top: 0.6rem;
}
.ws-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 0.35rem 0.75rem;
  font-size: 0.8rem;
  color: var(--mgray);
  cursor: pointer;
  margin-top: 0.5rem;
  font-family: var(--font);
}
.ws-copy-btn:hover { border-color: var(--navy); color: var(--navy); }

/* ── Organizer section ──────────────────────────────────────── */
.ws-organizer-section {
  border-top: 2px solid var(--rule);
  margin-top: 2rem;
  padding-top: 1.5rem;
}
.ws-organizer-tag {
  display: inline-block;
  background: var(--navy);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  margin-bottom: 0.75rem;
}

/* ── Star rating ────────────────────────────────────────────── */
.ws-stars { display: flex; gap: 0.35rem; }
.ws-star {
  font-size: 1.75rem;
  cursor: pointer;
  color: var(--rule);
  transition: color 0.1s;
  line-height: 1;
  min-width: 2.5rem;
  text-align: center;
}
.ws-star.lit { color: var(--gold); }

/* ── What's Next grid ───────────────────────────────────────── */
.ws-next-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 700px) {
  .ws-next-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
.ws-next-card { border-radius: var(--r); padding: 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
.ws-next-tonight  { background: var(--navy); color: #fff; }
.ws-next-summit   { background: #EEF4F9; border: 2px solid var(--navy); }
.ws-next-closing  { background: var(--lgray); border: 1px solid var(--rule); }
.ws-next-label  { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; opacity: 0.7; }
.ws-next-tonight .ws-next-label { color: #fff; opacity: 0.75; }
.ws-next-summit .ws-next-label  { color: var(--navy); }
.ws-next-closing .ws-next-label { color: var(--mgray); }
.ws-next-event { font-size: 1.1rem; font-weight: 700; line-height: 1.25; }
.ws-next-tonight .ws-next-event { color: #fff; }
.ws-next-summit .ws-next-event  { color: var(--navy); }
.ws-next-closing .ws-next-event { color: var(--navy); }
.ws-next-time { font-size: 0.85rem; font-weight: 600; }
.ws-next-tonight .ws-next-time  { color: rgba(255,255,255,0.8); }
.ws-next-summit .ws-next-time   { color: var(--mgray); }
.ws-next-closing .ws-next-time  { color: var(--mgray); }
.ws-next-detail { font-size: 0.92rem; line-height: 1.5; margin-top: 0.25rem; }
.ws-next-tonight .ws-next-detail { color: rgba(255,255,255,0.85); }
.ws-next-closing .ws-next-detail { color: #333; }
.ws-next-tracks { display: flex; flex-direction: column; gap: 0.3rem; margin-top: 0.25rem; }
.ws-next-track { font-size: 0.9rem; color: #333; padding: 0.25rem 0.6rem; border-radius: 4px; background: #fff; border: 1px solid var(--rule); }
.ws-next-track-highlight { background: var(--navy); color: #fff; border-color: var(--navy); font-weight: 600; }
.ws-next-track-note { font-size: 0.78rem; font-weight: 400; opacity: 0.8; margin-left: 0.3rem; }
.ws-next-summit-link { display: inline-block; margin-top: 0.75rem; font-size: 0.88rem; font-weight: 700; color: var(--navy); text-decoration: none; }
.ws-next-summit-link:hover { text-decoration: underline; }

/* ── Team section ───────────────────────────────────────────── */
.ws-team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-top: 1rem;
}
@media (max-width: 500px) {
  .ws-team-grid { grid-template-columns: 1fr; }
}
.ws-team-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: var(--lgray);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 1rem 1rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s;
}
.ws-team-card:hover { border-color: var(--navy); }
.ws-team-card--nolink { cursor: default; }
.ws-team-card--nolink:hover { border-color: var(--rule); }
.ws-team-name { font-size: 1rem; font-weight: 700; color: var(--navy); }
.ws-team-li { font-size: 0.78rem; color: var(--mgray); margin-top: 0.2rem; }
.ws-team-qr { width: 64px; height: 64px; flex-shrink: 0; }

/* ── Footer nudge ───────────────────────────────────────────── */
.ws-footer-nudge {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--rule);
  text-align: center;
}
.ws-footer-nudge p { font-size: 0.88rem; color: var(--mgray); }
.ws-footer-nudge a { color: var(--navy); font-weight: 600; }

/* ── Print styles ───────────────────────────────────────────── */
@media print {
  .ws-nav, .site-header, .site-footer, .ws-btn, .ws-agent-toggle { display: none !important; }
  .ws-wrap { max-width: 100%; padding: 0; }
  .ws-hero { background: none; color: #000; border: 2px solid #000; padding: 1rem; }
  .ws-chart-wrap { border: 1px solid #000; }
  .ws-bar-fill { background: #666 !important; }
}

/* ── Responsive tweaks ──────────────────────────────────────── */
@media (min-width: 600px) {
  .ws-wrap { padding: 1.5rem 1.5rem 4rem; }
  .ws-hero { padding: 2.5rem 2rem 2rem; }
  .ws-hero h1 { font-size: 2.1rem; }
}
