/* Legislation section. Loaded after site.css.
   Layout D of Nick's "Legislation tab options": a white page, serif headings, a tile map of the
   states, and for each state or county three doors with level chips and a filter drawer.
   Contrast: ink #111111, secondary #404040 (10.4:1) and muted #525252 (7.8:1) on white; white on
   the #555555 tile is 7.5:1. Every level is written as a word, so colour is never the only cue. */

/* An element the script hides stays hidden, whatever display its class gives it (a "Show more"
   button once everything is shown, the closed filter drawer). */
[hidden]{display:none !important}
:root{
  --lvl-federal-bg:#e4ecfa; --lvl-federal-line:#1f4e9c;
  --lvl-state-bg:#fbefd0;   --lvl-state-line:#8a5a00;
  --lvl-county-bg:#e0f2e4;  --lvl-county-line:#1f6b34;
  --pass:#0e5f2c; --fail:#9a1c1c;
  --ink:#111111; --ink2:#262626; --sec:#404040; --line:#d9d9d9; --tile2:#555555;
  --serif:Georgia,"Times New Roman",Times,serif;
}
body.leg-page{background:#ffffff}
.leg-page footer.site-footer{max-width:1240px;padding-left:20px;padding-right:20px}
.leg-page .top{padding-inline:max(24px, calc((100% - 1200px) / 2))}
main{max-width:1240px;margin:0 auto;padding:40px 20px 48px;position:relative}
.leg-page h1{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;color:var(--ink);margin:0}
h2{font-size:20px;letter-spacing:-.02em;margin:0 0 12px}
h3{font-size:15.5px;margin:18px 0 8px}
#page-title:focus, .results:focus, .sec[tabindex="-1"]:focus{outline:none;box-shadow:none !important}
/* The live region that says "Loading…" sits in the top padding, so it never moves the page. */
.status{position:absolute;top:10px;left:20px;right:20px;margin:0;font-size:13px;line-height:20px;color:var(--text-muted)}

/* ---- labels and fields (sentence case, as in the wireframes) ---- */
label,.filters label,.field label,legend{display:block;font-size:13px;font-weight:500;color:var(--sec);margin:0 0 8px;text-transform:none;letter-spacing:0}
fieldset{border:0;padding:0;margin:0 0 10px;min-width:0}
.row{display:flex;gap:8px;align-items:flex-end}
.row.wrap{flex-wrap:wrap;align-items:flex-end}
.row .grow{flex:1 1 240px}
input[type="search"],select{
  font:inherit;font-size:15px;min-height:var(--min-target);padding:0 12px;border:1px solid var(--ink);
  background:var(--surface-1);color:var(--text-primary);width:100%;max-width:100%;border-radius:0;
}
select{padding-right:8px}
.field{display:flex;flex-direction:column;min-width:0;flex:1 1 180px;max-width:100%}
.field.grow{flex:1 1 280px}
.check,.filters label.check,.field label.check{display:inline-flex;align-items:center;gap:10px;min-height:var(--min-target);font-size:15px;color:var(--text-primary);font-weight:400;margin:0}
.check input{width:20px;height:20px;margin:0;accent-color:var(--ink)}
.btn,button.btn,a.btn{border-color:var(--ink);color:var(--ink);font-size:14px;letter-spacing:0;font-weight:500;padding:0 16px}

/* ---- the head of a page: breadcrumb, title, a line about it ---- */
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;font-size:14px;line-height:20px;color:var(--sec)}
.crumbs li{display:inline-flex;align-items:center;gap:10px;min-height:var(--min-target)}
.crumbs li + li::before{content:"/";content:"/" / "";color:var(--text-muted)}
.crumbs a{color:var(--sec);text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:var(--min-target);min-width:var(--min-target)}
.page-head{margin:0 0 28px}
.page-head h1{font-size:40px;line-height:1.15;margin:6px 0 12px;max-width:32ch;overflow-wrap:anywhere}
.lede{font-size:16px;line-height:1.55;color:var(--sec);max-width:70ch;margin:0}

/* ---- the search box (the map, every state and county, the search page) ---- */
.leg-search label{margin-bottom:8px}
.search-row{display:flex}
.leg-search input[type="search"]{flex:1 1 auto;min-width:0;min-height:52px;padding:0 16px}
.leg-search .btn.go{min-height:52px;background:var(--ink);border-color:var(--ink);color:#ffffff;font-weight:600;padding:0 18px}
.leg-search .btn.go:hover{text-decoration:underline;text-underline-offset:3px}
.door-body > .leg-search, .page-head + .leg-search{max-width:560px;margin:0 0 24px}

/* ---- the map of states ---- */
.map-page{display:grid;grid-template-columns:392px 676px;column-gap:72px;align-items:start;margin:24px 0 0}
.map-intro{display:flex;flex-direction:column;gap:26px;min-width:0}
.map-intro .eyebrow{margin:0;letter-spacing:.14em;font-weight:600}
.map-intro h1{font-size:50px;line-height:55px}
.map-intro .intro{font-size:16px;line-height:26px;color:var(--ink2);margin:0}
.usmap{display:grid;grid-template-columns:repeat(11,56px);gap:6px}
.usgrid{display:none}
.gap{width:56px;height:56px}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:56px;height:56px;
  border:1px solid var(--ink);background:#ffffff;color:var(--ink);text-decoration:none}
.tile .code{font-size:15px;line-height:18px;font-weight:700;letter-spacing:.02em}
.tile .bars{display:flex;gap:3px}
.tile .bars span{display:block;width:9px;height:4px;border:1px solid currentColor}
.tile .bars span.on{background:currentColor}
.tile.lv2{background:var(--tile2);color:#ffffff}
.tile.lv3{background:var(--ink);color:#ffffff}
a.tile:hover{outline:2px solid var(--ink);outline-offset:2px}
.tile.sample{width:40px;height:40px;gap:4px;flex:none}
.tile.sample .code{font-size:12px;line-height:14px}
.tile.sample .bars{gap:2px}
.tile.sample .bars span{width:7px;height:3px}
.legend h2{font-family:inherit;font-size:13px;line-height:18px;font-weight:700;letter-spacing:0;margin:0 0 12px}
.legend li{display:flex;align-items:center;gap:14px;margin:0 0 12px;font-size:14px;line-height:20px;color:var(--ink2)}
.legend .key{display:flex;align-items:center;gap:2px;margin:4px 0 0;font-size:13px;line-height:19px;color:var(--sec)}
.legend .key .bars{display:flex;gap:3px;padding:0 10px;flex:none}
.legend .key .bars span{display:block;width:9px;height:4px;background:var(--ink)}
.terr{font-size:14px;line-height:21px;color:var(--sec);margin:18px 0 0;max-width:676px}
.terr a{color:var(--sec);text-decoration:underline;text-underline-offset:3px}

/* ---- a state or county: head, facts, doors ---- */
.place-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:24px 32px;margin:0 0 28px}
.ph-title{display:flex;flex-direction:column;gap:10px;min-width:0}
.place-head h1{font-size:60px;line-height:64px;overflow-wrap:anywhere}
.place-head .leg-search{width:420px;max-width:100%}
.county-facts{margin:-6px 0 28px;font-size:15px;line-height:22px;color:var(--ink2)}
.county-facts p{margin:0 0 6px;max-width:100ch}
.county-facts a{text-decoration:underline;text-underline-offset:3px}
.pdoors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 28px}
.pdoor{display:flex;flex-direction:column;gap:6px;min-height:112px;padding:20px 24px;border:1px solid var(--ink);background:#ffffff;color:var(--ink);text-decoration:none}
.pdoor .dt{font-family:var(--serif);font-size:25px;line-height:30px;letter-spacing:-.005em}
.pdoor .dd{font-size:14px;line-height:20px;color:var(--sec)}
.pdoor[aria-current]{background:var(--ink);color:#ffffff}
.pdoor[aria-current] .dd{color:#e6e6e6}
.pdoor:hover .dt{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}

/* ---- chips, the filter drawer, the result count ---- */
.controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;padding:0 0 16px;border-bottom:1px solid var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;min-height:var(--min-target);padding:0 16px;border:1px solid var(--ink);background:#ffffff;color:var(--ink);font-size:14px;line-height:20px;text-decoration:none}
.chip:hover{text-decoration:underline;text-underline-offset:3px}
.chip[aria-current]{background:var(--ink);color:#ffffff;font-weight:600}
.chip.muted{border-style:dashed;border-color:var(--text-muted);color:var(--sec)}
.chip.muted[aria-current]{background:var(--sec);border-color:var(--sec);color:#ffffff}
.more-btn{display:inline-flex;align-items:center;gap:10px;min-height:var(--min-target);padding:0 16px;border:1px solid var(--ink);background:#ffffff;
  color:var(--ink);font:inherit;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}
.more-btn[aria-expanded="true"]{background:var(--ink);color:#ffffff;font-weight:600}
.chev{display:block;width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.more-btn[aria-expanded="true"] .chev{transform:translateY(2px) rotate(-135deg)}
.drawer{padding:24px;border:1px solid var(--ink);border-top:0;background:#fafafa}
.drawer-form .fields{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end}
.drawer-form .field{flex:0 1 240px}
.drawer-form .field.narrow{flex-basis:180px}
.drawer-form .field.mid{flex-basis:220px}
.drawer-form .field.show{flex:0 1 auto;margin:0}
.drawer-form .radios{display:flex;gap:20px}
.drawer-form .actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px}
.drawer-form .apply{background:var(--ink);border-color:var(--ink);color:#ffffff;font-weight:600;padding:0 24px}
.drawer-form .hint{margin:0;font-size:14px;color:var(--sec)}
.drawer-form .src-link{margin:0 0 0 auto;font-size:14px}
.drawer-form .src-link a{color:var(--sec);text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:var(--min-target)}
.county-pick{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.county-pick label{margin:0}
.county-pick .row{align-items:center}
.county-pick select{width:260px}
.results{font-family:inherit;font-size:14px;line-height:20px;font-weight:400;letter-spacing:0;color:var(--sec);margin:0;padding:16px 0 4px}
.on-record{font-size:14px;line-height:20px;color:var(--sec);margin:0 0 8px;max-width:100ch}
.door-body .note{margin:8px 0}
.door-body .note a{text-decoration:underline;text-underline-offset:3px}

/* ---- door: How they voted ---- */
.vlist{margin:0}
.vrow{display:grid;grid-template-columns:110px minmax(0,1fr) 150px 116px;column-gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}
.vr-level,.vr-result,.vr-date{font-size:15px;line-height:22px;padding-top:11px}
.vr-level{font-weight:700;color:var(--ink)}
.vr-result.pass{color:var(--pass)}
.vr-result.fail{color:var(--fail)}
.vr-date{color:var(--sec);text-align:right;white-space:nowrap}
.vr-main{min-width:0}
.vr-main h3{margin:0 0 3px;font-size:17px;line-height:23px;font-weight:700;letter-spacing:0}
.vr-main h3 a{display:inline-flex;align-items:center;min-height:var(--min-target);color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.vr-meta{margin:0;font-size:14px;line-height:20px;color:var(--sec);overflow-wrap:anywhere}
.vr-meta a{color:var(--sec);text-decoration:underline;text-underline-offset:3px}
.show-more{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding-top:8px}
.show-more .count{margin:0;font-size:14px;line-height:20px;color:var(--sec)}
.show-more .btn{padding:0 18px}
.show-more .btn:disabled{cursor:progress}

/* ---- door: Who represents me ---- */
.rep-group .group-head,.day-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin:0;padding:28px 0 8px;border-bottom:1px solid var(--ink);
  font-family:var(--serif);font-weight:400;font-size:24px;line-height:30px;letter-spacing:0;color:var(--ink)}
.gcount{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:20px;color:var(--sec)}
.prow{display:grid;grid-template-columns:260px 130px 190px minmax(0,1fr) auto;column-gap:16px;align-items:center;min-height:56px;padding:6px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:22px}
.pr-name a{font-size:16px;font-weight:700;color:var(--ink)}
.pr-contact{color:var(--sec);overflow-wrap:anywhere;min-width:0}
.pr-name a,.pr-contact a,.pr-rec a{display:inline-flex;align-items:center;min-height:var(--min-target);min-width:var(--min-target);text-decoration:underline;text-underline-offset:3px}
.pr-contact a{color:var(--sec)}
.more-list .show-more{padding-top:10px}

/* ---- door: What's coming up ---- */
.day{margin:0}
.urow{display:grid;grid-template-columns:120px 100px minmax(0,1fr) auto;column-gap:16px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.ur-time{font-size:15px;line-height:22px;font-weight:600;color:var(--ink)}
.ur-level{font-size:15px;line-height:22px;font-weight:700;color:var(--ink)}
.ur-main{min-width:0}
.ur-what{margin:0 0 4px;font-size:17px;line-height:24px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.ur-what a{display:inline-flex;align-items:center;min-height:var(--min-target);text-decoration:underline;text-underline-offset:3px}
.ur-where{margin:0;font-size:14px;line-height:20px;color:var(--sec);overflow-wrap:anywhere}
.ur-src a{display:inline-flex;align-items:flex-start;min-height:var(--min-target);font-size:14px;color:var(--sec);text-decoration:underline;text-underline-offset:3px}
.held{margin:32px 0 0}
.held h2{font-family:var(--serif);font-weight:400;font-size:24px;line-height:30px;letter-spacing:0;padding:0 0 8px;border-bottom:1px solid var(--ink);margin:0}

/* ---- the line at the foot of a page: freshness and sources ---- */
.leg-foot{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px;margin:40px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:13px;line-height:20px;color:var(--sec)}
.leg-foot a{color:var(--sec);text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:var(--min-target);min-width:var(--min-target)}
.leg-foot .sep{color:var(--text-muted)}

/* ---- level badges and status words (record pages) ---- */
.lvl{
  display:inline-block;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 8px;border:1px solid;line-height:1.3;color:var(--text-primary);vertical-align:middle;
}
.lvl-federal{background:var(--lvl-federal-bg);border-color:var(--lvl-federal-line)}
.lvl-state{background:var(--lvl-state-bg);border-color:var(--lvl-state-line)}
.lvl-county{background:var(--lvl-county-bg);border-color:var(--lvl-county-line)}
.lvl-geo{background:var(--surface-1);border-color:var(--text-secondary)}
.st{font-weight:650}
.st-ok{color:var(--pass)}
.st-stale,.st-error{color:var(--fail)}
.st-partial{color:var(--text-primary)}
.st-not_configured{color:var(--text-muted)}
.warn{color:var(--fail)}
.pass{color:var(--pass)}
.fail{color:var(--fail)}
.pos{font-weight:650}
.pos-Y{color:var(--pass)}
.pos-N{color:var(--fail)}
.pos-X,.pos-P,.pos-A,.pos-R,.pos-O{color:var(--text-muted)}
.unk{color:var(--text-muted)}

/* pointer targets: every link that is not part of a sentence is at least 44 x 44 CSS px (WCAG 2.5.5) */
ul.people a, ul.bills > li > a, .vote h3 a, .bill h3 a, .links a, .facts dd a, .tbl a, .meets a{
  display:inline-flex; align-items:center; min-height:var(--min-target); min-width:var(--min-target); vertical-align:middle;
}

/* ---- sections and lists (record pages and the national lists) ---- */
.sec{margin:32px 0 0;padding-top:0}
.sec > h2{font-family:var(--serif);font-weight:400;font-size:24px;line-height:30px;letter-spacing:0;margin:0 0 12px;padding:0 0 8px;border-bottom:1px solid var(--ink)}
ul.plain{list-style:none;margin:0;padding:0}
ul.people li{padding:6px 0;font-size:14.5px;line-height:1.45}
ul.people li{border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;min-height:var(--min-target)}
ul.people li:last-child{border-bottom:0}
ul.people .meta{overflow-wrap:anywhere}
.meta{color:var(--text-muted);font-size:13px}
.links{font-size:14px;margin:10px 0 0}
.links a,.vt a,.fresh a,.facts a,.tbl a,ul.people a,.note a,.sec p a,.err a,.meets a{text-decoration:underline;text-underline-offset:3px}
.note{font-size:14px;line-height:1.5;color:var(--sec);margin:0 0 14px;max-width:80ch;overflow-wrap:anywhere}
.count{font-size:13px;color:var(--text-muted);margin:10px 0}
.sum{font-size:14.5px;margin:0 0 14px}
.hint{font-size:13px;color:var(--text-muted);margin:6px 0 0;max-width:70ch}

/* vote, bill and schedule rows on record pages */
ul.votes li.vote,ul.bills li.bill,ul.meets li{padding:14px 0;border-bottom:1px solid var(--line)}
ul.meets li{font-size:14px}
.vote-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--text-muted);margin-bottom:6px}
.vote-head .body{font-weight:650;color:var(--text-secondary)}
.vote h3,.bill h3{margin:0 0 4px;font-size:16px;line-height:1.35}
.vote h3 a,.bill h3 a{text-decoration:underline;text-underline-offset:3px}
.vt{margin:0 0 4px;font-size:14px;color:var(--text-secondary);line-height:1.45;overflow-wrap:anywhere}
.res,.mypos{margin:4px 0 0;font-size:14px}
.tally b{font-variant-numeric:tabular-nums}
.t-yes b{color:var(--pass)} .t-no b{color:var(--fail)} .t-other b{color:var(--text-muted)}
.fresh{font-size:13px;color:var(--text-muted);margin:14px 0 0}

/* facts */
.facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0 0 8px;font-size:14.5px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:14px 0}
.facts div{display:contents}
.facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:650;color:var(--text-muted);align-self:baseline}
.facts dd{align-self:baseline;margin:0;min-width:0;overflow-wrap:anywhere}
.lede2{font-size:15px;color:var(--text-secondary);max-width:70ch}

/* tables */
.tbl{border-collapse:collapse;width:100%;font-size:14px;margin:8px 0 18px}
.tbl caption{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:650;color:var(--text-muted);padding:0 0 8px}
.tbl th,.tbl td{text-align:left;vertical-align:baseline;padding:9px 12px 9px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.tbl thead th{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:650}
.tbl tbody th{font-weight:600}
.positions,.byparty{max-width:760px}
.byparty{margin-bottom:18px}
.byparty td{font-variant-numeric:tabular-nums}

/* bill actions */
ul.acts li{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-secondary)}
ul.acts time{font-variant-numeric:tabular-nums;color:var(--text-primary);font-weight:600}

/* filters on record pages and the national lists */
.filters{margin:0 0 16px;display:grid;gap:12px}
.filters .row .btn{min-height:var(--min-target)}
.filters .field{flex:0 1 260px}
.filters .field.grow{flex:1 1 320px;max-width:640px}
.err{border-left:3px solid var(--fail);padding:6px 0 6px 14px}
.err h2{margin:0 0 6px}
.stale-all{border-left:3px solid var(--fail);padding:8px 0 8px 14px;margin:0 0 18px;font-size:14.5px;line-height:1.5;max-width:78ch;color:var(--text-primary)}
.stale-all a{text-decoration:underline;text-underline-offset:3px}

/* ---- narrower screens ---- */
@media (max-width:1180px){
  /* the map moves under the introduction; it still fits at tablet widths */
  .map-page{grid-template-columns:minmax(0,1fr);row-gap:36px}
  .map-intro{max-width:676px}
  .prow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name rec" "party seat" "contact contact";column-gap:12px;row-gap:0;padding:8px 0}
  .pr-name{grid-area:name}
  .pr-rec{grid-area:rec}
  .pr-party{grid-area:party;color:var(--sec);font-size:14px}
  .pr-seat{grid-area:seat;color:var(--sec);font-size:14px;text-align:right}
  .pr-contact{grid-area:contact;font-size:14px}
}
@media (max-width:760px){
  main{padding:28px 16px 32px}
  .status{left:16px;right:16px;top:4px}
  .page-head h1{font-size:30px;line-height:36px}
  .map-intro h1{font-size:34px;line-height:40px}
  .map-intro{gap:22px}
  .map-intro .intro{font-size:15px;line-height:24px}
  /* 11 columns would make the tiles smaller than 44 px: phones get the states A to Z instead */
  .usmap{display:none}
  .usgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
  .usgrid .tile{width:auto;height:64px}
  .place-head{gap:18px;margin-bottom:22px}
  .place-head h1{font-size:40px;line-height:44px}
  .place-head .leg-search{width:100%}
  .pdoors{grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:22px}
  .pdoor{min-height:0;padding:14px 16px}
  .pdoor .dt{font-size:20px;line-height:26px}
  .pdoor .dd{display:none}
  .controls{flex-direction:column;align-items:stretch;gap:12px;padding-bottom:14px}
  .more-btn{justify-content:space-between}
  .drawer{padding:18px 16px}
  .drawer-form .field{flex:1 1 100%}
  .drawer-form .src-link{margin:0}
  .county-pick{flex-direction:column;align-items:stretch}
  .county-pick select{width:100%}
  .vrow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"level date" "main main" "result result";row-gap:6px;padding:16px 0}
  .vr-level{grid-area:level;font-size:12px;line-height:16px;letter-spacing:.1em;text-transform:uppercase;padding-top:0}
  .vr-date{grid-area:date;font-size:13px;line-height:18px;padding-top:0}
  .vr-main{grid-area:main}
  .vr-result{grid-area:result;font-size:14px;line-height:20px;font-weight:600;padding-top:0}
  .vr-main h3{font-size:16px;line-height:22px}
  .show-more{flex-direction:column;align-items:stretch}
  .show-more .btn{justify-content:center}
  .urow{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"time level" "main main" "src src";row-gap:4px}
  .ur-time{grid-area:time}
  .ur-level{grid-area:level;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
  .ur-main{grid-area:main}
  .ur-src{grid-area:src}
  .rep-group .group-head,.day-head,.sec > h2,.held h2{font-size:21px;line-height:27px}
  .facts{grid-template-columns:1fr;gap:2px 0}
  .facts dt{padding-top:10px}
  .tbl thead{position:absolute;left:-9999px}
  .tbl tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
  .tbl th,.tbl td{display:block;border:0;padding:2px 0}
  .tbl tbody th{padding-top:4px}
  .positions td{display:inline;padding:0}
  .positions td + td::before{content:" · ";color:var(--text-muted)}
  .byparty thead{position:static}
  .byparty tr{display:table-row;padding:0;border:0}
  .byparty th,.byparty td{display:table-cell;border-bottom:1px solid var(--line);padding:6px 10px 6px 0}
  .leg-foot{margin-top:28px}
}
@media (max-width:420px){
  .row{flex-wrap:wrap}
  .row > *{flex:1 1 100%}
  .row .btn{width:100%;justify-content:center}
  .search-row .btn.go{padding:0 12px}
}
