/* CISD Policy Tracker — redesigned to match the Board Monitor design system,
   anchored on the site's purple identity color (--c-policy / #5a4b8a). */

:root {
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px;
  --r-sm:6px; --r-md:10px; --r-lg:16px;

  /* Policy palette (lavender / deep plum) — this site's accent identity */
  --bg:            #f5f4f8;
  --surface:       #ffffff;
  --surface-2:     #eeeaf8;
  --surface-open:  #f8f6fc;

  --ink:           #1e1a2e;
  --ink-2:         #5a5070;
  --ink-3:         #8a8098;

  --line:          #dddae8;
  --line-2:        #c9c0de;

  --brand:         #5a4b8a;
  --brand-700:     #2e2840;
  --brand-50:      #eeeaf8;

  --accent:        #5a4b8a;
  --link:          #5a4b8a;
  --link-hover:    #7a64b0;

  --badge-bg:      #eeeaf8;
  --badge-text:    #4a3d70;

  --warn:#b4690e; --good:#2f7d6b; --bad:#b3261e;

  --font: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --shadow-hover: 0 1px 3px rgba(46,40,64,.08), 0 8px 24px rgba(46,40,64,.08);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { max-width:100%; overflow-x:hidden; }
body {
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font); font-size:15px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:break-word;
}
.wrap { max-width:1080px; margin:0 auto; padding-left:var(--sp-5); padding-right:var(--sp-5); }
a { color:var(--link); }
a:hover { color:var(--link-hover); }

.skip-link {
  position:absolute; left:-9999px; top:0; background:var(--brand); color:#fff;
  padding:var(--sp-2) var(--sp-4); border-radius:0 0 var(--r-sm) 0; z-index:10;
}
.skip-link:focus { left:0; }

/* ── Hero ─────────────────────────────────────────────────────── */
.hero {
  background:
    linear-gradient(135deg, rgba(46,40,64,.90) 0%, rgba(90,75,138,.80) 55%, rgba(122,100,176,.72) 100%),
    url('images/hero-bg.jpg') center center / cover no-repeat;
  background-color:#2e2840;
  border-bottom: none;
  padding: var(--sp-8) 0 var(--sp-6);
}
.eyebrow {
  margin:0 0 var(--sp-3); font-size:13px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:rgba(216,206,240,.85);
}
.hero h1 {
  margin:0 0 var(--sp-4); font-size:clamp(26px,3.4vw,36px); line-height:1.15;
  font-weight:700; letter-spacing:-.015em; color:#fff;
}
.lede { margin:0; max-width:60ch; color:rgba(255,255,255,.82); font-size:clamp(15px,1.6vw,17px); line-height:1.55; }

/* ── Site navigation chips ──────────────────────────────────── */
.sitenav { margin:var(--sp-5) 0 0; }
.sitenav__tog, .sitenav__chip {
  display:inline-flex; align-items:center;
  padding:5px var(--sp-3); border-radius:999px;
  font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  white-space:nowrap; cursor:pointer;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18);
  transition:background .12s, color .12s, border-color .12s;
}
.sitenav__chip { text-decoration:none; }
.sitenav__tog:hover, .sitenav__chip:hover {
  background:rgba(255,255,255,.23); color:#fff; border-color:rgba(255,255,255,.38);
}
.sitenav__chip[aria-current="page"] {
  background:rgba(255,255,255,.25); color:#fff;
  border-color:rgba(255,255,255,.55); cursor:default;
}
.sitenav__tog { display:none; }
.sitenav__chips { display:flex; flex-wrap:wrap; gap:var(--sp-2); }
@media (max-width:600px) {
  .sitenav__tog { display:inline-flex; }
  .sitenav__chips { display:none; margin-top:var(--sp-2); }
  .sitenav[data-open] .sitenav__chips { display:grid; grid-template-columns:1fr 1fr; }
  .sitenav[data-open] .sitenav__chip { justify-content:center; padding:9px var(--sp-3); font-size:13px; }
}

/* ── Disclaimer ───────────────────────────────────────────────── */
.disclaimer {
  background:var(--brand-50); border-bottom:1px solid var(--line);
}
.disclaimer .wrap {
  padding-top:var(--sp-2); padding-bottom:var(--sp-2);
  font-size:13px; font-style:italic; color:var(--ink-2);
}

/* ── Layout ───────────────────────────────────────────────────── */
main { padding:var(--sp-6) 0 var(--sp-6); display:grid; grid-template-columns:minmax(0,1fr); gap:var(--sp-5); }

/* ── Toolbar card — search + result count + filter chips ─────── */
.toolbar-card {
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-md); padding:var(--sp-4) var(--sp-5);
  display:flex; flex-direction:column; gap:var(--sp-3);
}
.toolbar { display:flex; align-items:center; gap:var(--sp-3); flex-wrap:wrap; }
.search-wrap { position:relative; flex:1; min-width:200px; }
.search-wrap input {
  width:100%; padding:.55rem 2.1rem .55rem 2.3rem;
  font-size:.9rem; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--bg); color:var(--ink); font:inherit;
}
.search-wrap input:focus { outline:2px solid var(--accent); outline-offset:1px; }
.search-icon { position:absolute; left:.7rem; top:50%; transform:translateY(-50%); color:var(--ink-3); font-size:1rem; pointer-events:none; }
.search-clear {
  position:absolute; right:.55rem; top:50%; transform:translateY(-50%);
  background:none; border:none; cursor:pointer; padding:.1rem .25rem;
  color:var(--ink-3); font-size:1rem; line-height:1; border-radius:3px; display:none;
}
.search-clear:hover { color:var(--ink); background:var(--surface-2); }
.search-wrap.has-value .search-clear { display:block; }
.result-count { font-size:.8rem; color:var(--ink-3); white-space:nowrap; }

/* Filter bar */
.filter-bar { display:flex; align-items:center; gap:var(--sp-2); flex-wrap:wrap; }
.filter-label { font-size:.72rem; color:var(--ink-3); font-weight:600; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }

/* Custom dropdown — replaces native <select> so the open panel can match
   the site's rounded ghost-pill aesthetic (native select popups can't be restyled) */
.filter-select, .filter-dd__btn {
  display:inline-flex; align-items:center; gap:.45rem;
  padding:5px var(--sp-3); border-radius:999px;
  font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  white-space:nowrap; cursor:pointer; font-family:inherit;
  color:var(--ink-2);
  background:var(--brand-50); border:1px solid var(--line);
  transition:background .12s, color .12s, border-color .12s;
}
.filter-select:hover { background:var(--surface-2); color:var(--ink); border-color:var(--accent); }
.filter-dd { position:relative; }
.filter-dd__count {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:1.4em; padding:0 .35em; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:0; text-transform:none;
  background:rgba(90,75,138,.14); color:var(--brand);
}
.filter-dd__opt.is-selected .filter-dd__count { background:rgba(90,75,138,.22); }
.filter-dd__arrow {
  display:inline-block; width:7px; height:7px; flex:none;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px); transition:transform .15s;
  opacity:.65;
}
.filter-dd[data-open] > .filter-dd__btn .filter-dd__arrow { transform:rotate(225deg) translateY(2px); }
.filter-dd[data-open] > .filter-dd__btn {
  background:var(--surface-2); color:var(--ink); border-color:var(--accent);
}
.filter-dd__menu {
  position:absolute; top:calc(100% + 6px); left:0; z-index:30;
  min-width:14rem; max-height:18rem; overflow-y:auto;
  margin:0; padding:var(--sp-1) 0; list-style:none;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:0 12px 28px rgba(46,40,64,.22);
  display:none;
}
.filter-dd[data-open] .filter-dd__menu { display:block; }
.filter-dd__opt {
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3);
  padding:.45rem var(--sp-4); font-size:.8rem; font-weight:500;
  color:var(--ink-2); white-space:nowrap; cursor:pointer; transition:background .1s, color .1s;
}
.filter-dd__opt:hover { background:var(--brand-50); color:var(--ink); }
.filter-dd__opt.is-selected { color:var(--brand); font-weight:700; }
.filter-dd__opt-label::before { content:"✓ "; opacity:0; }
.filter-dd__opt.is-selected .filter-dd__opt-label::before { opacity:1; }

/* Sort toggle — segmented ghost-pill pair */
.sort-toggle { display:inline-flex; gap:2px; background:var(--brand-50); border:1px solid var(--line); border-radius:999px; padding:2px; }
.sort-btn {
  display:inline-flex; align-items:center;
  padding:4px var(--sp-3); border-radius:999px; border:0; background:none; cursor:pointer;
  font:inherit; font-size:12px; font-weight:600; letter-spacing:.03em;
  color:var(--ink-2); transition:background .12s, color .12s;
}
.sort-btn:hover { color:var(--ink); }
.sort-btn.active { background:var(--accent); color:#fff; }

/* ── Policy cards ─────────────────────────────────────────────── */
#policies-list { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--sp-3); }
.policy-card {
  position:relative; display:flex; align-items:center; gap:var(--sp-4);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md);
  padding:var(--sp-4) var(--sp-5); text-decoration:none; color:inherit;
  transition:box-shadow .15s ease, border-color .15s ease, transform .1s ease;
}
.policy-card:hover { box-shadow:var(--shadow-hover); border-color:var(--line-2); transform:translateY(-1px); }
.policy-card--pending {
  flex-wrap:wrap;
  background:#fdf5dc; border-color:#c8960a;
}
.policy-card--pending:hover { border-color:#a07808; }
.policy-card__pending-footer {
  flex-basis:100%; margin-top:.1rem;
  padding-top:.4rem; border-top:1px solid rgba(200,150,10,.25);
  font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em;
  color:#8a6400;
}
.policy-code-badge {
  flex:0 0 auto; min-width:3.4rem; text-align:center;
  background:var(--badge-bg); color:var(--badge-text);
  font-family:"SF Mono","Fira Code",monospace;
  font-size:.92rem; font-weight:700; letter-spacing:.01em;
  padding:.45rem .6rem; border-radius:var(--r-sm);
}
.policy-info { flex:1; min-width:0; }
.policy-info h3 { margin:0 0 .25rem; font-size:1rem; font-weight:600; letter-spacing:-.01em; color:var(--ink); }
.policy-info p { margin:0; font-size:.84rem; line-height:1.5; color:var(--ink-2); overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.policy-meta { flex:0 0 auto; text-align:right; display:none; }
.policy-last-updated { display:flex; flex-direction:column; align-items:flex-end; gap:1px; font-size:.78rem; color:var(--ink-2); white-space:nowrap; }
.meta-label { font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); }
.policy-card .arrow { flex:0 0 auto; font-size:1.3rem; color:var(--ink-3); transition:transform .15s ease, color .15s ease; }
.policy-card:hover .arrow { transform:translateX(3px); color:var(--accent); }
@media (min-width:560px) { .policy-meta { display:block; } }

.empty-msg { padding:var(--sp-5); text-align:center; color:var(--ink-3); font-size:.9rem; }

/* ── Footer ───────────────────────────────────────────────────── */
.foot { border-top:1px solid var(--line); margin-top:var(--sp-6); padding:var(--sp-5) 0 var(--sp-7); }
.foot__note { margin:0; font-size:12px; color:var(--ink-3); text-align:center; }
.foot__note + .foot__note { margin-top:var(--sp-1); }

.loading { color:var(--ink-3); font-size:14px; margin:0; padding:var(--sp-5); text-align:center; }
.err { color:var(--bad); font-size:13px; margin:0; padding:2rem; text-align:center; }

/* ════════════════════════════════════════════════════════════════
   Policy detail page (policy.html)
   ════════════════════════════════════════════════════════════════ */

/* Mini header strip used on the detail page (non-hero, compact) */
.subhead {
  background:var(--brand-700); color:#fff;
  padding:var(--sp-4) 0;
}
.subhead .wrap { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap; }
.subhead .sitenav { margin:0; flex:1; display:flex; justify-content:center; }
.subhead .sitenav__chips { justify-content:center; }
@media (max-width:760px) { .subhead .sitenav { display:none; } }
.subhead__brand { display:flex; flex-direction:column; gap:2px; }
.subhead__brand a { color:#fff; text-decoration:none; font-weight:700; font-size:1.05rem; letter-spacing:-.01em; }
.subhead__brand span { font-size:.78rem; color:rgba(255,255,255,.65); }
.subhead__back {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:12px; font-weight:600; letter-spacing:.03em; text-decoration:none;
  color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  padding:6px var(--sp-3); border-radius:999px;
  transition:background .12s, border-color .12s;
}
.subhead__back:hover { background:rgba(255,255,255,.23); border-color:rgba(255,255,255,.4); color:#fff; }

.detailmain { max-width:900px; margin:0 auto; padding:var(--sp-6) var(--sp-5) var(--sp-7); display:block; }

/* Policy title block */
.policy-title-block { display:flex; align-items:center; gap:var(--sp-4); margin-bottom:var(--sp-5); flex-wrap:wrap; }
.policy-title-code {
  flex:0 0 auto; background:var(--badge-bg); color:var(--badge-text);
  font-family:"SF Mono","Fira Code",monospace; font-size:1.1rem; font-weight:700;
  padding:.4rem .8rem; border-radius:var(--r-sm);
}
.policy-title-text { flex:1; min-width:0; }
.policy-title-text h1 { margin:0; font-size:1.4rem; font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.policy-last-action { font-size:.82rem; color:var(--ink-2); margin-top:.2rem; }
.policy-connect-btn {
  display:inline-flex; align-items:center; gap:.3rem; margin-top:.5rem;
  padding:.32rem .8rem; border-radius:999px;
  font-size:.78rem; font-weight:600;
  background:var(--surface-2); color:var(--brand);
  border:1px solid var(--line); text-decoration:none;
  transition:border-color .15s, background .15s;
}
.policy-connect-btn:hover { border-color:var(--accent); background:var(--surface); }

/* Description card */
.description-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:0 1px 4px rgba(46,40,64,.06);
  padding:var(--sp-4) var(--sp-5); margin-bottom:var(--sp-5);
}
.description-card p { margin:0; font-size:.92rem; line-height:1.65; color:var(--ink-2); }

/* Tab bar */
.tab-bar { display:flex; gap:0; margin-bottom:var(--sp-5); border-bottom:2px solid var(--line-2); }
.tab-btn {
  background:none; border:none; cursor:pointer;
  font-size:.9rem; font-weight:600; color:var(--ink-2);
  padding:.55rem 1.25rem; margin-bottom:-2px;
  border-bottom:2px solid transparent;
  transition:color .15s, border-color .15s; font-family:inherit;
}
.tab-btn:hover { color:var(--ink); }
.tab-btn.active { color:var(--brand); border-bottom-color:var(--accent); }
.tab-panel { display:none; }
.tab-panel.active { display:block; }

/* Section heading */
.detailmain h2 {
  font-size:1.05rem; font-weight:700; color:var(--ink);
  margin:0 0 var(--sp-4); padding-bottom:.5rem; border-bottom:2px solid var(--line-2);
}

/* Entry date tabs */
.entry-tabs { display:flex; flex-wrap:wrap; gap:0; border-bottom:2px solid var(--line-2); margin-bottom:var(--sp-4); }
.entry-tab-btn {
  background:none; border:none; cursor:pointer; font-family:inherit;
  padding:.55rem 1rem .5rem; margin-bottom:-2px;
  border-bottom:2px solid transparent;
  display:flex; flex-direction:column; align-items:flex-start; gap:.2rem;
  transition:background .12s; border-radius:4px 4px 0 0;
}
.entry-tab-btn:hover { background:var(--surface-2); }
.entry-tab-btn.active { border-bottom-color:var(--accent); background:var(--surface); }
.entry-tab-date { font-size:.82rem; font-weight:700; color:var(--ink); white-space:nowrap; }
.entry-tab-school { font-size:.68rem; color:var(--ink-2); }
.entry-tab-panel { display:none; }
.entry-tab-panel.active { display:block; }

/* Result badges */
.result-badge {
  font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em;
  padding:.2rem .55rem; border-radius:3px; white-space:nowrap;
}
.result-adopted { background:#e3f3e9; color:#21724a; }
.result-pending { background:#fdf1d8; color:#8a6400; }
.result-tabled  { background:#fbe4e2; color:#9a2c20; }
.result-info    { background:var(--badge-bg); color:var(--badge-text); }

/* Timeline entry card */
.timeline-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:0 1px 4px rgba(46,40,64,.06); overflow:hidden; margin-bottom:var(--sp-3); }
.timeline-body { padding:.85rem 1.1rem 1rem; display:flex; flex-direction:column; gap:.85rem; }

/* Language split view */
.lang-split { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
@media (max-width:600px) { .lang-split { grid-template-columns:1fr; } }

.tl-summary-label {
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:var(--brand); margin-bottom:.25rem;
}
.tl-summary { font-size:.875rem; line-height:1.6; color:var(--ink); margin:0; }

/* Collapsible sections (shared) */
.collapsible-toggle {
  display:flex; align-items:center; justify-content:space-between;
  width:100%; cursor:pointer; user-select:none; font-family:inherit;
  background:none; border:none; padding:.3rem .75rem; text-align:left;
  min-height:44px;
}
.toggle-left { display:flex; align-items:center; gap:.5rem; }
.toggle-chevron { font-size:.65rem; transition:transform .18s; display:inline-block; color:inherit; opacity:.7; }
.collapsible-open .toggle-chevron { transform:rotate(90deg); }
.toggle-count { font-size:.68rem; opacity:.75; font-weight:400; text-transform:none; letter-spacing:0; }
.collapsible-preview {
  padding:.4rem .75rem .5rem; font-size:.82rem; line-height:1.5; color:var(--ink-2);
  position:relative; max-height:6.5rem; overflow:hidden; cursor:pointer; user-select:none; white-space:pre-line;
}
.collapsible-preview::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2.5rem;
  background:linear-gradient(transparent, var(--surface)); pointer-events:none;
}
.collapsible-open .collapsible-preview { display:none; }
.collapsible-body { display:none; }
.collapsible-open .collapsible-body { display:block; }

/* Changes sections */
.changes-section { border-radius:var(--r-sm); overflow:hidden; }
.changes-label { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.changes-added   { border:1px solid #d8b860; }
.changes-removed { border:1px solid #d88a80; }
.changes-added   .collapsible-toggle  { background:#fdf6e3; color:#7a5a00; border-bottom:1px solid transparent; }
.changes-removed .collapsible-toggle  { background:#fbeceb; color:#9a2c20; border-bottom:1px solid transparent; }
.changes-added.collapsible-open   .collapsible-toggle { border-bottom-color:#d8b860; }
.changes-removed.collapsible-open .collapsible-toggle { border-bottom-color:#d88a80; }
.changes-added   .collapsible-preview { background:#fdf6e3; color:#7a5a00; }
.changes-removed .collapsible-preview { background:#fbeceb; color:#9a2c20; }
.changes-added   .collapsible-preview::after { background:linear-gradient(transparent, #fdf6e3); }
.changes-removed .collapsible-preview::after { background:linear-gradient(transparent, #fbeceb); }

.changes-list { list-style:none; margin:0; padding:.5rem .75rem; }
.changes-list li { font-size:.83rem; line-height:1.55; padding:.4rem 0 .4rem 1.1rem; position:relative; border-bottom:1px solid rgba(30,26,46,.06); }
.changes-list li:last-child { border-bottom:none; }
.changes-added   .changes-list li::before { content:'+'; position:absolute; left:0; color:#a87d00; font-weight:700; }
.changes-removed .changes-list li::before { content:'\2212'; position:absolute; left:0; color:#b3261e; font-weight:700; }
.changes-added   .changes-list li { color:#6b4c00; }
.changes-removed .changes-list li { color:#9a2c20; }

/* Current status card */
.status-card {
  border-radius:var(--r-md); padding:.9rem 1.1rem; margin-bottom:var(--sp-4);
  display:flex; flex-direction:column; gap:.65rem;
  border:2px solid transparent;
}
.status-card__top { display:flex; align-items:center; gap:var(--sp-4); }
.status-card.status-adopted  { background:#edf7ed; border-color:#4caf50; }
.status-card.status-tabled   { background:#fdf5dc; border-color:#c8960a; }
.status-card.status-rejected { background:#fdecea; border-color:#e53935; }
.status-card.status-pending  { background:#fdf5dc; border-color:#c8960a; }
.status-card.status-unknown  { background:var(--surface-2); border-color:var(--line); }
.status-icon { font-size:1.4rem; flex-shrink:0; }
.status-body { flex:1; min-width:0; }
.status-result { font-size:1rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--ink); }
.status-meta { font-size:.78rem; color:var(--ink-2); margin-top:.15rem; }
.status-btn-row { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }

/* Discussion / references */
.discussion-section { background:var(--surface-open); border:1px solid var(--line); border-radius:var(--r-sm); padding:.65rem .9rem; }
.discussion-label { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brand); margin-bottom:.5rem; }
.entry-links { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; margin-top:.5rem; }
.meeting-notes-link, .redline-download {
  font-size:.78rem; font-weight:600; color:var(--ink-2);
  text-decoration:none; display:inline-flex; align-items:center; gap:.25rem;
  border:1px solid var(--line); border-radius:4px;
  padding:.2rem .55rem; background:var(--surface);
  transition:border-color .15s, color .15s;
}
.meeting-notes-link:hover, .redline-download:hover { border-color:var(--accent); color:var(--brand); }
.tabled-notice {
  background:#fff8e0; border-left:3px solid #c8960a; color:#6b4c00;
  padding:.35rem .6rem; border-radius:3px; font-weight:600; margin-bottom:.4rem;
}

/* Vote */
.vote-section { background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-sm); padding:.55rem .9rem; display:flex; align-items:center; gap:var(--sp-4); flex-wrap:wrap; }
.vote-label { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brand); }
.vote-tally { font-size:.92rem; font-weight:700; color:var(--ink); }
.vote-names { font-size:.78rem; color:var(--ink-2); }
.vote-for     { color:#21724a; }
.vote-against { color:#9a2c20; }

/* Compliance assessment */
.compliance-box { border-radius:var(--r-sm); overflow:hidden; border:1px solid #c4b5fd; }
.compliance-header {
  display:flex; align-items:center; gap:.65rem; flex-wrap:wrap;
  padding:.3rem .75rem; background:#f5f3ff; border-bottom:1px solid transparent;
  cursor:pointer; user-select:none; min-height:44px;
}
.compliance-box.collapsible-open .compliance-header { border-bottom-color:#c4b5fd; }
.compliance-badge { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#5b21b6; }
.compliance-classification { font-size:.72rem; font-weight:700; padding:.15rem .5rem; border-radius:3px; }
.classification-required      { background:#dcfce7; color:#166534; }
.classification-permitted     { background:#dbeafe; color:#1e40af; }
.classification-discretionary { background:#e0e7ff; color:#3730a3; }
.classification-mixed         { background:#fef3c7; color:#92400e; }
.compliance-body { padding:.6rem .75rem; background:#fdfcff; }
.compliance-analysis { font-size:.83rem; line-height:1.55; color:var(--ink); margin:0 0 .35rem; }
.compliance-elements { display:flex; flex-direction:column; gap:.5rem; margin-bottom:.4rem; }
.compliance-element { border:1px solid #e9d5ff; border-radius:5px; overflow:hidden; font-size:.78rem; }
.compliance-element-header { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; padding:.3rem .6rem; background:#f5f3ff; }
.compliance-element-name { font-weight:600; color:var(--ink); flex:1; min-width:0; }
.compliance-element-body { padding:.35rem .6rem; display:flex; flex-direction:column; gap:.2rem; }
.compliance-element-row { display:flex; gap:.4rem; line-height:1.45; }
.compliance-element-label { flex:0 0 7rem; font-weight:600; color:var(--ink-2); font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; padding-top:.05rem; }
.compliance-element-value { flex:1; color:var(--ink); }
.litigation-active { color:#b45309; font-weight:600; }
.compliance-disclaimer { font-size:.7rem; color:var(--ink-3); font-style:italic; margin:0 0 .5rem; }
.compliance-disclaimer + .compliance-disclaimer { margin:.5rem 0 0; }

#error-msg { text-align:center; padding:3rem; color:var(--bad); }

@media (prefers-reduced-motion: reduce){
  * { transition:none !important; }
}
