.rehab-page { color:#172439; line-height:1.7; }
.rehab-page * { box-sizing:border-box; }
.rehab-page [hidden] { display:none!important; }
.rehab-page h1,.rehab-page h2,.rehab-page h3,.rehab-page p { margin-top:0; }
.rehab-page h1 { font-size:clamp(2rem,4vw,2.8rem); line-height:1.25; font-weight:800; margin:8px 0 15px; }
.rehab-page h2 { font-size:1.55rem; line-height:1.35; font-weight:750; margin-bottom:14px; }
.rehab-page h3 { font-size:1.08rem; line-height:1.4; font-weight:700; margin-bottom:9px; }
.rehab-page p { color:#526277; }
.rehab-eyebrow { color:#08746c!important; font-size:.82rem; font-weight:750; margin:0!important; }
.rehab-heading { padding:20px 0 27px; }
.rehab-heading>p:not(.rehab-eyebrow) { font-size:1.04rem; max-width:66ch; }
.rehab-heading nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:17px; }
.rehab-heading nav a { display:inline-flex; padding:7px 12px; background:#f2f8f7; border:1px solid #cfe4e0; border-radius:5px; color:#075b56; font-size:.88rem; font-weight:650; text-decoration:none; }
.rehab-tool { border:1px solid #cbd9e3; border-radius:8px; background:#fff; padding:clamp(16px,3vw,27px); }
.rehab-tool-head { display:flex; justify-content:space-between; gap:16px; align-items:end; margin-bottom:18px; }
.rehab-tool-head h2 { margin:3px 0 0; }
.rehab-tool-head>span { color:#617184; font-size:.8rem; text-align:right; }
.rehab-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.rehab-field { display:flex; flex-direction:column; min-width:0; gap:6px; margin:0; color:#203149; }
.rehab-field strong { color:#203149; font-size:.92rem; line-height:1.4; }
.rehab-field small { font-size:.77rem; line-height:1.55; color:#63748a; font-weight:400; }
.rehab-field input,.rehab-field select { width:100%; min-width:0; height:48px; border:1px solid #c7d5e2; border-radius:5px; background:#fff; color:#142a3b; padding:0 12px; font:inherit; font-size:1rem; box-shadow:none; }
.rehab-field input:focus,.rehab-field select:focus { border-color:#08746c; outline:2px solid #b9e8e1; outline-offset:1px; }
.rehab-unit { display:flex; position:relative; }
.rehab-unit input { padding-right:38px; }
.rehab-unit>b { position:absolute; right:13px; top:50%; transform:translateY(-50%); color:#697b8d; font-size:.85rem; }
.rehab-extra-household { margin-top:16px; max-width:280px; }
.rehab-help,.rehab-advanced,.rehab-process { border:1px solid #d1dee7; border-radius:5px; margin-top:17px; background:#f9fbfc; }
.rehab-help summary,.rehab-advanced summary,.rehab-process summary { cursor:pointer; padding:12px 15px; color:#183a42; font-weight:700; }
.rehab-help p { padding:0 15px 14px; margin:0; font-size:.86rem; }
.rehab-advanced { margin-top:9px; }
.rehab-advanced>.rehab-fields { padding:7px 15px 15px; }
.rehab-wide { grid-column:1/-1; }
.rehab-period { border:0; padding:2px 15px 17px; margin:0; display:flex; flex-wrap:wrap; gap:7px; }
.rehab-period legend { font-size:.88rem; font-weight:700; padding:0 0 6px; color:#203149; }
.rehab-period label { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid #c7d5e2; border-radius:5px; background:#fff; color:#283d4f; font-size:.83rem; line-height:1.35; cursor:pointer; }
.rehab-period input { accent-color:#08746c; margin:0; }
.rehab-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:19px; }
.rehab-actions button { min-height:43px; padding:9px 17px; border-radius:5px; border:1px solid #bfd2dd; background:#fff; color:#213748; font:inherit; font-size:.88rem; font-weight:700; cursor:pointer; }
.rehab-actions .rehab-primary { background:#08746c; border-color:#08746c; color:#fff; }
.rehab-actions button:hover { filter:brightness(.95); }
.rehab-status { min-height:1.5em; margin:10px 0 0; color:#5b6d7c; font-size:.83rem; }
.rehab-results { margin-top:23px; border-top:1px solid #d6e2e8; padding-top:23px; }
.rehab-result-main { background:#0e6962; color:#fff; padding:20px 23px; border-radius:6px; }
.rehab-result-main p,.rehab-result-main small { color:#e3f4f1; margin:0; }
.rehab-result-main h2 { color:#fff; font-size:1rem; margin:4px 0 5px; }
.rehab-result-main output { display:block; color:#fff; font-size:clamp(1.8rem,4vw,2.45rem); font-weight:800; line-height:1.2; margin:0 0 5px; overflow-wrap:anywhere; }
.rehab-result-state { border-left:3px solid #08746c; padding:10px 13px; background:#f0f8f6; color:#27484a; font-size:.86rem; margin-top:12px; }
.rehab-result-state.needs-review { border-color:#be791e; background:#fff8eb; color:#704710; }
.rehab-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; margin:17px 0 0; }
.rehab-summary>div { display:flex; justify-content:space-between; align-items:baseline; gap:9px; padding:10px 0; min-width:0; border-bottom:1px solid #e4ebef; }
.rehab-summary dt { min-width:0; color:#5b6b7d; font-size:.82rem; }
.rehab-summary dd { flex:none; margin:0; color:#1b3144; text-align:right; font-size:.88rem; font-weight:750; white-space:nowrap; }
.rehab-advanced-results { margin-top:23px; }
.rehab-advanced-results h3 { border-top:1px solid #d9e4e9; padding-top:19px; }
.rehab-warning { border-left:3px solid #be791e; background:#fff8eb; color:#724f1d!important; padding:10px 13px; margin:12px 0 0; font-size:.84rem; }
.rehab-note { margin:10px 0 0; font-size:.78rem; }
.rehab-process { background:#fff; }
.rehab-process dl { margin:0; padding:0 15px 13px; }
.rehab-process dl>div { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-top:1px solid #e6edef; font-size:.84rem; }
.rehab-process dt { color:#617184; }
.rehab-process dd { margin:0; color:#203149; font-weight:700; text-align:right; overflow-wrap:anywhere; }
#copyStatus { font-size:.78rem; color:#355b58; }
.rehab-section { margin-top:42px; padding-top:29px; border-top:1px solid #d7e3e8; }
.rehab-section>p:not(.rehab-eyebrow) { font-size:.92rem; }
.rehab-table-wrap { width:100%; overflow-x:auto; margin:17px 0 10px; }
.rehab-table-wrap table { width:100%; border-collapse:collapse; font-size:.87rem; }
.rehab-table-wrap th,.rehab-table-wrap td { padding:10px 12px; border-bottom:1px solid #dce7ec; text-align:right; white-space:nowrap; }
.rehab-table-wrap th:first-child { text-align:left; }
.rehab-table-wrap thead { background:#f1f7f6; color:#1c4947; }
.rehab-formula { display:grid; gap:4px; margin:18px 0; background:#f4f8f8; border-left:3px solid #08746c; padding:15px 18px; }
.rehab-formula span { color:#527075; font-size:.79rem; }
.rehab-formula strong { font-size:.91rem; margin-bottom:9px; overflow-wrap:anywhere; }
.rehab-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 25px; margin:26px 0; }
.rehab-info-grid section { padding-top:14px; border-top:1px solid #d6e4e7; }
.rehab-info-grid p { font-size:.86rem; margin:0; }
.rehab-disclaimer { border-left:3px solid #ba852d; background:#fff9ed; padding:15px 18px; margin-top:36px; font-size:.88rem; }
.rehab-disclaimer strong { color:#674d20; }
.rehab-disclaimer p { color:#6e5f46; margin:5px 0 0; }
.rehab-faq details { border-bottom:1px solid #dbe5e9; }
.rehab-faq summary { padding:13px 0; cursor:pointer; font-size:.93rem; font-weight:700; color:#243d51; }
.rehab-faq details p { font-size:.86rem; padding:0 0 13px; margin:0; }
.rehab-sources ul { padding-left:20px; margin:10px 0 14px; }
.rehab-sources li { margin:5px 0; font-size:.87rem; }
.rehab-related>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.rehab-related a { display:flex; flex-direction:column; gap:5px; border:1px solid #cbdde5; border-radius:6px; padding:13px 15px; text-decoration:none; color:#183a49; }
.rehab-related a span { color:#627487; font-size:.79rem; }
@media(max-width:650px){
  .rehab-heading { padding-top:10px; }
  .rehab-tool-head { align-items:start; flex-direction:column; gap:3px; }
  .rehab-tool-head>span { text-align:left; }
  .rehab-fields,.rehab-summary,.rehab-info-grid,.rehab-related>div { grid-template-columns:minmax(0,1fr); }
  .rehab-wide { grid-column:auto; }
  .rehab-summary { gap:0; }
  .rehab-results { padding-bottom:62px; }
}
@media(max-width:375px){
  .rehab-tool { padding:14px; }
  .rehab-period { flex-direction:column; }
  .rehab-period label { width:100%; }
  .rehab-process dl>div { flex-direction:column; gap:2px; }
  .rehab-process dd { text-align:left; }
  .rehab-table-wrap th,.rehab-table-wrap td { padding:8px 4px; font-size:.75rem; }
}
