/* RePart Supply — shared styles for every page.
   Page-specific rules stay inline in each page's <style>. */
@view-transition { navigation: auto; }

:root{
  --yellow:#FFD100;
  --ink:#111111;
  --line:#c9c9c4;
  --hair:#e3e3de;
  --wash:#f7f7f4;
  --hl:#fffbe0;
  --mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
  --sans:Helvetica,Arial,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);color:var(--ink);background:#fff;font-size:14px;line-height:1.45}
a{color:var(--ink)}
a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--yellow);padding:8px 12px;font-family:var(--mono);font-weight:700;z-index:10}
.skip:focus{left:8px;top:8px}

/* Header */
header{background:var(--yellow);border-bottom:3px solid var(--ink)}
.head{display:flex;align-items:center;gap:28px;padding-top:14px;padding-bottom:12px;flex-wrap:wrap}
.head img{width:340px;max-width:72vw;height:auto;display:block;aspect-ratio:340/131}
.search{flex:1;min-width:260px;display:flex}
.search input{flex:1;font-family:var(--sans);font-size:15px;padding:10px 12px;border:2px solid var(--ink);border-right:none;border-radius:0;outline:none;min-width:0;background:#fff}
.search input:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.search button{font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.08em;background:var(--ink);color:var(--yellow);border:2px solid var(--ink);padding:0 18px;cursor:pointer}
.search button:hover,.search button:focus-visible{background:#fff;color:var(--ink)}
.headnote{font-family:var(--mono);font-size:11.5px;color:#333;text-align:right;line-height:1.7}
.headnote strong{color:var(--ink)}

/* Nav */
nav.main{background:var(--ink)}
nav.main .wrap{display:flex;flex-wrap:wrap}
nav.main a{color:#fff;text-decoration:none;font-family:var(--mono);font-size:12.5px;font-weight:700;letter-spacing:.1em;padding:10px 16px;border-right:1px solid #333}
nav.main a:first-child{border-left:1px solid #333}
nav.main a:hover,nav.main a:focus-visible,nav.main a[aria-current="page"]{background:var(--yellow);color:var(--ink);outline:none}

/* Shared parts */
.statusbar{font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:8px 0;border-bottom:1px solid var(--line);color:#333}
.statusbar b{background:var(--yellow);padding:1px 6px;color:var(--ink)}
.chip{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;background:var(--yellow);border:1px solid var(--ink);padding:2px 7px;white-space:nowrap}
.chip.quiet{background:#fff}
.crumb{font-family:var(--mono);font-size:12px;color:#555;padding:12px 0 0}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}
h1{font-size:clamp(1.35rem,1rem + 1.4vw,1.9rem);font-weight:700;letter-spacing:-.01em;text-wrap:balance}
.mono{font-family:var(--mono)}

.box{border:1px solid var(--line);margin:26px 0 0}
.box > h2{font-family:var(--mono);font-size:12px;letter-spacing:.12em;background:var(--wash);border-bottom:1px solid var(--line);padding:8px 12px;text-wrap:balance}
.box .in{padding:12px 14px}
.box p{max-width:75ch}
.box p + p{margin-top:8px}

table.grid{width:100%;border-collapse:collapse;font-size:13.5px}
table.grid th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-align:left;background:var(--wash);border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 10px}
table.grid td{border-bottom:1px solid var(--hair);padding:9px 10px;vertical-align:top}
table.grid td.spec{font-family:var(--mono);font-size:12.5px;white-space:nowrap}

/* Policy / prose pages */
.doc{max-width:78ch;padding:18px 0 8px}
.doc h1{border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:6px}
.doc .updated{font-family:var(--mono);font-size:12px;color:#555;margin-bottom:18px}
.doc h2{font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;border-bottom:1px solid var(--line);padding-bottom:4px;margin:26px 0 10px}
.doc p,.doc li{font-size:14.5px;line-height:1.6}
.doc p + p{margin-top:10px}
.doc ul,.doc ol{margin:8px 0 0 20px}
.doc li + li{margin-top:4px}
/* Values the owner must fill before launch. scripts/check_site.py lists every one. */
.tbd{background:#ffe3e3;border:1px dashed #b00020;color:#7a0016;font-family:var(--mono);font-size:.9em;padding:0 4px}

/* Footer */
footer{border-top:4px solid var(--yellow);margin-top:40px;padding:20px 0 36px;font-size:12.5px;color:#444}
footer .cols{display:flex;gap:40px;flex-wrap:wrap}
footer strong{color:var(--ink);font-family:var(--mono);font-size:11.5px;letter-spacing:.1em}
footer .fine{margin-top:14px;font-size:11.5px;color:#777;max-width:85ch}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  @view-transition { navigation: none; }
}
@media (max-width:760px){
  .headnote{display:none}
  .head{gap:14px}
  footer .cols{gap:22px}
}
