/* =====================================================================
   BY COUNCIL — Sangguniang Bayan ng lakewood
   Extends portal.css. Institutional register: the archive of a legislature,
   not a dashboard. Deep green masthead + gold rule (the LGU's own brand),
   editorial typography, restrained colour. Colour is reserved for meaning —
   gold marks the current council, red marks an unacted referral. Nothing
   else competes.
   ===================================================================== */
.bc-body{background:#f4f6f4;color:var(--ink)}

/* ---- Masthead ---- */
.bc-mast{background:linear-gradient(165deg,#1f3e23 0%,#2c5530 55%,#24472a 100%);color:#fff;border-bottom:4px solid var(--sp-gold)}
.bc-mast-in{max-width:1180px;margin:0 auto;padding:26px 22px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.bc-eyebrow{display:block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#b9d0bd;font-weight:700}
.bc-mast h1{font-size:2rem;letter-spacing:-.015em;margin-top:6px}
.bc-mast-sub{margin:6px 0 0;color:#cfe0d2;font-size:.94rem;max-width:52ch}
.bc-back{color:#dbe9dd;border:1px solid rgba(255,255,255,.28);padding:7px 14px;border-radius:8px;font-size:.84rem;white-space:nowrap}
.bc-back:hover{background:rgba(255,255,255,.12);text-decoration:none}

/* ---- Term rail: the primary navigation axis ---- */
.bc-rail{max-width:1180px;margin:0 auto;padding:0 22px 22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.bc-rail-item{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#fff;transition:background .15s,border-color .15s}
.bc-rail-item:hover{background:rgba(255,255,255,.14);text-decoration:none}
.bc-rail-item.is-on{background:#fff;color:var(--sp-green-d);border-color:var(--sp-gold);box-shadow:0 6px 20px rgba(0,0,0,.22)}
.bc-rail-n{font-size:2.1rem;font-weight:800;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.bc-rail-n sup{font-size:.44em;font-weight:700;top:-.7em;margin-left:1px}
.bc-rail-meta{display:flex;flex-direction:column;min-width:0}
.bc-rail-name{font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-rail-dates{font-size:.76rem;opacity:.82;font-variant-numeric:tabular-nums}
.bc-now{position:absolute;top:-8px;right:10px;background:var(--sp-gold);color:#2a1f00;font-size:.62rem;font-weight:800;
  letter-spacing:.09em;text-transform:uppercase;padding:3px 8px;border-radius:999px}

/* ---- Hero ---- */
.bc-hero{background:#fff;border-bottom:1px solid var(--line)}
.bc-hero-in{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;padding-top:26px;padding-bottom:22px}
.bc-hero h2{font-size:1.9rem;letter-spacing:-.02em}
.bc-term-dates{margin:4px 0 0;color:#3f5a44;font-size:.95rem;font-variant-numeric:tabular-nums}
.bc-po{margin:10px 0 0;font-size:.92rem}
.bc-po span{color:#5a6b5c;margin-right:6px}
.bc-stats{display:flex;gap:26px;flex-wrap:wrap;margin:0}
.bc-stats div{text-align:right}
.bc-stats dt{font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:#5a6b5c;font-weight:700}
.bc-stats dd{margin:2px 0 0;font-size:1.55rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* ---- Tabs ---- */
.bc-tabs{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.bc-tabs-in{display:flex;gap:2px;overflow-x:auto;padding-top:0;padding-bottom:0}
.bc-tab{padding:14px 16px;font-size:.9rem;font-weight:600;color:#405142;border-bottom:3px solid transparent;white-space:nowrap}
.bc-tab:hover{color:var(--sp-green);text-decoration:none;background:#f7faf7}
.bc-tab.is-on{color:var(--sp-green-d);border-bottom-color:var(--sp-gold)}

/* ---- Layout ---- */
.bc-wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.bc-main{padding-top:24px;padding-bottom:56px}
.bc-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-bottom:18px}
.bc-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px;box-shadow:var(--shadow-sm);margin-bottom:18px}
.bc-card h3{font-size:1.05rem;margin-bottom:4px}
.bc-card h4{font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;color:#5a6b5c;margin:18px 0 8px}
.bc-note{color:#405142;font-size:.88rem;margin:0 0 14px;max-width:80ch}
.bc-dim{color:#5a6b5c}
.bc-empty{color:#5a6b5c;font-size:.9rem;background:#f7faf7;border:1px dashed var(--line);border-radius:8px;padding:14px 16px;max-width:80ch}
.bc-crumb{display:inline-block;margin-bottom:14px;font-size:.86rem}
.bc-hot{color:var(--danger)}

/* Failure state: never a blank screen. */
.bc-fail{background:var(--danger-bg);border:1px solid var(--danger);border-radius:12px;padding:22px;margin:26px 0}
.bc-fail h2{font-size:1.1rem;color:var(--danger);margin-bottom:8px}
.bc-fail-hint{color:#5a6b5c;font-size:.88rem;margin-bottom:0}

/* ---- Tables ---- */
.bc-scroll{overflow-x:auto}
.bc-scroll-y{max-height:340px;overflow-y:auto}
.bc-table{width:100%;border-collapse:collapse;font-size:.9rem}
.bc-table th{text-align:left;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:#5a6b5c;
  border-bottom:2px solid var(--line);padding:9px 10px;white-space:nowrap}
.bc-table td{padding:10px;border-bottom:1px solid #eef1ee;vertical-align:top}
.bc-table tbody tr:hover{background:#f7faf7}
.bc-table .n{text-align:right;font-variant-numeric:tabular-nums}
.bc-table-sm{font-size:.85rem}
.bc-nowrap{white-space:nowrap}
.bc-src{font-size:.78rem}
.bc-derived{background:#fffdf3}
.bc-kv{width:100%;border-collapse:collapse;font-size:.9rem}
.bc-kv th{text-align:left;font-weight:600;color:#5a6b5c;padding:7px 12px 7px 0;white-space:nowrap;vertical-align:top;width:1%}
.bc-kv td{padding:7px 0;border-bottom:1px solid #f1f4f1}

.bc-tag{display:inline-block;font-size:.64rem;letter-spacing:.07em;text-transform:uppercase;font-weight:700;
  background:#eef3ee;color:#40614a;padding:2px 7px;border-radius:999px;vertical-align:middle}
.bc-tag-warn{background:var(--warn-bg);color:var(--warn)}

/* ---- Bars ---- */
.bc-bars{list-style:none;margin:0;padding:0}
.bc-bars li{display:grid;grid-template-columns:120px 1fr 48px;align-items:center;gap:10px;padding:4px 0;font-size:.84rem}
.bc-bar-lbl{color:#405142;font-variant-numeric:tabular-nums}
.bc-bar-lbl em{font-style:normal;color:#7a8a7c;font-size:.9em}
.bc-bar{background:#eef1ee;border-radius:999px;height:9px;overflow:hidden}
.bc-bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--sp-green-2),var(--sp-green));border-radius:999px}
.bc-bar-n{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}

/* ---- Roster cards: name plate, large portrait, seat and dates ----
   The portrait is the point of this view, so it gets the space: a 3:4 frame at
   roughly 300px wide on desktop. object-fit:cover with a top-biased position
   keeps faces in frame across portraits that were cropped inconsistently at
   source. The whole card is one link — a big target rather than a small one. */
.bc-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.bc-mcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:14px;overflow:hidden;color:var(--ink);box-shadow:var(--shadow-sm);
  transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}
.bc-mcard:hover,.bc-mcard:focus-visible{text-decoration:none;transform:translateY(-3px);
  box-shadow:0 12px 34px rgba(16,32,24,.18);border-color:var(--sp-gold)}
.bc-mcard:focus-visible{outline:3px solid var(--sp-gold);outline-offset:2px}

/* Portrait leads; the name sits under it and is the loudest thing on the card. */
.bc-mcard-photo{position:relative;display:block;aspect-ratio:4/5;background:#e9eee9;overflow:hidden}
.bc-mcard-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;display:block;
  transition:transform .35s ease}
.bc-mcard:hover .bc-mcard-photo img{transform:scale(1.04)}
.bc-mcard-ini{position:absolute;inset:0;display:grid;place-items:center;font-size:3.4rem;font-weight:800;
  color:#9fb3a2;background:#e9eee9;letter-spacing:.04em}
.bc-mcard-ribbon{position:absolute;left:0;bottom:0;right:0;
  background:linear-gradient(180deg,rgba(31,62,35,0),rgba(31,62,35,.9));
  color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  padding:26px 10px 9px;text-align:center}

.bc-mcard-body{display:block;padding:15px 16px 17px;text-align:center}
/* The name: the card's headline. Tight leading and a hyphen-safe wrap so a long
   Filipino compound name breaks cleanly instead of overflowing the card. */
.bc-mcard-name{display:block;font-size:1.12rem;line-height:1.22;font-weight:800;letter-spacing:-.012em;
  color:var(--sp-green-d);overflow-wrap:break-word;hyphens:auto}
.bc-mcard-pos{display:block;font-size:.82rem;font-weight:700;color:var(--sp-green-2);margin-top:5px;
  letter-spacing:.02em}

/* Chairmanships — the thing a reader scans a roster for. */
.bc-mcard-chairs{display:block;margin-top:11px;padding-top:11px;border-top:1px solid #eef1ee;text-align:left}
.bc-mcard-chairs-lbl{display:block;font-size:.63rem;font-weight:800;letter-spacing:.13em;
  text-transform:uppercase;color:var(--sp-gold);margin-bottom:5px;text-align:center}
.bc-mcard-chair{display:block;font-size:.79rem;line-height:1.34;color:var(--ink);font-weight:600;
  padding:3px 0 3px 14px;position:relative}
.bc-mcard-chair::before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;
  border-radius:50%;background:var(--sp-gold)}
.bc-mcard-chairs-lbl2{margin-top:8px;padding-top:8px;border-top:1px dotted #e3e9e3}
/* Vice-chairmanships read as clearly secondary to chairmanships: same structure,
   quieter marker and label colour, so the hierarchy is legible at a glance. */
.bc-mcard-vchairs{margin-top:9px;padding-top:9px}
.bc-mcard-vchairs .bc-mcard-chairs-lbl{color:var(--sp-green-2)}
.bc-mcard-vchairs .bc-mcard-chair{font-weight:500;color:#3f5a44;font-size:.76rem}
.bc-mcard-vchairs .bc-mcard-chair::before{background:var(--sp-green-2);width:4px;height:4px}
.bc-mcard-chair .bc-tag{margin-left:6px;vertical-align:middle}
.bc-mcard-chairs-none .bc-mcard-chair{color:#7a8a7c;font-weight:500;font-size:.75rem;padding-left:0}
.bc-mcard-chairs-none .bc-mcard-chair::before{display:none}
.bc-mcard-chairs-none{text-align:center}

.bc-mcard-term{display:block;font-size:.73rem;color:#6b7a6d;margin-top:11px;font-variant-numeric:tabular-nums}
.bc-mcard-stats{display:flex;justify-content:center;gap:14px;margin-top:9px;padding-top:9px;
  border-top:1px solid #eef1ee;font-size:.68rem;color:#6b7a6d}
.bc-mcard-stats strong{display:block;font-size:1rem;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---- Arrange mode (staff only) ----
   Deliberately loud while active: re-ordering writes to a published official
   roster, so it should never be possible to be in this mode by accident or to
   leave it unsaved without noticing. */
.bc-arrange{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:10px;padding:10px 14px;margin-bottom:14px}
.bc-arrange button{font:inherit;font-size:.83rem;font-weight:700;border-radius:8px;padding:7px 15px;cursor:pointer;
  border:1px solid var(--line);background:#f7faf7;color:var(--ink)}
.bc-arrange button:hover{background:#eef3ee}
.bc-arrange-btn[aria-pressed="true"]{background:var(--sp-green);border-color:var(--sp-green);color:#fff}
.bc-arrange-save{background:var(--sp-gold)!important;border-color:var(--sp-gold)!important;color:#2a1f00!important}
.bc-arrange-save:disabled{opacity:.6;cursor:progress}
.bc-arrange-help{font-size:.79rem;color:#5a6b5c}
.bc-arrange-help kbd{font:inherit;font-size:.74rem;background:#eef1ee;border:1px solid var(--line);
  border-bottom-width:2px;border-radius:4px;padding:0 5px}
.bc-arrange-status{font-size:.8rem;color:#5a6b5c;margin-left:auto}
.bc-arrange-status.is-ok{color:var(--ok);font-weight:700}
.bc-arrange-status.is-err{color:var(--danger);font-weight:700}

.bc-roster.is-arranging .bc-mcard{cursor:grab;border-style:dashed;border-color:var(--sp-gold)}
.bc-roster.is-arranging .bc-mcard:hover{transform:none}
.bc-roster.is-arranging .bc-mcard:active{cursor:grabbing}
.bc-roster.is-arranging .bc-mcard-photo img{transition:none}
.bc-roster.is-arranging .bc-mcard.is-dragging{opacity:.45;transform:scale(.97)}
/* Ordinal badge so the sequence being edited is legible while dragging. */
.bc-roster.is-arranging{counter-reset:bcseat}
.bc-roster.is-arranging .bc-mcard{counter-increment:bcseat;position:relative}
.bc-roster.is-arranging .bc-mcard::before{content:counter(bcseat);position:absolute;z-index:2;top:8px;left:8px;
  min-width:26px;height:26px;border-radius:50%;background:var(--sp-gold);color:#2a1f00;font-size:.78rem;
  font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.28)}

/* Detail portrait: large, and clicks through to the full-size file. */
.bc-portrait-wrap{flex:none;width:190px}
.bc-portrait{display:block;width:190px;aspect-ratio:3/4;border-radius:10px;overflow:hidden;
  border:1px solid var(--line);background:#e9eee9}
.bc-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.bc-portrait:hover{border-color:var(--sp-gold)}
.bc-portrait-empty{display:grid;place-items:center;color:#9fb3a2;font-size:2.6rem;font-weight:800}
.bc-portrait{position:relative}
.bc-portrait-zoomhint{position:absolute;left:0;right:0;bottom:0;background:rgba(31,62,35,.86);color:#fff;
  font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:6px 4px;
  text-align:center;opacity:0;transition:opacity .15s}
.bc-portrait:hover .bc-portrait-zoomhint,.bc-portrait:focus-visible .bc-portrait-zoomhint{opacity:1}

/* Lightbox: the portrait must get BIGGER on click, never smaller. Sized off the
   viewport so it fills the screen on a phone and still reads large on desktop. */
.bc-lightbox{position:fixed;inset:0;z-index:9999;display:none;place-items:center;
  background:rgba(10,22,12,.92);padding:24px}
.bc-lightbox.is-open{display:grid}
.bc-lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-height:100%}
.bc-lightbox img{max-width:min(92vw,720px);max-height:82vh;width:auto;height:auto;border-radius:12px;
  box-shadow:0 24px 70px rgba(0,0,0,.6);background:#fff}
.bc-lightbox figcaption{color:#fff;font-size:1.05rem;font-weight:700;letter-spacing:.01em;text-align:center}
.bc-lightbox-x{position:absolute;top:16px;right:20px;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;font-size:1.7rem;
  line-height:1;cursor:pointer}
.bc-lightbox-x:hover{background:rgba(255,255,255,.22)}

/* Replace-photo control (staff only). Doubles as a drop zone. */
.bc-photo-up{margin-top:10px;border:1px dashed var(--line);border-radius:10px;padding:10px;text-align:center;
  transition:border-color .15s,background .15s}
.bc-photo-up.is-drop{border-color:var(--sp-gold);background:#fffdf3}
.bc-photo-btn{display:inline-block;cursor:pointer;background:var(--sp-green);color:#fff;font-size:.8rem;
  font-weight:700;border-radius:8px;padding:7px 14px}
.bc-photo-btn:hover{background:var(--sp-green-d)}
.bc-photo-hint{margin:7px 0 0;font-size:.7rem;color:#6b7a6d;line-height:1.4}
.bc-photo-status{margin:6px 0 0;font-size:.74rem;color:#5a6b5c;min-height:1em}
.bc-photo-status.is-ok{color:var(--ok);font-weight:700}
.bc-photo-status.is-err{color:var(--danger);font-weight:700}

@media (max-width:640px){ .bc-portrait-wrap,.bc-portrait{width:100%;max-width:260px} }

/* ---- People ---- */
.bc-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:14px}
.bc-person-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;background:#fff;
  border:1px solid var(--line);border-radius:12px;padding:20px 14px;color:var(--ink);transition:box-shadow .15s,transform .15s}
.bc-person-card:hover{text-decoration:none;box-shadow:var(--shadow);transform:translateY(-2px)}
.bc-ava{width:72px;height:72px;border-radius:50%;object-fit:cover;display:grid;place-items:center;flex:none;
  background:var(--sp-green);color:#fff;font-weight:800;font-size:1.35rem;letter-spacing:.02em}
.bc-ava-lg{width:92px;height:92px;font-size:1.7rem}
.bc-person-name{font-weight:700;font-size:.93rem;line-height:1.3}
.bc-person-role{font-size:.78rem;color:var(--sp-green-2);font-weight:600}
.bc-person-stats{font-size:.72rem;color:#6b7a6d;font-variant-numeric:tabular-nums}
.bc-person-head{display:flex;align-items:center;gap:18px;margin-bottom:8px}
.bc-list{list-style:none;margin:0;padding:0;font-size:.88rem}
.bc-list li{padding:7px 0;border-bottom:1px solid #f1f4f1}

/* ---- Filters ---- */
.bc-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:14px 16px;margin-bottom:16px}
.bc-filters label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;color:#5a6b5c;font-weight:700}
.bc-filters select,.bc-filters input{padding:8px 11px;border:1px solid var(--line);border-radius:8px;font-size:.9rem;
  font-family:inherit;text-transform:none;letter-spacing:0;color:var(--ink);background:#fff}
.bc-filters .bc-grow{flex:1;min-width:200px}
.bc-filters button{padding:9px 20px;border:0;border-radius:8px;background:var(--sp-green);color:#fff;font-weight:700;
  font-size:.88rem;cursor:pointer}
.bc-filters button:hover{background:var(--sp-green-d)}
.bc-pager{display:flex;gap:16px;align-items:center;justify-content:center;margin-top:18px;font-size:.88rem}

/* ---- Achievements ---- */
.bc-crit h3{display:flex;align-items:center;gap:11px}
.bc-crit-n{display:grid;place-items:center;min-width:34px;height:34px;border-radius:8px;background:var(--sp-green);
  color:#fff;font-weight:800;font-size:.82rem;letter-spacing:.02em;padding:0 8px}

.bc-foot{border-top:1px solid var(--line);background:#fff;padding:22px 0;margin-top:10px}
.bc-foot p{margin:0;color:#5a6b5c;font-size:.83rem}

@media (max-width:640px){
  .bc-mast h1{font-size:1.5rem}
  .bc-hero h2{font-size:1.4rem}
  .bc-stats{gap:18px}
  .bc-stats div{text-align:left}
  .bc-stats dd{font-size:1.25rem}
  .bc-bars li{grid-template-columns:96px 1fr 40px}
}
@media print{
  .bc-rail,.bc-tabs,.bc-back,.bc-filters,.bc-pager{display:none}
  .bc-mast{background:none;color:#000;border-bottom:2px solid #000}
  .bc-card{break-inside:avoid;box-shadow:none}
}

/* Councilor Portal entry point, shown on the current council only. */
.bc-po-portal{margin:10px 0 0;font-size:.88rem}
.bc-po-portal a{font-weight:700}
.bc-po-portal .bc-dim{display:block;font-size:.74rem;margin-top:2px}

/* ---- Per-member legislative record (bridged from the councilor portal) ----
   Reads as one instrument panel, not seven loose cards: a single tinted band
   with tabular figures so the numbers can be compared down the row. */
.bc-rec{margin:16px 0 18px;padding:16px 18px;background:#f7faf7;border:1px solid var(--line);border-radius:12px}
.bc-rec h4{margin:0 0 12px}
.bc-rec-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:10px}
.bc-rec-stats div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 8px;text-align:center}
.bc-rec-stats span{display:block;font-size:1.5rem;font-weight:800;line-height:1.1;
  font-variant-numeric:tabular-nums;color:var(--sp-green-d)}
.bc-rec-stats em{display:block;font-style:normal;font-size:.64rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:#6b7a6d;margin-top:4px}
.bc-rec-stats .is-hot span{color:var(--danger)}
.bc-rec-stats .is-hot{border-color:var(--danger)}
.bc-rec-extra{margin:11px 0 0;font-size:.82rem;display:flex;flex-wrap:wrap;gap:6px 20px}

/* ---- Session projector banner (current council only) ----
   Live gets the one saturated colour on the page and a pulsing dot; upcoming and
   past stay calm. Status has to be readable before the words are. */
.bc-live{background:#0f2c16;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.bc-live.is-live{background:linear-gradient(100deg,#5b1a6e 0%,#3d1a6e 55%,#241a5e 100%)}
.bc-live-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-top:14px;padding-bottom:14px}
.bc-live-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.66rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:#f3c96b}
.bc-live-dot{width:9px;height:9px;border-radius:50%;background:#ff4d4d;box-shadow:0 0 0 0 rgba(255,77,77,.7);
  animation:bcpulse 1.8s infinite}
@keyframes bcpulse{70%{box-shadow:0 0 0 9px rgba(255,77,77,0)}100%{box-shadow:0 0 0 0 rgba(255,77,77,0)}}
.bc-live-title{margin:5px 0 0;font-size:1.06rem;font-weight:800;letter-spacing:-.01em}
.bc-live-meta{margin:2px 0 0;font-size:.82rem;color:#cfe0d2}
.bc-live-cta{background:var(--sp-gold);color:#2a1f00;font-weight:800;font-size:.88rem;padding:11px 20px;
  border-radius:10px;white-space:nowrap}
.bc-live-cta:hover{background:#e3a93a;text-decoration:none}
@media (prefers-reduced-motion:reduce){.bc-live-dot{animation:none}}

/* ---- Councilor detail: bigger portrait ---- */
.bc-portrait-wrap{width:260px}
.bc-portrait{width:260px}
.bc-person-head{align-items:flex-start;gap:26px}
.bc-person-head h3{font-size:1.65rem;letter-spacing:-.02em;color:var(--sp-green-d)}

/* ---- Committee standing: the three tiers side by side ----
   A councilor's weight is read from WHICH tier they hold, so the tiers are
   columns to be compared, not one merged list to be scanned. */
.bc-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:6px}
.bc-rolecol{background:#f7faf7;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.bc-rolecol h4{display:flex;align-items:center;gap:9px;margin:0;font-size:.74rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--sp-green-d)}
.bc-rolecount{margin-left:auto;background:var(--sp-green);color:#fff;font-size:.76rem;font-weight:800;
  border-radius:999px;padding:1px 10px;min-width:26px;text-align:center;letter-spacing:0}
.bc-rolecol-chair{background:#fffdf3;border-color:var(--sp-gold)}
.bc-rolecol-chair .bc-rolecount{background:var(--sp-gold);color:#2a1f00}
.bc-rolehint{margin:4px 0 9px;font-size:.7rem;color:#7a8a7c}
.bc-rolelist{list-style:none;margin:0;padding:0}
.bc-rolelist li{font-size:.83rem;line-height:1.35;padding:6px 0 6px 14px;position:relative;
  border-top:1px solid #eef1ee;font-weight:600}
.bc-rolelist li:first-child{border-top:none}
.bc-rolelist li::before{content:"";position:absolute;left:2px;top:.92em;width:5px;height:5px;border-radius:50%;
  background:var(--sp-green-2)}
.bc-rolecol-chair .bc-rolelist li::before{background:var(--sp-gold)}
.bc-rolenone{margin:0;font-size:.78rem;color:#9aa89c;font-style:italic}

/* ---- Sponsored measures: edge to edge, big number, big title ---- */
.bc-bills{margin:22px 0 8px}
.bc-billsearch{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.bc-billsearch input{flex:1;min-width:220px;padding:11px 15px;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:.95rem;background:#fff}
.bc-billsearch input:focus{outline:2px solid var(--sp-gold);outline-offset:1px;border-color:var(--sp-gold)}
.bc-billcount{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6b7a6d;
  font-variant-numeric:tabular-nums}
.bc-billrows{list-style:none;margin:0;padding:0}
.bc-billrow{display:flex;align-items:flex-start;gap:16px;padding:14px 6px;border-top:1px solid #eef1ee}
.bc-billrow:first-child{border-top:none}
.bc-billrow:hover{background:#f7faf7}
.bc-billrow[hidden]{display:none}
.bc-billno{flex:none;width:112px;font-size:1.06rem;font-weight:800;color:var(--sp-green-d);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;padding-top:1px}
.bc-billmain{flex:1;min-width:0}
.bc-billtitle{display:block;font-size:1.02rem;line-height:1.35;font-weight:600;color:var(--ink)}
.bc-billtitle:hover{color:var(--sp-green);text-decoration:underline}
.bc-billmeta{display:flex;align-items:center;gap:10px;margin-top:5px;font-size:.76rem}
.bc-billacts{flex:none;display:flex;gap:6px;align-items:center}
.bc-act{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.72rem;font-weight:700;
  color:var(--sp-green-d);background:#eef3ee;border:1px solid var(--line);border-radius:8px;
  padding:6px 10px;cursor:pointer;white-space:nowrap}
.bc-act:hover{background:var(--sp-green);color:#fff;border-color:var(--sp-green);text-decoration:none}
.bc-act b{font-weight:700}
.bc-billempty{margin:14px 2px 2px;color:#5a6b5c;font-size:.9rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

@media (max-width:700px){
  .bc-portrait-wrap,.bc-portrait{width:100%;max-width:300px}
  .bc-billrow{flex-wrap:wrap;gap:8px}
  .bc-billno{width:auto}
  .bc-billacts{width:100%;justify-content:flex-start}
}
.bc-othersrv{margin:12px 0 0;font-size:.8rem;color:#5a6b5c}
.bc-back-portal{background:var(--sp-gold);color:#2a1f00;border-color:var(--sp-gold);font-weight:800}
.bc-back-portal:hover{background:#e3a93a;color:#2a1f00}
