/* Michigan Plate Readers — site styles.
   A technical reference with a sidebar: compact system sans for prose, monospace for figures that must line up
   (hashes, counts, table numbers), one slate-blue accent for links and the current page, grayscale everything else,
   1px rules, 2px radii, no fills that pretend to be paper. Tier labels: RECORD = accent, GAP = amber, QUESTION = ink,
   ANALYSIS = muted; the word carries the meaning, the colour is secondary.
   Type scale (15.5px base): 12.4 label / 12.6 meta / 13.6 table+footer / 15.5 body / 17.4 lede+h3 / 20.3 h2 / 27 h1 (23 on phones).
   Data-viz series --s1..--s8, --seq-* and --gray-series are the validated chart palette and are read by charts.js. */

:root {
  color-scheme: light;
  --page: #ffffff; --surface: #f5f5f3; --ink: #171717; --ink-2: #454543; --muted: #6a6a66;
  --grid: #d9d9d5; --axis: #b4b4af; --border: #c9c9c4;
  --accent: #2f5d8a; --link: var(--accent);
  --s1: #2a78d6; --s2: #eb6834; --s3: #1baf7a; --s4: #eda100; --s5: #e87ba4; --s6: #008300; --s7: #4a3aa7; --s8: #e34948;
  --gray-series: #c3c2b7;
  --tier-record: #2f5d8a; --tier-gap: #b45309; --tier-question: #171717; --tier-analysis: #6a6a66; --tier-reported: #5b4b8a;
  --state-published: #3b7a57; --state-fee: #8a6d00; --state-fee-fill: #fef9c3; --state-review: #c2410c; --state-denied: #b91c1c;
  --seq-250: #86b6ef; --seq-450: #2a78d6; --seq-650: #104281;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, Menlo, "Liberation Mono", monospace;
  --measure: 68ch;     /* prose */
  --content: 60rem;    /* tables, figures, rules: wider than prose, narrower than the column */
  --side: 15rem;       /* sidebar width on desktop */
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --page: #121314; --surface: #1b1c1e; --ink: #e7e6e2; --ink-2: #b5b4af; --muted: #8d8c87;
    --grid: #34363a; --axis: #4a4b4e; --border: #3f4145;
    --accent: #8db4de;
    --s1: #3987e5; --s2: #d95926; --s3: #199e70; --s4: #c98500; --s5: #d55181; --s6: #008300; --s7: #9085e9; --s8: #e66767;
    --gray-series: #383835;
    --tier-record: #8db4de; --tier-gap: #f0a860; --tier-question: #e7e6e2; --tier-analysis: #8d8c87; --tier-reported: #b7a6e0;
    --state-published: #7fc49a; --state-fee: #facc15; --state-fee-fill: #2e2708; --state-review: #fb923c; --state-denied: #f87171;
  }
}

/* base */
* { box-sizing: border-box; }
html { font-size: 15.5px; -webkit-text-size-adjust: 100%; background: var(--page); }
body { margin: 0; background: var(--page); color: var(--ink); font: 1rem/1.55 var(--sans); }
a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .14em; text-decoration-color: color-mix(in srgb, currentColor 55%, transparent); }
a:hover { color: var(--ink); text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
img, svg { max-width: 100%; }
.wrap { max-width: 88rem; margin: 0 auto; padding: 0 1rem; }
.skip { position: absolute; left: -999px; top: 0; z-index: 100; }
.skip:focus { left: 1rem; top: 1rem; background: var(--page); color: var(--ink); padding: .4rem .6rem; border: 1px solid var(--ink); }

/* masthead: top bar below 64em, sidebar above (see the screen media block) */
.masthead { background: var(--surface); border-bottom: 1px solid var(--grid); }
.masthead .wrap { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.5rem; padding-top: .7rem; padding-bottom: .55rem; }
.brand { font-weight: 700; font-size: 1.0625rem; line-height: 1.3; color: var(--ink); text-decoration: none; }
.masthead nav { display: flex; flex-wrap: wrap; gap: .1rem 1.1rem; }
.masthead nav a { color: var(--ink-2); text-decoration: none; padding: .4rem 0; border-bottom: 2px solid transparent; font-size: .9375rem; }
.masthead nav a:hover { color: var(--ink); }
.masthead nav a[aria-current] { color: var(--ink); border-bottom-color: var(--accent); }

/* prose */
main.wrap { padding: 1.5rem 1rem 3rem; }
h1 { font-size: 1.75rem; line-height: 1.2; font-weight: 700; margin: .25rem 0 .6rem; max-width: var(--content); }
h2 { font-size: 1.3125rem; line-height: 1.3; font-weight: 600; margin: 2.6rem 0 .7rem; padding-top: .9rem; border-top: 1px solid var(--grid); max-width: var(--content); }
h3 { font-size: 1.125rem; line-height: 1.35; font-weight: 600; margin: 1.8rem 0 .4rem; max-width: var(--content); }
p, li { max-width: var(--measure); }
p { margin: .7rem 0; }
.lede { font-size: 1.125rem; line-height: 1.5; color: var(--ink-2); max-width: 58ch; margin: 0 0 1.2rem; }
.muted { color: var(--muted); }
.crumbs { color: var(--muted); font-size: .8125rem; margin: 0 0 .2rem; }
.crumbs a { color: inherit; }
code { font-family: var(--mono); font-size: .875em; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; max-width: var(--content); }
.hash { display: block; margin-top: .15rem; font-family: var(--mono); font-size: .8125rem; color: var(--muted); letter-spacing: 0; overflow-wrap: anywhere; }
hr { border: 0; border-top: 1px solid var(--grid); margin: 2rem 0; max-width: var(--content); }

/* tier labels: the word carries the meaning */
.tier {
  display: inline-block;
  font: 600 .8rem/1.5 var(--mono); letter-spacing: .03em; text-transform: uppercase;
  padding: 0 .35rem; margin-right: .4rem; vertical-align: 1px;
  border: 1px solid currentColor; border-radius: 2px;
}
.tier.record { color: var(--tier-record); }
.tier.gap { color: var(--tier-gap); }
.tier.question { color: var(--tier-question); }
.tier.analysis { color: var(--tier-analysis); }
.tier.reported { color: var(--tier-reported); }
.finding { border-left: 2px solid var(--axis); padding: .1rem 0 .1rem 1rem; margin: 1.3rem 0; max-width: var(--content); }
.finding p { margin: .4rem 0; }

/* tables: dense, tabular figures, rules not fills */
table { border-collapse: collapse; width: 100%; max-width: var(--content); font-size: .875rem; line-height: 1.45; margin: .7rem 0 1.5rem; font-variant-numeric: tabular-nums; }
th, td { text-align: left; vertical-align: top; padding: .38rem .6rem .38rem 0; border-bottom: 1px solid var(--grid); }
th:last-child, td:last-child { padding-right: 0; }
th { color: var(--ink-2); font-weight: 600; font-size: .8125rem; }
thead th { border-bottom: 1px solid var(--axis); }
table.kv { max-width: 56rem; }
table.kv th { width: 11rem; font-weight: 500; }
td.num, th.num { text-align: right; font-family: var(--mono); font-size: .8125rem; font-variant-numeric: tabular-nums; }
th.num { font-family: var(--sans); font-size: .8125rem; }
.table-wrap { overflow-x: auto; margin: .7rem 0 1.5rem; max-width: none; }
.table-wrap table { margin: 0; max-width: none; }
.table-wrap > table.sortable { min-width: 56rem; }          /* wide tables scroll on phones instead of squeezing */
.table-wrap td { max-width: 24rem; }
/* where an agency stands (build.py AGENCY_STATES): a pill on each row of the request log, the color key, the home page's counts.
   Fills are opaque, mixed with the page color, so a pill reads the same on a tinted row; every pill's text is at least 4.5:1 on its fill. */
.st-to_file, .st-no_records { --st: var(--muted); }
.st-awaiting { --st: var(--tier-record); }
.st-fee_pending, .st-fee_appeal, .st-appeal { --st: var(--state-fee); }
.st-in_review { --st: var(--state-review); }
.st-published { --st: var(--state-published); }
.st-denied { --st: var(--state-denied); }
.state { display: inline-block; color: var(--st); border: 1px solid var(--st); border-radius: 2px; background: color-mix(in srgb, var(--st) 7%, var(--page));
  padding: 0 .4rem; font-size: .75rem; font-weight: 600; line-height: 1.5; white-space: nowrap; vertical-align: 1px; }
.state.st-fee_pending, .state.st-fee_appeal, .state.st-appeal { background: var(--state-fee-fill); }
.state.st-no_records { background: color-mix(in srgb, var(--st) 10%, var(--page)); }
.state.st-to_file { border-style: dashed; background: none; }
/* the color key: a grid of pill and description pairs, one pair per row on phones, two or three across on wider screens */
.state-key { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: .4rem .5rem; margin: 1.1rem 0 .9rem;
  font-size: .8125rem; line-height: 1.35; color: var(--ink-2); max-width: var(--content); }
.state-key .k { display: contents; }
.state-key .state { justify-self: stretch; text-align: center; scroll-margin-top: 1rem; }
.state-key .state:target { outline: 2px solid var(--st); outline-offset: 1px; }
.state-key .d { padding-right: 1rem; }
@media (min-width: 48em) { .state-key { grid-template-columns: repeat(2, max-content minmax(0, 1fr)); } }
@media (min-width: 75em) { .state-key { grid-template-columns: repeat(3, max-content minmax(0, 1fr)); } }
.state-line { display: flex; flex-wrap: wrap; gap: .45rem .6rem; max-width: var(--content); }
.state-line a.state { font-size: .875rem; padding: .1rem .55rem; text-decoration: none; }
.state-line a.state:hover { color: var(--st); text-decoration: underline; }

/* the request log: one row per request; the Status pill is the row's one color signal */
.reqlog-wrap { margin: .3rem 0 .5rem; }
.table-wrap > table.reqlog { min-width: 0; width: 100%; font-size: .8125rem; line-height: 1.35; font-variant-numeric: tabular-nums; }
.reqlog th, .reqlog td { padding: .3rem .4rem .3rem 0; vertical-align: top; }
.reqlog th { font-size: .75rem; white-space: nowrap; }
.reqlog th:first-child, .reqlog td:first-child { padding-left: .35rem; }
.reqlog th:last-child, .reqlog td:last-child { padding-right: .35rem; padding-left: .3rem; }
.reqlog tbody tr:nth-child(even) td { background: var(--surface); }
.reqlog td.trk { white-space: nowrap; }
.reqlog .part { font-size: .6875rem; color: var(--muted); margin-left: .1rem; }
@media (min-width: 80em) { .reqlog td.dt { white-space: nowrap; } }
.reqlog .state { font-size: .6875rem; padding: 0 .3rem; }
.reqlog td.ag .state { display: none; }
/* below 1200px the Status column is dropped to make room, and the pill sits under the agency's name */
@media (max-width: 74.99em) {
  .reqlog .stc { display: none; }
  .reqlog th.ag, .reqlog td.ag { padding-left: .35rem; }
  .reqlog td.ag .state { display: block; width: fit-content; margin-top: .25rem; }
}
.reqlog td.num, .reqlog th.num { font-family: var(--sans); font-size: inherit; text-align: right; }
.reqlog th.num { font-size: .75rem; }
.reqlog .yn { text-align: center; }
.reqlog td:empty::before { content: "\2014"; color: var(--muted); }
.log-note { margin-top: .2rem; }
/* wide enough for the whole table: the page scrolls it, so the header row can stick to the top of the window */
@media (min-width: 68.75em) {
  .reqlog-wrap { overflow: visible; }
  .reqlog thead th { position: sticky; top: 0; z-index: 2; background: var(--page); box-shadow: inset 0 -1px 0 var(--axis); }
}
/* phones: the table scrolls inside its frame; the agency column, with its pill, stays in view */
@media (max-width: 47.99em) {
  .reqlog td.ag, .reqlog th.ag { position: sticky; left: 0; z-index: 1; background: var(--page); }
  .reqlog tbody tr:nth-child(even) td.ag { background: var(--surface); }
}
#timeline + table td:first-child { white-space: nowrap; padding-right: 1rem; }
#bills-to-extend-the-act ~ table td:nth-child(1), #bills-to-extend-the-act ~ table td:nth-child(4) { white-space: nowrap; }
table.docs td:first-child { max-width: 34rem; }
table.docs td:nth-child(2), table.docs td:nth-child(3), table.docs td:nth-child(4) { white-space: nowrap; }
table.requests td:nth-child(3), table.requests td:nth-child(4) { white-space: nowrap; }   /* date columns only */

/* fact box: the reference card at the top of an agency page */
.factbox { background: var(--surface); border: 1px solid var(--border); border-radius: 2px; padding: .9rem 1rem .3rem; margin: 1rem 0 1.6rem; font-size: .9375rem; max-width: var(--content); }
.factbox dl { display: block; columns: 13rem; column-gap: 1.6rem; margin: 0; }
.factbox dl > div { break-inside: avoid; margin-bottom: .7rem; }
.factbox dt { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); margin-bottom: .1rem; }
.factbox dd { margin: 0; font-variant-numeric: tabular-nums; }

/* stat figures: ruled, not boxed; label, value and note align across the row */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .9rem 1.2rem; margin: 1.2rem 0 1.6rem; max-width: var(--content); }
.stat { border-left: 2px solid var(--axis); padding: .1rem 0 .1rem .75rem; display: grid; grid-template-rows: subgrid; grid-row: span 3; align-content: start; }
.stat .label { font-size: .8125rem; line-height: 1.35; color: var(--ink-2); }
.stat .value { font: 500 1.5rem/1.25 var(--mono); font-variant-numeric: tabular-nums; margin: .15rem 0 .1rem; }
.stat .note { font-size: .8125rem; line-height: 1.4; color: var(--muted); }

/* charts: a ruled block, like the stats */
figure.chart { border: 0; border-top: 1px solid var(--grid); padding: .8rem 0 0; margin: 1.3rem 0 1.7rem; max-width: 52rem; background: none; }
figure.chart figcaption { font-weight: 600; font-size: .9375rem; margin-bottom: .15rem; }
figure.chart .sub { color: var(--ink-2); font-size: .8125rem; margin: 0 0 .6rem; max-width: none; }
figure.chart svg { width: 100%; height: auto; display: block; font: 12px var(--sans); font-variant-numeric: tabular-nums; }
figure.chart .bar:hover, figure.chart .bar:focus { opacity: .8; }
figure.chart .bar:focus-visible { outline: 2px solid var(--accent); }
figure.chart .axis-label, figure.chart .cat-label { fill: var(--ink-2); }
figure.chart .val-label { fill: var(--ink); font-weight: 600; font-family: var(--mono); font-size: 11px; }
figure.chart .grid line { stroke: var(--grid); stroke-width: 1; }
figure.chart .baseline { stroke: var(--axis); stroke-width: 1; }
figure.chart .legend { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .8125rem; color: var(--ink-2); margin: .5rem 0 0; }
figure.chart .legend i { display: inline-block; width: 11px; height: 11px; border-radius: 2px; margin-right: .35rem; vertical-align: -1px; }
figure.chart .tools { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .8125rem; margin-top: .6rem; padding-top: .5rem; border-top: 1px solid var(--grid); }
figure.chart .tools button { background: none; border: 0; padding: 0; color: var(--link); cursor: pointer; font: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 55%, transparent); text-underline-offset: .14em; }
figure.chart .tools button:hover { color: var(--ink); text-decoration-color: currentColor; }
figure.chart .tv { display: none; }
figure.chart.show-table .tv { display: block; }
figure.chart.show-table svg, figure.chart.show-table .legend { display: none; }
figure.chart .tv table { margin: .4rem 0 0; }
.tip {
  position: fixed; pointer-events: none; z-index: 10; display: none;
  background: var(--ink); color: var(--page);
  font-size: .8125rem; line-height: 1.4; font-variant-numeric: tabular-nums;
  padding: .35rem .55rem; border-radius: 2px;
}
.tip b { font-weight: 700; font-family: var(--mono); }

/* map */
#map { height: 32rem; border: 1px solid var(--border); border-radius: 2px; margin: 1rem 0; max-width: var(--content); }
.leaflet-container { background: var(--page) !important; font-family: var(--sans) !important; }
.dark-tiles { filter: invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6); }

/* agency index: a ruled directory; status reads as a line of metadata, not badges */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 0 2.5rem; margin: 1.2rem 0 1.6rem; max-width: var(--content); }
.card { border-top: 1px solid var(--border); padding: .8rem 0 1rem; }
.card h3 { margin: 0 0 .25rem; font-size: 1rem; }
.card p { margin: .3rem 0; font-size: .9375rem; }
.pill { display: inline-block; font-size: .8125rem; line-height: 1.5; padding: 0 .4rem; margin: .1rem 0; border: 1px solid var(--border); border-radius: 2px; color: var(--ink-2); }
.card .pill { display: inline; border: 0; padding: 0; margin: 0; font-size: .8125rem; color: var(--ink-2); }
.card .pill + .pill::before { content: " \00b7 "; color: var(--muted); }
.pill.draft, .card .pill.draft { color: var(--tier-gap); font-weight: 600; border-color: var(--tier-gap); }

/* footer */
.foot { border-top: 1px solid var(--grid); padding: 1.2rem 1rem 2.5rem; font-size: .875rem; line-height: 1.5; color: var(--ink-2); }
.foot p { max-width: 80ch; }
.foot .muted { font-variant-numeric: tabular-nums; }

/* right of reply: preview ribbon, draft banner, review-copy header, agency reply */
.ribbon { background: #6b4e00; color: #fff; font-size: .8125rem; line-height: 1.4; padding: .35rem 1rem; text-align: center; }
.ribbon code { color: inherit; background: transparent; }
.notice { border: 0; border-left: 2px solid var(--tier-gap); background: none; border-radius: 0; padding: .1rem 0 .1rem 1rem; margin: 1rem 0; max-width: var(--measure); font-size: .9375rem; }
.notice.packet { border-left-color: var(--ink-2); }
/* every agency page: where the agency stands, the state pill and one sentence, under the h1 */
.agency-status { margin: -.1rem 0 1.1rem; font-size: .9375rem; line-height: 1.5; color: var(--muted); max-width: var(--measure); }
.agency-status .state { margin-right: .35rem; }
blockquote.reply { border-left: 2px solid var(--axis); margin: 1rem 0; padding: .1rem 0 .1rem 1rem; max-width: var(--content); }
.elsewhere { border-top: 1px solid var(--border); margin-top: 1.2rem; padding-top: .4rem; }
/* a labeled statement the agency did not have in its review draft carries the date it was added */
.added { display: inline-block; font-size: .8125rem; color: var(--muted); font-style: italic; }
/* the review draft's cover page: plain letterhead, the dates, the letter, the label key */
.cover { max-width: var(--measure); }
.letterhead { border-bottom: 1px solid var(--ink-2); padding-bottom: .5rem; margin-bottom: 1.1rem; }
.letterhead .lh-name { font-size: 1.25rem; font-weight: 600; letter-spacing: .01em; }
.letterhead .lh-line { font-size: .875rem; color: var(--ink-2); }
.cover-dates { border: 1px solid var(--ink-2); padding: .1rem .8rem; margin: .9rem 0 1.1rem; }
.cover-date { margin-top: 1.2rem; }
.links-note { font-size: .9375rem; }
/* the download link for the PDF copy of an agency page, under the factbox */
.pdf-button { margin: -.8rem 0 1.6rem; font-size: .9375rem; }
.pdf-button a { display: inline-block; border: 1px solid var(--border); border-radius: 2px; padding: .3rem .75rem; color: var(--ink); text-decoration: none; }
.pdf-button a:hover { border-color: var(--ink-2); background: var(--surface); }
.pdf-button .muted { font-size: .8125rem; }

/* phones: tables that are not already wrapped scroll on their own instead of pushing the page sideways */
@media (max-width: 47.99em) {
  h1 { font-size: 1.5rem; }
  #map { height: 22rem; }
  :not(.table-wrap) > table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table.kv th { width: 7.5rem; }
  table.docs td:first-child:nth-last-child(4) { min-width: 13rem; } table.docs td:first-child:has(.hash) { min-width: 13rem; } table.docs td:has(.hash) ~ td:nth-child(5) { min-width: 11rem; }      /* a document title stays readable; the table scrolls sideways inside its own frame */
  table.docs td:nth-child(2), table.docs td:nth-child(3), table.docs td:nth-child(4) { white-space: normal; }
  code.hash { overflow-wrap: anywhere; }
  figure.chart { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  figure.chart svg { min-width: 34rem; }
}

/* narrow phones: keep the five nav links on one line */
@media (max-width: 27em) {
  .masthead nav { gap: .1rem .7rem; }
  .masthead nav a { font-size: .875rem; }
}

/* desktop: sidebar reference layout */
@media screen and (min-width: 64em) {
  /* Row 1 is the preview ribbon (absent on the public build); the sidebar spans rows 2-3 beside main and the footer. */
  body {
    display: grid;
    grid-template-columns: var(--side) minmax(0, 1fr);
    grid-template-rows: auto 1fr auto;
    align-items: start;
    min-height: 100vh;
  }
  .ribbon { grid-column: 1 / -1; grid-row: 1; }
  .masthead {
    grid-column: 1; grid-row: 2 / 4;
    position: sticky; top: 0; height: 100vh;
    overflow-y: auto; overscroll-behavior: contain;
    border-bottom: 0; border-right: 1px solid var(--grid);
  }
  .masthead .wrap {
    max-width: none; margin: 0; padding: 1.35rem 1rem 1.5rem 1.25rem;
    display: flex; flex-direction: column; align-items: stretch; gap: 1.4rem;
  }
  .brand { font-size: 1.0625rem; }
  .masthead nav { flex-direction: column; gap: 0; margin: 0 -1rem 0 -1.25rem; }
  .masthead nav a {
    display: block;
    padding: .32rem 1rem .32rem calc(1.25rem - 2px);
    border-bottom: 0; border-left: 2px solid transparent;
    font-size: .9375rem; line-height: 1.4;
  }
  .masthead nav a:focus-visible { outline-offset: -2px; }
  .masthead nav a[aria-current] { color: var(--ink); border-left-color: var(--accent); background: var(--page); }
  main.wrap {
    grid-column: 2; grid-row: 2;
    max-width: 76rem; min-width: 0; margin: 0;
    padding: 2.25rem 3rem 4rem;
  }
  .foot {
    grid-column: 2; grid-row: 3; align-self: end;
    width: 100%; max-width: 76rem; margin: 0;
    padding: 1.25rem 3rem 3rem;
  }
  h1 { font-size: 1.75rem; margin-top: 0; }
  .crumbs { margin-bottom: .35rem; }
  #map { height: 36rem; }
  .stats { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
}

@media print {
  @page { margin: 18mm 16mm; @bottom-center { content: counter(page) " of " counter(pages); font: 9pt system-ui, "Segoe UI", sans-serif; } }
  :root, :root:not([data-theme="light"]) {
    color-scheme: light;
    --page: #fff; --surface: #f2f2f0; --ink: #000; --ink-2: #333; --muted: #555; --grid: #ccc; --axis: #999; --border: #bbb;
    --accent: #000; --link: #000;
    --tier-record: #1c5cab; --tier-gap: #8a4000; --tier-question: #000; --tier-analysis: #333; --tier-reported: #3d2f6b;
    --state-published: #2b5e41; --state-fee: #8a6d00; --state-fee-fill: #fef9c3; --state-review: #c2410c; --state-denied: #b91c1c;
  }
  .reqlog thead th { position: static; }
  html, body { background: #fff !important; color: #000; }
  body { font-size: 10.5pt; }
  .masthead, .skip, .ribbon, figure.chart .tools, .foot .muted, .pdf-button { display: none !important; }
  a { color: inherit; }
  .factbox, .notice, tr, figure, .stat, .cover-dates { break-inside: avoid; }
  p, li { orphans: 3; widows: 3; }
  h2, h3, p.from-page { break-after: avoid; }
  .cover { break-after: page; max-width: none; }
  /* paper cannot scroll: every table prints at page width with all of its columns */
  .table-wrap, figure.chart, table { overflow: visible !important; }
  table { display: table !important; }
  .table-wrap > table.sortable { min-width: 0; }
  .table-wrap td, table.docs td:first-child { max-width: none; }
  figure:empty { display: none; }
  /* on paper a link is only its words: print the address of every outside source */
  p a[href^="http"]:not([href*="michiganplatereaders.org"]):not([href*="nextrequest.com"])::after { content: " (" attr(href) ")"; font-size: .85em; overflow-wrap: anywhere; }
}
