/* ==========================================================================
   composite-patch.css — page-scoped additions for site/index.html only.
   site.css is the frozen design system and is not edited; everything here is
   an affordance the static mockup had no need for (the mock was a still of one
   selected section), plus the hidden-panel plumbing for the live split view.
   No new colours, sizes or type: only state, cursor and visibility.
   ========================================================================== */

/* Sections are clickable (ruling 1: click a section, the source opens at right). */
.sec[data-n]{cursor:pointer;}
.sec[data-n]:focus-visible{outline:2px solid var(--blue-d);outline-offset:2px;}
.sec[data-n]:hover{background:rgba(55,55,55,.026);}
.sec[data-n]:hover .secno{color:var(--ink-2);}
.sec.sel[data-n]:hover{background:rgba(65,196,252,.085);}

/* "Source →" is the affordance label: it belongs to the row you are on. */
.sec .openat{visibility:hidden;}
.sec.sel .openat,.sec[data-n]:hover .openat{visibility:visible;}

/* Selection chips: site.css colours the IL chip on the selected row; the other
   three state chips need the same treatment now that any row can be selected. */
.sec.sel .chip.ca{color:#fff;background:var(--ca);border-color:var(--ca);}
.sec.sel .chip.ny{color:#fff;background:var(--ny);border-color:var(--ny);}
.sec.sel .chip.ct{color:#fff;background:var(--ct);border-color:var(--ct);}

/* One source panel per section; all but the open one are hidden. */
.panel[hidden]{display:none;}
.right > .panel{position:sticky;top:40px;}

/* ==========================================================================
   THE SOURCE CARD (desktop only) — Jay, 2026-08-01:
   "a static thing that does not scroll ... less than half of the page in width
   ... clearly like a box that fills up with leg text as needed ... font size
   smaller too."

   So the right side stops being a full-height scrolling column. site.css line
   119-120 (`.right{height:100vh;overflow-y:auto}`) is FROZEN and is overridden
   here, never edited: the column becomes plain page ground, and the panel
   inside it becomes a bounded box — panel fill, hairline rule, the 2px radius
   the chips already use — that ends where its text ends and rides along on
   position:sticky as the reader scrolls the bill.

   Everything is inside the min-width query so mobile.css keeps the <900px
   bottom sheet exactly as approved. The sheet KEEPS its internal scroll: 55vh
   is not enough room to sit still, which is the whole reason the desktop card
   can drop the scrollbar and the sheet cannot.
   ========================================================================== */
@media (min-width: 900px){
  /* ~64/36 — the card is comfortably under half the page. */
  .split{grid-template-columns:9fr 5fr;}
  .right{position:static;height:auto;align-self:stretch;overflow:visible;
    background:none;border-left:none;padding:20px 44px 60px 30px;}
  .right > .panel{top:26px;background:var(--panel);border:1px solid var(--rule);
    border-radius:2px;padding:20px 22px 20px;}

  /* Two steps smaller inside the card (statute 14.5px -> 12px, metadata to
     match): a card is a reference, not a reading column, and the WHY note and
     the first-in-the-nation line have to clear the fold with it (Jay, 08-01). */
  .right .p-eyebrow{font-size:8.5px;letter-spacing:.14em;}
  .right .p-head{margin-bottom:10px;}
  .right .p-title{font-size:16px;margin-bottom:5px;}
  .right .p-cite{font-size:10.5px;}
  .right .p-rule{margin:13px 0;}
  .right .src{font-size:12px;line-height:1.7;}
  .right .p-more{font-size:10.5px;margin-top:10px;padding-top:9px;}
  .right .note{margin-top:13px;padding-top:10px;}
  .right .note h3{font-size:8.5px;letter-spacing:.13em;margin-bottom:5px;}
  .right .note p{font-size:11px;line-height:1.56;}
}

/* The continuation affordance under a trimmed excerpt: where the card stops, the
   official text carries on. Duplicated from billpage-patch.css on purpose — the
   composite page never loads that file, and site.css is frozen. */
.p-more{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);
  font-size:11.5px;letter-spacing:.02em;}
.p-more a{color:var(--blue-ink);text-decoration:none;
  border-bottom:1px solid rgba(30,127,169,.35);padding-bottom:1px;}

/* The scope footnote reuses the .contd rail, so its label sits on the rail grid. */
.contd .secno{text-transform:uppercase;}
.entries .row .nowrap{white-space:nowrap;}
