/* Household comparison controls and context. Chart styling is scoped separately. */
.income-category-panel{min-width:0;container:income-category / inline-size;--income-b:#317a69;--income-m:#547ca2;--income-t:#a4813a}
:root[data-theme=dark] .income-category-panel{--income-b:#5aaa96;--income-m:#83a9cd;--income-t:#d8b96f}
.income-category-panel .section-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}
.income-category-panel h3{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:1.5rem;font-weight:400;line-height:1.3}
.income-dataset-label{padding:5px 9px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:0.875rem;line-height:1.5}
.income-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;margin:-1px}
.income-context-hero{margin:20px 0 24px;padding:18px 20px;background:var(--soft);border:1px solid var(--line);border-radius:9px}
.income-context-label{font-size:0.875rem;line-height:1.6;color:var(--muted);margin:0 0 5px}
.income-context-amount{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-variant-numeric:tabular-nums}
.income-context-amount #income-comparison-total{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.8rem,2.8vw,2.4rem);font-weight:400;letter-spacing:-.035em;line-height:1.25;overflow-wrap:anywhere;max-width:100%}
.income-context-amount>span{font-size:0.875rem;color:var(--muted)}
.income-parts{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;padding:0;margin:14px 0 0}
.income-parts li{display:grid;gap:2px;min-width:0;font-size:0.875rem;line-height:1.5}
.income-parts li span{color:var(--muted)}.income-parts li strong{font-weight:500;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.income-parts li span,.income-parts li small{overflow-wrap:anywhere}.income-parts li small{font-size:0.875rem;color:var(--muted)}
.income-category-tags{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;margin-top:14px;font-size:0.875rem;line-height:1.5;color:var(--muted)}
.income-category-tags>span:first-child{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:3px 7px;color:var(--text)}
.income-category-tags #income-group{font-size:0.875rem;font-weight:650}.income-category-tags #income-subgroup{font-size:0.875rem}
.income-age-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:10px 16px}
.income-age-controls label{font-size:0.875rem;font-weight:550;line-height:1.5;min-width:0}
.income-age-controls select{display:block;width:100%;min-width:0;margin-top:6px;padding:9px 10px;font-size:0.875rem}
.income-age-controls p{font-size:0.875rem;line-height:1.6;color:var(--muted);margin:0}
.income-selected-comparisons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;border-block:1px solid var(--line);padding:16px 0;margin:18px 0 0}
.income-selected-comparisons>div{display:grid;gap:3px;min-width:0;line-height:1.6}
.income-selected-comparisons span{font-size:0.875rem;color:var(--muted)}
.income-selected-comparisons strong{font-size:1rem;font-weight:550;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.income-selected-comparisons small{font-size:0.875rem;color:var(--muted)}
.income-chart-caveat,.income-basis,.income-national-context{font-size:0.875rem;line-height:1.7;margin:14px 0;color:var(--muted)}
.income-national-context{padding:12px 14px;background:var(--soft);border-radius:6px}
.income-position-disclosure{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}
.income-position-disclosure>summary{font-size:0.875rem;min-height:38px;cursor:pointer;font-weight:550;line-height:1.6}
.income-position-disclosure[open]>summary{margin-bottom:12px}
.income-range{font-size:0.875rem;font-weight:500;line-height:1.7;margin:0 0 14px;overflow-wrap:anywhere}
.income-group-ranges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.income-group-range{border:1px solid var(--line);border-top:3px solid var(--income-b);border-radius:7px;padding:10px;min-width:0}
.income-range-m40{border-top-color:var(--income-m)}.income-range-t20{border-top-color:var(--income-t)}
.income-group-range.is-current{background:var(--soft)}
.income-group-range>div{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.income-group-range strong{font-size:0.875rem;font-weight:600}.income-group-range>div>span,.income-group-range>small{font-size:0.875rem;color:var(--muted);line-height:1.5}
.income-group-range p{font-size:0.875rem;line-height:1.65;overflow-wrap:anywhere;margin:7px 0 2px;font-variant-numeric:tabular-nums}
.income-next-threshold{padding:12px 14px;background:var(--soft);border-left:3px solid var(--gold-dark);border-radius:5px}
.income-next-threshold>strong{font-size:.9rem;font-weight:550;overflow-wrap:anywhere;line-height:1.5}
.income-next-threshold p,.income-band-note{font-size:0.875rem;line-height:1.7;color:var(--muted);margin:6px 0 0}
.income-source-links{display:flex;flex-wrap:wrap;gap:5px 16px}
@container income-category (max-width:24rem){
  .income-age-controls,.income-selected-comparisons{grid-template-columns:minmax(0,1fr)}
  .income-context-hero{padding:16px}
  .income-group-ranges{grid-template-columns:1fr;gap:6px}
  .income-group-range{display:grid;grid-template-columns:minmax(3.5rem,.65fr) minmax(0,2fr);gap:4px 10px;padding:10px 12px;border-top-width:1px;border-left:3px solid var(--income-b)}
  .income-range-m40{border-left-color:var(--income-m)}.income-range-t20{border-left-color:var(--income-t)}
  .income-group-range>div{grid-row:span 2;align-content:center;flex-direction:column;align-items:flex-start}
  .income-group-range p{margin:0}.income-group-range>small{grid-column:2}
}
.income-refinement{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}
.income-refinement>summary{display:flex;align-items:start;gap:9px;cursor:pointer;list-style:none;font-weight:550;font-size:.9rem;min-height:44px;padding:5px 0;color:var(--text)}
.income-refinement>summary::-webkit-details-marker{display:none}
.income-refinement>summary::before{content:'+';font-size:1.2rem;line-height:1.3}
.income-refinement[open]>summary::before{content:'−'}
.income-refinement .field{display:grid;gap:8px;margin:18px 0;font-size:0.875rem;min-width:0}
.income-refinement input{width:100%;min-width:0;font-size:1rem}
.income-refinement .hint{font-size:0.875rem;color:var(--muted);line-height:1.7}
.income-salary-row,.income-total-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:15px 0;font-size:0.875rem;line-height:1.6}
.income-total-row{padding-top:14px;border-top:1px solid var(--line)}
.income-source{border-top:1px solid var(--line);padding-top:16px;margin-top:18px;font-size:0.875rem;color:var(--muted);line-height:1.7}
.income-source p{margin:4px 0 8px}
.income-source a{color:var(--text);text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:3px 0}
.income-source details{margin-top:10px}.income-source summary{cursor:pointer;min-height:32px;font-size:0.875rem}
.income-empty{font-size:.95rem;line-height:1.7;padding:8px 0}
.income-spouse-choice{border:0;padding:0;min-width:0;margin:24px 0 20px}
.income-spouse-choice>legend{font-size:0.875rem;font-weight:550;padding:0;margin-bottom:10px;line-height:1.6}
.income-spouse-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:8px}
.premium-body .income-spouse-option{display:flex;align-items:center;gap:9px;padding:13px 12px;border:1px solid var(--line);border-radius:7px;font-size:0.875rem;line-height:1.5;cursor:pointer;min-width:0}
.premium-body .income-spouse-option:has(input:checked){background:var(--soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.premium-body .income-spouse-option input{width:1rem;height:1rem;min-height:1rem;margin:0;flex:0 0 1rem;accent-color:var(--accent)}
.premium-body .income-spouse-option:focus-within{outline:2px solid var(--accent);outline-offset:3px}
#income-spouse-field{padding:15px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:7px;margin-bottom:18px}
#income-spouse-field .field{margin-bottom:8px}#income-spouse-field .hint{margin-bottom:0}
.premium-body input[readonly]{background:var(--soft);color:var(--muted);border-style:dashed}
.income-payroll{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}
.income-payroll>summary{cursor:pointer;font-size:.95rem;min-height:40px;padding:5px 0;font-weight:550}
.income-payroll[open]>.field:first-of-type{margin-top:14px}
.premium-body[data-tool=income] .calculator-outcomes{position:static}
.premium-body[data-tool=income] .calculator-value{order:2}
.premium-body[data-tool=income] .income-category-panel{order:1}
.premium-body[data-tool=income] .calculator-value strong{font-size:2rem;margin:8px 0}
@media(min-width:1001px){.premium-body[data-tool=income] .focused-calculator-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
@media(max-width:1200px){.premium-body[data-tool=income] .calculator-outcomes{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){.income-category-panel{padding:18px}}

.income-linked-notes{font-size:1rem;line-height:1.65;margin:14px 0;color:var(--muted)}
