:root { --cream:#f6f4ef; --surface:#fff; --primary:#262626; --primary-soft:#f5efe3; --charcoal:#222322; --bronze:#a38b58; --ink:#292a28; --muted:#6e6b64; --line:#e2ded5; --danger:#a33730; --radius:14px; color-scheme:light; color:var(--ink); background:var(--cream); font-family:"Segoe UI",Tahoma,Arial,sans-serif; font-synthesis:none; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; font-size:16px; line-height:1.65; }
button,input,select,textarea { font:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.5; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin:0; }
svg { flex-shrink:0; }
button,a,input,select,textarea,summary { transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--bronze); outline-offset:3px; }
[hidden],.is-step-inactive { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.svg-library { position:absolute; width:0; height:0; overflow:hidden; }
.icon { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.app-shell { display:grid; grid-template-columns:240px minmax(0,1fr); min-height:100vh; }
.app-sidebar { position:sticky; top:0; height:100dvh; min-height:0; padding:25px 18px 22px; display:flex; flex-direction:column; overflow-y:auto; background:var(--charcoal); color:#e3ded5; border-inline-end:1px solid #a38b582e; }
.brand { display:flex; flex-direction:column; align-items:center; gap:13px; width:100%; padding:0 2px 21px; color:#fff; text-align:center; flex:none; }
.brand-logo-window { position:relative; display:block; width:100%; max-width:200px; aspect-ratio:930/650; overflow:hidden; background:#fff; border-radius:7px; flex:none; isolation:isolate; }
.brand-logo-image { position:absolute; top:-45.384615%; left:-17.741935%; display:block; width:134.838710%; max-width:none; height:auto; user-select:none; }
.brand-wording { display:block; min-width:0; font-size:14px; font-weight:500; line-height:1.65; }
.brand-wording b { font-weight:600; }
.brand small { display:block; margin-top:3px; color:#c9c2b4; font-size:10px; font-weight:400; }
.sidebar-section-label { padding:9px 15px 14px; font-size:12px; color:#9b9790; }
.sidebar-nav { display:grid; gap:7px; }
.sidebar-nav>a,.sidebar-nav>button { display:flex; align-items:center; gap:11px; min-height:49px; width:100%; padding:12px 13px; background:transparent; border:1px solid transparent; border-radius:9px; color:#d5cdbf; text-align:right; font-size:14px; }
.sidebar-nav>a>span:nth-child(2),.sidebar-nav>button>span:nth-child(2) { flex:1; }
.sidebar-nav .icon { width:20px; height:20px; color:#a19d96; }
.sidebar-nav>a.active { border-color:#f4dfad33; background:#ffffff0d; color:#fff; box-shadow:inset -3px 0 0 #cfad71; }
.sidebar-nav>a.active .icon { color:#e5c88c; }
.sidebar-nav>a:hover,.sidebar-nav>button:hover { background:#ffffff0b; color:#fff; }
.nav-dot { width:6px; height:6px; border-radius:50%; background:#ddbf86; }
.nav-count { display:inline-grid; place-items:center; min-width:23px; height:23px; padding:0 4px; border:1px solid #ffffff18; border-radius:5px; color:#cfc5b5; font-size:11px; font-variant-numeric:tabular-nums; }
.sidebar-help { margin-top:auto; padding:18px 13px; border-top:1px solid #ffffff14; border-bottom:1px solid #ffffff14; color:#c2b6a1; font-size:12px; line-height:1.9; }
.sidebar-help>.icon { display:block; width:24px; height:24px; margin-bottom:10px; color:#c3ad7c; }
.sidebar-help b { display:block; color:#e4ded5; font-size:13px; font-weight:600; margin-bottom:5px; }
.sidebar-footer { padding:22px 12px 0; color:#cfc5b5; font-size:12px; }
.sidebar-footer small { display:block; color:#99958d; font-size:10px; margin-top:6px; }
.law-dot { display:inline-block; width:6px; height:6px; margin-inline-end:6px; background:#d5b374; border-radius:50%; }
.main-shell { min-width:0; padding:0 34px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:85px; border-bottom:1px solid var(--line); }
.breadcrumbs { display:flex; align-items:center; gap:13px; font-size:12px; color:#837e75; }
.breadcrumbs b { color:#58544f; font-weight:500; }
.topbar-actions { display:flex; align-items:center; gap:9px; }
main { max-width:1370px; margin-inline:auto; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:29px 0 25px; }
.section-kicker { display:block; color:#8d7348; font-size:12px; font-weight:600; margin-bottom:5px; }
.page-heading h1 { font-size:32px; line-height:1.5; font-weight:700; letter-spacing:-.6px; color:#2d2c2b; }
.page-heading p { font-size:14px; color:var(--muted); margin-top:6px; }
.version-pill { display:flex; align-items:center; gap:10px; border:1px solid #ddd7cc; padding:10px 14px; border-radius:9px; color:#56534d; font-size:13px; background:#f7f6f3; flex:none; }
.version-pill>.icon { color:#ac8751; width:26px; height:26px; }
.version-pill small { display:block; color:#7c776f; font-size:11px; margin-top:1px; }
.context-strip { display:flex; align-items:center; gap:22px; border:1px solid #e0dacf; border-radius:10px; padding:13px 19px; margin-bottom:25px; background:#f7f6f3; }
.context-strip>div { border-inline-end:1px solid #e3ddd4; padding-inline-end:24px; }
.context-strip>div>span { display:block; color:#76726a; font-size:10px; margin-bottom:2px; }
.context-strip b { font-size:12px; font-weight:600; color:#58544f; }
.context-strip small { color:#908b83; font-size:10px; font-weight:400; margin-inline-start:5px; }
.context-strip>button { border:0; background:transparent; color:#7c714f; margin-inline-start:auto; font-size:12px; padding:8px 0; white-space:nowrap; }
.context-strip>button:hover { color:var(--primary); }
.workspace { display:grid; grid-template-columns:minmax(0,1fr) 345px; gap:24px; align-items:start; }
.input-column { min-width:0; }
.wizard-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:18px; gap:7px; }
.wizard-nav>button { display:flex; align-items:center; gap:8px; min-height:68px; background:transparent; color:#7e7971; border:1px solid transparent; border-bottom:2px solid #e3ddd3; padding:8px 3px 12px; text-align:right; font-size:12px; }
.wizard-nav>button>span:last-child { min-width:0; }
.wizard-nav small { display:block; font-size:10px; font-weight:400; color:#918d85; margin-top:2px; white-space:nowrap; }
.step-index { display:grid; place-items:center; flex:none; width:30px; height:30px; border:1px solid #ddd6cb; border-radius:50%; color:#89847b; font-size:12px; font-weight:600; direction:ltr; }
.wizard-nav>button.active,.wizard-nav>button[aria-current="step"] { color:#6f592f; border-bottom-color:var(--bronze); font-weight:700; }
.wizard-nav>button.active .step-index { color:#6f592f; background:#f3ecde; border-color:#bda679; }
.wizard-nav>button.complete .step-index,.wizard-nav>button.completed .step-index { color:#fff; background:var(--primary); border-color:var(--primary); }
.wizard-nav>button:hover { background:#eeeae4; border-radius:7px 7px 0 0; color:var(--primary); }
#case-form { display:grid; gap:0; }
.form-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:27px 27px 25px; box-shadow:0 3px 10px #28272604; }
.card-title { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding-bottom:23px; margin-bottom:1px; }
.card-title .section-kicker { font-size:11px; margin-bottom:4px; }
.card-title h2 { font-size:23px; font-weight:650; line-height:1.5; color:#3a3937; }
.card-title h3 { font-size:21px; }
.card-title p { color:#7b766e; font-size:13px; margin-top:4px; }
.card-symbol { display:grid; place-items:center; width:42px; height:42px; border-radius:10px; background:#f4f2ef; color:#a28a5d; border:1px solid #e8e3db; flex:none; }
.card-symbol .icon { width:23px; height:23px; }
fieldset { min-width:0; }
.mode-picker { border:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 25px; }
.mode-picker label { display:flex; align-items:center; gap:12px; cursor:pointer; min-height:82px; padding:14px 17px; border:1px solid #e3ddd4; border-radius:9px; color:#69655e; background:#fff; }
.mode-picker label:has(input:checked) { border-color:#b59b66; background:#faf7f0; box-shadow:inset 0 0 0 1px #b59b66; color:#393837; }
.mode-picker label:hover { border-color:#b59b66; }
.mode-picker input { width:17px; height:17px; margin:0; accent-color:var(--primary); flex:none; }
.mode-picker label>span:nth-child(2) { flex:1; }
.mode-picker b { display:block; font-size:15px; font-weight:600; }
.mode-picker small { display:block; font-size:11px; font-weight:400; color:#878279; margin-top:3px; }
.mode-mark { display:grid; place-items:center; width:23px; height:23px; border:1px solid #a8a49e; border-radius:5px; font-size:21px; font-weight:400; line-height:1; }
.mode-picker .icon { color:#928d85; width:24px; height:24px; }
.form-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px 18px; }
.form-grid>label,.heir-fields>label,.info-dialog>label,.library-search { display:block; min-width:0; color:#474644; font-size:14px; font-weight:600; }
.full-width { grid-column:1/-1; }
.optional,.unit-label { display:inline-block; color:#8d887f; font-size:10px; font-weight:400; margin-inline-start:5px; }
.required-mark { color:#a28b60; margin-inline-start:3px; font-weight:400; }
input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),select,textarea { display:block; width:100%; min-width:0; min-height:49px; margin-top:9px; padding:11px 13px; border:1px solid #e1dbd0; border-radius:7px; background:#fdfdfc; color:#3a3937; font-size:16px; font-weight:400; }
input::placeholder,textarea::placeholder { color:#a6a39c; opacity:1; }
input[type="number"],input[type="date"] { direction:ltr; text-align:right; font-variant-numeric:tabular-nums; }
input:hover,select:hover,textarea:hover { border-color:#beb29c; }
input:focus,select:focus,textarea:focus { background:#fff; border-color:#9b8050; }
input:disabled,select:disabled { background:#f1eeea; color:#88837a; cursor:not-allowed; }
input[aria-invalid="true"],select[aria-invalid="true"],.unit-field:has(input[aria-invalid="true"]) { background:#fff6f4; border-color:#b46557; }
select { padding-inline-end:22px; }
.form-grid label>small,.heir-fields label>small,.info-dialog label>small { display:block; color:#7e7971; font-size:12px; font-weight:400; line-height:1.9; margin-top:7px; }
.unit-field { display:flex; align-items:center; min-height:49px; margin-top:9px; border:1px solid #e1dbd0; border-radius:7px; background:#fdfdfc; overflow:hidden; }
.unit-field input:not([type="radio"]):not([type="checkbox"]) { margin:0; background:transparent; border:0; border-radius:0; flex:1; width:0; }
.unit-field:focus-within { border-color:#9b8050; background:white; box-shadow:0 0 0 3px #a38b5826; }
.unit-field input:focus-visible { outline:0; }
.unit-field>span { color:#8b867d; font-size:12px; font-weight:400; padding:0 14px; flex:none; border-inline-start:1px solid #e9e5dd; }
.inline-note { display:flex; gap:9px; align-items:flex-start; padding:12px 14px; margin-top:23px; background:#f4f2ee; color:#646059; border:1px solid #e4dfd6; border-radius:7px; font-size:12px; line-height:1.9; }
.inline-note .icon { width:18px; height:18px; margin-top:3px; }
.inline-note.warning,.inline-note.is-warning { color:#866331; background:#fff8e8; border-color:#e6d3ab; }
.income-preview { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:23px; padding:13px 16px; border:1px dashed #d4ccbe; border-radius:8px; background:#f8f7f5; font-size:12px; color:#726e66; }
.income-preview b { color:#56534d; font-size:13px; font-weight:600; }
.check-line:not([hidden]) { display:flex !important; gap:10px; align-items:flex-start; color:#58554f; font-size:13px; font-weight:400 !important; line-height:1.9; cursor:pointer; }
#income-loss-field { padding:17px 0 0; margin-top:3px; }
.check-line b { font-weight:600; }
.check-line small { display:block; color:#757069; font-size:12px; font-weight:400; line-height:1.8; margin-top:3px; }
input[type="checkbox"] { accent-color:var(--primary); width:17px; height:17px; margin:4px 0 0; flex:none; }
.helper-card { padding:15px 17px; background:#f6f5f2; border:1px solid #e8e3db; border-radius:8px; margin-top:22px; color:#66635c; font-size:12px; line-height:1.9; }
.helper-card>b { color:#5d5a54; font-size:12px; font-weight:600; }
.helper-card p { margin-top:5px; }
.additional { border-top:1px solid #e8e4dc; margin-top:23px; padding-top:18px; }
.additional summary { display:flex; justify-content:space-between; align-items:center; gap:12px; cursor:pointer; list-style:none; font-size:14px; font-weight:600; color:#57534e; padding:4px 0; }
.additional summary::-webkit-details-marker { display:none; }
.additional summary small { display:block; font-size:11px; font-weight:400; color:#78746c; margin-top:2px; }
.additional summary>span:last-child { display:grid; place-items:center; width:27px; height:27px; color:#88827a; font-size:23px; font-weight:400; border:1px solid #dfd9cf; border-radius:6px; }
.additional[open] summary>span:last-child { transform:rotate(45deg); }
.extra-options { display:grid; gap:10px; margin-top:15px; }
.extra-options label,.extra-option { display:flex; align-items:flex-start; gap:11px; padding:13px 14px; border:1px solid #e5e0d8; border-radius:7px; cursor:pointer; color:#58554f; font-size:13px; line-height:1.8; }
.extra-options label:has(input:checked) { background:#f4f1ed; border-color:#c4b8a4; }
.extra-options label small { display:block; font-size:11px; font-weight:400; color:#77736b; margin-top:3px; }
.heir-row { background:#fbfaf9; border:1px solid #e3ded5; border-radius:10px; padding:19px; margin-bottom:15px; }
.heir-heading,.heir-header,.heir-row>header { display:flex; justify-content:space-between; align-items:center; gap:12px; color:#4d4c49; font-size:14px; margin-bottom:17px; }
.heir-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.heir-checks { display:grid; gap:9px; padding-top:16px; margin-top:16px; border-top:1px solid #e8e4dd; }
.heir-checks .check-line { font-size:12px; }
.remove-heir { display:grid; place-items:center; width:29px; height:29px; padding:0; border:1px solid #e6d6cf; border-radius:5px; color:#a27565; background:#fff; font-size:23px; line-height:1; }
.remove-heir:hover { color:#9e3d2e; background:#faece7; border-color:#d7aba0; }
.heir-help { color:#757069; font-size:11px; margin-top:12px; line-height:1.8; }
.heir-help:empty { display:none; }
.text-button,.secondary-button,.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; border-radius:7px; min-height:41px; padding:9px 15px; font-size:13px; font-weight:600; line-height:1.5; }
.text-button { color:#757069; background:transparent; border:1px solid transparent; font-weight:400; }
.text-button:hover:not(:disabled) { background:#ece8e1; color:var(--primary); }
.secondary-button { color:#58544f; background:#fbfaf9; border:1px solid #d6cdbf; }
.secondary-button:hover:not(:disabled) { background:#f1eee9; border-color:#a09c95; }
.primary-button { color:#fff; background:var(--primary); border:1px solid var(--primary); min-height:48px; padding:12px 19px; }
.primary-button:hover:not(:disabled) { background:#42413f; border-color:#42413f; box-shadow:0 3px 12px #2b2a281c; }
.primary-button.small { min-height:39px; padding:8px 13px; font-size:12px; }
.primary-button .icon { width:20px; height:20px; }
.full-button { width:100%; }
.error-panel,#form-errors { padding:16px 19px; margin-top:17px; border:1px solid #e6bdb2; border-inline-start:3px solid #a33730; border-radius:9px; background:#fff5f1; color:var(--danger); font-size:13px; line-height:1.9; }
#form-errors ul { margin:7px 0 0; padding-inline-start:21px; }
#form-errors a { text-decoration:underline; text-underline-offset:3px; }
.wizard-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:17px 0; }
.wizard-actions>span { color:#79756d; font-size:12px; font-variant-numeric:tabular-nums; }
.wizard-actions .text-button { padding-inline-start:2px; }
.wizard-actions .secondary-button { min-width:107px; }
.calculate-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid #e3ddd4; padding:19px 0 0; }
.calculate-bar>div { min-width:0; }
.calculate-bar b { display:block; font-size:13px; font-weight:600; color:#595650; overflow-wrap:anywhere; }
.calculate-bar small { display:block; font-size:11px; color:#79756d; margin-top:2px; }
.calculate-bar .primary-button { flex:none; min-width:186px; gap:23px; }
.results-column { display:grid; gap:17px; position:sticky; top:21px; min-width:0; }
.result-card { background:#292827; border:1px solid #343332; border-radius:var(--radius); padding:23px 24px 20px; color:white; box-shadow:0 8px 22px #2b2a2812; overflow:hidden; }
.result-top { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; color:#ded8cd; }
.result-tag { border:1px solid #ffffff29; border-radius:5px; padding:4px 7px; color:#d0c6b6; background:#ffffff05; font-size:9px; white-space:nowrap; }
.result-tag.ready,.result-tag.calculated,.result-tag.done { color:#e9d9b6; border-color:#bda16c77; background:#bda16c0b; }
.result-value { font-size:41px; line-height:1.45; font-weight:500; letter-spacing:-.8px; margin:16px 0 5px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.result-value small { font-size:13px; font-weight:400; letter-spacing:0; color:#c5baa6; margin-inline-start:5px; }
#result-caption { color:#c2b6a1; font-size:12px; line-height:1.9; margin-bottom:22px; }
.result-mini { margin-bottom:17px; padding:14px 0 0; border-top:1px solid #ffffff20; font-size:12px; color:#ccc2b1; }
.result-mini>div,.result-mini>p,.mini-row { display:flex; justify-content:space-between; align-items:baseline; gap:13px; margin:8px 0; }
.result-mini strong,.result-mini b { color:#fff; font-weight:600; font-variant-numeric:tabular-nums; }
.result-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.result-actions button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:45px; padding:9px 6px; border:1px solid #ffffff35; border-radius:6px; color:#edeae4; background:#ffffff09; font-size:11px; }
.result-actions button .icon { width:16px; height:16px; }
.result-actions button:hover:not(:disabled) { background:#ffffff16; border-color:#c4b8a4; }
.result-secondary-actions { display:flex; gap:9px; justify-content:space-between; margin-top:15px; }
.result-secondary-actions button { border:0; background:transparent; color:#c6bba8; font-size:10px; padding:4px 0; }
.result-secondary-actions button:hover:not(:disabled) { color:#eeebe6; }
.privacy-line { display:flex; align-items:center; justify-content:center; gap:6px; font-size:10px; color:#bdb099; border-top:1px solid #ffffff0f; padding-top:15px; margin-top:11px; }
.privacy-line .icon { width:13px; height:13px; }
.result-warnings { padding:14px 16px; border:1px solid #e4d1a1; border-radius:9px; color:#89662f; background:#fff9e7; font-size:12px; line-height:1.85; }
.result-warnings b,.result-warnings strong { font-weight:600; }
.result-warnings p+p { margin-top:8px; }
.result-warnings ul { padding-inline-start:20px; margin:7px 0; }
.basis-card { padding:20px 23px; border:1px solid #e3ddd3; border-radius:12px; background:#fff; }
.basis-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:15px; }
.basis-heading .section-kicker { margin-bottom:0; font-size:11px; }
.basis-badge { font-size:9px; color:#7a756d; border:1px solid #e5dfd6; border-radius:4px; padding:3px 6px; background:#faf9f8; }
#basis-content { font-size:12px; color:#736e67; line-height:1.9; }
#basis-content dl { margin:0; }
#basis-content dl>div,.basis-row { display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-top:1px solid #eeebe6; padding:9px 0; }
#basis-content dl>div:first-child { border-top:0; padding-top:0; }
#basis-content dt { color:#736f67; font-size:11px; }
#basis-content dd { margin:0; text-align:left; color:#56534d; font-weight:600; font-size:12px; font-variant-numeric:tabular-nums; }
#basis-content p+p { margin-top:9px; }
#basis-content strong,#basis-content b { color:#57544e; font-weight:600; }
.basis-explanation { font-size:11px; border-top:1px solid #eeebe6; margin-top:7px; padding-top:10px; }
.empty-basis { text-align:center; padding:8px 0 6px; }
.empty-basis>.icon { width:31px; height:31px; color:#a9a59f; margin-bottom:9px; }
.empty-basis b { display:block; font-size:13px; margin-bottom:7px; }
.empty-basis p { font-size:12px; color:#7a756d; line-height:1.9; }
.review-note { display:flex; gap:9px; padding:0 5px; color:#767169; font-size:11px; line-height:1.9; }
.note-icon { display:grid; place-items:center; width:16px; height:16px; border:1px solid #a39f98; border-radius:50%; margin-top:3px; font-family:Georgia,serif; font-size:11px; flex:none; }
.source-link { display:flex; align-items:center; justify-content:center; gap:9px; padding:3px 0; color:#6c6861; font-size:11px; }
.source-link .icon { width:16px; height:16px; }
.source-link:hover { color:#413f3d; text-decoration:underline; text-underline-offset:4px; }
.report-section { background:#fff; border:1px solid #e2ddd3; border-radius:var(--radius); padding:28px; margin-top:31px; scroll-margin-top:22px; box-shadow:0 3px 10px #28272604; }
.report-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:23px; }
.report-heading:has(.report-brand) { align-items:center; }
.report-title-group { display:flex; align-items:center; gap:18px; flex:1; min-width:0; }
.report-title-group>div { min-width:0; }
.report-heading .report-brand { position:relative; display:block; width:145px; height:auto; max-width:none; flex:none; overflow:hidden; background:#fff; }
.report-brand .brand-logo-window { width:100%; max-width:none; height:100%; }
.report-heading .report-brand+div { flex:1; min-width:0; }
.report-profession { color:var(--muted); font-size:11px; margin-top:3px; }
.report-contact-line { display:flex; flex-wrap:wrap; align-items:center; gap:3px 8px; margin-top:5px; color:#776749; font-size:10px; line-height:1.7; overflow-wrap:anywhere; }
.report-contact-line a { max-width:100%; overflow-wrap:anywhere; }
.report-contact-line a:hover { text-decoration:underline; text-underline-offset:3px; }
.report-heading h2 { color:#434240; font-size:25px; font-weight:650; }
#report-meta { display:block; color:#76726a; font-size:11px; text-align:left; }
.report-toolbar { display:flex; gap:8px; margin-top:9px; }
.report-toolbar .icon { width:17px; height:17px; }
.report-inputs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px 22px; padding:18px 20px; background:#f7f6f4; border:1px solid #e6e1d9; border-radius:8px; margin-bottom:23px; font-size:12px; color:#757169; }
.report-inputs>div,.report-inputs>p { min-width:0; overflow-wrap:anywhere; }
.report-inputs>div>span { display:block; color:#7b766e; font-size:11px; line-height:1.7; }
.report-inputs>div>b { display:block; margin-top:3px; line-height:1.7; }
.report-inputs>.heir-report>span { margin:7px 0 12px; color:#5b5852; font-size:12px; font-weight:600; }
.report-inputs b,.report-inputs strong,.report-inputs dd { color:#56534d; font-weight:600; }
.report-inputs dt { font-size:11px; color:#7b766e; }
.report-inputs dd { margin:3px 0 0; }
.table-wrap { width:100%; overflow-x:auto; border:1px solid #e3ddd4; border-radius:8px; }
.report-section table,.report-table { width:100%; border-collapse:collapse; text-align:right; font-size:13px; }
.report-section th,.report-table th { padding:14px 15px; background:#f2f0ec; border-bottom:1px solid #e1dbd0; color:#6d6961; font-size:11px; font-weight:600; }
.report-section td,.report-table td { padding:15px; border-bottom:1px solid #eae6e0; color:#5f5b55; vertical-align:top; line-height:1.85; }
.report-section th:first-child { width:28%; }
.report-section th:nth-child(2) { width:36%; }
.report-section th:nth-child(3),.report-section th:nth-child(4) { width:18%; }
.report-section .heir-report table { min-width:700px; table-layout:fixed; }
.report-section .heir-report th:first-child { width:22%; }
.report-section .heir-report th:nth-child(2) { width:18%; }
.report-section .heir-report th:nth-child(3),.report-section .heir-report th:nth-child(4),.report-section .heir-report th:nth-child(5),.report-section .heir-report th:nth-child(6) { width:8%; }
.report-section .heir-report th:nth-child(7) { width:28%; }
.report-section .heir-report th,.report-section .heir-report td { padding:11px 10px; font-size:11px; overflow-wrap:anywhere; white-space:normal; }
.report-section td:nth-child(3),.report-section td:nth-child(4),.amount-cell { white-space:nowrap; font-variant-numeric:tabular-nums; color:#42403e; font-size:12px; }
.report-section td strong,.report-section td b { color:#56534d; font-weight:600; }
.report-section td small { display:block; font-size:10px; color:#827d74; margin-top:4px; }
.report-section td a,.report-notes a { color:#757169; text-decoration:underline; text-underline-offset:3px; }
.row-source { display:block; margin-top:4px; font-size:11px; }
.formula-cell { font-size:12px; }
.report-section tfoot th,.report-section tfoot td { background:#f7f5f2; padding:12px 15px; font-weight:600; }
.report-section tfoot tr:last-child th,.report-section tfoot tr:last-child td { background:var(--primary); color:#fff; font-size:14px; border-bottom:0; padding-block:16px; }
.report-notes { font-size:12px; color:#79756d; line-height:1.9; margin-top:20px; }
.report-notes p+p { margin-top:9px; }
.report-notes ul { padding-inline-start:20px; margin:9px 0; }
.report-warning { border-inline-start:2px solid #c1a05e; background:#fbf8ea; color:#8c7338; padding:10px 12px; margin-block:12px; }
.app-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 18px; padding:26px 0; margin-top:30px; border-top:1px solid var(--line); font-size:10px; color:#857f77; }
.app-footer>span:first-child { color:#6d6962; font-size:12px; font-weight:600; }
.app-footer small { display:block; color:#89847c; font-weight:400; font-size:10px; margin-top:2px; }
.app-footer button { background:transparent; border:0; color:#7d7870; font-size:10px; padding:6px 0; }
.app-footer button:hover { color:#413f3d; }
.app-footer>a { display:inline-flex; align-items:center; color:#7d7870; font-size:10px; min-height:38px; padding:6px 0; }
.app-footer>button { min-height:38px; }
.app-footer>a:hover { color:#413f3d; text-decoration:underline; text-underline-offset:4px; }
.professional-contact-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.72fr) minmax(0,1.35fr); align-items:center; gap:23px; padding:27px 28px; margin-top:31px; background:#fff; border:1px solid var(--line); border-top:2px solid var(--bronze); border-radius:12px; }
.professional-contact-card>div { min-width:0; }
.professional-contact-card h2 { color:var(--ink); font-size:19px; font-weight:650; line-height:1.6; }
.professional-contact-card p { color:var(--muted); font-size:12px; line-height:1.9; margin-top:5px; }
.professional-name-fr { display:block; color:#8a7348; font-size:11px; letter-spacing:1.25px; font-weight:500; margin-top:7px; overflow-wrap:anywhere; }
.contact-channel { display:flex; align-items:center; gap:12px; min-width:0; color:var(--ink); padding:11px 0; border-radius:7px; overflow-wrap:anywhere; }
.contact-channel>span,.contact-channel>div { display:block; min-width:0; }
.contact-channel>span:nth-child(2) { flex:1; }
.contact-channel .contact-arrow { flex:none; color:#a38b58; font-size:20px; line-height:1; }
.contact-channel .icon { width:23px; height:23px; color:var(--bronze); }
.contact-channel small { display:block; color:var(--muted); font-size:11px; font-weight:400; margin-bottom:3px; }
.contact-channel strong { display:block; color:#3c3830; font-size:14px; font-weight:600; line-height:1.8; overflow-wrap:anywhere; }
.contact-channel:hover strong { color:#7d6536; text-decoration:underline; text-underline-offset:4px; }
.info-dialog .contact-channel { padding-block:17px; border-bottom:1px solid var(--line); text-decoration:none; font-size:14px; }
.info-dialog .contact-channel:last-child { border-bottom:0; }
.info-dialog { width:min(600px,calc(100% - 36px)); max-height:min(87dvh,920px); color:var(--ink); border:1px solid #d6cec1; border-radius:15px; padding:33px; background:#fff; box-shadow:0 25px 90px #2b2a2840; overflow-y:auto; }
.wide-dialog { width:min(840px,calc(100% - 40px)); }
.info-dialog::backdrop { background:#232322a3; backdrop-filter:blur(3px); }
.close-dialog { display:grid; place-items:center; position:absolute; top:16px; inset-inline-end:16px; width:34px; height:34px; background:#f6f5f2; border:1px solid #e4ded5; border-radius:7px; color:#827d75; font-size:26px; line-height:1; }
.close-dialog:hover { background:#ede9e3; color:#4c4b49; }
.info-dialog h2 { font-size:26px; color:#3c3b3a; margin:5px 0 14px; font-weight:650; padding-inline-end:28px; }
.info-dialog p { font-size:14px; color:#747068; line-height:1.95; margin:10px 0; }
.info-dialog h3 { color:#57534e; font-size:16px; margin:23px 0 7px; }
.info-dialog ul { padding-inline-start:21px; color:#77736b; font-size:13px; line-height:1.9; }
.info-dialog a { color:#56534d; font-size:13px; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.info-dialog .dialog-intro { margin:0 0 22px; }
.info-dialog .helper-card { margin-top:22px; }
.info-dialog .helper-card p { font-size:12px; }
.dialog-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:23px; }
.library-toolbar { display:flex; gap:15px; align-items:flex-end; margin-bottom:24px; }
.library-search { flex:1; }
.library-toolbar>button { min-height:49px; flex:none; }
.case-list { display:grid; gap:11px; }
.case-item,.saved-case-item { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 18px; border:1px solid #e5dfd6; background:#faf9f8; border-radius:9px; }
.case-title,.case-item h3,.case-item b { font-size:15px; color:#57544e; font-weight:600; overflow-wrap:anywhere; }
.case-meta,.case-item p,.case-item small { display:block; font-size:11px; color:#807b72; margin-top:5px; line-height:1.8; }
.case-actions { display:flex; flex-wrap:wrap; gap:6px; flex:none; }
.case-actions button { min-height:36px; padding:8px 10px; font-size:11px; border:1px solid #d8d1c4; border-radius:5px; background:#fff; color:#726e66; }
.case-actions button:hover { background:#f0ede8; color:#474543; }
.case-actions .danger,.case-actions .delete-case,.case-actions [data-action="delete"],.case-actions [data-delete] { color:#a77358; border-color:#e5d6c9; }
.empty-state,.library-empty { padding:35px 25px; border:1px dashed #ddd6cb; background:#fbfbfa; border-radius:10px; text-align:center; font-size:13px; color:#7e7971; }
.empty-state b,.empty-state h3 { display:block; color:#605c56; font-size:16px; font-weight:600; margin-bottom:7px; }
.empty-state .icon { width:32px; height:32px; margin-bottom:9px; color:#bdb099; }
.undo-panel { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 15px; margin-top:18px; background:#fbf8e9; border:1px solid #e8d9ad; border-radius:8px; color:#957c3a; font-size:12px; }
.undo-panel button { border:1px solid #d3be84; border-radius:5px; padding:6px 12px; background:#fffdf5; color:#8a6c2b; }
.comparison-inputs { margin-top:22px; }
#comparison-content { margin-top:23px; }
.comparison-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.comparison-card { border:1px solid #dfd9ce; border-radius:10px; background:#f8f7f5; padding:21px; color:#69655e; font-size:12px; }
.comparison-card h3 { font-size:14px; margin:0 0 10px; color:#56534d; }
.comparison-card b,.comparison-value { display:block; font-size:27px; font-weight:600; color:#3b3a39; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.comparison-card small { font-size:12px; font-weight:400; color:#7d7870; }
.comparison-card p { font-size:12px; margin:7px 0; }
.comparison-delta { padding:15px 17px; margin-top:13px; background:#eeebe6; border:1px solid #ded7cc; border-radius:8px; color:#69655e; font-size:13px; line-height:1.8; }
.comparison-delta b,.comparison-delta strong { color:#454442; font-variant-numeric:tabular-nums; }
.comparison-error { padding:14px 16px; border:1px solid #e8c2af; border-radius:8px; background:#fff6ef; color:#ad6849; font-size:13px; }
.reference-card { display:flex; flex-direction:column; gap:4px; padding:17px 18px; margin-top:13px; border:1px solid #e3ddd4; border-radius:9px; background:#f9f8f6; text-decoration:none !important; }
.reference-card b { color:#56534d; font-weight:600; }
.reference-card span { color:#79756d; font-size:11px; }
.reference-card:hover { border-color:#c7bca8; background:#f2f0ec; }
.reference-table { border-collapse:collapse; width:100%; margin:12px 0; font-size:13px; }
.reference-table th { color:#69655e; background:#f4f2ef; border-bottom:1px solid #e0dacf; text-align:right; font-weight:600; }
.reference-table th,.reference-table td { padding:11px 14px; border-bottom:1px solid #eae6df; }
.reference-table td { color:#6e6a62; font-variant-numeric:tabular-nums; }
.version-note { color:#8e8981 !important; font-size:11px !important; }
.method-step { display:flex; align-items:flex-start; gap:17px; padding:17px 0; border-bottom:1px solid #e9e5dd; }
.method-step>span { display:grid; place-items:center; width:32px; height:32px; border:1px solid #dad3c7; border-radius:8px; background:#f6f4f0; color:#747068; font-size:12px; flex:none; }
.method-step h3 { margin:0 0 5px; font-size:15px; }
.method-step p { margin:0; font-size:13px; }
.toast,#toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:100; max-width:min(560px,calc(100% - 28px)); border:1px solid #56534d; border-radius:9px; background:#353433; color:#eeebe6; padding:13px 21px; box-shadow:0 9px 36px #2c2b2a30; font-size:13px; text-align:center; }
@media(min-width:1650px) { .main-shell { padding-inline:48px; } .workspace { grid-template-columns:minmax(0,1fr) 380px; gap:30px; } .result-value { font-size:46px; } .form-card { padding:31px; } .wizard-nav>button { font-size:13px; } }
@media(max-width:1270px) {
  .app-shell { grid-template-columns:214px minmax(0,1fr); } .app-sidebar { padding-inline:13px; } .main-shell { padding-inline:24px; }
  .workspace { grid-template-columns:minmax(0,1fr) 310px; gap:18px; } .form-card { padding:23px 21px; }
  .wizard-nav { gap:3px; } .wizard-nav>button { font-size:11px; gap:6px; } .wizard-nav small { font-size:9px; } .step-index { width:26px; height:26px; font-size:11px; }
  .result-card { padding:21px 20px; } .result-value { font-size:36px; } .basis-card { padding:20px; }
  .context-strip { gap:13px; padding-inline:16px; } .context-strip>div { padding-inline-end:14px; } .context-strip b { font-size:11px; }
  .breadcrumbs { font-size:11px; } .topbar-actions { gap:5px; } .topbar-actions .text-button,.topbar-actions .secondary-button { padding-inline:10px; font-size:11px; }
}
@media(max-width:1100px) {
  .app-shell { grid-template-columns:200px minmax(0,1fr); } .app-sidebar { padding-inline:10px; } .sidebar-nav>a,.sidebar-nav>button { padding-inline:11px; gap:9px; font-size:12px; }
  .brand { gap:11px; padding-inline:2px; } .brand-wording { font-size:13px; } .brand small { font-size:9px; } .main-shell { padding-inline:21px; }
  .workspace { grid-template-columns:minmax(0,1fr) 285px; gap:16px; } .context-strip>div:first-child { flex:1; } .context-strip>button { display:none; }
  .form-grid { gap:20px 14px; } .form-grid>label { font-size:13px; } .card-title h2 { font-size:20px; } .card-title p { font-size:12px; }
  .mode-picker { gap:10px; } .mode-picker label { padding:12px; gap:9px; } .mode-picker b { font-size:14px; } .mode-picker small { font-size:10px; } .mode-mark,.mode-picker .icon { display:none; }
  .result-value { font-size:34px; } .result-top { flex-wrap:wrap; } .calculate-bar .primary-button { min-width:159px; gap:13px; padding-inline:14px; font-size:12px; }
  .breadcrumbs>span:first-child,.breadcrumbs>span:nth-child(2) { display:none; } .report-section { padding:23px; }
}
@media(max-width:960px) {
  .app-shell { grid-template-columns:minmax(0,1fr); } .app-sidebar { position:relative; width:100%; min-width:0; height:auto; min-height:0; padding:16px 24px 10px; display:block; overflow:visible; }
  .brand { flex-direction:row; gap:18px; padding:0; width:100%; text-align:right; justify-content:flex-start; } .brand-logo-window { width:155px; max-width:155px; } .brand-wording { font-size:16px; } .brand small { font-size:11px; }
  .sidebar-section-label,.sidebar-help,.sidebar-footer { display:none; } .sidebar-nav { display:flex; gap:7px; margin-top:17px; overflow-x:auto; }
  .sidebar-nav>a,.sidebar-nav>button { width:auto; min-height:41px; gap:7px; padding:10px 12px; white-space:nowrap; font-size:11px; flex:none; }
  .sidebar-nav>a.active { box-shadow:inset 0 -2px 0 #cfad71; } .sidebar-nav .icon { width:17px; height:17px; } .nav-count { height:19px; min-width:19px; font-size:9px; } .nav-dot { display:none; }
  .main-shell { padding-inline:24px; } .topbar { min-height:71px; } .breadcrumbs { font-size:12px; } .breadcrumbs>span:first-child,.breadcrumbs>span:nth-child(2) { display:inline; }
  .topbar-actions .text-button,.topbar-actions .secondary-button { font-size:12px; padding-inline:12px; } .page-heading { padding:24px 0; } .page-heading h1 { font-size:30px; }
  .workspace { grid-template-columns:minmax(0,1fr) 315px; gap:22px; } .wizard-nav>button { font-size:11px; gap:7px; min-height:59px; } .wizard-nav small { display:none; } .step-index { width:27px; height:27px; }
  .context-strip b { font-size:12px; } .context-strip>button { display:block; font-size:11px; } .result-card { padding:23px; } .result-value { font-size:38px; }
}
@media(max-width:760px) {
  .main-shell { padding-inline:20px; } .app-sidebar { padding-inline:20px; } .breadcrumbs>span:first-child,.breadcrumbs>span:nth-child(2) { display:none; }
  .workspace { grid-template-columns:minmax(0,1fr); gap:28px; } .results-column { position:static; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:15px; align-items:start; }
  .result-card { grid-column:1; grid-row:1/3; } .basis-card { grid-column:2; grid-row:1; } .result-warnings { grid-column:1/-1; grid-row:3; } .review-note { grid-column:2; grid-row:2; } .source-link { grid-column:1/-1; }
  .wizard-nav { gap:9px; } .wizard-nav>button { font-size:13px; min-height:57px; gap:8px; } .step-index { width:31px; height:31px; font-size:12px; }
  .form-card { padding:27px; } .card-title h2 { font-size:23px; } .card-title p { font-size:13px; } .form-grid>label { font-size:14px; }
  .mode-picker label { padding:15px 17px; } .mode-picker b { font-size:15px; } .mode-picker small { font-size:11px; } .mode-mark,.mode-picker .icon { display:grid; }
  .context-strip { flex-wrap:wrap; gap:13px 18px; } .context-strip>div:first-child { flex:1 0 100%; padding-bottom:10px; border-inline-end:0; border-bottom:1px solid #e4dfd6; } .context-strip>button { margin-inline-start:auto; }
  .report-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); } .report-section table { min-width:650px; } .report-heading { align-items:flex-start; } .app-footer { margin-top:23px; }
  .professional-contact-card { grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:24px; gap:10px 21px; } .professional-contact-card>div:first-child { grid-column:1/-1; margin-bottom:4px; }
}
@media(max-width:540px) {
  body { padding-bottom:88px; } .app-sidebar { padding:15px 17px 9px; } .sidebar-nav { margin-top:13px; gap:3px; padding-bottom:3px; }
  .brand { gap:14px; } .brand-wording { font-size:13px; } .brand small { font-size:10px; line-height:1.8; }
  .sidebar-nav>a,.sidebar-nav>button { font-size:10px; min-height:40px; padding:9px 10px; } .sidebar-nav .icon { width:16px; height:16px; }
  .main-shell { padding-inline:16px; } .topbar { min-height:63px; justify-content:flex-end; gap:6px; } .breadcrumbs { display:none; }
  .topbar-actions { width:100%; justify-content:space-between; gap:6px; } .topbar-actions .text-button,.topbar-actions .secondary-button { font-size:11px; padding-inline:11px; min-height:38px; } .primary-button.small { min-height:38px; font-size:11px; }
  .page-heading { padding:22px 0 19px; gap:14px; align-items:flex-start; } .section-kicker { font-size:10px; } .page-heading h1 { font-size:26px; letter-spacing:-.5px; } .page-heading p { font-size:12px; line-height:1.9; margin-top:7px; } .version-pill { display:none; }
  .context-strip { padding:12px 14px; margin-bottom:17px; gap:9px 15px; } .context-strip b { font-size:11px; } .context-strip>div>span { font-size:9px; } .context-strip>button { font-size:10px; padding:7px 0; } .context-strip>div { padding-inline-end:15px; }
  .wizard-nav { gap:6px; margin-bottom:16px; } .wizard-nav>button { display:flex; flex-direction:column; text-align:center; gap:7px; min-height:70px; padding:5px 0 12px; font-size:10px; } .step-index { width:29px; height:29px; font-size:11px; }
  .form-card { padding:23px 18px; border-radius:11px; } .card-title { padding-bottom:21px; gap:11px; } .card-title h2 { font-size:21px; } .card-title p { font-size:12px; line-height:1.8; } .card-title .section-kicker { font-size:10px; }
  .card-symbol { width:35px; height:35px; border-radius:8px; } .card-symbol .icon { width:20px; height:20px; } .form-grid { gap:20px 13px; } .form-grid>label { font-size:13px; } .optional,.unit-label { font-size:9px; margin-inline-start:3px; }
  .unit-field>span { font-size:10px; padding-inline:10px; } .form-grid label>small { font-size:11px; line-height:1.9; }
  .mode-picker { gap:10px; margin-bottom:23px; } .mode-picker label { padding:13px 11px; min-height:73px; gap:9px; } .mode-picker b { font-size:13px; } .mode-picker small { font-size:9px; } .mode-mark,.mode-picker .icon { display:none; }
  .inline-note { font-size:11px; padding:11px 13px; margin-top:21px; } .check-line { font-size:12px; } .check-line small { font-size:11px; }
  .income-preview { flex-direction:column; align-items:flex-start; gap:3px; font-size:11px; } .income-preview b { font-size:12px; } .helper-card { font-size:11px; padding:13px 15px; }
  .additional summary { font-size:13px; } .additional summary small { font-size:10px; } .extra-options label { padding:12px; font-size:12px; } .extra-options label small { font-size:10px; }
  .wizard-actions { padding:15px 0; } .wizard-actions>span { font-size:11px; } .wizard-actions .secondary-button { min-width:92px; min-height:40px; font-size:12px; }
  .calculate-bar { position:fixed; z-index:30; bottom:0; inset-inline:0; border-top:1px solid #d2c9ba; padding:13px 16px max(13px,env(safe-area-inset-bottom)); background:#fbfaf8f7; backdrop-filter:blur(12px); box-shadow:0 -4px 20px #2d2c2b11; gap:10px; }
  .calculate-bar b { font-size:11px; max-width:180px; max-height:39px; overflow:hidden; } .calculate-bar small { font-size:10px; max-width:180px; }
  .calculate-bar .primary-button { min-width:167px; min-height:48px; font-size:13px; gap:18px; padding-inline:14px; border-radius:7px; }
  .results-column { grid-template-columns:1fr; gap:16px; } .result-card { grid-column:auto; grid-row:auto; padding:24px; border-radius:11px; }
  .basis-card,.review-note,.result-warnings,.source-link { grid-column:auto; grid-row:auto; } .result-top { flex-wrap:nowrap; font-size:12px; } .result-value { font-size:44px; }
  .result-actions button { font-size:12px; min-height:47px; } .result-secondary-actions button { font-size:11px; } #result-caption { font-size:12px; } .basis-card { padding:21px 24px; } .review-note { font-size:11px; } .result-warnings { font-size:12px; }
  .report-section { padding:23px 18px; margin-top:26px; border-radius:11px; } .report-heading { flex-direction:column; gap:13px; margin-bottom:21px; } .report-heading h2 { font-size:23px; }
  .report-heading:has(.report-brand) { align-items:flex-start; } .report-heading .report-brand { width:130px; height:auto; } .report-title-group { gap:14px; width:100%; align-items:center; } .report-title-group h2 { font-size:20px; } .report-contact-line { font-size:9px; gap:3px 6px; }
  .report-heading>div:last-child { width:100%; display:flex; justify-content:space-between; align-items:center; gap:9px; } #report-meta { font-size:9px; text-align:right; }
  .report-toolbar { margin-top:0; gap:4px; } .report-toolbar .text-button,.report-toolbar .secondary-button { font-size:10px; padding:8px; min-height:36px; }
  .report-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 14px; padding:14px; font-size:11px; } .report-section table { min-width:600px; } .report-section th,.report-section td { padding:12px; } .report-notes { font-size:11px; }
  .heir-row { padding:15px; } .heir-fields { grid-template-columns:1fr; gap:17px; } .heir-heading { font-size:13px; }
  .app-footer { flex-wrap:wrap; padding:23px 0; gap:14px; } .app-footer>span:nth-child(2) { order:3; width:100%; font-size:9px; }
  .professional-contact-card { grid-template-columns:minmax(0,1fr); padding:23px 20px; margin-top:26px; gap:0; } .professional-contact-card h2 { font-size:18px; } .contact-channel { padding-block:14px; } .contact-channel strong { font-size:14px; }
  .info-dialog { padding:29px 23px; width:calc(100% - 26px); max-height:86dvh; border-radius:12px; } .info-dialog h2 { font-size:23px; } .info-dialog p { font-size:13px; } .info-dialog .section-kicker { font-size:10px; }
  .close-dialog { top:12px; inset-inline-end:12px; width:31px; height:31px; } .library-toolbar { gap:10px; align-items:flex-end; } .library-search { font-size:12px; } .library-toolbar>button { font-size:10px; padding-inline:10px; min-height:48px; }
  .case-item,.saved-case-item { align-items:flex-start; flex-direction:column; gap:12px; padding:15px; } .case-actions { width:100%; gap:7px; } .case-actions button { flex:1; min-height:38px; } .case-title,.case-item h3 { font-size:14px; }
  .comparison-grid { gap:10px; } .comparison-card { padding:17px 13px; } .comparison-card b,.comparison-value { font-size:23px; } .comparison-card h3 { font-size:12px; } .comparison-inputs { grid-template-columns:1fr; } .comparison-delta { padding:13px; font-size:12px; }
  .method-step { gap:12px; } .method-step h3 { font-size:14px; } .method-step p { font-size:12px; } .method-step>span { width:28px; height:28px; } .reference-table { font-size:12px; }
  .toast,#toast { bottom:93px; font-size:12px; width:max-content; }
}
@media(max-width:375px) { .brand { gap:11px; } .brand-logo-window { width:135px; max-width:135px; } .brand-wording { font-size:12px; } .brand small { font-size:9px; } .form-grid { grid-template-columns:1fr; } .page-heading h1 { font-size:25px; } .wizard-nav>button { font-size:9px; } .context-strip>button { flex:1 0 100%; text-align:right; margin:0; } .calculate-bar b { max-width:140px; } .calculate-bar small { max-width:130px; font-size:9px; } .calculate-bar .primary-button { min-width:155px; } .result-top { flex-wrap:wrap; } .result-value { font-size:40px; } .report-heading>div:last-child { flex-wrap:wrap; } .comparison-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
@page { size:A4; margin:15mm 12mm 16mm; }
/* Guidance for visitors using the public calculator. */
.public-start { display:flex; align-items:center; gap:24px; justify-content:space-between; margin-bottom:20px; padding:23px 25px; border:1px solid #d9ccb1; border-radius:12px; background:linear-gradient(120deg,#fffdf8,#f3eddf); }
.public-start-copy { min-width:0; }
.public-start h2 { font-size:19px; font-weight:650; color:#3b372f; }
.public-start p { font-size:13px; line-height:1.9; color:#696258; margin-top:7px; max-width:730px; }
.public-start-facts { display:flex; flex-wrap:wrap; gap:7px 21px; margin-top:13px; font-size:11px; color:#665b45; }
.public-start-facts>span { display:flex; align-items:center; gap:7px; }
.public-start-facts .icon { width:16px; height:16px; color:#8d7348; }
.public-start>.secondary-button { flex:none; background:#fffaf0; white-space:nowrap; }
.public-input-note { margin-top:18px; }
.result-reading-link { display:flex; align-items:center; justify-content:space-between; width:100%; padding:13px 0 0; margin-top:11px; border:0; border-top:1px solid #ffffff24; color:#ead6a8; background:transparent; font-size:12px; text-align:right; }
.result-reading-link:hover { color:#fff; }
.guide-section-title { margin:25px 0 11px; font-size:17px; color:#4b453a; }
.guide-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:21px; }
.guide-steps>div { padding:17px 14px; border:1px solid #e6dece; border-radius:9px; background:#fbf9f4; }
.guide-steps>div>span { display:grid; place-items:center; width:27px; height:27px; margin-bottom:11px; border:1px solid #d8c7a4; border-radius:50%; color:#806734; background:#f7f0df; font-size:12px; }
.guide-steps h3 { font-size:14px; margin-bottom:5px; }
.guide-steps p { font-size:12px; line-height:1.9; }
.plain-glossary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin:0; }
.plain-glossary>div { padding:15px 17px; border:1px solid #e5dfd3; border-radius:8px; }
.plain-glossary dt { font-size:14px; font-weight:600; color:#4a4439; }
.plain-glossary dd { margin:5px 0 0; color:#736b5f; font-size:12px; line-height:1.9; }
.public-faq details { border-bottom:1px solid #e5dfd4; }
.public-faq-section { margin-top:28px; scroll-margin-top:24px; }
.public-faq-section .public-faq details:last-child { border-bottom:0; }
.public-faq summary { cursor:pointer; padding:15px 0; font-size:14px; font-weight:600; color:#4a453b; }
.public-faq details[open] summary { color:#806737; }
.public-faq details p { padding:0 0 15px; font-size:13px; line-height:1.95; }
.guide-end { display:flex; align-items:center; justify-content:space-between; gap:19px; margin-top:24px; padding:17px 19px; border-radius:9px; background:#f5f0e6; }
.guide-end p { font-size:13px; }
.guide-end a { flex:none; }
@media(max-width:960px) { .public-start { align-items:flex-start; } .public-start h2 { font-size:18px; } }
@media(max-width:760px) { .public-start { flex-direction:column; gap:17px; padding:22px; } .guide-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .public-start { padding:18px; margin-bottom:17px; } .public-start h2 { font-size:17px; line-height:1.7; } .public-start p { font-size:12px; } .public-start-facts { font-size:10px; gap:8px; flex-direction:column; } .public-start>.secondary-button { min-height:40px; font-size:12px; } .guide-steps { gap:8px; } .guide-steps>div { padding:13px 11px; } .guide-steps p { font-size:11px; } .plain-glossary { grid-template-columns:minmax(0,1fr); } .guide-end { flex-direction:column; align-items:flex-start; padding:15px; gap:12px; } .public-faq summary { font-size:13px; } .guide-section-title { font-size:16px; } }

/* Guided calculation, review, and readable compensation totals. */
.skip-link { position:fixed; z-index:150; top:10px; inset-inline-start:14px; display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; border:1px solid #c6a86a; border-radius:8px; background:#fffaf0; color:#352d1e; box-shadow:0 5px 22px #22232224; font-size:14px; font-weight:600; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.public-start { position:relative; align-items:center; gap:24px; padding:22px 25px; background:radial-gradient(ellipse at 0 0,#e9dbc055,transparent 65%),linear-gradient(115deg,#fffdf8,#f8f3e9); border-color:#d9ccb1; box-shadow:0 3px 12px #6a552906; }
.public-start h2 { max-width:720px; font-size:21px; line-height:1.65; letter-spacing:-.2px; }
.public-start-copy { flex:1; }
.public-start p { max-width:690px; color:#625c52; }
.public-start-facts { margin-top:12px; gap:7px 17px; }
.hero-actions { display:flex; flex-direction:column; align-items:stretch; gap:8px; min-width:150px; flex:none; }
.hero-actions .primary-button,.hero-actions .secondary-button { min-height:44px; padding-inline:16px; white-space:nowrap; }
.hero-actions .primary-button { background:#302d27; border-color:#302d27; box-shadow:0 3px 10px #302d2713; }
.hero-actions .primary-button:hover { background:#474136; border-color:#474136; }
.hero-actions .secondary-button { background:#fffaf0; color:#705d38; border-color:#d4c4a5; }
.wizard-progress { display:grid; gap:8px; margin:0 0 9px; }
#progress-label { color:#6d665b; font-size:11px; line-height:1.6; font-variant-numeric:tabular-nums; }
.progress-track { height:4px; overflow:hidden; border-radius:99px; background:#e6dfd2; }
.progress-track>span { display:block; height:100%; max-width:100%; border-radius:inherit; background:linear-gradient(90deg,#c7ab70,#94763e); }
.wizard-nav { margin-bottom:17px; }
.step-name { display:block; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }
.step-subtitle { display:block; margin-top:2px; font-size:10px; color:#888075; font-weight:400; line-height:1.5; }
.wizard-nav>button[aria-current="step"] .step-name { color:#625030; }
.optional-identification { margin-top:20px; padding:13px 15px; border:1px solid #e7e0d4; border-radius:8px; background:#faf8f3; }
.optional-identification summary { padding:0; font-size:13px; }
.optional-identification summary small { color:#7b7366; }
.optional-identification .form-grid { margin-top:19px; }
.optional-identification input { background:#fff; }
.review-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; min-width:0; margin-top:23px; padding-top:21px; border-top:1px solid #e5ded1; }
.review-summary-heading { grid-column:1/-1; margin-bottom:1px; }
.review-summary-heading h3 { margin:0; font-size:18px; font-weight:650; color:#403b31; }
.review-summary-heading p { margin-top:4px; font-size:12px; line-height:1.9; color:#776f62; }
.review-group { min-width:0; padding:15px 15px 9px; border:1px solid #e4dbcd; border-radius:9px; background:#fcfaf6; }
.review-group-heading { display:flex; align-items:center; justify-content:space-between; gap:9px; min-height:30px; margin-bottom:5px; padding-bottom:9px; border-bottom:1px solid #e9e0d3; }
.review-group-heading h4 { margin:0; color:#5c4b2f; font-size:13px; font-weight:650; line-height:1.65; }
.review-edit { flex:none; display:inline-flex; align-items:center; justify-content:center; min-height:30px; min-width:47px; padding:4px 8px; border:1px solid #d9cbae; border-radius:5px; color:#796238; background:#fffaf0; font-size:11px; line-height:1.5; }
.review-edit:hover { border-color:#b49a68; color:#4c3c20; background:#f4ecdd; }
.review-group dl { margin:0; min-width:0; }
.review-group dl>div { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:7px 0; border-bottom:1px solid #eee8de; font-size:11px; line-height:1.85; }
.review-group dl>div:last-child { border-bottom:0; }
.review-group dt { flex:1; min-width:0; color:#7a7367; }
.review-group dd { flex:1.15; min-width:0; margin:0; text-align:left; color:#3f3b34; font-size:12px; font-weight:600; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.review-reminder { grid-column:1/-1; margin:2px 0 0; padding:11px 13px; border:1px solid #e7dcc4; border-radius:7px; background:#f8f3e9; color:#756447; font-size:11px; line-height:1.9; }
#result-heading { font-size:13px; font-weight:500; line-height:1.7; min-width:0; }
.result-detail-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:5px 13px; padding:12px 0 0; margin-top:13px; border-top:1px solid #ffffff24; }
.result-detail-actions .text-like { min-height:30px; padding:3px 0; border:0; background:transparent; color:#eed4a1; font-size:11px; line-height:1.7; text-align:right; }
.result-detail-actions .text-like:hover:not(:disabled) { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.result-detail-actions .text-like:disabled { color:#c5baa6; }
.breakdown-card { min-width:0; padding:21px 23px; border:1px solid #e2d8c7; border-radius:12px; background:#fffdf9; }
.breakdown-card h3 { margin:0; color:#50442f; font-size:15px; font-weight:650; line-height:1.7; }
.breakdown-card>p { margin-top:5px; color:#7b7264; font-size:11px; line-height:1.9; }
.breakdown-list { display:grid; gap:14px; margin:18px 0 0; padding:0; list-style:none; }
.breakdown-list>li { min-width:0; }
.breakdown-row-heading { display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:12px; line-height:1.8; }
.breakdown-row-heading>span { min-width:0; color:#62594c; overflow-wrap:anywhere; }
.breakdown-row-heading>b { flex:none; color:#413b31; font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.breakdown-bar { height:5px; overflow:hidden; margin-top:6px; border-radius:99px; background:#eee7d9; }
.breakdown-bar>span { display:block; min-width:0; max-width:100%; height:100%; border-radius:inherit; background:#b59860; }
.breakdown-list small { display:block; margin-top:3px; color:#8a806f; font-size:10px; line-height:1.7; font-variant-numeric:tabular-nums; }
.breakdown-row-heading>b>small { display:inline; margin:0; }
.breakdown-card>p:last-child:not(:first-of-type) { margin-top:16px; padding-top:12px; border-top:1px solid #eee6d8; }
@media(min-width:961px) {
  .app-sidebar { padding-top:22px; padding-bottom:18px; }
  .brand { padding-bottom:16px; gap:10px; }
  .sidebar-section-label { padding-block:8px 10px; }
  .sidebar-nav { gap:5px; }
  .sidebar-nav>a,.sidebar-nav>button { min-height:45px; padding-block:10px; }
  .sidebar-help { padding-block:14px; }
  .sidebar-help>.icon { margin-bottom:7px; }
  .sidebar-footer { padding-top:16px; }
}
@media(max-width:1270px) {
  .hero-actions { min-width:138px; }
  .hero-actions .primary-button,.hero-actions .secondary-button { padding-inline:12px; font-size:12px; }
  .public-start { gap:20px; padding-inline:22px; }
  .public-start h2 { font-size:20px; }
  .breakdown-card { padding:19px 20px; }
  .review-group { padding-inline:13px; }
}
@media(max-width:1100px) and (min-width:761px) {
  .review-summary { grid-template-columns:minmax(0,1fr); }
  .public-start { align-items:flex-start; }
  .public-start h2 { font-size:19px; }
  .public-start-facts { gap:5px 12px; }
}
@media(max-width:960px) {
  .step-subtitle { display:none; }
  .wizard-progress { margin-bottom:8px; }
}
@media(max-width:760px) {
  .public-start { gap:17px; padding:21px 22px; }
  .hero-actions { flex-direction:row; flex-wrap:wrap; min-width:0; width:100%; gap:9px; }
  .hero-actions .primary-button,.hero-actions .secondary-button { min-height:42px; font-size:12px; }
  .wizard-nav { margin-bottom:17px; }
  .step-name { font-size:12px; }
  .review-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .breakdown-card { grid-column:1/-1; grid-row:4; padding:21px 23px; }
  .result-top { align-items:flex-start; }
  #result-heading { font-size:12px; }
}
@media(max-width:540px) {
  .public-start { padding:19px 18px; gap:15px; }
  .public-start h2 { font-size:18px; line-height:1.75; }
  .public-start p { font-size:12px; line-height:1.9; }
  .hero-actions { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:8px; }
  .hero-actions .primary-button,.hero-actions .secondary-button { min-height:43px; padding:9px 8px; font-size:11px; white-space:normal; }
  .public-start-facts { gap:7px; font-size:10px; }
  .wizard-progress { gap:7px; margin-bottom:7px; }
  #progress-label { font-size:10px; }
  .wizard-nav>button { gap:6px; min-height:72px; padding-bottom:11px; }
  .step-name { font-size:10px; line-height:1.6; }
  .optional-identification { padding:13px; margin-top:18px; }
  .optional-identification summary { font-size:12px; }
  .optional-identification .form-grid { margin-top:17px; }
  .review-summary { grid-template-columns:minmax(0,1fr); gap:10px; margin-top:22px; padding-top:19px; }
  .review-summary-heading h3 { font-size:17px; }
  .review-summary-heading p { font-size:11px; }
  .review-group { padding:14px 14px 8px; }
  .review-group-heading h4 { font-size:13px; }
  .review-group dl>div { padding-block:8px; gap:14px; font-size:11px; }
  .review-group dd { font-size:12px; }
  .review-reminder { font-size:10px; padding:11px 12px; }
  .breakdown-card { grid-column:auto; grid-row:auto; padding:21px 23px; border-radius:11px; }
  .breakdown-card h3 { font-size:15px; }
  .breakdown-row-heading,.breakdown-row-heading>b { font-size:12px; }
  .result-detail-actions { gap:6px 14px; }
  .result-detail-actions .text-like { font-size:11px; }
  #result-heading { font-size:13px; }
}
@media(max-width:375px) {
  .public-start h2 { font-size:17px; }
  .hero-actions .primary-button,.hero-actions .secondary-button { font-size:10px; }
  .step-name { font-size:9px; }
  .review-group dl>div { gap:10px; }
}

@media print {
  :root,html,body { background:#fff !important; color:#111 !important; font-size:10pt; } body { padding:0; }
  .screen-only,dialog,.toast,#toast,.svg-library,button,input,select,textarea,.report-toolbar { display:none !important; }
  .app-shell,.main-shell,main { display:block; width:100%; max-width:none; margin:0; padding:0; }
  #calculation-report:not([hidden]) { display:block !important; padding:0; margin:0; border:0; border-radius:0; box-shadow:none; } #calculation-report[hidden] { display:none !important; }
  .report-heading { display:flex; flex-direction:row; align-items:flex-end; gap:7mm; padding-bottom:5mm; margin-bottom:5mm; border-bottom:1pt solid #333; break-after:avoid; }
  .report-heading .report-brand { width:35mm; height:24.46mm; max-width:none; } .report-brand .brand-logo-window { width:100%; max-width:none; height:100%; border-radius:0; } .report-heading:has(.report-brand) { align-items:center; }
  .report-title-group { gap:5mm; width:auto; } .report-heading .report-title-group h2 { font-size:18pt; } .report-profession { color:#444; font-size:7.5pt; } .report-contact-line { color:#555; font-size:7pt; gap:1mm 2mm; margin-top:1.5mm; } .report-heading>div:last-child { max-width:45mm; } .report-contact-line a { font-size:7pt; }
  .report-heading h2 { font-size:20pt; color:#111; } .report-heading .section-kicker { font-size:8pt; color:#555; } #report-meta { color:#444; font-size:8pt; } .report-heading>div:last-child { display:block; width:auto; }
  .report-inputs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3mm 5mm; padding:4mm; margin-bottom:5mm; border:.5pt solid #aaa; border-radius:0; background:#fff; font-size:8.5pt; color:#444; break-inside:auto; }
  .report-inputs>div:not(.heir-report) { break-inside:avoid; }
  .report-inputs>div>span { font-size:7.5pt; color:#555; }
  .report-inputs>div>b { margin-top:1mm; }
  .report-inputs>.heir-report,.report-inputs>.heir-report .table-wrap { break-inside:auto; }
  .report-inputs>.heir-report>span { margin:2mm 0 3mm; font-size:8pt; color:#333; break-after:avoid; }
  .report-inputs b,.report-inputs strong,.report-inputs dd { color:#111; } .report-inputs dt { color:#555; font-size:7.5pt; }
  .table-wrap { overflow:visible; border:0; border-radius:0; } .report-section table,.report-table { width:100%; min-width:0; table-layout:fixed; font-size:8.5pt; line-height:1.5; }
  .report-section thead { display:table-header-group; } .report-section tfoot { display:table-row-group; break-inside:avoid; }
  .report-section th,.report-section td,.report-table th,.report-table td { padding:3mm 2.5mm; color:#222 !important; background:#fff !important; border-bottom:.5pt solid #ccc; overflow-wrap:anywhere; }
  .report-section th { font-size:8pt; border-top:1pt solid #444; border-bottom:1pt solid #444; } .report-section th:first-child { width:27%; } .report-section th:nth-child(2) { width:37%; } .report-section th:nth-child(3),.report-section th:nth-child(4) { width:18%; }
  .report-section .heir-report table { min-width:0; table-layout:fixed; font-size:7.5pt; break-inside:auto; }
  .report-section .heir-report th:first-child { width:20%; }
  .report-section .heir-report th:nth-child(2) { width:20%; }
  .report-section .heir-report th:nth-child(3) { width:6%; }
  .report-section .heir-report th:nth-child(4),.report-section .heir-report th:nth-child(5),.report-section .heir-report th:nth-child(6) { width:8%; }
  .report-section .heir-report th:nth-child(7) { width:30%; }
  .report-section .heir-report th,.report-section .heir-report td { padding:2.5mm 1.5mm; font-size:7.5pt; white-space:normal; overflow-wrap:anywhere; }
  .report-section td:nth-child(3),.report-section td:nth-child(4) { white-space:normal; font-size:8pt; } .report-section td b,.report-section td strong { color:#111; } .report-section td small { color:#555; font-size:7pt; } .row-source { color:#555 !important; font-size:7pt; } .formula-cell { font-size:8pt; }
  .report-section tr { break-inside:avoid; page-break-inside:avoid; }
  .report-section tfoot tr:last-child th,.report-section tfoot tr:last-child td { color:#111 !important; font-size:10pt; border-top:1.5pt solid #333; border-bottom:1.5pt solid #333; padding-block:4mm; }
  .report-notes { font-size:8pt; color:#444; line-height:1.8; margin-top:5mm; } .report-notes p,.report-notes li { orphans:3; widows:3; } .report-warning { color:#444; background:#fff; border:.5pt solid #aaa; padding:3mm; } a { color:#222; text-decoration:none; }
}

/* Neutral calculator identity and source attribution. */
.brand-mark { display:grid; place-items:center; width:64px; height:64px; flex:none; border:1px solid #8c7955; border-radius:15px; background:#ffffff08; color:#d7c09a; }
.brand-mark .icon { width:34px; height:34px; stroke-width:1.2; }
.author-credit { color:var(--muted); font-weight:400; }
.report-attribution { margin-top:22px; padding-top:11px; border-top:1px solid var(--line); color:var(--muted); text-align:center; font-size:11px; }
@media(max-width:960px) { .brand-mark { width:56px; height:56px; } }
@media print { .report-attribution { font-size:8pt; color:#555; border-color:#bbb; break-inside:avoid; } }

/* Preparation credit above the calculator, using the supplied original logo. */
.creator-banner { display:flex; align-items:center; gap:24px; padding:20px 0; border-bottom:1px solid var(--line); }
.creator-logo.brand-logo-window { width:148px; max-width:148px; border:1px solid #e9e4db; border-radius:9px; }
.creator-wording { min-width:0; }
.creator-wording>span { display:block; margin-bottom:5px; font-size:11px; color:var(--muted); }
.creator-wording strong { display:block; font-size:23px; font-weight:600; line-height:1.6; color:var(--ink); }
.creator-wording p { margin:4px 0 0; font-size:13px; line-height:1.7; color:var(--muted); }
@media(max-width:640px) {
  .creator-banner { gap:16px; padding:16px 0; }
  .creator-logo.brand-logo-window { width:112px; max-width:112px; }
  .creator-wording strong { font-size:18px; }
  .creator-wording p { font-size:11px; }
}
@media(max-width:375px) {
  .creator-banner { gap:12px; }
  .creator-logo.brand-logo-window { width:94px; max-width:94px; }
  .creator-wording strong { font-size:16px; }
}
