/* InfraRabbit shared chrome: one white theme (Levi, 26 Oct 2026: "make the site white"). No dark variant.
   Tokens are contrast-checked on #fff and on --chip: text >= 4.5:1, graphics (chart series, logo outline) >= 3:1.
   Load ir.css AFTER a module's own stylesheet: these :root tokens then override any older module palette,
   including a module's prefers-color-scheme: dark block (same specificity, later rule wins). */
:root {
  color-scheme: light;
  --bg: #ffffff;
  --fg: #16181d;        /* 17.8:1 */
  --muted: #545b66;     /*  6.9:1 */
  --line: #e3e5e8;      /* decorative rules only */
  --chip: #f5f6f7;      /* subtle panels; text on it still passes */
  --accent: #b3121f;    /*  7.0:1  the rabbit's eye, darkened for text: links, focus, key highlights */
  --eye: #e0182d;       /*  4.8:1  the eye itself (logo, small marks) */
  --outline: #7d8590;   /*  3.7:1  logo outline, graphic borders */
  --ok: #15803d; --warn: #a15c07; --bad: #b42318;
  /* chart series, each >= 3:1 on white */
  --c0: #0b5fff; --c1: #d9480f; --c2: #0f9d76; --c3: #a24bd8; --c4: #b7791f; --c5: #0891b2; --c6: #c2255c; --c7: #5f6b7a;
}
html, body { background: var(--bg); color: var(--fg); }
body { margin: 0; font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--fg); text-decoration-color: var(--accent); text-underline-offset: 2px; }
a:hover { color: var(--accent); }

/* header */
.ir-bar { background: var(--bg); border-bottom: 1px solid var(--line); padding: 0 16px; }
.ir-bar nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; max-width: 1080px; margin: 0 auto; min-height: 52px; }
.ir-bar a { color: var(--fg); text-decoration: none; font-size: .95rem; padding: 10px 0; }
.ir-bar a:hover { color: var(--accent); }
.ir-bar a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--accent); }
.ir-bar .ir-brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 1.05rem; letter-spacing: -.01em; margin-right: auto; padding: 8px 0; }
.ir-logo { width: 34px; height: 34px; flex: none; }
@media (max-width: 560px) {
  .ir-bar nav { gap: 0 14px; }
  .ir-bar .ir-brand { flex-basis: 100%; }
  .ir-bar a { font-size: .92rem; padding: 6px 0; }
}

/* footer */
footer.ir-footer { margin-top: 32px; padding: 14px 0 24px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--muted); }
footer.ir-footer a { color: var(--muted); }
footer.ir-footer a:hover { color: var(--accent); }

/* accessibility */
.skip { position: absolute; left: -999px; top: 0; background: var(--bg); padding: 8px 12px; z-index: 10; }
.skip:focus, .skip:focus-visible { left: 8px; top: 8px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
main:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* error pages served straight from the platform (404, 500, _down) */
.ir-error { max-width: 40rem; margin: 0 auto; padding: 40px 16px; }
.ir-error h1 { font-size: 1.6rem; margin: 0 0 8px; }
.ir-error p { color: var(--muted); }
