/* R4 uses the original V2 palette and gives total money a permanent position. */
:root { color-scheme:light; --ink:#12263c; --muted:#5f7185; --teal:#067781; --teal-dark:#075d65; --line:#d9e3e8; --paper:#fff; --canvas:#edf4f5; --mint:#e8f7ee; }
* { box-sizing:border-box; }
body { margin:0; background:var(--canvas); color:var(--ink); font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
[hidden] { display:none!important; }
a { color:var(--teal-dark); text-underline-offset:3px; }
button,input,select { font:inherit; }
button,summary { cursor:pointer; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid rgba(6,119,129,.45); outline-offset:3px; }
input,select { width:100%; min-width:0; min-height:48px; margin-top:7px; padding:12px 13px; border:1px solid #cad7de; border-radius:10px; background:#fff; color:var(--ink); }
select { padding-right:28px; }
input:focus,select:focus { outline:3px solid rgba(6,119,129,.24); outline-offset:1px; border-color:var(--teal); }
input[type=checkbox] { width:19px; height:19px; min-height:19px; flex:0 0 19px; margin:3px 0 0; accent-color:var(--teal); }
.lc-header { height:74px; padding:0 26px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); background:#fff; }
.lc-brand { min-width:0; display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; letter-spacing:.01em; }
.lc-brand>b { display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border-radius:14px; background:var(--teal); color:#fff; font-size:13px; font-weight:900; }
.lc-brand strong { display:block; font-size:15px; font-weight:800; line-height:1.3; }
.lc-brand small { display:block; margin-top:2px; color:var(--muted); font-size:13px; }
.lc-back,.lc-back:visited { display:inline-flex; align-items:center; justify-content:center; min-height:44px; flex-shrink:0; padding:0 16px; border:1px solid #c9dcdf; border-radius:999px; background:#fff; color:var(--teal-dark); font-size:13px; font-weight:800; text-decoration:none; }
.lc-back:hover { background:#effaf7; border-color:var(--teal); }
.lc-main { max-width:1240px; margin:0 auto; padding:32px 24px 20px; }
.lc-intro { max-width:800px; margin-bottom:28px; }
h1 { margin:0 0 14px; font-size:clamp(28px,3.2vw,38px); line-height:1.2; letter-spacing:-.7px; }
h2 { margin:0; font-size:19px; line-height:1.35; letter-spacing:-.3px; }
h3 { margin:0 0 14px; font-size:15px; line-height:1.4; }
p { margin:8px 0; }
.lc-eyebrow { margin:0 0 12px; color:var(--teal); font-size:11px; font-weight:850; letter-spacing:.085em; }
.lc-page-label { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.lc-test-badge { display:inline-flex; padding:4px 9px; border-radius:999px; background:var(--mint); color:#16734c; font-size:11px; font-weight:650; letter-spacing:0; }
.lc-intro>p:not(.lc-eyebrow) { max-width:750px; color:var(--muted); font-size:16px; }
.lc-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.lc-tags span { padding:5px 10px; border:1px solid #d9e7eb; border-radius:999px; background:#f2f8f9; color:#486778; font-size:12px; font-weight:650; }
.lc-layout { display:grid; grid-template-columns:minmax(0,1fr) 410px; align-items:start; gap:24px; }
.lc-form { min-width:0; display:grid; gap:18px; }
.lc-card { padding:24px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 8px 25px rgba(31,57,74,.04); }
.lc-section-title { display:flex; align-items:flex-start; gap:14px; margin-bottom:22px; }
.lc-section-title>span { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:9px; background:#edf6f7; color:var(--teal); font-size:12px; font-weight:800; }
.lc-section-title p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.lc-card label { display:block; margin:17px 0; color:#365064; font-size:13px; font-weight:750; }
.lc-card small { display:block; margin-top:6px; color:var(--muted); font-size:11px; font-weight:400; line-height:1.55; }
.lc-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.lc-grid label { min-width:0; margin:0; }
.lc-card .lc-check { display:flex; align-items:flex-start; gap:10px; color:var(--ink); font-size:12px; font-weight:450; line-height:1.65; }
.lc-source-hint { color:var(--muted); font-size:11px; line-height:1.65; overflow-wrap:anywhere; }
.lc-source-hint:empty { display:none; }
.lc-help { padding:5px 0 15px; border-bottom:1px solid var(--line); color:var(--muted); font-size:12px; }
.lc-help summary { color:var(--teal-dark); font-weight:650; }
.lc-help p { margin-top:12px; }
.lc-date-details { margin-top:16px; padding-bottom:0; border:0; }
.lc-advanced { margin-top:18px; padding:13px; border:1px dashed #cad7de; border-radius:10px; }
.lc-advanced[open] { background:#f8fbfc; }
.lc-notice,.lc-context { margin:14px 0; padding:14px; border:1px solid #d3e5e8; border-radius:10px; background:#f1f8f9; color:#365064; font-size:12px; }
.lc-context { margin:0 0 18px; }
.lc-context button { display:block; margin-top:8px; }
.lc-error { margin-top:14px; padding:14px; border:1px solid #e7bcad; border-radius:9px; background:#fff0eb; color:#973b23; font-size:13px; }
.lc-error button { padding:5px 10px; border:1px solid #d5aa9c; border-radius:6px; background:#fff; color:#973b23; }
.lc-primary,.lc-secondary { min-height:46px; padding:13px 16px; border-radius:9px; font-weight:800; line-height:1.4; }
.lc-primary { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:24px; border:1px solid var(--teal); background:var(--teal); color:#fff; }
.lc-primary:hover { background:var(--teal-dark); border-color:var(--teal-dark); }
.lc-primary span { font-size:20px; line-height:1; }
.lc-secondary { border:1px solid #cad7de; background:#fff; color:var(--teal-dark); font-size:13px; }
.lc-secondary:hover { background:#effaf7; }
.lc-action-row { display:grid; grid-template-columns:1fr 1.3fr; gap:12px; margin-top:20px; }
.lc-action-row .lc-primary { margin:0; }
.lc-auto-box { margin:18px 0; padding:14px; border:1px solid #d3e5e8; border-radius:10px; background:#f1f8f9; }
.lc-auto-box>strong { font-size:12px; }
.lc-auto-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.lc-auto-values small { min-height:30px; margin:0; font-size:10px; }
.lc-auto-values b { color:var(--teal); font-size:19px; font-variant-numeric:tabular-nums; }
.lc-draft-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 3px; color:var(--muted); font-size:11px; }
.lc-draft-bar button { padding:7px 0; border:0; background:none; color:var(--teal-dark); font:inherit; text-decoration:underline; }
.lc-result-column { min-width:0; position:sticky; top:20px; }
.lc-result { padding:22px; border:1px solid var(--line); border-top:4px solid var(--teal); border-radius:17px; background:#fff; color:var(--ink); box-shadow:0 8px 25px rgba(31,57,74,.06); overflow-wrap:anywhere; scroll-margin-top:20px; }
.lc-result:focus { outline:none; }
.lc-total-panel { margin:-1px -1px 22px; padding:18px; border:1px solid #d3e5e8; border-radius:12px; background:#f1f8f9; }
.lc-total-panel .lc-eyebrow { margin-bottom:9px; font-size:10px; }
.lc-total-panel h2 { font-size:18px; }
.lc-grand-total { margin:14px 0 8px; color:var(--teal); font-size:clamp(28px,2.6vw,36px); font-weight:850; line-height:1.15; letter-spacing:-.7px; font-variant-numeric:tabular-nums; }
.lc-grand-total>span { display:block; margin-top:5px; color:var(--muted); font-size:13px; font-weight:500; letter-spacing:0; }
.lc-total-pending { color:#365064; font-size:21px; letter-spacing:-.2px; }
.lc-total-caption { color:var(--muted); font-size:11px; line-height:1.6; }
.lc-readiness { margin-top:14px; padding-top:12px; border-top:1px solid #d3e5e8; }
.lc-readiness>p { color:#486778; font-size:12px; }
.lc-next-step { width:100%; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; padding:10px 12px; border:1px solid #c1dadd; border-radius:9px; background:#fff; color:var(--teal-dark); font-size:12px; font-weight:800; text-align:left; }
.lc-next-step:hover { border-color:var(--teal); background:#f8fcfc; }
.lc-missing-details { margin-top:12px; font-size:11px; }
.lc-missing-details summary { color:var(--muted); }
.lc-missing-list { display:grid; gap:5px; margin:10px 0 0; padding-left:18px; color:var(--muted); }
.lc-missing-list button { min-height:32px; padding:4px 0; border:0; background:none; color:var(--teal-dark); font-size:12px; line-height:1.4; text-align:left; text-decoration:underline; text-underline-offset:3px; }
.lc-result-warning { padding:9px; border-radius:7px; background:#fff5d8; color:#795600!important; }
.lc-unit-summary { scroll-margin-top:24px; }
.lc-unit-summary h3 { margin-bottom:12px; }
.lc-unit-summary dl { margin:0; }
.lc-unit-summary dl>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:10px; padding:10px 0; border-bottom:1px solid #edf2f4; }
.lc-unit-summary dt { color:var(--muted); font-size:12px; }
.lc-unit-summary dd { margin:0; color:var(--ink); font-size:14px; font-weight:800; font-variant-numeric:tabular-nums; text-align:right; }
.lc-unit-summary #lc-unit-price { color:var(--teal-dark); }
.lc-unit-summary .lc-unit-difference dt,.lc-unit-summary .lc-unit-difference dd { color:var(--ink); font-weight:750; }
.lc-unit-note { margin-top:11px; color:var(--muted); font-size:11px; }
.lc-money-breakdown { margin-top:24px; }
.lc-result table { width:100%; border-collapse:collapse; font-size:11px; text-align:left; font-variant-numeric:tabular-nums; }
.lc-result th,.lc-result td { padding:9px 4px; border-bottom:1px solid var(--line); }
.lc-result th { color:var(--muted); font-weight:600; }
.lc-result th:last-child,.lc-result td:last-child { text-align:right; }
.lc-result tfoot th,.lc-result tfoot td { padding-top:12px; color:var(--teal-dark); font-size:12px; font-weight:850; border:0; }
.lc-calculation-details { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); font-size:12px; }
.lc-calculation-details summary { color:var(--teal-dark); font-weight:750; }
.lc-calculation-details>p { margin:13px 0; color:var(--muted); }
.lc-calculation-details>p strong { color:var(--ink); }
.lc-result-price { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:12px 0; font-size:12px; }
.lc-result-price>span { color:var(--muted); }
.lc-result-price strong { font-size:13px; font-variant-numeric:tabular-nums; text-align:right; }
.lc-sources { display:grid; gap:9px; margin-top:15px; font-size:11px; line-height:1.6; }
.lc-result-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.lc-result-actions button { min-height:44px; padding:9px 12px; border:1px solid #cad7de; border-radius:9px; background:#fff; color:var(--teal-dark); font-size:12px; font-weight:750; }
.lc-result-actions button:hover { background:#effaf7; }
.lc-result-note { margin:10px 0 16px; padding:0 4px; color:var(--muted); font-size:11px; line-height:1.7; }
.lc-documents { padding:18px 20px; }
.lc-documents summary { color:var(--ink); font-size:14px; font-weight:750; }
.lc-documents p { color:var(--muted); font-size:11px; }
.lc-document { display:block; padding:11px 0; border-top:1px solid var(--line); font-size:12px; line-height:1.5; text-decoration:none; }
.lc-document small { font-size:10px; }
.lc-footer { display:flex; justify-content:space-between; gap:16px; margin-top:32px; padding:22px 0; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.lc-mobile-summary { display:none; }
@media(max-width:1000px) {
  .lc-layout { grid-template-columns:minmax(0,1fr) 350px; gap:18px; }
  .lc-card { padding:20px; }
  .lc-grid { grid-template-columns:1fr; }
  .lc-grid label+label { margin-top:10px; }
  .lc-result { padding:18px; }
  .lc-total-panel { padding:15px; }
  .lc-unit-summary dl>div { grid-template-columns:1fr; gap:5px; }
  .lc-unit-summary dd { text-align:left; }
}
@media(max-width:760px) {
  .lc-header { height:60px; padding:0 max(12px,env(safe-area-inset-left)); gap:10px; }
  .lc-brand { gap:9px; }
  .lc-brand>b { width:36px; height:36px; flex-basis:36px; border-radius:11px; font-size:10px; }
  .lc-brand strong { font-size:12px; line-height:1.18; }
  .lc-brand small { margin-top:1px; font-size:10.5px; }
  .lc-back { padding:0 12px; font-size:12px; }
}
@media(max-width:740px) {
  body { padding-bottom:calc(94px + env(safe-area-inset-bottom)); }
  .lc-main { padding:24px 16px 12px; }
  .lc-layout { grid-template-columns:1fr; gap:20px; }
  .lc-intro>p:not(.lc-eyebrow) { font-size:14px; }
  .lc-result-column { position:static; }
  .lc-tags { gap:6px; }
  .lc-tags span { padding:4px 8px; font-size:11px; }
  input,select { font-size:16px; }
  .lc-footer { display:block; }
  .lc-footer span { display:block; margin-top:6px; }
  .lc-mobile-summary { position:fixed; z-index:30; right:8px; bottom:0; left:8px; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:76px; padding:12px 12px calc(12px + env(safe-area-inset-bottom)); border:1px solid #c9dcdf; border-bottom:0; border-radius:15px 15px 0 0; background:#fff; box-shadow:0 -5px 20px rgba(21,50,72,.1); }
  .lc-mobile-summary>div { min-width:0; }
  .lc-mobile-summary span { display:block; color:var(--muted); font-size:10px; }
  .lc-mobile-summary strong { display:block; margin-top:3px; color:var(--teal-dark); font-size:17px; line-height:1.25; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
  .lc-mobile-summary[data-state=pending] strong { color:#365064; font-size:14px; }
  .lc-mobile-summary button { min-height:44px; flex:0 0 auto; padding:9px 12px; border:0; border-radius:9px; background:var(--teal); color:#fff; font-size:12px; font-weight:800; }
}
@media(max-width:460px) {
  .lc-auto-values { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lc-auto-values small { min-height:0; margin-bottom:4px; }
  .lc-action-row { grid-template-columns:1fr; }
  .lc-draft-bar { align-items:flex-start; }
  .lc-grand-total { font-size:31px; }
  .lc-total-pending { font-size:20px; }
}
@media(max-width:360px) {
  .lc-header { gap:6px; }
  .lc-brand { gap:7px; }
  .lc-brand strong { font-size:10.5px; }
  .lc-back { padding:0 9px; font-size:11px; }
  .lc-card { padding:18px; }
  .lc-grand-total { font-size:27px; }
  .lc-total-pending { font-size:19px; }
  .lc-mobile-summary strong { font-size:15px; }
}
@media print {
  body { padding:0; background:#fff; }
  .lc-header,.lc-intro,.lc-form,.lc-documents,.lc-footer,.lc-result-actions,.lc-mobile-summary,.lc-readiness { display:none!important; }
  .lc-main { padding:0; }
  .lc-layout { display:block; }
  .lc-result-column { position:static; }
  .lc-result { padding:18px; border:1px solid #cad7de; box-shadow:none; }
  .lc-result * { color:#12263c!important; }
  .lc-total-panel { background:#fff; }
  .lc-money-breakdown { break-inside:avoid; }
  .lc-result-note { font-size:11px; }
}

/* R6 additions retain the original V2 shell and R4 component styles. */
.lc-assumption-note,.lc-assumption-banner { margin:14px 0; padding:13px 14px; border:1px solid #d8b858; border-radius:10px; background:#fff8e3; color:#654d08; font-size:12px; line-height:1.6; }
.lc-assumption-note>strong,.lc-assumption-banner>strong { display:block; font-size:12px; font-weight:850; }
.lc-assumption-note .lc-check { margin-bottom:0; color:#654d08; }
.lc-assumption-banner { margin:14px 0 16px; }
.lc-assumption-banner p { margin:6px 0 0; }
.lc-result-mode { margin:10px 0; color:#5f7185; font-size:11px; font-weight:750; }
#lc-mobile-mode { display:block; margin-top:2px; color:#5f7185; font-size:10px; line-height:1.25; }
.lc-mobile-summary[data-mode=reference-estimate] #lc-mobile-mode { color:#795600; font-weight:750; }
@media(max-width:740px) {
  body { padding-bottom:calc(126px + env(safe-area-inset-bottom)); }
  .lc-mobile-summary { min-height:94px; }
  .lc-mobile-summary strong { font-size:16px; }
}
@media print {
  .lc-assumption-banner { display:block!important; border:2px solid #12263c; background:#fff; break-inside:avoid; }
  .lc-assumption-banner strong { font-size:12px; }
  .lc-assumption-banner p { font-size:11px; }
}
