/* This public calculator uses the shared Tune Hustle tokens. */
html { scroll-behavior: smooth; }
body#appBody { margin:0; color:var(--th-color-ink); background:var(--th-color-canvas); font-family:var(--th-font-interface); }
.income-page * { box-sizing:border-box; }
.income-page { padding:var(--th-space-6) var(--th-space-5) var(--th-space-12); }
.income-page-inner { max-width:960px; margin:auto; }
.income-hero { text-align:center; margin:0 auto var(--th-space-6); }
.income-hero h1 { font-size:38px; line-height:1.2; font-weight:700; color:var(--th-color-violet-strong); margin:0 0 var(--th-space-3); }
.income-hero h1 span { display:block; font-size:24px; color:var(--th-color-ink); margin-top:var(--th-space-1); }
.income-hero p { max-width:680px; margin:auto; line-height:1.6; }
.income-calculator-panel { max-width:720px; margin:auto; padding:var(--th-space-6); background:var(--th-color-surface); border:1px solid var(--th-color-border); border-radius:var(--th-radius-card); box-shadow:var(--th-shadow-card-soft); font-size:15px; line-height:1.5; }
.income-calculator-panel :where(p,h2,h3,h4) { margin:0; }
.income-calculator-panel :where(button,input,select) { font-family:var(--th-font-interface); }
.income-calculator-panel input[type=number], .income-calculator-panel select {
  min-height:var(--th-control-height-standard); border:1px solid var(--th-color-control-border); border-radius:var(--th-radius-control); padding:var(--th-space-2) var(--th-space-3); background:var(--th-color-surface); color:var(--th-color-ink); font-size:var(--th-field-font-size-mobile); font-weight:var(--th-field-font-weight); line-height:var(--th-field-line-height); min-width:0;
}
.income-calculator-panel :is(button,input,select):focus-visible, .income-skip:focus-visible { outline:2px solid var(--th-color-violet); outline-offset:3px; box-shadow:var(--th-focus-ring); }
/* Fields keep a single thin focus edge instead of an outer ring and glow. */
.income-calculator-panel :is(input[type=number],select):focus { outline:1px solid var(--th-color-violet-strong); outline-offset:-1px; box-shadow:none; }
@media (forced-colors:active) {
  .income-calculator-panel :is(input[type=number],select):focus { outline-color:Highlight; }
}
.income-calculator-panel input[aria-invalid=true] { border:2px solid var(--th-color-danger); }
.income-calculator-panel button:disabled { cursor:default; opacity:.55; }
.income-calculator-panel [hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.income-skip { position:fixed; top:var(--th-space-2); left:var(--th-space-2); z-index:10000; padding:var(--th-space-3); background:var(--th-color-surface); color:var(--th-color-ink); transform:translateY(-160%); }
.income-skip:focus { transform:none; }
.service-label, .mode-group legend, .variant-group legend { display:block; font-size:14px; font-weight:600; margin-bottom:var(--th-space-2); }
.select-control { position:relative; display:block; min-width:0; }
.select-control select { width:100%; appearance:none; -webkit-appearance:none; padding-inline-end:var(--th-space-10); }
.select-control-chevron { width:14px; height:10px; position:absolute; inset-inline-end:var(--th-space-4); top:50%; transform:translateY(-50%); color:var(--th-color-ink); pointer-events:none; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.example-note { padding:var(--th-space-3); background:var(--th-color-surface-soft); border-radius:var(--th-radius-control); color:var(--th-color-text-muted); font-size:13px; margin-bottom:var(--th-space-5)!important; }
.mode-group, .variant-group { min-width:0; border:0; margin:0 0 var(--th-space-4); padding:0; }
.mode-toggle, .toggle-row { display:flex; gap:var(--th-space-2); }
.mode-btn, .tog { flex:1; border:1px solid var(--th-color-control-border); border-radius:var(--th-radius-control); background:var(--th-color-surface); color:var(--th-color-ink); padding:var(--th-space-2); }
.mode-btn.active, .tog.active, .chip.active { color:var(--th-color-violet-strong); background:var(--th-color-violet-soft); border-color:var(--th-color-violet); box-shadow:inset 0 0 0 1px var(--th-color-violet); }
.svc-scroll { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--th-space-2); margin-bottom:var(--th-space-5); }
.chip { padding:var(--th-space-2); border-radius:var(--th-radius-pill); border:1px solid var(--th-color-control-border); background:var(--th-color-surface); color:var(--th-color-ink); }
.service-select-wrap { display:none; margin-bottom:var(--th-space-5); }
.service-select-wrap label { display:block; font-weight:600; margin-bottom:var(--th-space-2); }
.card { background:var(--th-color-surface); border:1px solid var(--th-color-border); border-radius:var(--th-radius-card); margin-bottom:var(--th-space-3); }
.ctitle { margin:0; font-size:14px; }
.section-toggle { display:flex; width:100%; align-items:center; justify-content:space-between; gap:var(--th-space-3); padding:var(--th-space-4); border:0; border-radius:var(--th-radius-card); background:transparent; color:var(--th-color-ink); text-align:left; }
.section-toggle .section-label, #goal-heading { font-weight:600; }
.section-chevron { font-size:22px; color:var(--th-color-violet-strong); flex-shrink:0; }
.section-toggle[aria-expanded=true] .section-chevron { transform:rotate(45deg); }
.section-body { padding:0 var(--th-space-4) var(--th-space-4); }
.section-help { color:var(--th-color-text-muted); font-size:13px; line-height:1.6; margin-bottom:var(--th-space-4)!important; }
.section-copy { display:flex; flex-direction:column; min-width:0; gap:var(--th-space-1); }
.section-sub, .field-hint { font-size:13px; color:var(--th-color-text-muted); line-height:1.5; font-weight:400; }
.field-hint { margin-top:var(--th-space-2)!important; }
.field { margin-bottom:var(--th-space-5); }
.field:last-child { margin-bottom:0; }
.frow { display:flex; align-items:center; justify-content:space-between; gap:var(--th-space-3); flex-wrap:wrap; margin-bottom:var(--th-space-1); }
.flabel { flex:1; min-width:110px; font-size:14px; }
.fval-control { display:flex; align-items:center; gap:var(--th-space-2); min-width:0; margin-inline-start:auto; flex-shrink:0; }
.fval-control input { width:120px; }
/* Equal unit columns keep price, duration and other number inputs aligned. */
.fval-unit { flex:0 0 var(--th-space-10); width:var(--th-space-10); font-size:13px; color:var(--th-color-text-muted); overflow-wrap:anywhere; }
#goal-number { width:160px; max-width:100%; }
.goal-output { font-size:13px; color:var(--th-color-text-muted); display:block; text-align:right; }
.income-calculator-panel input[type=range] { display:block; width:100%; height:var(--th-control-height-standard); margin:0; accent-color:var(--th-color-violet); cursor:pointer; }
.field-error { font-size:13px; color:var(--th-color-danger); line-height:1.5; margin-top:var(--th-space-1)!important; }
.field-error:empty { display:none; }
.income-calculator-panel select[aria-invalid="true"] { outline:2px solid var(--th-color-danger); outline-offset:2px; }
.mode-group[aria-invalid="true"] .mode-toggle { outline:2px solid var(--th-color-danger); outline-offset:3px; border-radius:var(--th-radius-card); }
.two-col { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--th-space-3); }
.mini label { display:block; font-size:13px; margin-bottom:var(--th-space-2); }
.mini input { width:100%; }
.booking-estimate { margin-top:var(--th-space-4); }
.staff-row { display:flex; align-items:center; flex-wrap:wrap; gap:var(--th-space-3); }
.stepper { display:flex; align-items:center; border:1px solid var(--th-color-control-border); border-radius:var(--th-radius-control); overflow:hidden; }
.sbtn { width:44px; border:0; background:var(--th-color-surface-soft); color:var(--th-color-ink); font-size:20px!important; }
.snum { min-width:44px; text-align:center; font-variant-numeric:tabular-nums; }
.answer-card { padding:var(--th-space-5); border:1px solid var(--th-color-border); border-radius:var(--th-radius-card); margin-bottom:var(--th-space-4); background:var(--th-color-surface); }
.answer-card.ok { border-left:4px solid var(--th-color-success); }
.answer-card.warn { border-left:4px solid var(--th-color-warning); }
.answer-card.danger { border-left:4px solid var(--th-color-danger); }
.answer-kicker { font-size:12px; font-weight:600; color:var(--th-color-text-muted); margin-bottom:var(--th-space-2)!important; }
.answer-card h3 { font-size:20px; font-weight:600; line-height:1.35; margin-bottom:var(--th-space-2); }
.answer-sub { font-size:14px; color:var(--th-color-text-muted); margin-top:var(--th-space-3)!important; }
.status { padding:var(--th-space-4); border-radius:var(--th-radius-control); margin-bottom:var(--th-space-4)!important; font-size:14px; }
.status.warn { background:var(--th-color-warning-soft); color:var(--th-color-warning); }
.status.danger { background:var(--th-color-danger-soft); color:var(--th-color-danger); }
#validation button { margin-top:var(--th-space-3); }
.review-section { border:0; border-top:1px solid var(--th-color-border); border-radius:0; }
.review-section .section-toggle { padding-inline:0; }
.review-section .section-body { padding-inline:0; }
.mgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--th-space-3); }
.met { min-width:0; padding:var(--th-space-4); background:var(--th-color-surface-soft); border:1px solid var(--th-color-border-soft); border-radius:var(--th-radius-control); }
.ml { font-size:13px; font-weight:600; }
.mv { font-size:24px; font-weight:600; margin:var(--th-space-2) 0; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.ms { font-size:13px; color:var(--th-color-text-muted); }
.note { color:var(--th-color-text-muted); font-size:13px; line-height:1.6; margin-top:var(--th-space-3)!important; }
.insight { padding:var(--th-space-3); border-radius:var(--th-radius-control); background:var(--th-color-violet-soft); color:var(--th-color-violet-deep); margin-top:var(--th-space-3)!important; font-size:14px; }
.brow-row { display:flex; justify-content:space-between; gap:var(--th-space-3); padding:var(--th-space-3) 0; border-bottom:1px solid var(--th-color-border-soft); font-size:13px; }
.bl { min-width:0; flex:1; }
.bv { min-width:0; max-width:52%; text-align:right; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.tot { font-weight:600; }
.details-subheading { margin-top:var(--th-space-5)!important; }
.plan-actions { display:flex; flex-wrap:wrap; gap:var(--th-space-3); margin-top:var(--th-space-5); }
.utility { border:1px solid var(--th-color-control-border); border-radius:var(--th-radius-control); padding:var(--th-space-3) var(--th-space-4); color:var(--th-color-ink); background:var(--th-color-surface); }
.utility.primary { background:var(--th-gradient-action-primary); border-color:var(--th-color-violet); color:var(--th-color-surface); font-weight:var(--th-control-font-weight-primary); }
.utility.primary:hover { background:var(--th-gradient-action-primary-hover); }
body#appBody .hamburger { border:0; background:transparent; min-width:44px; min-height:44px; justify-content:center; }
body#appBody .th-nav :is(button,a):focus-visible { outline:2px solid var(--th-color-violet); outline-offset:3px; }
@media (max-width:1200px) { #sticky-results { display:none; } }
@media (max-width:900px) { body#appBody { padding-top:90px; } }
@media (max-width:640px) {
  .income-page { padding:var(--th-space-4) var(--th-space-3) var(--th-space-10); }
  .income-calculator-panel { padding:var(--th-space-4); }
  .income-hero h1 { font-size:28px; }
  .income-hero h1 span { font-size:20px; }
  .income-hero p { font-size:14px; }
  .svc-scroll, .service-label { display:none; }
  .service-select-wrap { display:block; }
  .section-body { padding-inline:var(--th-space-3); }
  .answer-card { padding:var(--th-space-4); }
  .answer-card h3 { font-size:18px; }
  .fval-control input { width:110px; }
  #goal-number { width:140px; }
  .mgrid { grid-template-columns:1fr; }
  .plan-actions > button { flex:1; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none!important; animation:none!important; } }
@media (forced-colors:active) {
  .mode-btn.active, .tog.active, .chip.active { outline:2px solid Highlight; }
  .utility.primary { background:ButtonFace; color:ButtonText; border:2px solid ButtonText; }
  .income-calculator-panel input[aria-invalid=true] { outline:2px dashed CanvasText; }
  .answer-card { border:2px solid CanvasText; }
}
@media print {
  body#appBody { padding:0!important; background:var(--th-color-surface); }
  .th-nav, .lang-bar, .th-footer, .income-skip, #sticky-results, .plan-actions, .svc-scroll, .mode-group, input[type=range], .field-error, .section-chevron { display:none!important; }
  .income-page, .income-calculator-panel { padding:0; border:0; box-shadow:none; max-width:none; }
  .income-calculator-panel .section-body[hidden], .income-calculator-panel #next-move-body[hidden] { display:block!important; }
  .body-solo #salon-card { display:none!important; }
  .card, .answer-card, .met, .brow-row { break-inside:avoid; }
  .service-select-wrap { display:block; }
  .mgrid { grid-template-columns:1fr 1fr; }
  .section-toggle { color:var(--th-color-ink); }
}

#calculator-form { border:0; padding:0; margin:0; min-width:0; }
.print-only { display:none; }
@media print { .print-only { display:block; margin-bottom:var(--th-space-4)!important; font-weight:600; } }

/* Goal-led public planner: use the Goals page's atmosphere and hierarchy. */
.income-page { padding-top:var(--th-space-10); }
.income-page-inner { max-width:var(--th-container-workspace); }
.income-hero { position:relative; isolation:isolate; text-align:left; margin-bottom:var(--th-space-8); padding:var(--th-space-2) calc(76px + var(--th-space-8) * 2) var(--th-space-2) 0; }
.income-hero::before { content:""; position:absolute; z-index:-1; pointer-events:none; inset:-40px -20px -24px; background:radial-gradient(ellipse at 15% 15%,color-mix(in srgb,var(--th-color-rose-mist) 35%,transparent),transparent 55%),radial-gradient(ellipse at 75% 60%,color-mix(in srgb,var(--th-color-periwinkle) 28%,transparent),transparent 58%); }
.income-hero .hero-kicker { color:var(--th-color-violet-strong); font-size:13px; font-weight:600; margin:0 0 var(--th-space-3); }
.income-hero h1 { margin-bottom:var(--th-space-3); color:var(--th-color-ink); font-weight:600; font-size:clamp(28px,3.4vw,40px); line-height:1.2; letter-spacing:-.025em; }
.income-hero h1 span { display:inline; font:inherit; color:var(--th-color-violet-strong); }
.income-hero > p:last-of-type { margin:0; color:var(--th-color-text-muted); font-size:15px; line-height:1.6; }
.hero-sparkle { position:absolute; width:76px; height:76px; right:var(--th-space-8); top:var(--th-space-5); fill:var(--th-color-rose-mist); stroke:var(--th-color-violet-strong); stroke-width:1.5; stroke-linecap:round; }
.income-calculator-panel { max-width:none; padding:0; background:transparent; border:0; box-shadow:none; }
.setup-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); align-items:start; gap:var(--th-space-5); padding:var(--th-space-5); margin:var(--th-space-5) 0; border:1px solid color-mix(in srgb,var(--th-color-violet) 30%,var(--th-color-border)); border-radius:var(--th-radius-card); background:color-mix(in srgb,var(--th-color-violet-soft) 35%,var(--th-color-surface)); box-shadow:var(--th-shadow-card-soft); }
.setup-panel > * { min-width:0; margin:0; }
.setup-panel .service-select-wrap { display:block; }
.setup-panel :is(label,legend) { font-size:13px; margin-bottom:var(--th-space-2); }
.setup-panel .field-hint { font-size:12px; margin-top:var(--th-space-2)!important; }
.setup-panel .mode-btn { min-height:46px; }
/* Inside the inputs column the setup card stacks: service above, business type below. */
.planner-inputs .setup-panel { grid-template-columns:minmax(0,1fr); }
#plan-editor { scroll-margin-top:110px; }
.plan-overview { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:var(--th-space-5); align-items:stretch; }
.plan-overview > * { min-width:0; }
.goal-card { padding:var(--th-space-6); margin:0; position:relative; overflow:hidden; box-shadow:var(--th-shadow-card-soft); border-color:color-mix(in srgb,var(--th-color-violet) 12%,var(--th-color-border)); }
.goal-card-heading { display:flex; align-items:center; gap:var(--th-space-3); margin-bottom:var(--th-space-4); }
.goal-icon { display:grid; flex:0 0 44px; width:44px; height:44px; border-radius:var(--th-radius-control); place-items:center; background:var(--th-color-violet-soft); color:var(--th-color-violet-strong); }
.goal-icon svg, .next-move-icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.goal-card .section-body { padding:0; }
.eyebrow { color:var(--th-color-violet-strong); font-size:12px; font-weight:600; margin:0 0 var(--th-space-1)!important; }
.goal-card h2 { font-size:20px; line-height:1.3; font-weight:600; margin:0; }
.goal-card .section-help { margin-bottom:var(--th-space-6)!important; }
.goal-amount-label { font-size:14px; font-weight:500; display:block; margin-bottom:var(--th-space-2); }
.goal-amount-control { display:flex; align-items:baseline; gap:var(--th-space-2); border-bottom:2px solid var(--th-color-border); padding-bottom:var(--th-space-2); margin-bottom:var(--th-space-3); }
.goal-amount-control:focus-within { border-color:var(--th-color-violet); }
.goal-card #goal-number { width:100%; flex:1; min-width:0; min-height:68px; padding:0; border:0; border-radius:var(--th-radius-control); background:transparent; color:var(--th-color-ink); font-size:52px; font-weight:600; line-height:1.25; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.goal-card #goal-number.long-value { font-size:32px; }
#goal-number::-webkit-inner-spin-button, #goal-number::-webkit-outer-spin-button { appearance:none; margin:0; }
#goal-number { -moz-appearance:textfield; }
#goal-currency { color:var(--th-color-text-muted); font-size:13px; white-space:nowrap; }
.goal-card #goal-number[aria-invalid=true] { border:2px solid var(--th-color-danger); }
.slider-caption { display:flex; flex-wrap:wrap; gap:var(--th-space-2); justify-content:space-between; font-size:12px; color:var(--th-color-text-muted); }
.goal-presets { display:flex; gap:var(--th-space-2); flex-wrap:wrap; margin:var(--th-space-5) 0; }
.goal-presets button { flex:1; min-width:80px; padding:var(--th-space-2) var(--th-space-3); border:1px solid var(--th-color-control-border); border-radius:var(--th-radius-pill); background:var(--th-color-surface); color:var(--th-color-ink); }
.goal-presets button[aria-pressed=true] { border-color:var(--th-color-violet); background:var(--th-color-violet-soft); color:var(--th-color-violet-strong); box-shadow:inset 0 0 0 1px var(--th-color-violet); }
.goal-weekly { margin-top:var(--th-space-5)!important; padding:var(--th-space-4); border-radius:var(--th-radius-control); background:var(--th-color-surface-soft); font-size:14px; color:var(--th-color-text-muted); overflow-wrap:anywhere; }
.goal-weekly strong { color:var(--th-color-ink); font-weight:600; }
#quick-results { min-width:0; }
.answer-card { height:100%; position:relative; isolation:isolate; overflow:hidden; margin:0; padding:var(--th-space-6); box-shadow:var(--th-shadow-card-soft); border:1px solid color-mix(in srgb,var(--th-color-violet) 12%,var(--th-color-border)); }
.answer-card:is(.ok,.warn,.danger) { border-left-width:1px; border-left-color:var(--th-color-border); }
.answer-card::before { position:absolute; inset:0; z-index:-1; content:""; pointer-events:none; background:radial-gradient(circle at 96% 0,color-mix(in srgb,var(--th-color-periwinkle) 20%,transparent),transparent 42%); }
.answer-card::after { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--th-gradient-accent-horizontal); }
.answer-topline { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:var(--th-space-2); margin-bottom:var(--th-space-4); }
.answer-kicker { margin:0!important; font-size:12px; }
.plan-badge { display:inline-flex; align-items:center; gap:var(--th-space-1); padding:var(--th-space-1) var(--th-space-2); border-radius:var(--th-radius-pill); background:var(--th-color-violet-soft); color:var(--th-color-violet-strong); font-size:12px; font-weight:500; }
.ok .plan-badge { color:var(--th-color-success); background:var(--th-color-success-soft); }
.ok .plan-badge::before { content:"\2713"; font-weight:600; }
.warn .plan-badge { color:var(--th-color-warning); background:var(--th-color-warning-soft); }
.danger .plan-badge { color:var(--th-color-danger); background:var(--th-color-danger-soft); }
.answer-card h3 { font-size:20px; line-height:1.35; margin-bottom:var(--th-space-5); }
.headline-stats { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:var(--th-space-5); margin-bottom:var(--th-space-6); }
.headline-stat { display:flex; flex-direction:column; min-width:0; }
.headline-stat + .headline-stat { border-left:1px solid var(--th-color-border); padding-left:var(--th-space-5); }
.stat-label { font-size:13px; font-weight:500; }
.result-number { font-size:64px; line-height:1.1; font-weight:600; color:var(--th-color-violet-strong); margin:var(--th-space-2) 0; font-variant-numeric:tabular-nums; letter-spacing:-.03em; overflow-wrap:anywhere; }
.result-money { display:flex; align-items:center; flex:1; font-size:64px; font-weight:600; line-height:1.25; margin:var(--th-space-2) 0; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; color:var(--th-color-ink); }
.stat-caption { font-size:12px; color:var(--th-color-text-muted); }
.plan-progress-heading { display:flex; align-items:center; gap:var(--th-space-3); justify-content:space-between; font-size:12px; margin-bottom:var(--th-space-2); }
.plan-progress-heading strong { font-size:16px; color:var(--th-color-violet-strong); overflow-wrap:anywhere; max-width:40%; }
.plan-progress { height:12px; overflow:hidden; border-radius:var(--th-radius-pill); background:var(--th-color-violet-soft); border:1px solid color-mix(in srgb,var(--th-color-violet) 15%,var(--th-color-border)); }
.plan-progress > span { display:block; height:100%; border-radius:inherit; background:var(--th-gradient-accent-horizontal); }
.plan-progress-note { color:var(--th-color-text-muted); font-size:12px; margin-top:var(--th-space-2)!important; overflow-wrap:anywhere; }
.next-move { display:block; padding:var(--th-space-4); margin-top:var(--th-space-5); border-radius:var(--th-radius-control); background:var(--th-color-surface-soft); border:1px solid var(--th-color-border-soft); }
.next-move-toggle { padding:0; justify-content:flex-start; }
.next-move-toggle .section-chevron { margin-left:auto; }
.next-move-icon { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:var(--th-radius-control); color:var(--th-color-ink); background:color-mix(in srgb,var(--th-color-rose-mist) 42%,var(--th-color-surface)); }
.next-move-icon svg { width:20px; height:20px; }
.next-move strong { font-size:13px; font-weight:600; }
#next-move-body p { margin:var(--th-space-3) 0 0; font-size:13px; line-height:1.6; color:var(--th-color-text-muted); }
.result-edit { display:flex; align-items:center; justify-content:space-between; gap:var(--th-space-4); width:100%; margin-top:var(--th-space-3); padding:var(--th-space-2) 0; border:0; background:transparent; color:var(--th-color-violet-strong); text-align:left; }
.result-edit span { font-size:22px; }
.answer-explanation { font-size:14px; margin-bottom:var(--th-space-4)!important; }
.editor-heading { display:flex; justify-content:space-between; gap:var(--th-space-4); align-items:center; margin:var(--th-space-8) 0 var(--th-space-3); }
.editor-heading h2 { font-size:24px; line-height:1.3; font-weight:600; }
.editor-heading p:last-child { font-size:14px; color:var(--th-color-text-muted); margin-top:var(--th-space-2); }
.live-label { display:flex; gap:var(--th-space-2); align-items:center; white-space:nowrap; font-size:12px; color:var(--th-color-text-muted); }
.live-label > span { height:7px; width:7px; border-radius:var(--th-radius-pill); background:var(--th-color-success); }
.example-note { padding:0; background:transparent; margin-bottom:var(--th-space-5)!important; font-size:13px; }
#plan-editor > .card { margin-bottom:var(--th-space-3); }
#plan-editor > .card .section-toggle { padding:var(--th-space-5); gap:var(--th-space-4); }
#plan-editor > .card .section-copy { flex:1; }
#plan-editor > .card .section-label { font-size:18px; font-weight:600; }
#plan-editor > .card .section-sub { font-size:13px; margin-top:var(--th-space-1); }
#plan-editor > .card .section-body { padding:0 var(--th-space-6) var(--th-space-6); }
#svc-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--th-space-8); row-gap:var(--th-space-5); }
#svc-fields .field { min-width:0; margin:0; }
#svc-fields .variant-group { grid-column:1/-1; margin:0; }
#svc-fields .frow { align-items:center; }
#svc-fields .flabel { font-size:14px; }
#svc-fields .fval-control input { font-size:18px; font-weight:400; min-height:52px; width:130px; }
#svc-fields .fval-unit { font-size:12px; }
.review-section { margin-top:var(--th-space-3); }
.review-section .section-label { font-size:16px; }
.mgrid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.mv { font-size:28px; }
#validation { margin-top:var(--th-space-4); }
.income-calculator-panel input[type=range] { appearance:none; background:transparent; }
.income-calculator-panel input[type=range]::-webkit-slider-runnable-track { height:8px; border-radius:var(--th-radius-pill); background:linear-gradient(to right,var(--th-color-violet) var(--range-fill,0%),var(--th-color-border) var(--range-fill,0%)); }
.income-calculator-panel input[type=range]::-webkit-slider-thumb { appearance:none; width:22px; height:22px; margin-top:-7px; border:3px solid var(--th-color-surface); border-radius:var(--th-radius-pill); background:var(--th-color-violet); box-shadow:0 0 0 1px var(--th-color-violet); }
.income-calculator-panel input[type=range]::-moz-range-track { height:8px; border-radius:var(--th-radius-pill); background:var(--th-color-border); }
.income-calculator-panel input[type=range]::-moz-range-progress { height:8px; border-radius:var(--th-radius-pill); background:var(--th-color-violet); }
.income-calculator-panel input[type=range]::-moz-range-thumb { width:18px; height:18px; border:3px solid var(--th-color-surface); border-radius:var(--th-radius-pill); background:var(--th-color-violet); box-shadow:0 0 0 1px var(--th-color-violet); }
@media (hover:hover) {
  .goal-presets button:hover { border-color:var(--th-color-violet); background:var(--th-color-violet-soft); }
  .result-edit:hover { text-decoration:underline; }
  .section-toggle:hover { background:var(--th-color-surface-soft); }
}
@media (max-width:900px) {
  .setup-panel { grid-template-columns:1fr 1fr; }
  .plan-overview { grid-template-columns:1fr; }
  .hero-sparkle { width:52px; right:var(--th-space-6); top:0; opacity:.7; }
  .goal-card { padding:var(--th-space-6); }
  .goal-amount-control { max-width:520px; }
  .goal-presets { max-width:520px; }
  .goal-card #goal-number { font-size:48px; }
  .headline-stats { grid-template-columns:1fr 1fr; }
  .result-money { font-size:38px; }
  .mgrid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .income-page { padding-top:var(--th-space-6); }
  .income-hero { margin-bottom:var(--th-space-5); padding:var(--th-space-2) calc(40px + var(--th-space-8) + 12px) var(--th-space-2) 0; }
  .income-hero h1 { font-size:28px; }
  .income-hero h1 span { display:block; font-size:28px; }
  .income-hero > p:last-of-type { font-size:14px; max-width:320px; }
  .hero-sparkle { width:40px; height:auto; top:-8px; }
  .desktop-break { display:none; }
  .setup-panel { gap:var(--th-space-4) var(--th-space-3); padding:var(--th-space-4); }
  .setup-panel .field-hint { font-size:12px; }
  .setup-panel :is(select,.mode-btn) { font-size:14px; }
  .goal-card, .answer-card { padding:var(--th-space-5); }
  .goal-card-heading { gap:var(--th-space-3); }
  .goal-card h2 { font-size:18px; }
  .goal-card #goal-number { font-size:44px; }
  .goal-card #goal-number.long-value { font-size:28px; }
  .goal-presets { gap:var(--th-space-2); }
  .goal-presets button { min-width:76px; padding-inline:var(--th-space-2); }
  .headline-stats { gap:var(--th-space-4); grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .headline-stat + .headline-stat { padding-left:var(--th-space-4); }
  .result-number { font-size:52px; }
  .result-money { font-size:30px; }
  .stat-label { min-height:40px; }
  .stat-caption { font-size:12px; }
  .plan-progress-heading { font-size:12px; }
  .next-move { padding:var(--th-space-3); gap:var(--th-space-2); }
  .answer-card h3 { font-size:20px; }
  .editor-heading h2 { font-size:22px; }
  .live-label { display:none; }
  #plan-editor > .card .section-toggle { padding:var(--th-space-4); gap:var(--th-space-3); }
  #plan-editor > .card .section-label { font-size:16px; }
  #plan-editor > .card .section-body { padding:0 var(--th-space-4) var(--th-space-5); }
  #svc-fields { grid-template-columns:1fr; gap:var(--th-space-4); }
  #svc-fields .fval-control input { width:112px; font-size:18px; min-height:48px; }
  .mgrid { grid-template-columns:1fr; }
}
@media (max-width:360px) {
  #goal-currency { white-space:normal; max-width:62px; font-size:12px; }
  .result-money { font-size:26px; }
  .headline-stats { gap:var(--th-space-3); }
  .headline-stat + .headline-stat { padding-left:var(--th-space-3); }
}
@media (prefers-reduced-motion:no-preference) {
  .goal-presets button, .section-toggle { transition:background-color 160ms ease,border-color 160ms ease; }
}
@media (forced-colors:active) {
  .income-hero::before, .answer-card::before, .answer-card::after, .hero-sparkle { display:none; }
  .plan-progress { border:1px solid CanvasText; }
  .plan-progress > span { background:Highlight; forced-color-adjust:none; }
  .plan-badge { border:1px solid CanvasText; }
  .goal-presets button[aria-pressed=true] { outline:2px solid Highlight; }
  .income-calculator-panel input[type=range] { appearance:auto; }
  .income-calculator-panel input[type=range]::-webkit-slider-runnable-track { background:Canvas; border:1px solid CanvasText; }
  .income-calculator-panel input[type=range]::-webkit-slider-thumb { background:Highlight; border-color:CanvasText; }
}
@media print {
  .hero-kicker, .hero-sparkle, .goal-presets, .slider-caption, .editor-heading, .live-label, .result-edit { display:none!important; }
  .income-hero::before, .answer-card::before { display:none; }
  .income-page { padding:0; }
  .plan-overview { display:block; }
  .goal-card, .answer-card { box-shadow:none; height:auto; margin-bottom:var(--th-space-4); }
  .setup-panel { display:block; border:0; padding:0; }
  .setup-panel .service-select-wrap { display:none; }
  .goal-card #goal-number { font-size:36px; }
  .result-number { font-size:44px; }
  .result-money { font-size:32px; }
  #svc-fields { grid-template-columns:1fr 1fr; }
  .mgrid { grid-template-columns:1fr 1fr; }
  .headline-stats { grid-template-columns:1fr 1fr; }
  .card, .answer-card { break-inside:avoid; }
}

.income-hero::before { inset-inline:0; border-radius:var(--th-radius-card); }
.review-section { background:transparent; }
@media (max-width:640px) {
  .goal-card .section-help { margin-bottom:var(--th-space-3)!important; }
  .goal-presets { margin-block:var(--th-space-3); }
  .goal-weekly { padding:0; background:transparent; margin-top:var(--th-space-3)!important; }
  .goal-card .goal-card-heading { margin-bottom:var(--th-space-3); }
  .setup-panel .mode-group legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
}

/* Connected editing flow and a clear finish. */
.income-page { padding-top:var(--th-space-6); }
.income-hero { padding:var(--th-space-4) calc(76px + var(--th-space-8) * 2) var(--th-space-6) var(--th-space-6); margin-bottom:var(--th-space-6); }
.income-hero::before { inset:-24px 0 -12px; }
.hero-sparkle { top:var(--th-space-3); }
.planner-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--th-space-6); align-items:start; }
.planner-inputs { min-width:0; }
.planner-grid > #quick-results { position:sticky; top:120px; align-self:start; scroll-margin-top:120px; }
.goal-card { height:auto; }
.goal-card .section-help { margin-bottom:var(--th-space-4)!important; }
.goal-presets { margin-block:var(--th-space-3); }
.goal-weekly { margin-top:var(--th-space-3)!important; padding:var(--th-space-3); }
.answer-card { height:auto; }
.answer-topline { gap:var(--th-space-3); }
.answer-kicker { color:var(--th-color-violet-strong); }
.answer-card h3 { font-size:22px; }
.headline-stats { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--th-space-4); }
.headline-stat + .headline-stat { padding-left:var(--th-space-4); }
.result-number { font-size:72px; }
.result-money { font-size:36px; }
.stat-label { font-size:14px; }
.stat-caption, .plan-progress-note { font-size:13px; }
.plan-progress-heading { font-size:13px; }
.next-move { margin-top:var(--th-space-4); }
.next-move p { font-size:14px; line-height:1.6; }
.result-edit { border-top:1px solid var(--th-color-border); padding-top:var(--th-space-3); margin-top:var(--th-space-4); }
.editor-heading { margin-top:var(--th-space-6); }
.editor-heading h2 { font-size:22px; }
#plan-editor .example-note { font-size:14px; line-height:1.6; margin-bottom:var(--th-space-4)!important; }
#plan-editor > .card .section-label { font-size:16px; }
#plan-editor > .card .section-toggle { padding:var(--th-space-4); gap:var(--th-space-3); }
#plan-editor > .card .section-body { padding:0 var(--th-space-4) var(--th-space-5); }
#plan-editor .section-body { scroll-margin-block:130px 100px; }
#svc-fields { grid-template-columns:1fr; gap:var(--th-space-5); }
#svc-fields .fval-control input { font-size:18px; font-weight:400; min-height:52px; width:120px; }
.section-chevron { font-size:0; position:relative; width:24px; height:24px; }
.section-chevron::before, .section-chevron::after { content:""; position:absolute; inset:11px 5px auto; height:2px; background:currentColor; border-radius:var(--th-radius-pill); }
.section-chevron::after { transform:rotate(90deg); }
.section-toggle[aria-expanded=true] .section-chevron { transform:none; }
.section-toggle[aria-expanded=true] .section-chevron::after { display:none; }
.plan-review { margin-top:var(--th-space-8); }
.review-heading { margin-bottom:var(--th-space-4); }
.review-heading h2 { font-size:22px; font-weight:600; }
#detail-results { border:1px solid var(--th-color-border); border-radius:var(--th-radius-card); overflow:hidden; background:var(--th-color-surface); }
#detail-results:empty { display:none; }
.review-section { margin:0; border:0; background:transparent; }
.review-section + .review-section { border-top:1px solid var(--th-color-border); }
.review-section .section-toggle { padding:var(--th-space-5); border-radius:0; }
.review-section .section-body { padding:0 var(--th-space-5) var(--th-space-5); }
.review-section .section-sub { font-size:13px; }
.review-section h4 { font-size:15px; font-weight:600; }
.result-print { display:flex; align-items:center; justify-content:center; gap:var(--th-space-2); width:100%; margin-top:var(--th-space-4); padding:var(--th-space-3) var(--th-space-4); border:1px solid var(--th-color-violet); border-radius:var(--th-radius-control); background:var(--th-gradient-action-primary); color:var(--th-color-surface); font:inherit; font-weight:600; cursor:pointer; }
.dock-print { display:flex; align-items:center; justify-content:center; gap:var(--th-space-2); width:100%; margin-top:var(--th-space-3); padding:10px var(--th-space-3); border:1px solid var(--th-color-violet); border-radius:12px; background:var(--th-gradient-action-primary); color:var(--th-color-surface); font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
#sticky-results { display:none; }
#quick-results:focus-visible { outline:2px solid var(--th-color-violet); outline-offset:4px; border-radius:var(--th-radius-card); }
@media (max-width:1100px) and (min-width:901px) {
  .planner-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:var(--th-space-4); }
  .answer-card, .goal-card { padding:var(--th-space-5); }
  .result-number { font-size:64px; }
  .result-money { font-size:30px; }
}
@media (max-width:900px) {
  .planner-grid { display:flex; flex-direction:column; gap:var(--th-space-5); }
  .planner-inputs { display:contents; }
  .planner-grid > *, .planner-inputs > * { width:100%; }
  .planner-inputs .goal-card { order:1; }
  .planner-inputs .setup-panel { order:2; }
  #quick-results { display:none; }
  #plan-editor { order:3; }
  .editor-heading { margin-top:var(--th-space-2); }
  .goal-amount-control, .goal-presets { max-width:none; }
  #svc-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #sticky-results:not([hidden]) { position:fixed; display:flex; align-items:center; justify-content:space-between; gap:var(--th-space-3); z-index:50; top:auto; bottom:0; left:0; right:0; width:auto; padding:var(--th-space-4) var(--th-space-4) max(var(--th-space-4),env(safe-area-inset-bottom)); background:linear-gradient(180deg,var(--th-color-surface) 25%,color-mix(in srgb,var(--th-color-violet-soft) 45%,var(--th-color-surface))); border:0; border-radius:20px 20px 0 0; box-shadow:var(--th-shadow-floating); pointer-events:auto; }
  #sticky-results:not([hidden])::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; border-radius:20px 20px 0 0; background:var(--th-gradient-accent-horizontal); }
  body.has-results-dock .income-page { padding-bottom:calc(var(--th-space-10) + var(--dock-h,150px)); }
  #sticky-results > div { min-width:0; }
  .dock-main { flex:1; }
  .dock-head { display:flex; align-items:center; justify-content:space-between; gap:var(--th-space-2); margin-bottom:2px; }
  .dock-label { display:block; color:var(--th-color-text-muted); font-size:11px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
  .dock-status { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; letter-spacing:.02em; padding:4px 12px; border-radius:999px; white-space:nowrap; }
  .dock-status::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; flex-shrink:0; }
  .dock-status.dock-good { background:var(--th-color-success-soft); color:var(--th-color-success); }
  .dock-status.dock-warn { background:var(--th-color-warning-soft); color:var(--th-color-warning); }
  .dock-status.dock-bad { background:var(--th-color-danger-soft); color:var(--th-color-danger); }
  #sticky-plan-copy { display:block; font-size:24px; font-weight:600; letter-spacing:-.01em; color:var(--th-color-violet-strong); overflow-wrap:anywhere; line-height:1.2; margin-top:2px; font-variant-numeric:tabular-nums; }
  .dock-per { font-size:13px; font-weight:600; letter-spacing:0; color:var(--th-color-text-muted); }
  .dock-progress { display:flex; align-items:center; gap:var(--th-space-3); margin-top:10px; }
  .dock-progress[hidden] { display:none; }
  .dock-track { flex:1; height:6px; border-radius:999px; background:color-mix(in srgb,var(--th-color-border-soft) 65%,var(--th-color-surface)); overflow:hidden; box-shadow:inset 0 1px 2px rgb(0 0 0/.07); }
  #sticky-plan-fill { display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--th-color-violet),var(--th-color-violet-strong)); transition:width .18s ease-out; }
  #sticky-plan-fill.dock-good { background:linear-gradient(90deg,var(--th-color-success),color-mix(in srgb,var(--th-color-success) 62%,#fff)); }
  #sticky-plan-fill.dock-warn { background:linear-gradient(90deg,var(--th-color-warning),color-mix(in srgb,var(--th-color-warning) 62%,#fff)); }
  #sticky-plan-fill.dock-bad { background:linear-gradient(90deg,var(--th-color-danger),color-mix(in srgb,var(--th-color-danger) 62%,#fff)); }
  #sticky-plan-pct { font-size:12px; font-weight:600; color:var(--th-color-text-muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
  .dock-note { display:block; font-size:12px; color:var(--th-color-text-muted); margin-top:6px; }
  .income-calculator-panel :is(input,select,button) { scroll-margin-block:120px 115px; }
}
@media (max-width:640px) {
  .income-page { padding-top:var(--th-space-4); padding-bottom:var(--th-space-8); }
  .income-hero { padding:var(--th-space-2) calc(40px + var(--th-space-4) * 2) var(--th-space-2) var(--th-space-4); margin-bottom:var(--th-space-5); }
  .income-hero .hero-kicker { margin-bottom:var(--th-space-2); }
  .income-hero::before { inset:-16px 0 -12px; }
  .hero-sparkle { top:var(--th-space-2); right:var(--th-space-4); }
  .setup-panel { gap:var(--th-space-3); padding:var(--th-space-3); }
  .goal-card, .answer-card { padding:var(--th-space-4); }
  .goal-card .goal-amount-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .goal-card #goal-number { min-height:58px; }
  .goal-card .goal-card-heading { margin-bottom:var(--th-space-2); }
  .goal-card .section-help { font-size:12px; margin-bottom:var(--th-space-2)!important; }
  .goal-weekly { font-size:13px; }
  .goal-presets { margin-block:var(--th-space-2); }
  .answer-topline { gap:var(--th-space-2); margin-bottom:var(--th-space-3); }
  .answer-card h3 { font-size:20px; }
  .result-number { font-size:58px; }
  .result-money { font-size:30px; }
  .stat-label { font-size:13px; }
  .stat-caption { font-size:12px; }
  .plan-progress-heading { font-size:12px; }
  .plan-progress-note { font-size:12px; }
  .next-move { padding:var(--th-space-3); }
  .next-move-icon { display:none; }
  .next-move p { font-size:13px; }
  .editor-heading h2 { font-size:21px; }
  #svc-fields { grid-template-columns:1fr; }
  #plan-editor > .card .section-toggle { gap:var(--th-space-2); padding:var(--th-space-3); }
  #plan-editor > .card .section-label { font-size:15px; }
  #plan-editor > .card .section-sub { font-size:12px; }
  #plan-editor > .card .section-body { padding-inline:var(--th-space-3); }
  .review-section .section-toggle { padding:var(--th-space-4); }
  .review-section .section-body { padding:0 var(--th-space-4) var(--th-space-4); }
  .review-section .section-label { font-size:15px; }
  .review-section .section-sub { font-size:12px; }
}
@media (max-width:360px) {
  .headline-stats { gap:var(--th-space-3); }
  .headline-stat + .headline-stat { padding-left:var(--th-space-3); }
  .result-number { font-size:50px; }
  .result-money { font-size:26px; }
}
@media print {
  .planner-grid, .planner-inputs { display:block; }
  .planner-grid > #quick-results { position:static; }
  .goal-card, .answer-card { margin-bottom:var(--th-space-5); }
  .review-heading, .example-note, #sticky-results, .result-print { display:none!important; }
  #detail-results { border:0; overflow:visible; }
  .review-section { break-inside:auto; }
  .review-section .section-toggle { padding-left:0; }
  .review-section .section-body { padding-inline:0; }
}

@media (max-width:640px) {
}
@media print {
  @page { size:A4; margin:14mm; }
  .income-hero, #calculator-form, #print-context { display:none!important; }
  .income-page-inner { max-width:none; }
  #print-plan-report { display:block; font-size:11px; line-height:1.45; }
  .print-report-header { padding-bottom:12px; margin-bottom:16px; border-bottom:2px solid var(--th-color-violet); }
  .print-report-header h1 { font-size:24px; line-height:1.2; margin:0 0 8px; color:var(--th-color-violet-strong); }
  .print-report-header p { font-size:11px; }
  .print-report-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
  .print-report-metrics .met { padding:12px; }
  .print-report-metrics .ml, .print-report-metrics .ms { font-size:10px; }
  .print-report-metrics .mv { font-size:24px; line-height:1.2; }
  .print-report-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:16px; }
  .print-report-columns > * { min-width:0; }
  #print-plan-report h2, #print-plan-report h3 { font-size:13px; margin:0 0 8px; }
  #print-plan-report .brow-row { padding:7px 0; font-size:10px; }
  #print-plan-report .note, .print-report-note { font-size:10px; line-height:1.5; margin-top:12px!important; color:var(--th-color-text-muted); }
  #print-plan-report .insight { padding:10px 12px; font-size:11px; }
}

@media screen and (min-width:901px) and (max-height:760px) {
  .planner-grid > #quick-results { position:static; }
}

/* Make the live game plan the focal result. */
@media screen {
  .answer-card, .answer-card:is(.ok,.warn,.danger) { border:2px solid color-mix(in srgb,var(--th-color-violet) 40%,var(--th-color-border)); box-shadow:var(--th-shadow-card); }
  .answer-card::after { height:5px; }
  .answer-card::before { background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--th-color-periwinkle) 22%,transparent),transparent 35%); }
  .answer-topline { display:flex; flex-wrap:nowrap; justify-content:flex-start; align-items:center; gap:var(--th-space-3); margin-bottom:var(--th-space-4); }
  .answer-icon { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border-radius:var(--th-radius-control); background:var(--th-color-violet-soft); color:var(--th-color-violet-strong); }
  .answer-icon svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .answer-topline .answer-kicker { font-size:24px; line-height:1.25; font-weight:600; color:var(--th-color-ink); letter-spacing:-.02em; }
  .answer-status { display:flex; flex-direction:column; align-items:flex-start; gap:var(--th-space-2); margin-bottom:var(--th-space-5); }
  .result-verdict { font-size:15px; line-height:1.5; font-weight:500; color:var(--th-color-ink); }
  .headline-stats { padding:var(--th-space-4); background:var(--th-color-surface-soft); border:1px solid var(--th-color-border-soft); border-radius:var(--th-radius-control); }
  .headline-stat .stat-label { font-weight:600; }
  .result-number { font-size:36px; }
  .result-money { font-size:36px; }
}
@media screen and (max-width:1100px) and (min-width:901px) {
  .answer-topline .answer-kicker { font-size:22px; }
  .result-money { font-size:36px; }
}
@media screen and (max-width:640px) {
  .answer-topline .answer-kicker { font-size:22px; }
  .answer-topline { gap:var(--th-space-3); }
  .answer-icon { width:40px; height:40px; flex-basis:40px; }
  .answer-icon svg { width:24px; height:24px; }
  .answer-status { margin-bottom:var(--th-space-4); }
  .result-verdict { font-size:14px; }
  .headline-stats { padding:var(--th-space-3); gap:var(--th-space-3); }
  .headline-stat + .headline-stat { padding-left:var(--th-space-3); }
  .result-number { font-size:64px; }
  .result-money { font-size:32px; }
}
@media screen and (max-width:360px) {
  .answer-topline .answer-kicker { font-size:20px; }
  .answer-icon { width:36px; height:36px; flex-basis:36px; }
  .headline-stats { padding:var(--th-space-2); gap:var(--th-space-2); }
  .headline-stat + .headline-stat { padding-left:var(--th-space-2); }
  .result-number { font-size:58px; }
  .result-money { font-size:28px; }
}
@media (forced-colors:active) {
  .answer-card, .answer-card:is(.ok,.warn,.danger) { border-color:CanvasText; }
  .answer-icon { border:1px solid CanvasText; }
}

.plan-progress-heading > span { flex:1; min-width:0; }
.plan-progress-heading strong { flex-shrink:0; }

/* First-use guidance keeps the game plan visible without invented results. */
.field-example { margin:var(--th-space-2) 0 0; font-size:13px; color:var(--th-color-violet-strong); }
.empty-plan-title { margin:var(--th-space-4) 0 var(--th-space-2); font-size:19px; line-height:1.3; font-weight:600; color:var(--th-color-ink); }
.empty-plan .answer-explanation { font-size:16px; line-height:1.6; color:var(--th-color-text-muted); }
#svc-fields input::placeholder { font-size:14px; font-weight:400; color:var(--th-color-text-muted); opacity:1; }

#use-service-examples { margin-top:var(--th-space-3); }
.plan-review:has(#detail-results:empty) { display:none; }

/* Make the first step the clear primary action in the game plan. */
.income-calculator-panel .result-edit[data-th-action="primary"] {
  min-height:var(--th-control-height-prominent);
  padding:var(--th-space-3) var(--th-space-4);
  border:1px solid var(--th-color-violet);
  border-radius:var(--th-radius-control);
  background:var(--th-gradient-action-primary);
  color:var(--th-color-surface);
  font-weight:var(--th-control-font-weight-primary);
  box-shadow:var(--th-shadow-control);
  text-decoration:none;
}
.income-calculator-panel .result-edit[data-th-action="primary"]:is(:hover,:focus-visible) { background:var(--th-gradient-action-primary-hover); text-decoration:none; }
@media (forced-colors:active) {
  .income-calculator-panel .result-edit[data-th-action="primary"] { background:ButtonFace; color:ButtonText; border:2px solid ButtonText; }
}

/* Keep setup concise; give the populated game plan the strongest emphasis. */
#plan-editor { margin-top:var(--th-space-5); }
#service-summary:empty { display:none; }
.assumptions-note { margin:var(--th-space-5) var(--th-space-1) var(--th-space-3); font-size:13px; line-height:1.5; color:var(--th-color-text-muted); }
#goal-origin { color:var(--th-color-violet-strong); }
.empty-plan { padding:var(--th-space-5); box-shadow:var(--th-shadow-control); }
.empty-plan .answer-topline { margin-bottom:var(--th-space-2); }
.empty-plan .answer-kicker { font-size:20px; line-height:1.3; }
.empty-plan .answer-icon { width:32px; height:32px; flex-basis:32px; }
.empty-plan .answer-icon svg { width:20px; height:20px; }
.empty-plan .answer-explanation { margin-bottom:0!important; font-size:13px; line-height:1.5; color:color-mix(in srgb, var(--th-color-text-muted) 75%, var(--th-color-surface)); }
.empty-plan .result-edit { margin-top:var(--th-space-3); }
@media (max-width:900px) { #plan-editor { margin-top:0; } }
@media (max-width:640px) {
  .empty-plan { padding:var(--th-space-4); }
  .empty-plan .answer-kicker { font-size:18px; }
  .empty-plan .answer-topline { gap:var(--th-space-2); }
}

/* Match the nail calculator: filled question marks and plain inline help. */
.field-label-with-help { display:inline-flex; align-items:center; gap:var(--th-space-1); min-width:0; }
.frow > .field-label-with-help, .staff-row > .field-label-with-help { flex:1 1 134px; }
.field-label-with-help .flabel { flex:1; min-width:0; }
.mini .field-label-with-help { display:flex; justify-content:space-between; margin-bottom:var(--th-space-1); }
.mini .field-label-with-help label { margin:0; }
.income-calculator-panel .help-toggle {
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 var(--th-control-height-standard);
  width:var(--th-control-height-standard); height:var(--th-control-height-standard); padding:0;
  border:0; border-radius:var(--th-radius-pill); background:transparent; color:var(--th-color-violet-strong);
}
.help-toggle > span {
  display:grid; place-items:center; width:24px; height:24px; border:0;
  border-radius:var(--th-radius-pill); background:var(--th-color-violet-soft);
  color:var(--th-color-violet-strong); font-size:14px; line-height:1; font-weight:700;
}
.income-calculator-panel .help-toggle[aria-expanded="true"] > span { background:color-mix(in srgb,var(--th-color-violet) 16%,var(--th-color-surface)); box-shadow:var(--th-shadow-control); }
.help-message {
  margin:var(--th-space-1) 0!important; padding:0;
  background:transparent; border:0; border-radius:0;
  color:var(--th-color-text-muted); font-size:13px; font-weight:400; line-height:1.6; overflow-wrap:anywhere;
}
.two-col > .mini { min-width:0; }
@media (hover:hover) { .income-calculator-panel .help-toggle:hover > span { background:color-mix(in srgb,var(--th-color-violet) 16%,var(--th-color-surface)); } }
@media (max-width:640px) {
  #svc-fields .fval-control input { width:104px; }
  .frow > .field-label-with-help { flex-basis:128px; }
}
@media (forced-colors:active) {
  .help-toggle > span { border:1px solid ButtonText; background:ButtonFace; color:ButtonText; }
  .income-calculator-panel .help-toggle[aria-expanded="true"] { outline:1px solid Highlight; }
  .help-message { border-color:CanvasText; }
}

/* Paired fields share label, input, error and help rows. */
.two-col > .mini { display:grid; grid-template-rows:subgrid; grid-row:span 4; row-gap:0; }
.two-col > .mini > :is(label,.field-label-with-help) {
  grid-row:1; display:flex; align-items:center; min-height:var(--th-control-height-standard);
  margin:0 0 var(--th-space-1);
}
.two-col > .mini > input { grid-row:2; align-self:start; }
.two-col > .mini > .field-error { grid-row:3; }
.two-col > .mini > .help-message { grid-row:4; }
.mini .field-label-with-help label { min-width:0; }

/* Mobile setup follows the reading order with room for full service names. */
@media (max-width:640px) {
  .setup-panel { grid-template-columns:minmax(0,1fr); gap:var(--th-space-4); padding:var(--th-space-4); }
  .setup-panel > *, .setup-panel .mode-group { grid-column:1; grid-row:auto; }
  .setup-panel .mode-group legend { position:static; width:auto; height:auto; overflow:visible; clip-path:none; }
  .setup-panel :is(label,legend) { margin-bottom:var(--th-space-2); }
  .setup-panel select { font-size:var(--th-field-font-size-mobile); min-height:var(--th-control-height-prominent); }
  .setup-panel .mode-toggle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .setup-panel .mode-btn { min-width:0; min-height:var(--th-control-height-prominent); }
}

/* A shorter phone flow: goal, appointment, game plan, optional adjustments. */
.mobile-disclosure { display:none; }
@media screen and (max-width:900px) {
  .mobile-disclosure { display:flex; align-items:center; justify-content:space-between; gap:var(--th-space-2); }
  .goal-ideas-toggle { width:100%; padding:0; border:0; background:transparent; color:var(--th-color-violet-strong); text-align:left; }
  .goal-ideas-toggle[aria-expanded=true] .section-chevron::after { display:none; }
  .goal-card .goal-amount-control { margin-bottom:0; }
  .goal-weekly { margin-top:var(--th-space-1)!important; padding:0; background:transparent; }
  #plan-editor > #quick-results { margin-block:var(--th-space-4); scroll-margin-top:110px; }
  #svc-fields input[type=range] { display:none; }
  .plan-review { margin-top:var(--th-space-5); }
  .review-heading .eyebrow { display:none; }
  .review-heading h2 { font-size:18px; }
}
@media screen and (max-width:640px) {
  .income-hero { margin-bottom:var(--th-space-4); padding-block:0; }
  .income-hero > p:last-of-type { max-width:100%; }
  .income-hero h1 { margin-bottom:var(--th-space-2); }
  .setup-panel { gap:var(--th-space-3); margin-bottom:var(--th-space-4); }
  .planner-grid { gap:var(--th-space-4); }
  .goal-card .goal-icon { width:32px; height:32px; flex-basis:32px; }
  .goal-card-heading { gap:var(--th-space-2); }
  .goal-card h2 { font-size:18px; }
  .goal-card .goal-amount-control { padding-bottom:var(--th-space-1); }
  #svc-fields { gap:var(--th-space-3); }
}

/* Searchable guidance stays available without lengthening the main task. */
.income-learning { margin:var(--th-space-8) 0 0; font-size:16px; line-height:1.6; }
.income-learning > h2 { margin:0 0 var(--th-space-4); font-size:20px; line-height:1.3; font-weight:600; }
.income-learning details { margin:0 0 var(--th-space-3); border:1px solid var(--th-color-border); border-radius:var(--th-radius-card); background:var(--th-color-surface); }
.income-learning summary { display:flex; align-items:center; justify-content:space-between; gap:var(--th-space-3); min-height:var(--th-control-height-prominent); padding:var(--th-space-4); border-radius:var(--th-radius-card); color:var(--th-color-ink); font-size:var(--th-control-font-size-standard); font-weight:var(--th-control-font-weight-secondary); line-height:var(--th-control-line-height-standard); cursor:pointer; list-style:none; }
.income-learning summary::-webkit-details-marker { display:none; }
.income-learning summary::after { content:"+"; color:var(--th-color-violet-strong); font-size:22px; flex-shrink:0; }
.income-learning details[open] > summary::after { content:"−"; }
.income-learning :is(summary,a):focus-visible { outline:2px solid var(--th-color-violet); outline-offset:3px; box-shadow:var(--th-focus-ring); }
.income-learning-body { padding:0 var(--th-space-4) var(--th-space-4); }
.income-learning-body p { margin:0 0 var(--th-space-4); }
.income-learning-body :is(ol,ul) { margin:0 0 var(--th-space-4); padding-left:var(--th-space-5); }
.income-learning-body li + li { margin-top:var(--th-space-3); }
.income-learning-body h3 { margin:var(--th-space-6) 0 var(--th-space-2); font-size:16px; font-weight:600; line-height:1.5; }
.income-learning-body > :first-child { margin-top:0; }
.income-learning-body > :last-child { margin-bottom:0; }
.income-learning-body strong { font-weight:600; }
.income-learning .income-related-tools { padding:0; list-style:none; }
.income-learning .income-related-tools li + li { margin-top:var(--th-space-1); }
.income-learning .income-related-tools a { display:flex; align-items:center; width:fit-content; min-height:var(--th-control-height-standard); color:var(--th-color-violet-strong); font-weight:var(--th-control-font-weight-tertiary); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:640px) {
  .income-learning > h2 { font-size:18px; }
}
@media print { .income-learning { display:none!important; } }

/* Use spare mobile header space so the shortcut never covers the plan. */
.income-back-to-top {
  position:fixed; inset-inline-end:calc(var(--th-space-4) + env(safe-area-inset-right,0px));
  bottom:calc(var(--th-space-4) + env(safe-area-inset-bottom,0px));
  z-index:51; display:grid; place-items:center; width:var(--th-control-height-prominent); height:var(--th-control-height-prominent);
  padding:0; border:2px solid var(--th-color-surface); border-radius:var(--th-radius-pill);
  background:var(--th-gradient-action-primary); color:var(--th-color-surface); box-shadow:var(--th-shadow-control);
  cursor:pointer; touch-action:manipulation; opacity:0; visibility:hidden; pointer-events:none;
}
.income-back-to-top.is-visible { opacity:1; visibility:visible; pointer-events:auto; }
.income-back-to-top.in-header { top:var(--income-header-top,var(--th-space-2)); bottom:auto; inset-inline-end:var(--income-header-right,64px); z-index:5001; box-shadow:none; }
.income-back-to-top svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.income-back-to-top:focus-visible { outline:2px solid var(--th-color-violet-strong); outline-offset:2px; }
@media (hover:hover) { .income-back-to-top:hover { background:var(--th-gradient-action-primary-hover); } }
@media (prefers-reduced-motion:no-preference) { .income-back-to-top { transition:opacity 150ms ease; } }
.menu-open .income-back-to-top, .th-embed .income-back-to-top { display:none; }
@media (forced-colors:active) { .income-back-to-top { background:ButtonFace; color:ButtonText; border-color:ButtonText; } }
@media print { .income-back-to-top { display:none!important; } }

/* A quiet lilac target keeps the monthly game plan as the main highlight. */
@media screen and (forced-colors:none) {
  .income-calculator-panel .goal-card { background:var(--th-color-violet-soft); color:var(--th-color-ink); box-shadow:var(--th-shadow-control); }
  .goal-card .goal-icon { background:var(--th-color-surface); }
  .goal-card .goal-amount-control { border-color:var(--th-color-control-border); }
  .goal-card .goal-amount-control:focus-within { border-color:var(--th-color-violet-strong); }
  .goal-card .goal-weekly { background:transparent; }
}

/* Lift the complete game-plan card above the surrounding working surfaces. */
@media screen and (forced-colors:none) {
  .income-calculator-panel .answer-card { box-shadow:var(--th-shadow-floating),var(--th-shadow-control); }
}

@media (max-width:640px) {
  .income-hero h1 { padding-right:56px; }
}
