.budget-tool{border-top:2px solid #1a1a1a;border-bottom:1px solid #ddd;padding:22px 0;margin:24px 0}
.budget-tool label{display:block;font-size:16px;font-weight:600;margin:14px 0 6px}
.budget-tool input,.budget-tool select{width:100%;box-sizing:border-box;font:inherit;font-size:18px;min-height:48px;background:#fff;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;padding:10px}
.budget-tool button,.example-button{font:inherit;font-size:18px;min-height:46px;padding:10px 16px;border:1px solid #1a1a1a;border-radius:4px;background:#1a1a1a;color:#fff;cursor:pointer}
.example-button{background:#fff;color:#1a1a1a;margin:8px 0 14px}
.budget-tool :focus-visible,.example-button:focus-visible{outline:3px solid #1a73e8;outline-offset:3px}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.small{font-size:14px!important;line-height:1.55!important;color:#555}
details{border-top:1px solid #ddd;padding:14px 0;margin:16px 0}summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center;gap:8px}summary:before{content:'+'}details[open]>summary:before{content:'−'}
.answer-label{font-size:16px;font-weight:600;margin:20px 0 8px}.answer{font:600 clamp(27px,5.5vw,37px)/1.15 Inter,Arial,sans-serif;margin:0 0 12px!important;letter-spacing:-.025em}.answer.secondary{font-size:clamp(23px,4.4vw,26px)}
#budget-result{scroll-margin-top:20px;margin-top:24px}table{width:100%;table-layout:fixed}table caption{font-size:14px;text-align:left;margin-bottom:10px}th,td{white-space:normal!important;vertical-align:top;text-align:left!important;padding:12px 8px}th{width:62%;font-size:16px}td{font-size:16px}th small{display:block;font-size:14px;line-height:1.5;color:#555;font-weight:400;margin-top:6px}.gaps{padding-left:22px}.gaps li{margin:10px 0;font-size:18px;line-height:1.55}
.actions{display:flex;gap:12px;margin-top:20px}.step-count{font-size:14px;color:#555}.review-note{font-size:14px;color:#555;margin-top:24px;border-top:1px solid #ddd;padding-top:12px}.source-list{padding-left:20px}.source-list li{font-size:16px;margin:10px 0;line-height:1.5}
[hidden]{display:none!important}footer{padding-bottom:110px!important}button,input,select,summary{touch-action:manipulation}
@media(max-width:420px){.field-pair{grid-template-columns:1fr}.answer{font-size:27px}th{width:57%;padding:10px 4px}td{font-size:14px;padding:10px 4px}.budget-tool button{font-size:16px}}

/* Keep the existing type families while reducing minor size variations. */
.by small{color:#555;font-size:14px}footer{color:#666}
@media(max-width:640px){body{font-size:18px}}
/* The coloured logo dot is decorative, with the same visible size and colour. */
.logo i{font-size:0}.logo i::after{content:".";font-size:23px}
