/* TOOLS2-A2 VISUAL1: scoped refinements of the unchanged FinForFam tool shell. */
.a2-planner { --a2-line:var(--tool-border); }
.a2-planner .a2-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:36px; align-items:start; margin-top:24px; }
.a2-planner .a2-editor { min-width:0; }
.a2-planner .a2-intro { padding-bottom:0; }
.a2-planner .a2-intro>p:last-child { font-size:14px; color:var(--tool-muted); margin:16px 0 0; }
.a2-planner .a2-privacy { color:var(--tool-muted); font-size:14px; line-height:1.6; margin:18px 0 26px; }
.a2-planner fieldset { min-width:0; border:0; border-top:1px solid var(--tool-border); border-radius:0; padding:20px 0 0; margin:0 0 24px; }
.a2-planner legend { font-size:15px; line-height:1.5; font-weight:600; max-width:100%; }
.a2-planner .a2-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 16px; }
.a2-planner .a2-field { min-width:0; margin:0 0 18px; }
.a2-planner label { display:block; }
.a2-planner select { text-overflow:ellipsis; }
.a2-planner button { margin:4px 8px 4px 0; background:white; border:1px solid #6e858c; color:var(--tool-action); }
.a2-planner .a2-primary { background:var(--tool-action); color:white; border-color:var(--tool-action); }
.a2-planner button[type=reset] { background:transparent; border-color:transparent; text-decoration:underline; text-underline-offset:3px; }
.a2-planner details { border-top:1px solid var(--tool-border); margin:0 0 10px; }
.a2-planner summary { padding:16px 0; font-size:15px; line-height:1.5; color:var(--tool-ink); }
.a2-planner summary::marker { color:var(--tool-action); }
.a2-planner .a2-body { padding:6px 0 16px; }
.a2-planner .a2-body>p { font-size:14px; color:var(--tool-muted); }
.a2-planner .a2-body h3 { font:600 16px/1.5 Inter,sans-serif; color:var(--tool-ink); margin:24px 0 16px; }
.a2-planner .a2-help { font-size:13px; line-height:1.5; color:var(--tool-muted); }
.a2-planner .a2-actions { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:20px; }
.a2-planner .a2-answer { position:static; min-height:290px; overflow-wrap:anywhere; }
.a2-planner .a2-status { font-weight:400; }
.a2-planner .a2-result-eyebrow { font:600 12px/1.5 Inter,sans-serif; letter-spacing:.1em; color:var(--tool-action); margin:0 0 10px; }
.a2-planner .a2-empty-title { font:600 29px/1.2 'Source Serif 4',serif; margin:20px 0 12px; }
.a2-planner #a2-result>p { color:var(--tool-muted); font-size:14px; line-height:1.6; }
.a2-planner .a2-cash-title { font:600 16px/1.5 Inter,sans-serif; margin:0 0 12px; color:var(--tool-ink); }
.a2-planner #a2-result>.a2-number { font:600 clamp(36px,4vw,54px)/1.15 Inter,sans-serif; letter-spacing:-.035em; color:var(--tool-ink); font-variant-numeric:tabular-nums; margin:0 0 24px; }
.a2-planner .a2-chapter { padding-top:26px; margin:28px 0 14px; border-top:1px solid var(--tool-border); }
.a2-planner .a2-reference-title { padding-top:24px; margin:28px 0 14px; border-top:1px solid var(--tool-border); font:600 18px/1.4 'Source Serif 4',serif; }
.a2-planner .a2-reference-title span { display:block; font:400 13px/1.5 Inter,sans-serif; color:var(--tool-muted); margin-top:6px; }
.a2-planner dl { margin:18px 0; font-size:14px; }
.a2-planner dl>div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid #dce6e8; }
.a2-planner dt { min-width:0; color:var(--tool-muted); }
.a2-planner dd { margin:0; text-align:right; font-weight:600; white-space:nowrap; flex-shrink:0; font-variant-numeric:tabular-nums; }
.a2-planner #a2-result>.a2-note { font-size:14px; background:#edf6f4; border-left:3px solid var(--tool-action); padding:14px 16px; }
.a2-planner #a2-errors { border-left:4px solid #a42e23; background:#fff0ec; padding:18px; margin-bottom:22px; }
.a2-planner .a2-support { margin:40px 0 0; max-width:850px; line-height:1.7; }
.a2-planner .a2-support>p { color:var(--tool-muted); font-size:15px; }
.a2-planner .a2-next { display:flex; flex-direction:column; align-items:flex-start; gap:12px; font-size:14px; }
.a2-planner .a2-jump { display:none; min-height:36px; align-items:center; margin:4px 8px; font-size:14px; }
.a2-planner .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
body:has(.a2-planner)>.skip-link { position:fixed; left:18px; top:10px; z-index:2000; padding:10px 16px; background:white; color:#0b2845; transform:translateY(-180%); }
body:has(.a2-planner)>.skip-link:focus { transform:none; outline:3px solid #d59c36; }
@supports(grid-template-rows:subgrid) {
 .a2-planner .a2-grid>.a2-field { display:grid; grid-row:span 2; grid-template-rows:subgrid; }
}
@media(max-width:900px) { .a2-planner .a2-layout { grid-template-columns:1fr; gap:26px; margin-top:18px; } .a2-planner .a2-jump { display:inline-flex; } }
@media(max-width:540px) {
 .a2-planner .a2-grid { grid-template-columns:1fr; }
 .a2-planner .a2-cash-title { font-size:15px; }
 .a2-planner #a2-result>.a2-number { font-size:clamp(30px,9vw,40px); }
 .a2-planner dl>div { display:block; }
 .a2-planner dd { text-align:left; margin-top:4px; }
 .a2-planner .a2-primary { width:100%; margin-right:0; }
}

/* Incompleteness uses the existing state, expressed as a calm editorial label. */
.a2-planner .a2-cash-title[data-incomplete="true"]{text-transform:uppercase;letter-spacing:.06em;font-size:14px;line-height:1.5;}
