:root { --zi-green:#5f8d3d; --zi-green-dark:#456f29; --zi-ink:#1d2520; --zi-muted:#68736b; --zi-line:#dde4de; --zi-soft:#f5f8f4; --zi-warn:#fff5d9; }
.zi-calculator { max-width: 980px; margin: 36px auto; color: var(--zi-ink); font-family: inherit; }
.zi-calculator * { box-sizing: border-box; }
.zi-hero { padding:44px; border:1px solid #2d3e24; border-radius:22px; background:#2d3e24; color:#fff; }
.zi-kicker,.zi-step { display:block; margin-bottom:8px; color:var(--zi-green-dark); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.zi-hero .zi-kicker { color:#c8d8bf; }
.zi-hero h2 { margin:0 0 12px; color:#fff; font-size:clamp(30px,5vw,50px); line-height:1.08; }
.zi-hero p { max-width:690px; margin:0; color:#e3eadf; font-size:18px; }
.zi-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:18px 0; position:sticky; top:var(--zi-sticky-top,0px); z-index:50; padding:8px 0; background:var(--zi-progress-bg,#fff); transition:box-shadow .2s ease; }
.zi-progress.is-stuck { box-shadow:0 6px 14px -10px rgba(20,45,26,.35); }
.zi-progress span { padding:10px 14px; border-radius:999px; background:#edf1ed; color:#7b857e; text-align:center; font-size:13px; font-weight:700; }
.zi-progress .is-active { background:var(--zi-green); color:#fff; }
.zi-progress .is-complete { background:#dcebd4; color:#345e28; }
.zi-panel { margin-top:18px; padding:30px; border:1px solid var(--zi-line); border-radius:18px; background:#fff; box-shadow:0 10px 35px rgba(20,45,26,.06); }
.zi-source-panel > input[type=url] { margin-top:8px; }
.zi-start-grid { margin-top:16px; }
.zi-pdf-fallback { margin-top:16px; border:1px solid var(--zi-line); border-radius:12px; background:#fafcf9; }
.zi-pdf-fallback > summary { display:flex; align-items:center; gap:10px; padding:12px 16px; cursor:pointer; color:var(--zi-green-dark); font-size:.95rem; font-weight:700; list-style:none; }
.zi-pdf-fallback > summary::-webkit-details-marker { display:none; }
.zi-pdf-fallback > summary::before { content:''; flex:0 0 auto; width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:8px solid currentColor; transition:transform .15s ease; }
.zi-pdf-fallback[open] > summary::before { transform:rotate(90deg); }
.zi-pdf-fallback > :not(summary) { margin-left:16px; margin-right:16px; }
.zi-pdf-fallback > :last-child { margin-bottom:16px; }
.zi-pdf-fallback[open] > summary { margin-bottom:4px; border-bottom:1px solid var(--zi-line); }
.zi-pdf-note { margin:0 0 12px; color:var(--zi-muted); font-size:.9rem; }
.zi-source-panel.is-started > input[type=url], .zi-source-panel.is-started .zi-start-grid { opacity:.6; }
.zi-calculator input,.zi-calculator select,.zi-calculator textarea { width:100%; min-height:48px; padding:10px 13px; border:1px solid #bac5bd; border-radius:9px; background:#fff; color:var(--zi-ink); font:inherit; }
.zi-calculator input::placeholder,.zi-calculator textarea::placeholder { color:#aab4ad; opacity:1; }
.zi-calculator input:focus,.zi-calculator select:focus,.zi-calculator textarea:focus { outline:3px solid rgba(95,141,61,.18); border-color:var(--zi-green); }
.zi-button { min-height:48px; padding:11px 20px; border:0; border-radius:9px; cursor:pointer; font:inherit; font-weight:800; }
.zi-button:disabled { cursor:not-allowed; opacity:.65; }
.zi-button-primary { background:var(--zi-green); color:#fff; }
.zi-button-primary:hover { background:var(--zi-green-dark); }
.zi-button-secondary { background:#eef3ee; color:var(--zi-ink); }
.zi-wide { width:100%; margin-top:22px; }
.zi-divider { display:flex; align-items:center; gap:12px; margin:18px 0; color:#8b948e; font-size:13px; text-transform:uppercase; }
.zi-divider::before,.zi-divider::after { content:""; flex:1; height:1px; background:var(--zi-line); }
.zi-upload { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:125px; padding:18px; border:2px dashed #afbdaf; border-radius:13px; background:var(--zi-soft); cursor:pointer; text-align:center; }
.zi-upload:hover { border-color:var(--zi-green); }
.zi-upload.is-dragover { border-color:var(--zi-green); background:#e8f2e3; box-shadow:0 0 0 4px rgba(95,141,61,.14); }
.zi-upload span { margin-top:4px; color:var(--zi-muted); }
.zi-upload input { position:absolute; width:1px; height:1px; opacity:0; }
.zi-help { margin-top:15px; color:var(--zi-muted); }
.zi-help summary { cursor:pointer; font-weight:700; }
.zi-help ol { margin-bottom:0; }
.zi-privacy-note { margin:12px 0 0; color:var(--zi-muted); font-size:.9rem; }
.zi-privacy-link { padding:0; border:0; background:none; color:var(--zi-green-dark); font:inherit; font-size:.9rem; text-decoration:underline; cursor:pointer; }
.zi-privacy-dialog { box-sizing:border-box; max-width:640px; width:calc(100% - 32px); padding:26px 28px; border:0; border-radius:16px; color:var(--zi-ink); box-shadow:0 20px 60px rgba(20,45,26,.3); }
.zi-privacy-dialog::backdrop { background:rgba(20,30,22,.55); }
.zi-privacy-dialog h3 { margin:0 0 12px; }
.zi-privacy-dialog p { margin:0 0 12px; color:var(--zi-muted); font-size:.95rem; line-height:1.55; }
.zi-privacy-dialog .zi-button { margin-top:6px; }
.zi-status { min-height:24px; margin-top:15px; font-weight:700; }
.zi-status.is-loading { color:#56685c; }
.zi-status.is-success { color:#327339; }
.zi-status.is-error { color:#a23434; }
.zi-calculate-status { min-height:24px; margin-top:10px; color:#a23434; font-weight:700; text-align:center; }
.zi-calculate-status:empty { min-height:0; margin-top:0; }
.zi-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.zi-section-heading h3 { margin:0; font-size:26px; }
.zi-section-heading .zi-step { color:var(--zi-green-dark); }
.zi-result-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.zi-badge { padding:7px 10px; border-radius:999px; background:#eaf5e5; color:#3f7130; font-size:12px; font-weight:800; }
.zi-grid { display:grid; gap:16px; }
.zi-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.zi-field { display:flex; flex-direction:column; gap:6px; font-weight:700; }
.zi-field small { color:var(--zi-muted); font-weight:400; }
.zi-check { display:flex; align-items:center; gap:10px; align-self:center; font-weight:700; }
.zi-check input { width:20px; min-height:20px; }
.zi-financing-label { display:flex; align-items:center; gap:10px; cursor:pointer; }
.zi-info-button { flex:0 0 auto; width:26px; height:26px; padding:0; border:2px solid var(--zi-green-dark); border-radius:50%; background:#fff; color:var(--zi-green-dark); font:italic 700 .95rem/1 Georgia,serif; cursor:pointer; }
.zi-info-button:hover { background:var(--zi-green-dark); color:#fff; }
.zi-info-button:focus-visible, .zi-financing-label input:focus-visible { outline:3px solid #80b82d; outline-offset:2px; }
.zi-space-top { margin-top:34px; padding-top:28px; border-top:1px solid var(--zi-line); }
.zi-alert { display:flex; flex-direction:column; gap:5px; margin-top:18px; padding:15px 17px; border-radius:10px; }
.zi-alert-warning { border:1px solid #e8ca72; background:var(--zi-warn); color:#624d16; }
.zi-alert-info { border:1px solid #9bbbd1; background:#eef7fc; color:#214f6c; }
.zi-rdw-button { align-self:flex-start; min-height:40px; margin-top:8px; padding:8px 14px; }
.zi-rdw-button:disabled { cursor:wait; opacity:.65; }
.zi-rdw-results { margin-top:8px; }
.zi-rdw-results > p { margin:8px 0; }
.zi-rdw-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:10px; }
.zi-rdw-card { display:flex; flex-direction:column; gap:4px; padding:12px; border:1px solid #e0c563; border-radius:9px; background:#fffdf6; color:var(--zi-ink); font-size:13px; }
.zi-rdw-card span { color:var(--zi-muted); }
.zi-rdw-card b { margin-top:3px; color:#3d6730; }
.zi-rdw-card small { font-weight:400; }
.zi-rdw-disclaimer { padding-top:8px; border-top:1px solid #ead589; font-size:12px; line-height:1.45; }
.zi-result { border-top:5px solid var(--zi-green); }
.zi-result-car { display:flex; flex-direction:column; gap:4px; padding:17px; border-radius:12px; background:var(--zi-soft); }
.zi-result-car strong { font-size:20px; }
.zi-result-car span { color:var(--zi-muted); }
.zi-result dl { margin:20px 0; }
.zi-price-notes { margin:0 0 16px; padding:12px 15px 12px 32px; border-left:4px solid #e0a100; border-radius:6px; background:#fff7e6; color:#5b4300; font-weight:600; }
.zi-price-notes[hidden] { display:none; }
.zi-result dl div { display:flex; justify-content:space-between; gap:20px; padding:11px 3px; border-bottom:1px solid var(--zi-line); }
.zi-result dt,.zi-result dd { margin:0; }
.zi-result dd { font-weight:800; text-align:right; }
.zi-total { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px; border:1px solid #2d3e24; border-radius:12px; background:#2d3e24; color:#fff; }
.zi-total strong { font-size:28px; }
.zi-total small { flex-basis:100%; color:#e3eadf; font-size:13px; text-align:right; }
.zi-disclaimer { margin:16px 0 0; color:var(--zi-muted); font-size:12px; line-height:1.5; }
.zi-lead-box { margin-top:28px; padding:24px; border-radius:14px; background:#f1f7ed; border:1px solid #cadfc0; }
.zi-lead-box h4 { margin:0 0 8px; font-size:24px; }
.zi-lead-box > p { margin:0 0 20px; color:var(--zi-muted); }
.zi-lead-message { margin-top:16px; }
.zi-lead-message textarea { resize:vertical; }
.zi-lead-consent { align-items:flex-start; margin:16px 0; font-size:14px; }
.zi-lead-consent input { flex:0 0 20px; margin-top:2px; }
.zi-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.zi-lead-status { min-height:24px; margin-top:12px; font-weight:700; }
.zi-lead-status.is-loading { color:#56685c; }
.zi-lead-form.is-sent > :not(.zi-lead-status) { display:none; }
.zi-lead-status.is-success { display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:22px; border:1px solid #b8d2aa; border-radius:12px; background:#fff; color:#327339; }
.zi-lead-status.is-success strong { font-size:22px; }
.zi-lead-status.is-success span { color:var(--zi-ink); font-weight:400; }
.zi-lead-status.is-success .zi-button { margin-top:8px; }
.zi-lead-status.is-error { color:#a23434; }
[hidden] { display:none !important; }
@media(max-width:700px){.zi-hero,.zi-panel{padding:22px}.zi-grid-2,.zi-rdw-grid{grid-template-columns:1fr}.zi-section-heading{flex-direction:column}.zi-result-actions{width:100%;justify-content:flex-start}.zi-result-actions .zi-button{flex:1 1 220px}.zi-progress span{padding:8px 4px;font-size:11px}.zi-total{align-items:flex-start;flex-direction:column}.zi-total strong{font-size:24px}}
@media print { body *{visibility:hidden}.zi-result,.zi-result *{visibility:visible}.zi-result{position:absolute;inset:0;width:100%;margin:0;border:0;box-shadow:none}.zi-result .zi-button{display:none} }
.zi-financing-dialog { max-height:calc(100vh - 32px); overflow:auto; }
.zi-financing-dialog h4 { margin:16px 0 8px; }
.zi-financing-dialog ul { margin:0 0 12px; padding-left:20px; color:var(--zi-muted); font-size:.95rem; line-height:1.55; }
.zi-financing-dialog li { margin-bottom:6px; }
.zi-financing-dialog { box-sizing:border-box; }
