/* secrets-gate — phone-width-first, readable, no-toolbar design */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 16px; line-height: 1.5; color: #1a1a1a; background: #fafafa; padding: 1rem;
  max-width: 48rem; margin: 0 auto;
}
h1 { font-size: 1.5rem; margin: 0 0 .25rem; }
h2 { font-size: 1.1rem; margin: 1.5rem 0 .5rem; }
.lede { color: #444; margin: 0 0 1rem; }

a { color: #0b57d0; }
a:focus-visible, button:focus-visible {
  outline: 3px solid #0b57d0; outline-offset: 2px;
}

/* WCAG 2.4.1: visually hidden until keyboard focus, then the first thing. */
.skip-link { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.skip-link:focus-visible {
  position: static; width: auto; height: auto; overflow: visible;
  display: inline-block; padding: .5rem 1rem; margin: 0 0 1rem;
  background: #0b57d0; color: #fff; border-radius: 4px; text-decoration: none; font-weight: 700;
}

.fleet-summary { font-weight: 600; min-height: 1.5em; }

table { width: 100%; border-collapse: collapse; margin: .5rem 0 1rem; }
caption { text-align: left; font-weight: 700; margin-bottom: .4rem; }
th, td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid #ddd; vertical-align: top; }
th { text-transform: uppercase; font-size: .8rem; letter-spacing: .04em; color: #555; }

/* State colours — never the ONLY signal (a text word always accompanies colour). */
.state-pass { color: #137333; }
.state-fail { color: #b3261e; }
.state-unknown { color: #b06000; }
.pill { font-weight: 700; }
.pill.pass { color: #137333; }
.pill.fail { color: #b3261e; }
.pill.unknown { color: #b06000; }

button { font: inherit; cursor: pointer; padding: .35rem .7rem; border: 1px solid #bbb;
  border-radius: 6px; background: #fff; color: #1a1a1a; margin: .15rem 0; }
button:hover { border-color: #0b57d0; }
button.disclose { font-size: .85rem; }

.disclosure-note { color: #555; font-size: .9rem; margin: .4rem 0; }
/* Per-row disclosure category list (SPEC screen 1): categories only, never the
   matched value. Placed in the table row, hidden until the toggle opens. */
.cat-list { margin: .25rem 0 0; padding-left: 1.1rem; }
.cat-list li { font-size: .85rem; }

.status { display: inline-block; margin-top: 1.25rem; }

/* Phone-width first: no fixed pixel width; a breakpoint only grows the layout. */
@media (min-width: 48rem) { body { padding: 2rem; } }
