/* Bill modal, the standard way a bill is shown on the public site and in the app (Jeff 2026-10-04): the bill's
   caption, summary and status, the Senate roll call with Sen. Jackson's vote and the roster, and the way out to the
   full bill on legis.ga.gov. Chrome + vote body shared by includes/kims_rc_modal.html (compare pages) and
   static/bill_modal.js (every other page). Colors fall back when a page has no public palette. */
.rc-overlay { position: fixed; inset: 0; background: rgba(20,12,35,0.6); display: flex; align-items: center; justify-content: center; z-index: 1500; padding: 1rem; }
.rc-overlay[hidden] { display: none; }
.rc-modal { position: relative; background: #fff; width: 100%; max-width: 720px; max-height: 92vh; overflow: auto; border-radius: 12px; padding: 1.5rem 1.5rem 1.25rem; box-shadow: 0 12px 40px rgba(0,0,0,0.3); }
.rc-close { position: absolute; top: 0.5rem; right: 0.75rem; background: none; border: 0; font-size: 1.8rem; line-height: 1; color: var(--text-muted, var(--color-text-muted, #6b6b7b)); cursor: pointer; }
.rc-modal h3 { color: var(--purple, var(--color-brand, #3d2260)); font-weight: 900; font-size: 1.3rem; margin: 0 2rem 0.25rem 0; }
.rc-caption { color: var(--text-muted, var(--color-text-muted, #6b6b7b)); font-size: 0.92rem; margin: 0 0 0.75rem; }
.rc-caption a.rc-source-link { color: var(--purple, var(--color-brand, #3d2260)); font-weight: 600; text-decoration: none; }
.rc-caption a.rc-source-link:hover { text-decoration: underline; }
.rc-text a.rc-bill-link { color: var(--purple, var(--color-brand, #3d2260)); font-weight: 600; text-decoration: none; }
.rc-text a.rc-bill-link:hover { text-decoration: underline; }
.rc-note { font-size: 0.82rem; color: var(--text-muted, var(--color-text-muted, #6b6b7b)); margin: 0 0 0.75rem; }
.rc-empty { font-weight: 600; color: var(--purple, var(--color-brand, #3d2260)); }
.rc-vote { border: 1px solid #e6e1ee; border-radius: 10px; margin-bottom: 0.6rem; padding: 0.5rem 0.75rem; }
.rc-vote-head { display: flex; flex-wrap: wrap; gap: 0.4rem 0.9rem; align-items: center; font-size: 0.9rem; }
.rc-vote-date { font-weight: 700; color: var(--purple, var(--color-brand, #3d2260)); }
.rc-tally { font-weight: 600; }
.rc-passed { color: var(--green, var(--color-success, #1e8b3e)); } .rc-failed { color: var(--red, var(--color-danger, #c1272d)); }
.rc-kim-row { text-align: center; margin: 0.45rem 0 0.2rem; }
.rc-kim { display: inline-block; font-weight: 800; padding: 0.2rem 0.75rem; border-radius: 999px; font-size: 0.86rem; }
.rc-yea { background: rgba(30,139,62,0.14); color: var(--green, var(--color-success, #1e8b3e)); }
.rc-nay { background: rgba(193,39,45,0.14); color: var(--red, var(--color-danger, #c1272d)); }
.rc-none { background: rgba(0,0,0,0.06); color: var(--text-muted, var(--color-text-muted, #6b6b7b)); }
.rc-group { margin-top: 0.6rem; }
.rc-group-head { font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted, var(--color-text-muted, #6b6b7b)); margin-bottom: 0.25rem; }
.rc-names { display: flex; flex-wrap: wrap; gap: 0.25rem 0.6rem; font-size: 0.82rem; }
.rc-name.rc-me { font-weight: 800; color: var(--purple, var(--color-brand, #3d2260)); text-decoration: underline; }
.rc-foot { margin: 1rem 0 0; }
.rc-foot-center { text-align: center; }
.rc-law { margin: 0 0 0.6rem; }
.rc-modal a.rc-bill-btn, .rc-foot-actions a.rc-bill-btn {
    display: inline-block; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.45rem 1rem; border-radius: 999px; border: 1.5px solid var(--purple, var(--color-brand, #3d2260));
    background: var(--purple, var(--color-brand, #3d2260)); color: #fff; text-decoration: none; line-height: 1.2;
}
.rc-modal a.rc-bill-btn:hover, .rc-foot-actions a.rc-bill-btn:hover { background: var(--purple-deep, var(--color-brand-dark, #2a1744)); }
.rc-summary { font-size: 0.92rem; line-height: 1.5; margin: 0 0 0.75rem; }
.rc-status { font-size: 0.82rem; font-weight: 700; margin: 0 0 0.75rem; }
.rc-foot .rc-bill-btn + .rc-bill-btn { margin-left: 0.5rem; }
@media (max-width: 600px) {
    .rc-overlay { padding: 0; align-items: stretch; }
    .rc-modal { max-width: none; max-height: none; border-radius: 0; }
}

/* Quote player and evidence card (includes/kims_quote_player.html, includes/kims_rc_modal.html), moved here from
   public.css 2026-10-08 so standalone pages (skj_landing.html) share them: the audio or video, the keyword chips and
   the current hit, the quoted words, Previous / Next, the plain text block and the card image */
.rc-audio { width: 100%; margin: 0.25rem 0 0.5rem; }
.rc-video { display: block; width: 100%; max-height: 60vh; background: #000; border-radius: 8px; }
.rc-kw-bar { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin-top: 0.5rem; }
.rc-kw-bar .rc-group-head { width: 100%; margin-bottom: 0.1rem; }
.rc-kw { font-size: 0.8rem; font-weight: 700; padding: 0.25rem 0.7rem; border-radius: 999px; border: 1.5px solid var(--purple, var(--color-brand, #3d2260)); background: #fff; color: var(--purple, var(--color-brand, #3d2260)); cursor: pointer; line-height: 1.2; }
.rc-kw.active, .rc-kw:hover { background: var(--purple, var(--color-brand, #3d2260)); color: #fff; }
a.rc-kw { display: inline-block; text-decoration: none; }
.rc-kw-nav { display: flex; gap: 0.4rem; margin-top: 0.4rem; }
.rc-kw-next { margin-top: 0; }
.rc-hit { margin-top: 0.6rem; }
.rc-hit mark { background: rgba(251,201,38,0.45); color: inherit; padding: 0 0.1em; }
.rc-quote { margin: 0 0 0.75rem; padding: 0.6rem 0.9rem; border-left: 4px solid var(--gold, #fbc926); background: rgba(251,201,38,0.1); font-size: 1.05rem; line-height: 1.5; color: var(--text-dark, var(--color-text, #1a1a2e)); font-style: italic; }
.rc-step { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid #e6e1ee; }
.rc-step .rc-kw { min-height: 44px; min-width: 7rem; padding: 0.55rem 1.1rem; font-size: 0.9rem; }
.rc-step-count { margin: 0; white-space: nowrap; }
.rc-text { margin: 0 0 0.7rem; line-height: 1.55; }
.rc-image { display: block; width: 100%; height: auto; margin: 0 0 0.75rem; border: 1px solid #e6e1ee; border-radius: 8px; }

/* Restart the clip from its cue (the player pauses at the clip's end and then plays on; 2026-10-10) */
.rc-restart { display: inline-flex; align-items: center; gap: 0.3rem; margin: 0 0.5rem 0 0; padding: 0.2rem 0.6rem; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 0.82rem; cursor: pointer; vertical-align: middle; }
.rc-restart:hover { background: rgba(0, 0, 0, 0.05); }

/* Share button in the card's action row (2026-10-10) */
.rc-foot-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rc-foot-actions .rc-bill-btn { margin-left: 0; }
button.rc-share { border: 2px solid var(--purple, var(--color-brand, #3d2260)); background: #fff; color: var(--purple, var(--color-brand, #3d2260)); cursor: pointer; font: inherit; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.85rem; padding: 0.55rem 1rem; border-radius: 999px; }
button.rc-share:hover { background: var(--purple, var(--color-brand, #3d2260)); color: #fff; }

/* Slide gallery in a card (2026-10-10): cover first, Previous / Next, dots, swipe on a phone, tap for full size */
.rc-gallery { margin: 0 0 0.75rem; }
.rc-gallery-frame { display: block; background: #000; border-radius: 8px; overflow: hidden; }
.rc-gallery-img { display: block; width: 100%; height: auto; max-height: 62vh; object-fit: contain; }
.rc-gallery-cap { margin: 0.4rem 0 0.3rem; }
.rc-gallery-nav { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.rc-gallery-btn { border: 1.5px solid var(--purple, var(--color-brand, #3d2260)); background: #fff; color: var(--purple, var(--color-brand, #3d2260)); border-radius: 999px; width: 2.2rem; height: 2.2rem; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.rc-gallery-btn:hover { background: var(--purple, var(--color-brand, #3d2260)); color: #fff; }
.rc-gallery-dots { display: flex; gap: 0.4rem; flex-wrap: wrap; justify-content: center; }
.rc-gallery-dot { width: 0.6rem; height: 0.6rem; padding: 0; border: 0; border-radius: 50%; background: #d6cfe3; cursor: pointer; }
.rc-gallery-dot.is-on { background: var(--purple, var(--color-brand, #3d2260)); }

/* Card sources: the name only, small, at most two rows on a phone; the action row centered, buttons one height (Jeff 2026-10-10) */
.rc-kw-bar .rc-kw { font-size: 0.72rem; padding: 0.25rem 0.6rem; }
.rc-foot-actions { justify-content: center; align-items: stretch; }
.rc-foot-actions a.rc-bill-btn, .rc-foot-actions button.rc-share { display: inline-flex; align-items: center; justify-content: center; min-height: 2.4rem; padding-top: 0.3rem; padding-bottom: 0.3rem; line-height: 1.15; text-align: center; }

/* Final vote by party (the one bill view, 2026-10-10): the member line, two donuts, the legend, the seats line. The
   Yea and Nay slices take the party colors from App Settings (inline from the JSON); Did Not Vote is the gray. */
.rc-modal { --vote-none: #9a94a6; }
.rc-chamber { margin-top: 0.9rem; text-align: center; }
.rc-member { margin: 0.3rem 0 0.1rem; font-weight: 700; color: var(--purple, var(--color-brand, #3d2260)); }
.rc-member .vote-badge { margin-left: 0.4rem; }
.rc-modal .vote-badge { display: inline-block; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; padding: 0.2rem 0.55rem; border-radius: 999px; text-transform: uppercase; }
.rc-modal .vote-nay { background: rgba(193,39,45,0.14); color: var(--red, #c1272d); }
.rc-modal .vote-yea { background: rgba(30,139,62,0.14); color: var(--green, #1e8b3e); }
.rc-modal .vote-skip { background: rgba(0,0,0,0.07); color: var(--gray, #6b6b7b); }
.rc-pies { display: flex; gap: 1.25rem; flex-wrap: wrap; justify-content: center; margin-top: 0.4rem; }
.rc-pie { text-align: center; font-size: 0.82rem; }
.rc-pie-title { font-weight: 700; color: var(--purple, var(--color-brand, #3d2260)); margin-top: 0.15rem; }
.rc-pie-num { font-size: 18px; font-weight: 800; fill: var(--text-dark, #1f1a2e); }
.rc-slice-none { stroke: var(--vote-none); fill: var(--vote-none); }
.rc-legend { display: flex; justify-content: center; gap: 0.6rem; flex-wrap: wrap; color: var(--text-muted, #6b6b7b); margin-top: 0.2rem; }
.rc-legend-item { white-space: nowrap; }
.rc-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; vertical-align: -1px; }
