/* Shared tokens for app.constructioncfo.net. Dark first, the brand's black and orange; Run On CFOS pages swap the accent to blue. */
:root {
  --bg: #0b0b0b; --panel: #151515; --panel-2: #1c1c1c; --line: #2b2925; --fg: #f2efe9; --muted: #9b968d;
  --accent: #e66700; --accent-ink: #ffffff; --accent-soft: rgba(230,103,0,.14);
  --good: #4a9e6b; --warn: #d4a017; --bad: #c0605a; --roc: #5b8dd9; --roc-soft: rgba(91,141,217,.16);
  --font-display: 'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Segoe UI', Arial, Helvetica, sans-serif;
  --r: 6px;
  color-scheme: dark;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f6f4f0; --panel: #ffffff; --panel-2: #f0ede7; --line: #ddd8cf; --fg: #191714; --muted: #6b665d;
    --accent: #c95a00; --accent-soft: rgba(201,90,0,.10); --good: #2f7d4f; --warn: #9a7400; --bad: #a8433d; --roc: #2f62b0; --roc-soft: rgba(47,98,176,.10);
    color-scheme: light;
  }
}
:root[data-theme="light"] {
  --bg: #f6f4f0; --panel: #ffffff; --panel-2: #f0ede7; --line: #ddd8cf; --fg: #191714; --muted: #6b665d;
  --accent: #c95a00; --accent-soft: rgba(201,90,0,.10); --good: #2f7d4f; --warn: #9a7400; --bad: #a8433d; --roc: #2f62b0; --roc-soft: rgba(47,98,176,.10);
  color-scheme: light;
}
html[data-biz="roc"] { --accent: var(--roc); --accent-soft: var(--roc-soft); }
* { box-sizing: border-box; }
html, body { background: var(--bg); color: var(--fg); margin: 0; }
body { font-family: var(--font-body); font-size: 16px; line-height: 1.5; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.num { font-variant-numeric: tabular-nums; }
.btn { border: 1px solid var(--line); background: var(--panel-2); padding: 9px 14px; border-radius: var(--r); cursor: pointer; font-weight: 600; }
.btn:hover { border-color: var(--muted); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn:disabled { opacity: .55; cursor: default; }
.wrap { max-width: 1040px; margin: 0 auto; padding-block: 28px 64px; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.display { font-family: var(--font-display); font-weight: 400; letter-spacing: .03em; line-height: 1; }
.muted { color: var(--muted); }
.field { display: grid; gap: 4px; font-weight: 600; font-size: 14px; }
.field span.req { color: var(--accent); }
.field input, .field select, .field textarea { background: var(--bg); border: 1px solid var(--line); border-radius: var(--r); padding: 9px 11px; font-weight: 400; font-size: 15px; width: 100%; min-width: 0; }
.field textarea { min-height: 84px; resize: vertical; }
.err { color: var(--bad); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
