:root { color-scheme: light; --rep-green:#009b36; --rep-green-dark:#007a2c; --rep-lime:#a6cb00; --rep-leaf:#76bd1d; --rep-ink:#414141; --rep-muted:#75808b; --rep-line:#aeb7bf; --rep-panel-head:#f7f7f7; --rep-net:#9d9f98; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; padding-bottom:68px; background:#fff; color:var(--rep-ink); font:15px/1.45 Arial,Helvetica,sans-serif; }
[hidden] { display:none !important; }
button,input,select { font:inherit; }
button { cursor:pointer; }
a { color:var(--rep-green-dark); }
:focus-visible { outline:2px solid var(--rep-green-dark); outline-offset:2px; }
.rep-container { width:min(100% - 32px,1130px); margin-inline:auto; }
.rep-visually-hidden,.rep-skip:not(:focus-visible) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.rep-skip:focus-visible { position:fixed; top:8px; left:8px; z-index:100; padding:10px 14px; background:var(--rep-green-dark); color:white; }
.rep-site-header { background:#fff; }
.rep-header-inner { display:flex; align-items:center; gap:18px; min-height:84px; }
.rep-brand { flex:0 0 auto; display:flex; align-items:center; }
.rep-brand img { width:178px; height:60px; max-width:100%; object-fit:cover; }
.rep-header-title { flex:1; font-size:25px; line-height:1.2; color:#686868; font-weight:600; }
.rep-header-title span { display:block; color:var(--rep-muted); font-size:12px; line-height:1.6; font-weight:400; }
.rep-header-contact { flex:0 0 auto; font-size:14px; font-weight:700; text-decoration:none; }
.rep-main-nav { background:#f4f4f4; border-bottom:1px solid #eee; }
.rep-main-nav .rep-container { display:flex; align-items:center; gap:40px; }
.rep-main-nav button { padding:10px 0 9px; background:none; color:var(--rep-ink); border:0; border-bottom:3px solid transparent; font-size:16px; }
.rep-main-nav button[aria-current="step"] { border-bottom-color:var(--rep-green); font-weight:700; }
.rep-context { display:flex; gap:9px; align-items:center; margin:11px 0 14px; color:var(--rep-muted); font-size:12px; }
.rep-context a { color:var(--rep-muted); }
.rep-step { min-height:390px; }
.rep-panel { margin:0 0 10px; border:1px solid var(--rep-line); background:white; }
.rep-panel-heading { min-height:46px; padding:8px 12px; display:flex; justify-content:space-between; align-items:center; gap:10px; border-bottom:1px solid var(--rep-line); background:var(--rep-panel-head); }
.rep-panel-heading h2 { margin:0; font-size:16px; font-weight:700; }
.rep-panel-toggle { flex:0 0 auto; min-width:30px; min-height:28px; border:0; background:transparent; color:var(--rep-ink); font-size:23px; line-height:1; }
.rep-overview-body { padding:12px 20px 16px; }
.rep-funding-headline { margin:8px 0 12px; text-align:center; font-size:16px; font-weight:700; }
.rep-chart-layout { min-height:295px; display:flex; align-items:center; justify-content:center; gap:8px; }
.rep-chart { margin:0; width:min(100%,300px); flex:0 1 300px; }
.rep-chart svg { display:block; width:100%; max-height:286px; overflow:visible; }
.rep-chart circle { fill:none; stroke-width:17; }
.rep-chart-net { stroke:var(--rep-net); }
.rep-chart-allowance { stroke:var(--rep-lime); }
.rep-chart-tax { stroke:var(--rep-leaf); }
.rep-chart-center-label { fill:var(--rep-muted); font:5.6px Arial,sans-serif; }
.rep-chart-center-value { fill:var(--rep-muted); font:5.6px Arial,sans-serif; }
.rep-chart-legend { list-style:none; margin:0; padding:0; color:var(--rep-muted); font-size:12px; line-height:1.65; }
.rep-chart-legend li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.rep-chart-legend strong { font-weight:400; }
.rep-legend-color { width:14px; height:14px; display:inline-block; flex:0 0 14px; }
.rep-legend-net { background:var(--rep-net); }
.rep-legend-allowance { background:var(--rep-lime); }
.rep-legend-tax { background:var(--rep-leaf); }
.rep-chart-summary { margin:12px auto 1px; max-width:760px; text-align:center; font-size:14px; }
.rep-model-note { max-width:840px; margin:14px auto 0; padding:10px 12px; border-left:3px solid var(--rep-green); background:#f6faf5; color:#56635b; font-size:12px; line-height:1.5; }
.rep-inputs-body { padding:19px 23px 22px; }
.rep-person-group { border:0; padding:0; margin:0 0 22px; min-width:0; }
.rep-person-group legend { width:100%; margin:0 0 16px; padding:0; font-weight:700; font-size:16px; }
.rep-person-group legend::before { content:"⌄"; display:inline-block; margin-right:10px; font-size:23px; line-height:12px; }
.rep-fields,.rep-child-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px 30px; }
.rep-field { min-width:0; }
.rep-field label,.rep-field>legend { display:block; margin-bottom:3px; font-size:13px; font-weight:400; }
.rep-field input,.rep-field select { display:block; width:100%; min-height:33px; border:1px solid var(--rep-line); border-radius:0; background:#fff; color:var(--rep-ink); padding:5px 10px; }
.rep-field select { appearance:none; padding-right:30px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%236b7b82' stroke-width='2' d='m5 9 7 7 7-7'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 6px center; background-size:20px; }
.rep-field input[type="date"] { min-width:0; }
.rep-suffix-input { display:flex; min-height:33px; border:1px solid var(--rep-line); background:white; align-items:center; }
.rep-suffix-input input { flex:1; min-width:0; border:0; text-align:right; }
.rep-suffix-input>span { padding:0 9px; color:var(--rep-muted); }
.rep-suffix-input output { flex:1; padding:5px 10px; text-align:right; font-size:14px; background:#f0f1f1; }
.rep-child-fields { margin:16px 0 0; padding:15px; background:#f8faf8; border-left:3px solid var(--rep-green); }
.rep-child-entry { grid-column:span 2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:11px; border:1px solid #d5dce0; background:white; }
.rep-partner-group { margin-top:22px; padding-top:18px; border-top:1px solid #e1e4e5; }
.rep-error { margin:8px 0 0; color:#a12020; font-weight:700; }
.rep-error:empty { display:none; }
.rep-recalculate { margin-top:8px; padding:7px 16px; min-height:36px; border:1px solid var(--rep-green); background:white; color:var(--rep-green-dark); font-weight:700; }
.rep-recalculate:hover { background:#eff9ef; }
.rep-results-body { padding:18px 23px 24px; }
.rep-tabs { display:flex; gap:4px; border-bottom:2px solid var(--rep-line); margin:0 0 16px; }
.rep-tabs button { padding:10px 13px; min-height:40px; background:white; border:0; border-bottom:2px solid transparent; margin-bottom:-2px; color:var(--rep-ink); font-weight:700; }
.rep-tabs button[aria-selected="true"] { border-bottom-color:var(--rep-green); color:var(--rep-green-dark); }
.rep-result-person h3 { margin:0 0 13px; font-size:16px; }
.rep-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; }
.rep-flow>div { padding:10px 12px; border:1px solid #d5dce0; }
.rep-flow dt { color:var(--rep-muted); font-size:12px; }
.rep-flow dd { margin:4px 0 0; font-size:19px; font-weight:700; white-space:nowrap; }
.rep-flow-total { background:#f4f8f4; }
.rep-flow-ratio { background:#eff8e6; border-color:var(--rep-green) !important; }
.rep-explanation { margin:22px 0 0; padding:14px 0 0; border-top:1px solid #d5dce0; }
.rep-explanation summary { font-weight:700; cursor:pointer; }
.rep-explanation p { font-size:14px; line-height:1.6; }
.rep-performance-charts { display:grid; grid-template-columns:1fr 1fr; gap:15px; padding:20px 18px 16px; }
.rep-performance-chart { margin:0; display:flex; flex-direction:column; align-items:center; gap:3px; min-width:0; }
.rep-performance-chart figcaption { align-self:stretch; text-align:center; font-size:16px; font-weight:700; }
.rep-performance-chart svg { width:100%; height:190px; overflow:visible; border-bottom:1px solid var(--rep-line); }
.rep-performance-chart line { stroke:var(--rep-line); stroke-width:.6; }
.rep-performance-chart rect { fill:var(--rep-lime); }
.rep-performance-chart strong { color:var(--rep-muted); font-size:13px; }
.rep-performance-chart small { color:var(--rep-muted); }
#rep-performance-tabs { margin:12px 14px 0; }
.rep-performance-body { padding:18px 23px 26px; }
.rep-performance-body h3 { margin:0 0 16px; font-size:16px; }
.rep-payout-choice { padding:0; margin:0; border:0; }
.rep-payout-choice>div { display:flex; min-height:33px; }
.rep-payout-choice label { flex:1; display:flex; align-items:center; justify-content:center; gap:4px; margin:0; padding:4px 5px; border:1px solid var(--rep-line); font-size:13px; cursor:pointer; }
.rep-payout-choice label+label { border-left:0; }
.rep-payout-choice label:has(input:checked) { border-bottom:3px solid var(--rep-green); }
.rep-payout-choice input { width:auto; min-height:0; margin:0; }
.rep-capital-details { margin:22px 0 0; border-top:1px solid #d5dce0; }
.rep-capital-details summary { padding:14px 0; color:var(--rep-green-dark); font-weight:700; cursor:pointer; }
.rep-capital-details-body { padding:4px 0 14px; }
.rep-capital-details dl { margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.rep-capital-details dl>div { display:flex; align-items:baseline; justify-content:space-between; gap:12px; min-width:0; padding:9px 0; border-bottom:1px solid #e6e9e8; }
.rep-capital-details dt { color:#5a6570; font-size:13px; }
.rep-capital-details dd { margin:0; text-align:right; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }
.rep-capital-details .rep-capital-subtotal,.rep-capital-details .rep-capital-total { color:var(--rep-ink); font-weight:700; }
.rep-capital-details .rep-capital-total { color:var(--rep-green-dark); border-top:2px solid var(--rep-green); }
.rep-capital-details-body p { margin:14px 0 0; color:#5a6570; font-size:12px; line-height:1.5; }
.rep-contact-body { padding:20px 14px 26px; }
.rep-contact-body p { margin:0 0 8px; }
.rep-primary-link { display:inline-block; margin:8px 0 4px; padding:7px 16px; background:var(--rep-green); color:white; text-decoration:none; }
.rep-primary-link:hover,.rep-sticky-actions button:hover:not(:disabled) { background:var(--rep-green-dark); }
.rep-contact-link { display:block; width:fit-content; margin-top:12px; font-size:14px; }
.rep-note { margin:10px 0 25px; padding:16px 14px; border:1px solid var(--rep-line); font-size:14px; line-height:1.5; }
.rep-note p { margin:0; }
.rep-sticky-actions { position:fixed; bottom:0; left:0; right:0; z-index:20; background:#f5f5f5; border-top:1px solid #ececec; }
.rep-sticky-actions .rep-container { min-height:50px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.rep-sticky-actions button { min-height:30px; padding:5px 16px; border:0; background:var(--rep-green); color:white; }
#rep-back { background:#989b94; }
#rep-next { margin-left:auto; }
.rep-footer { margin-top:70px; background:#eee; font-size:13px; }
.rep-footer .rep-container { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; min-height:56px; padding-block:8px; }
.rep-footer p { margin:0; }
.rep-footer nav { display:flex; flex-wrap:wrap; gap:12px; }
.rep-footer a { color:var(--rep-ink); }
@media (max-width:760px) {
  .rep-header-inner { min-height:85px; gap:9px; }
  .rep-brand img { width:125px; height:51px; }
  .rep-header-title { font-size:16px; }
  .rep-header-title span,.rep-header-contact { display:none; }
  .rep-main-nav .rep-container { gap:28px; }
  .rep-overview-body { padding:12px 12px 18px; }
  .rep-chart-layout { display:block; min-height:0; }
  .rep-chart { width:min(100%,320px); margin:8px auto 18px; }
  .rep-chart-legend { width:fit-content; margin:auto; font-size:13px; }
  .rep-chart-summary { margin-top:18px; }
  .rep-inputs-body,.rep-results-body,.rep-performance-body { padding:18px 14px 23px; }
  .rep-fields,.rep-child-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
  .rep-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rep-capital-details dl { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .rep-container { width:min(100% - 30px,1130px); }
  .rep-header-title { display:none; }
  .rep-brand img { width:130px; height:52px; }
  .rep-main-nav button { font-size:15px; }
  .rep-context { font-size:11px; }
  .rep-panel-heading h2 { font-size:16px; }
  .rep-funding-headline { font-size:16px; }
  .rep-fields,.rep-child-fields { grid-template-columns:1fr; gap:13px; }
  .rep-child-entry { grid-column:1; grid-template-columns:1fr; }
  .rep-performance-charts { grid-template-columns:1fr; gap:24px; }
  .rep-performance-chart svg { height:160px; }
  .rep-flow { grid-template-columns:1fr; gap:7px; }
  .rep-flow>div { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
  .rep-flow dd { margin:0; font-size:17px; }
  .rep-footer .rep-container { justify-content:center; text-align:center; }
}
@media print { .rep-main-nav,.rep-sticky-actions,.rep-footer,.rep-recalculate { display:none !important; } body { padding:0; } .rep-panel { break-inside:avoid; } }

/* Shared agency shell and contact actions. */
:root { --rep-green:#009b31; --rep-green-dark:#007a28; --rep-ink:#203329; --rep-muted:#596a60; --rep-line:#d8e1da; --rep-panel-head:#f6f8f5; }
body { padding-bottom:84px; background:#fafbf9; }
.rep-site-header { border-bottom:1px solid #e3e9e2; }
.rep-header-title { color:var(--rep-ink); font-size:21px; letter-spacing:-.025em; }
.rep-header-actions { display:flex; align-items:center; gap:16px; margin-left:auto; }
.rep-menu-link { display:inline-flex; align-items:center; min-height:44px; font-size:13px; font-weight:600; text-decoration:none; }
.rep-brand img { object-fit:contain; }
.rep-panel { border-radius:4px; overflow:hidden; margin-bottom:18px; }
.rep-panel-heading { padding:12px 18px; }
.rep-field input,.rep-field select,.rep-suffix-input { min-height:44px; border-radius:3px; }
.rep-field label,.rep-field>legend { font-weight:600; margin-bottom:6px; }
.rep-person-group legend::before { content:none; }
.rep-panel-toggle { min-width:44px; min-height:44px; }
.rep-primary-link { border:0; border-radius:4px; padding:12px 18px; min-height:44px; font-weight:600; }
.rep-main-nav { background:#fff; }
.rep-main-nav button { min-height:48px; }
.rep-next-step { margin:32px 0; padding:28px; border:1px solid #dce5dc; border-radius:5px; background:#fff; }
.rep-next-step h2 { margin:22px 0 8px; font-size:24px; line-height:1.25; letter-spacing:-.025em; }
.rep-next-step>p { margin:0 0 20px; color:var(--rep-muted); }
.rep-advisor { display:flex; align-items:center; gap:14px; }
.rep-advisor>img { width:64px; height:64px; border-radius:5px; object-fit:cover; }
.rep-advisor span { color:var(--rep-muted); font-size:12px; }
.rep-advisor strong { display:block; font-size:16px; }
#rep-office-status { margin:2px 0 0; color:var(--rep-muted); font-size:12px; }
#rep-office-status::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:6px; background:#9b9f9a; }
#rep-office-status[data-state='open']::before { background:var(--rep-green); }
#rep-office-status[data-state='closing-soon']::before { background:#b37712; }
.rep-cta-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rep-action { display:flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:12px 16px; border:1px solid #cdd9ce; border-radius:4px; background:white; color:#285338; font:inherit; font-size:14px; font-weight:600; line-height:1.4; text-decoration:none; text-align:center; }
.rep-action svg,.rep-action img { width:22px; height:22px; flex:none; }
.rep-action-primary { background:var(--rep-green); color:white; border-color:var(--rep-green); }
.rep-action:disabled { opacity:.5; cursor:not-allowed; }
.rep-contact-bar { display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:16px; }
.rep-contact-bar a,.rep-contact-bar button { display:inline-flex; align-items:center; min-height:44px; color:var(--rep-green-dark); border:0; padding:0; background:none; font:inherit; font-size:13px; text-underline-offset:3px; }
.rep-contact-bar button { text-decoration:underline; }
.rep-contact-dialog { width:min(560px,calc(100% - 28px)); max-height:calc(100dvh - 32px); border:1px solid #d6e0d7; border-radius:6px; padding:24px; color:var(--rep-ink); background:white; overflow-y:auto; }
.rep-contact-dialog::backdrop { background:#152a2059; }
.rep-dialog-heading { display:flex; align-items:center; gap:16px; }
.rep-dialog-heading h2 { flex:1; margin:0; font-size:22px; }
.rep-dialog-heading button { flex:none; width:44px; height:44px; font-size:28px; border:0; background:transparent; }
.rep-contact-dialog label { display:block; margin:18px 0 8px; font-weight:600; }
.rep-contact-dialog textarea { width:100%; min-height:170px; resize:vertical; font:inherit; line-height:1.6; padding:12px; border:1px solid #b8c9bc; border-radius:4px; }
.rep-contact-help { font-size:12px; color:var(--rep-muted); }
.rep-dialog-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.rep-sticky-actions { background:#fff; }
.rep-sticky-actions .rep-container { min-height:68px; padding-block:10px; padding-bottom:max(10px,env(safe-area-inset-bottom)); }
.rep-sticky-actions button { min-height:44px; border-radius:4px; padding:10px 24px; font-weight:600; }
#rep-back { background:#eef3ed; color:#285338; }
.rep-footer { margin-top:32px; background:#f0f3ed; padding-block:16px; }
@media(hover:hover) { .rep-action:hover { background:#edf6ed; } .rep-action-primary:hover { background:var(--rep-green-dark); } }
@media(max-width:760px) { .rep-header-inner { flex-wrap:wrap; padding-block:10px; } .rep-header-title { display:none; } .rep-header-actions { gap:12px; } .rep-brand img { width:125px; height:52px; } .rep-next-step { padding:22px 18px; } .rep-cta-grid { grid-template-columns:1fr; } }
@media(max-width:380px) { .rep-header-actions { gap:8px; } .rep-brand img { width:106px; } .rep-menu-link { font-size:12px; } .customer-chat-launcher { font-size:12px; padding:6px; } .rep-dialog-actions { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .rep-header-actions,.rep-next-step,.rep-contact-dialog { display:none !important; } }

.rep-contribution-field { align-content: start; }
.rep-contribution-field .rep-contribution-range { width: 100%; min-height: 28px; height: 28px; padding: 0; accent-color: var(--green, #087b3c); cursor: pointer; }
.rep-contribution-field small, #rep-child-assignment-field small { color: #54665b; line-height: 1.5; }
.rep-checkbox-field { margin: 18px 0; padding: 16px; border: 1px solid #d5e5d9; border-radius: 12px; background: #f3faf5; }
.rep-checkbox-field label { display: flex; align-items: flex-start; gap: 10px; font-weight: 650; }
.rep-checkbox-field input { width: 18px; height: 18px; margin-top: 2px; accent-color: #087b3c; }
.rep-checkbox-field p { margin: 8px 0 0 28px; font-size: .85rem; color: #54665b; }
.rep-contribution-preview { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 22px 0 10px; padding: 18px; border-radius: 12px; background: #edf7ef; color: #144c2b; }
.rep-contribution-preview strong { font-size: 1.2em; white-space: nowrap; }
#rep-child-assignment-field { margin: 18px 0; max-width: 32rem; }
