/* Ledger Board :  the fleet registry's structural variant for macrs
   (2026-10-14 design-uniqueness round: macrs diverges from solo-tax's
   editorial voucher desk into a preparer's spreadsheet :  graphite chrome,
   greenbar paper, dense mono numerals. No serif anywhere; that paint now
   belongs to the tax-family sibling solo-tax.)
   Override layer only :  every functional id/selector stays untouched. */

:root {
  --lb-graphite: #1f2937;
  --lb-graphite-deep: #111827;
  --lb-greenbar: #e8f2e8;
  --lb-paper: #fbfbf8;
  --lb-ink: #111827;
  --lb-teal: #0f766e;
  --lb-rule: #cbd5e1;
  --lb-mono: "SFMono-Regular", "IBM Plex Mono", "Roboto Mono", Consolas, monospace;
  --lb-sans: "Barlow", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ── Graphite command chrome ─────────────────────────────────────── */
.site-header {
  background: var(--lb-graphite);
  border-bottom: 3px solid var(--lb-teal);
}
.site-header .wordmark,
.site-header h1,
.site-header h2,
.site-header h3 {
  font-family: var(--lb-sans);
  font-weight: 700;
  letter-spacing: 0.01em;
}
body,
.workspace,
.panel,
form input,
form select,
button {
  font-family: var(--lb-sans);
}
h1, h2, h3, .eyebrow, .kicker { font-family: var(--lb-sans) !important; }

/* ── KPI strip: pinned preparer metrics ──────────────────────────── */
.kpi-card {
  background: var(--lb-graphite-deep);
  color: #e5e7eb;
  border: 1px solid #374151;
  border-left: 3px solid var(--lb-teal);
  border-radius: 2px;
  font-family: var(--lb-mono);
}
.kpi-card strong {
  font-variant-numeric: tabular-nums;
  color: #ffffff;
}

/* ── Greenbar asset grid ─────────────────────────────────────────── */
.workspace {
  background: var(--lb-paper);
}
table {
  border-collapse: collapse;
  font-family: var(--lb-mono);
  font-variant-numeric: tabular-nums;
}
tbody tr:nth-child(odd) {
  background: repeating-linear-gradient(
    to right,
    var(--lb-greenbar) 0px,
    var(--lb-greenbar) 28px,
    #ffffff 28px,
    #ffffff 56px
  );
}
th {
  font-family: var(--lb-mono);
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lb-graphite);
  border-bottom: 2px solid var(--lb-graphite);
}
form input,
form select {
  font-family: var(--lb-mono);
  font-variant-numeric: tabular-nums;
  background: #ffffff;
  border: 1px solid var(--lb-rule);
  border-radius: 2px;
}

/* ── Chips as row-selector tabs ──────────────────────────────────── */
.chip {
  font-family: var(--lb-mono);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--lb-graphite);
  background: #ffffff;
  border-radius: 2px;
  padding: 0.35rem 0.65rem;
}
.chip[aria-pressed="true"],
.chip[data-active="true"] {
  background: var(--lb-graphite);
  color: #ffffff;
}

/* ── Deliverable: Form 4562-style schedule ───────────────────────── */
#executive-deliverable,
[data-deliverable] {
  background: #ffffff;
  border: 1px solid var(--lb-graphite);
  border-top: 4px double var(--lb-graphite);
}
#executive-deliverable .sheet-kicker,
#executive-deliverable header p:first-child {
  font-family: var(--lb-mono);
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lb-teal);
}

@media print {
  .site-header { background: #ffffff; border-bottom: 2px solid #111827; }
  .site-header .wordmark { color: #111827; }
}

/* ── Visual-review fixes (2026-10-14 regate) ─────────────────────── */
/* clipped_content: fixed 56px header clipped the brand under the
   Subscribe button at 390px :  let the header grow and wrap. */
.app-header {
  height: auto;
  min-height: 56px;
}
.header-inner {
  flex-wrap: wrap;
  row-gap: 4px;
  padding-block: 6px;
}
.app-header .brand {
  min-width: 0;
  overflow-wrap: anywhere;
}
/* broken_validation_state: cues were absolutely positioned over the next
   row's inputs :  put them in-flow so they push content instead. */
.validation-cue {
  position: static !important;
  display: block;
  width: auto;
  max-width: 100%;
  margin-block: 3px;
}
/* misaligned_layout: mono headers + mono cell inputs must not overflow
   their cells :  but the rebuild's .d-assets grid is table-layout:fixed with
   a min-width + horizontal scroll wrapper by design: keep word-wrap NORMAL
   there (anywhere lets fixed-layout columns shrink to one character) and
   leave its min-width alone. */
.d-table th,
.d-table td {
  overflow-wrap: break-word;
}
.d-table th {
  letter-spacing: 0.04em;
  font-size: 0.62rem;
}
.d-table input,
.d-table select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Asset column has no track in the rebuild's fixed-layout schedule (its
   other tracks sum to 1086px > the table's 1010px min-width, leaving
   column 2 at 0) :  give it the missing track. */
.d-assets th:nth-child(2),
.d-assets td:nth-child(2) {
  width: 140px;
}
.d-assets {
  min-width: 1226px;
}

/* Complete 16-column track specification matching the 16 row cells */
:root {
  --sheet-cols: 44px minmax(220px, 1.5fr) minmax(196px, 1fr) minmax(196px, 1fr) minmax(196px, 1fr) minmax(196px, 1fr) minmax(196px, 1fr)
    minmax(132px, 1fr) minmax(112px, 1fr) minmax(176px, 1fr) minmax(176px, 1fr) minmax(160px, 1fr) 112px minmax(140px, 1fr) minmax(150px, 1.2fr) 44px;
}
