/* FINTOOLS-X1: consolidated R1 workspace and Budget R3 rail.
   Presentation identity is shared with discovery; actions and financial status remain separate. */
body:has([data-tool-workspace]) { background: #f5f8f8; }
[data-tool-workspace] {
  --tool-ink: #0b2845;
  --tool-action: #07565b;
  --tool-muted: #425c6a;
  --tool-border: #ccd9dc;
  max-width: 1184px;
  margin: 0 auto;
  padding: calc(var(--header-offset, 94px) + 18px) 32px 64px;
  background: #f5f8f8;
  color: var(--tool-ink);
  font: 400 16px/1.55 Inter, sans-serif;
}
[data-tool-workspace] * { box-sizing: border-box; }
[data-tool-workspace] [hidden] { display: none !important; }
[data-tool-workspace] a { color: var(--tool-action); text-underline-offset: 4px; }
[data-tool-workspace] :is(input,select,button,a,summary):focus-visible {
  outline: 3px solid #d59c36;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--tool-ink);
}
[data-tool-workspace] :is(input,select,button,a,summary,[tabindex],.x1-editor,.x1-context,.x1-answer,.x2-summary) {
  scroll-margin-top: calc(var(--header-offset, 94px) + 20px);
  scroll-margin-bottom: 24px;
}
[data-tool-workspace] .x1-back { display: inline-flex; align-items: center; min-height: 36px; font-size: 14px; font-weight: 600; }
[data-tool-workspace] .x1-intro { max-width: 800px; padding: 0 0 26px; }
[data-tool-workspace] .x1-eyebrow { font: 600 12px/1.5 Inter, sans-serif; letter-spacing: .1em; color: var(--tool-action); margin: 0 0 10px; }
[data-tool-workspace] h1 { font: 600 clamp(30px,3vw,44px)/1.15 'Source Serif 4',serif; letter-spacing: -.025em; margin: 0 0 14px; color: var(--tool-ink); }
[data-tool-workspace] h2 { font: 600 23px/1.3 'Source Serif 4',serif; color: var(--tool-ink); margin: 0 0 12px; }
[data-tool-workspace] .x1-purpose { font-size: 18px; line-height: 1.6; color: var(--tool-muted); margin: 0; }
[data-tool-workspace] .x1-workspace { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.08fr); gap: 36px; align-items: start; margin-top: 24px; }
[data-tool-workspace].projection .x1-workspace { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
[data-tool-workspace] .x1-editor { min-width: 0; padding: 0; }
[data-tool-workspace] .x1-input-note { font-size: 14px; color: var(--tool-muted); margin: 0 0 22px; max-width: 48ch; }
[data-tool-workspace] .x1-fields { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px 16px; border: 0; border-top: 1px solid var(--tool-border); margin: 0 0 26px; padding: 20px 0 0; min-width: 0; }
[data-tool-workspace] legend { font-size: 15px; font-weight: 600; padding: 0 12px 0 0; color: var(--tool-ink); }
[data-tool-workspace] .x1-field { min-width: 0; display: flex; flex-direction: column; }
[data-tool-workspace] label { font-size: 14px; font-weight: 600; color: #17394c; margin: 0 0 8px; line-height: 1.45; }
[data-tool-workspace] .x1-required { font-size: 12px; font-weight: 400; color: var(--tool-muted); white-space: nowrap; }
[data-tool-workspace] input:not([type=checkbox]),
[data-tool-workspace] select { width: 100%; height: 48px; min-height: 48px; background: white; border: 1px solid #6e858c; border-radius: 5px; padding: 10px 12px; color: var(--tool-ink); font: 500 17px/1.3 Inter,sans-serif; box-shadow: none; }
[data-tool-workspace] input[type=checkbox] { width: 24px; height: 24px; margin: 4px 0 8px; accent-color: var(--tool-action); }
[data-tool-workspace] .x1-help { display: block; font-size: 13px; line-height: 1.5; color: var(--tool-muted); margin-top: 8px; }
/* Intrinsic paired field rows: label, control, helper, then optional error.
   Only rows within one fieldset share tracks. The 18px gutter separates pairs. */
@supports (grid-template-rows: subgrid) {
  @media (min-width:541px) {
    [data-tool-workspace] .x1-fields { row-gap: 0; }
    [data-tool-workspace] .x1-fields > .x1-field {
      display: grid;
      grid-row: span 4;
      grid-template-columns: minmax(0,1fr);
      grid-template-rows: subgrid;
      row-gap: 0;
    }
    [data-tool-workspace] .x1-fields > .x1-field:nth-of-type(n+3) { padding-top: 18px; }
    [data-tool-workspace] .x1-field > label { grid-row: 1; }
    [data-tool-workspace] .x1-field > :is(input,select) { grid-row: 2; align-self: start; }
    [data-tool-workspace] .x1-field > .x1-help { grid-row: 3; align-self: start; }
    [data-tool-workspace] .x1-field > .x1-field-error { grid-row: 4; align-self: start; }
  }
}
/* Without shared intrinsic tracks, keep a usable natural single-column form. */
@supports not (grid-template-rows: subgrid) {
  [data-tool-workspace] .x1-fields { grid-template-columns: minmax(0,1fr); }
}

[data-tool-workspace] [aria-invalid=true] { border: 2px solid #a42e23 !important; }
[data-tool-workspace] .x1-refinements { margin: 0 0 24px; border-bottom: 1px solid var(--tool-border); }
[data-tool-workspace] summary { cursor: pointer; min-height: 48px; padding: 12px 0; color: var(--tool-action); font-weight: 600; }
[data-tool-workspace] .x1-refinements fieldset { margin-top: 18px; }
[data-tool-workspace] .x1-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
[data-tool-workspace] button { font: 600 14px/1.4 Inter,sans-serif; border-radius: 5px; min-height: 46px; padding: 12px 17px; cursor: pointer; }
[data-tool-workspace] .x1-primary { background: var(--tool-action); color: white; border: 1px solid var(--tool-action); }
[data-tool-workspace] .x1-secondary { background: white; color: var(--tool-action); border: 1px solid #6e858c; }
[data-tool-workspace] .x1-text-button { border: 0; background: transparent; color: var(--tool-action); text-decoration: underline; }
[data-tool-workspace] button:disabled { cursor: wait; opacity: .7; }
[data-tool-workspace] .x1-answer { min-width: 0; background: white; border: 1px solid var(--tool-border); border-top: 4px solid var(--tool-action); border-radius: 8px; padding: 26px 28px; box-shadow: 0 8px 28px #15364708; }
[data-tool-workspace] .x1-status { font-size: 13px; color: var(--tool-muted); margin: 0 0 24px; padding-bottom: 12px; border-bottom: 1px solid #e0e8e9; }
[data-tool-workspace] .x1-empty-title { font: 600 29px/1.2 'Source Serif 4',serif; margin: 20px 0 12px; }
[data-tool-workspace] .x1-result-content > p { color: var(--tool-muted); }
[data-tool-workspace] .x1-result-label { font: 500 16px/1.5 Inter,sans-serif; margin: 0 0 12px; max-width: 34ch; }
[data-tool-workspace] .x1-number { font: 600 clamp(36px,4vw,54px)/1.15 Inter,sans-serif; letter-spacing: -.035em; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; color: var(--tool-ink); }
[data-tool-workspace] .x1-unit { font-size: 14px; margin: 8px 0 20px; color: var(--tool-muted); }
[data-tool-workspace] .x1-scenario,
[data-tool-workspace] .x1-essential { font-size: 14px; line-height: 1.6; color: var(--tool-muted); }
[data-tool-workspace] .x1-scenario { margin: 0 0 16px; }
[data-tool-workspace] .x1-interpretation { font-size: 15px; line-height: 1.6; margin-bottom: 24px; }
[data-tool-workspace] .x1-table { width: 100%; border-collapse: collapse; margin: 20px 0 24px; font-size: 14px; }
[data-tool-workspace] .x1-table caption { text-align: left; font-weight: 600; margin-bottom: 10px; }
[data-tool-workspace] .x1-table th,
[data-tool-workspace] .x1-table td { padding: 12px 0; border-bottom: 1px solid #dce6e8; vertical-align: top; line-height: 1.5; }
[data-tool-workspace] .x1-table th { text-align: left; font-weight: 400; color: var(--tool-muted); width: 63%; padding-right: 16px; }
[data-tool-workspace] .x1-table td { text-align: right; font-weight: 600; color: var(--tool-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
[data-tool-workspace] .x1-comparison-table { table-layout: fixed; }
[data-tool-workspace] .x1-comparison-table th,
[data-tool-workspace] .x1-comparison-table td { width: auto; padding: 12px 8px; overflow-wrap: anywhere; }
[data-tool-workspace] .x1-comparison-table th:first-child { width: 38%; }
[data-tool-workspace] .x1-comparison-table thead th { font-size: 12px; font-weight: 600; color: var(--tool-ink); background: #edf6f4; }
[data-tool-workspace] .x1-comparison-table thead th:not(:first-child) { text-align: right; }
[data-tool-workspace] .x1-composition { display: flex; height: 20px; border-radius: 3px; overflow: hidden; margin-top: 22px; }
[data-tool-workspace] .x1-deposit { background: var(--tool-ink); }
[data-tool-workspace] .x1-gain { background: #278785; border-left: 2px solid white; }
[data-tool-workspace] .x1-chart-caption { font-size: 13px; }
[data-tool-workspace] .x1-callout { font-size: 14px; background: #edf6f4; border-left: 3px solid var(--tool-action); padding: 14px 16px; }
[data-tool-workspace] .x1-context { display: block; margin-top: 24px; padding-top: 0; border-top: 1px solid var(--tool-border); font-size: 15px; }
[data-tool-workspace] .x1-context > details { border-bottom: 1px solid var(--tool-border); }
[data-tool-workspace] .x1-context details p { max-width: 65ch; color: var(--tool-muted); overflow-wrap: anywhere; }
[data-tool-workspace] .x1-context > details > p { margin: 0 0 16px; }
[data-tool-workspace] .x1-original-notes { margin: 10px 0 16px; }
[data-tool-workspace] .x1-next { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--tool-border); font-size: 14px; }
[data-tool-workspace] .x1-next h2 { font: 600 16px/1.5 Inter,sans-serif; margin: 0; }
[data-tool-workspace] .x1-error { border-left: 4px solid #a42e23; background: #fff0ec; padding: 18px; margin-bottom: 22px; }
[data-tool-workspace] .x1-error h3 { font-size: 18px; margin: 0 0 10px; }
[data-tool-workspace] .x1-error ul { padding-left: 20px; }
[data-tool-workspace] .x1-error a { color: #8a251b; }
[data-tool-workspace] .x1-field-error { font-size: 13px; color: #8a251b; margin: 8px 0 0; font-weight: 500; }
[data-tool-workspace] .is-stale { border-top-color: #97691b; }
[data-tool-workspace] .is-stale .x1-status { color: #765115; font-weight: 600; }
[data-tool-workspace] .is-stale .x1-number { color: #536571; }
[data-tool-workspace] .x1-jump { display: none; gap: 24px; margin-top: 20px; font-size: 14px; }
[data-tool-workspace] .x1-jump a { min-height: 32px; display: inline-flex; align-items: center; }
[data-tool-workspace] .x1-sr-only,
[data-tool-workspace] .x1-budget-group legend { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
[data-tool-workspace].planning .x2-opening { display: block; margin-top: 24px; }
[data-tool-workspace].planning .x1-intro { max-width: none; padding-bottom: 12px; }
[data-tool-workspace].planning .x2-question .x1-input-note { max-width: none; margin-bottom: 0; }
[data-tool-workspace].planning .x2-summary { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr); column-gap: 28px; row-gap: 0; margin-top: 18px; padding: 20px 24px; box-shadow: none; border-radius: 6px; }
[data-tool-workspace].planning .x2-state { grid-column: 1/-1; grid-row: 1; margin: 0 0 12px; font-size: 13px; color: var(--tool-muted); }
[data-tool-workspace].planning .x2-summary .x1-result-label { grid-column: 1; grid-row: 2; margin: 0 0 6px; }
[data-tool-workspace].planning .x2-summary .x1-number { grid-column: 1; grid-row: 3; }
[data-tool-workspace].planning .x2-summary .x1-unit { grid-column: 1; grid-row: 4; margin: 6px 0 0; }
[data-tool-workspace].planning .x2-facts { display: grid; grid-column: 2/-1; grid-row: 2/5; grid-template-columns: 1fr 1fr; align-self: center; margin: 0; gap: 28px; }
[data-tool-workspace].planning .x2-facts dt { font-size: 14px; color: var(--tool-muted); }
[data-tool-workspace].planning .x2-facts dd { font: 600 24px/1.4 Inter,sans-serif; color: var(--tool-ink); font-variant-numeric: tabular-nums; margin: 6px 0 0; overflow-wrap: anywhere; }
[data-tool-workspace].planning .x2-meaning { grid-column: 1/3; grid-row: 5; margin: 16px 0 0; font-size: 14px; color: var(--tool-muted); }
[data-tool-workspace].planning .x2-review-link { grid-column: 3; grid-row: 5; justify-self: end; align-self: end; margin-top: 16px; font-size: 14px; }
[data-tool-workspace].planning .x2-empty { grid-column: 1/-1; grid-row: 3; margin: 6px 0 0; color: var(--tool-muted); }
[data-tool-workspace].planning .x1-workspace { display: flex; flex-direction: column; margin-top: 18px; gap: 32px; }
[data-tool-workspace].planning .x1-editor { width: 100%; }
[data-tool-workspace].planning .x1-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 36px; align-items: start; }
[data-tool-workspace].planning .x1-actions { grid-column: 1/-1; }
[data-tool-workspace].planning .x1-answer { width: 100%; }
[data-tool-workspace].planning .x1-budget-group { align-self: start; }
[data-tool-workspace].planning .x1-budget-group summary { border-top: 1px solid var(--tool-border); }
[data-tool-workspace].planning .x1-budget-group .x1-fields { border: 0; }
[data-tool-workspace].planning .x2-ledger { border-top: 1px solid var(--tool-border); box-shadow: none; }
[data-tool-workspace].planning .x2-ledger .x1-table { margin: 22px 0; }
[data-tool-workspace].planning .x2-ledger-note { font-size: 14px; color: var(--tool-muted); max-width: 80ch; }
[data-tool-workspace].planning .x1-context { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
[data-tool-workspace].planning .x1-context > details { align-self: start; }
[data-tool-workspace].planning .x1-next { grid-column: 1/-1; }
[data-tool-workspace] .x1-persistence { font-size: 14px; color: var(--tool-muted); }
@media(max-width:900px) {
  [data-tool-workspace] { padding-right: 24px; padding-left: 24px; padding-bottom: 48px; }
  [data-tool-workspace] .x1-workspace,
  [data-tool-workspace].projection .x1-workspace { grid-template-columns: 1fr; margin-top: 18px; }
  [data-tool-workspace] .x1-intro { padding: 0 0 24px; }
  [data-tool-workspace] .x1-answer { padding: 24px; }
  [data-tool-workspace] .x1-number { font-size: 44px; }
  [data-tool-workspace] .x1-jump { display: flex; }
  [data-tool-workspace].planning .x2-opening { margin-top: 18px; }
  [data-tool-workspace].planning .x2-summary { column-gap: 20px; padding: 20px; }
  [data-tool-workspace].planning .x1-editor > .x1-jump { margin: 0 0 12px; }
  [data-tool-workspace].planning .x2-facts { gap: 16px; }
  [data-tool-workspace].planning .x2-review-link { grid-column: 1/-1; grid-row: 6; justify-self: start; margin-top: 10px; }
  [data-tool-workspace].planning .x2-meaning { grid-column: 1/-1; }
  [data-tool-workspace].planning .x1-form { display: block; }
  [data-tool-workspace].planning .x1-context { display: block; }
}
@media(max-width:540px) {
  [data-tool-workspace] { padding-right: 18px; padding-left: 18px; padding-bottom: 40px; }
  [data-tool-workspace] h1 { font-size: 32px; }
  [data-tool-workspace] .x1-purpose { font-size: 16px; }
  [data-tool-workspace] .x1-fields { grid-template-columns: minmax(0,1fr); gap: 19px; }
  [data-tool-workspace] .x1-answer { padding: 22px 18px; }
  [data-tool-workspace] .x1-workspace { gap: 26px; }
  [data-tool-workspace] .x1-number { font-size: 40px; }
  [data-tool-workspace] .x1-table { font-size: 13px; }
  [data-tool-workspace] .x1-table th { width: 62%; }
  [data-tool-workspace] button { padding: 12px 14px; }
  [data-tool-workspace] .x1-actions .x1-primary { flex-basis: 100%; }
  [data-tool-workspace] .x1-comparison-table th:first-child { width: 38%; }
  [data-tool-workspace] .x1-comparison-table th,
  [data-tool-workspace] .x1-comparison-table td { width: auto; padding: 12px 5px; font-size: 12px; }
  [data-tool-workspace] .x1-comparison-table thead th { font-size: 11px; }
  [data-tool-workspace].planning .x2-summary { display: flex; flex-direction: column; padding: 20px 18px; }
  [data-tool-workspace].planning .x2-facts { align-self: stretch; display: flex; flex-direction: column; gap: 10px; margin: 18px 0 0; }
  [data-tool-workspace].planning .x2-facts > div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
  [data-tool-workspace].planning .x2-facts dt { max-width: 60%; }
  [data-tool-workspace].planning .x2-facts dd { font-size: 21px; margin: 0; }
  [data-tool-workspace].planning .x2-meaning { margin: 14px 0 0; }
  [data-tool-workspace].planning .x2-review-link { align-self: flex-start; }
}
@media(prefers-reduced-motion:reduce) {
  [data-tool-workspace] * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Workspace eyebrow spacing; decorative identity styling lives in illustrations.css. */
[data-tool-workspace] .x1-intro > .x1-eyebrow { display:flex; align-items:center; gap:8px; }
