/* ==========================================================================================
   CASCO calculator — epolițe (/calculator-casco, /checkout-casco, /casco-payment)
   Merged from the design files (design/casco: mobile + desktop, every page), one responsive
   stylesheet: shared rules first, then < 992px (mobile header, .foot in flow), 768–991px (tablet
   column) and >= 992px (desktop shell with the rail). Class names and tokens are the design's.
   Everything is scoped under .casco-app (the page wrapper) so nothing leaks into the site; the
   design's demo scaffolding (.demo-nav, :target state switching, .topbar) is dropped.
   Loaded through the head-css section, i.e. BEFORE bootstrap + style.css: every rule here carries
   the .casco-app class so it still wins on specificity.
   ========================================================================================== */

/* ── tokens + design base (shared by every width) ─────────────────────────────────────── */
.casco-app{--g:#0d967e;--gd:#00826c;--gdk:#064e42;--gl:#cdeae6;--gs:#e4faf7;--gs2:#f2fffd;--y:#f7c244;--gray:#F2F3F5;--gray2:#9E9E9E;--line:#E4E4E4;--ts:#1f2937;--m:#6b7280;--red:#d92d20;--reds:#fef3f2;--redl:#fecdca;--amber:#b54708;--ambers:#fffaeb;--amberl:#fedf89}
.casco-app{font-family:"Segoe","Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--gray);color:#333;-webkit-font-smoothing:antialiased;line-height:1.5;display:flow-root}
.casco-app a{color:var(--g);text-decoration:none}.casco-app a:hover{color:var(--gd);text-decoration:underline}
.casco-app .ti{line-height:1}
.casco-app .form-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--m);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.casco-app .form-label .req{color:var(--red)}
.casco-app .form-control,.casco-app .form-select{height:44px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;font-weight:600;color:var(--ts);font-family:inherit}
.casco-app .form-control:focus,.casco-app .form-select:focus,.casco-app .form-check-input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(13,150,126,.15)}
.casco-app .form-control::placeholder{color:#b0b5bb;font-weight:400}
.casco-app .form-control.auto,.casco-app .form-select.auto{border-color:var(--gl);background-color:var(--gs2)}
/* locked (lookup-filled) inputs are `disabled`: beat the site's global input[disabled] pink text */
.casco-app .form-control:disabled{color:var(--ts);-webkit-text-fill-color:var(--ts);opacity:1}
.casco-app .form-control.is-invalid,.casco-app .form-select.is-invalid{border-color:var(--red);background-color:var(--reds);background-image:none}
.casco-app .invalid-feedback{font-size:11.5px;font-weight:600;color:var(--red)}
.casco-app .form-text{font-size:11.5px;color:var(--m)}
.casco-app .form-text.warn{color:var(--amber);font-weight:600}
.casco-app .form-text.warn .ti{font-size:14px;vertical-align:-2px}
/* plate, VIN and CI series read as they are stored: uppercase on screen (the value itself is normalised server
   side by casco_plate / casco_vin / OwnerStep::normalise), placeholders left alone */
.casco-app .vin,.casco-app #casco-plate,.casco-app #casco-id_series,.casco-app #casco-rep_id_series{text-transform:uppercase}
.casco-app .vin::placeholder,.casco-app #casco-plate::placeholder{text-transform:none}
.casco-app .vin{letter-spacing:.04em}
.casco-app .input-ico{position:relative}.casco-app .input-ico .form-control{padding-right:38px}
.casco-app .input-ico>i{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:16px}
.casco-app .input-ico>.chip{position:absolute;right:10px;top:50%;transform:translateY(-50%)}
.casco-app .form-check-input{width:20px;height:20px;margin-top:1px;border:1.5px solid #b0b5bb;flex:none}
.casco-app .form-check-input:checked{background-color:var(--g);border-color:var(--g)}
.casco-app .form-check-input.is-invalid{border-color:var(--red)}
.casco-app .btn-ep{background:var(--g);color:#fff;border-radius:24px;padding:13px 22px;font-weight:700;font-size:14.5px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.casco-app .btn-ep:hover{background:var(--gd);color:#fff;text-decoration:none}
.casco-app .btn-ep:disabled,.casco-app .btn-ep.disabled{background:#cfd4d8;opacity:1;pointer-events:none}
.casco-app .btn-ep.lg{padding:14px 34px;font-size:15px}.casco-app .btn-ep.sm{padding:10px 20px;font-size:13.5px}
.casco-app .btn-ep-ghost{background:#fff;color:var(--g);border:1.5px solid var(--g);border-radius:24px;padding:11px 14px;font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.casco-app .btn-ep-ghost:hover{background:var(--gs);color:var(--gd);text-decoration:none}
.casco-app .btn-ep-ghost.sm{padding:9px 16px;font-size:13px}
.casco-app .btn-ep-ghost:disabled,.casco-app .btn-ep-ghost.disabled{color:#9aa0a6;border-color:#d7dadd;pointer-events:none}
.casco-app .drop{border:2px dashed var(--gl);border-radius:14px;background:var(--gs2);text-align:center;color:var(--m);font-size:12.5px;padding:16px 14px;display:block;cursor:pointer}
.casco-app .drop i{font-size:30px;color:var(--g)}.casco-app .drop b{color:var(--ts);font-size:14px;display:block}.casco-app .drop input{display:none}
.casco-app .drop.off{border-color:#dcdfe2;background:#f7f8f9;color:#9aa0a6;cursor:not-allowed;pointer-events:none}
.casco-app .drop.off i{color:#b8bcc0}.casco-app .drop.off b{color:#9aa0a6}.casco-app .drop.off .chip{background:#e9ebed;color:#9aa0a6}
.casco-app .consent.err{border-color:var(--red);background:var(--reds)}
.casco-app .consent-err{display:block;margin-top:6px;font-size:12.5px;font-weight:700;color:var(--red)}
.casco-app .drop.off .hintoff{display:block;margin-top:10px;font-size:11.5px;font-weight:600;color:var(--amber)}
.casco-app .chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;border-radius:99px;padding:4px 9px;white-space:nowrap}
.casco-app .chip.ok{background:var(--gs);color:var(--gd)}.casco-app .chip.err{background:var(--redl);color:#912018}.casco-app .chip.warn{background:var(--amberl);color:var(--amber)}.casco-app .chip.neu{background:var(--gray);color:var(--m)}.casco-app .chip.y{background:var(--y);color:#3b2d00}
.casco-app .chip.xs{font-size:10px;padding:2px 7px}
.casco-app .or{display:flex;align-items:center;gap:10px;margin:12px 0 10px;color:var(--gray2);font-size:11px;font-weight:700}.casco-app .or span{flex:1;height:1px;background:var(--line)}
.casco-app .filecard{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;border:1px solid var(--gl);background:var(--gs2)}
.casco-app .filecard.err{border-color:var(--redl);background:var(--reds)}
/* the card's thumbnail is a mini-illustration of the document type (inline SVG in upload_zone.php):
   no request, crisp at any size, and the private upload never has to come back to the browser */
.casco-app .filecard .thumb{width:44px;height:30px;flex:none;border-radius:5px;overflow:hidden;line-height:0}
.casco-app .filecard .thumb svg{display:block;width:100%;height:100%}
.casco-app .filecard .thumb.bad{filter:grayscale(.75);opacity:.65}
.casco-app .filecard .name{font-size:13px;font-weight:700;color:var(--ts)}.casco-app .filecard .sub{font-size:11.5px;color:var(--m)}
.casco-app .sec{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--g);display:flex;align-items:center;gap:8px;margin:14px 0 8px}
.casco-app .sec span{flex:1;height:1px;background:var(--gl)}.casco-app .sec a{font-size:11px;letter-spacing:0;text-transform:none;font-weight:700}
.casco-app .alert-ep{border-radius:12px;padding:10px 12px;display:flex;gap:10px;font-size:12.5px;line-height:1.45;margin:0}
.casco-app .alert-ep i{font-size:20px;flex:none;margin-top:1px}.casco-app .alert-ep b{display:block;font-size:13.5px;margin-bottom:1px}
.casco-app .alert-ep.err{background:var(--reds);border:1px solid var(--redl);color:#7a271a}.casco-app .alert-ep.err i{color:var(--red)}
.casco-app .alert-ep.ok{background:var(--gs);border:1px solid var(--gl);color:var(--gdk)}.casco-app .alert-ep.ok i{color:var(--g)}
.casco-app .alert-ep.warn{background:var(--ambers);border:1px solid var(--amberl);color:var(--amber)}.casco-app .alert-ep.warn i{color:var(--amber)}
.casco-app .alert-ep.info{background:#f2f6fb;border:1px solid #cfdcec;color:#1f3a5f}.casco-app .alert-ep.info i{color:#2f5f98}
.casco-app .muted{color:var(--m);font-size:12.5px;line-height:1.5}
.casco-app .stop{text-align:center;padding:20px 8px 0}
.casco-app .stop .ic{width:72px;height:72px;border-radius:50%;background:var(--reds);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto 16px}
.casco-app .stop .ic.ok{background:var(--gs);color:var(--g)}.casco-app .stop .ic.neu{background:var(--gray);color:var(--m)}.casco-app .stop .ic.warn{background:var(--ambers);color:var(--amber)}
.casco-app .stop h3{font-size:19px;font-weight:800;color:var(--ts);line-height:1.3}
.casco-app .kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:9px 0;border-bottom:1px solid var(--line)}
.casco-app .kv span{color:var(--m);flex:none}.casco-app .kv b{color:var(--ts);text-align:right}.casco-app .kv.bad b{color:var(--red)}.casco-app .kv.ok b{color:var(--g)}
.casco-app .seg{display:flex;background:var(--gray);border-radius:12px;padding:4px;margin-bottom:12px}
.casco-app .seg a{flex:1;text-align:center;padding:9px 6px;font-size:12.5px;font-weight:700;color:var(--m);border-radius:9px;display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;min-height:44px}
.casco-app .seg a.on{background:#fff;color:var(--ts);box-shadow:0 1px 4px rgba(0,0,0,.08)}.casco-app .seg a.on i{color:var(--g)}
.casco-app .seg.sm a{min-height:40px;padding:7px 18px;min-width:68px}
.casco-app .qlabel{font-size:13.5px;font-weight:700;color:var(--ts);margin-bottom:8px}
.casco-app .cui-form{display:flex;flex-direction:column;gap:12px;max-width:420px}
.casco-app .consent{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px}
.casco-app .consent label{font-size:12px;line-height:1.5;color:#444;cursor:pointer}
.casco-app .consent .legal{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--amber);background:var(--ambers);border:1px solid var(--amberl);border-radius:5px;padding:1px 6px;margin-top:6px}
.casco-app .consent-ok{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gd);font-weight:600;padding:8px 12px;background:var(--gs);border-radius:10px;margin-bottom:10px}
.casco-app .consent-ok i{font-size:16px}.casco-app .consent-ok a{margin-left:auto;font-size:11.5px;font-weight:700;white-space:nowrap}
.casco-app .docpanel{border:1px solid var(--line);border-radius:14px;padding:14px 16px;max-height:420px;overflow:auto;font-size:12.5px;line-height:1.6;color:#444}
.casco-app .docpanel h4{font-size:13.5px;font-weight:800;color:var(--g);margin:14px 0 6px}.casco-app .docpanel h4:first-child{margin-top:0}
.casco-app .docpanel ul.cov{list-style:none;padding:0;margin:6px 0 0}
.casco-app .docpanel ul.cov li,.casco-app .cov li{display:flex;gap:8px;align-items:flex-start;padding:3px 0}
.casco-app .cov li i{color:var(--g);font-size:15px;flex:none;margin-top:2px}
.casco-app .cov{list-style:none;padding:0;margin:0}
.casco-app .strip{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:12.5px}
.casco-app .strip>div{display:flex;gap:6px;align-items:center;min-width:0}.casco-app .strip span{color:var(--m)}.casco-app .strip b{color:var(--ts);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.casco-app .strip a{font-size:11.5px;font-weight:700;white-space:nowrap}
.casco-app .offer{border:1.5px solid var(--line);border-radius:16px;background:#fff;padding:16px;position:relative;display:flex;flex-direction:column;gap:10px}
.casco-app .offer.best{border-color:var(--gl)}.casco-app .offer.sel{border-color:var(--g);box-shadow:0 0 0 3px rgba(13,150,126,.12)}
.casco-app .offer .badge-sel{position:absolute;top:-11px;right:14px}
.casco-app .offer .ins{display:flex;align-items:center;gap:10px}.casco-app .offer .ins img{height:22px;width:auto}.casco-app .offer .ins span{font-size:12px;font-weight:700;color:var(--ts)}
.casco-app .offer .sum{font-size:12px;color:var(--m);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.casco-app .offer .sum b{display:block;font-size:26px;color:var(--g);letter-spacing:-.01em;text-transform:none;line-height:1.1}
.casco-app .offer .sum small{display:block;font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;margin-top:2px}
.casco-app .offer .prem{display:flex;align-items:baseline;gap:8px;padding:10px 12px;background:var(--gs2);border-radius:10px}
.casco-app .offer .prem b{font-size:22px;color:var(--ts)}.casco-app .offer .prem span{font-size:11.5px;color:var(--m)}
.casco-app .offer .per{font-size:12px;color:var(--m)}
.casco-app .offer .cov li{font-size:12.5px;color:#444}
/* step 4: the start-date card and the block shown before "Vezi oferte" (user rule 2026-09-22) */
.casco-app .datecard{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}
.casco-app .offers-idle{display:flex;gap:12px;align-items:flex-start;border:1.5px dashed var(--line);border-radius:14px;padding:18px 16px;color:var(--m);font-size:13px;line-height:1.5}
.casco-app .offers-idle i{font-size:24px;color:var(--g)}.casco-app .offers-idle b{display:block;color:var(--ts);font-size:14px}
.casco-app .offer .acts{display:flex;flex-direction:column;gap:8px;margin-top:auto}
/* the insurer's offer + PID: a one-line document link, not a second full-size button next to "Alege oferta"
   (user report 2026-09-22: the outlined button wrapped onto two lines and outweighed the main action) */
.casco-app .offer .acts .doclink{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:center;min-height:36px;padding:4px 8px;font-size:13px;font-weight:700;color:var(--g);white-space:nowrap;text-decoration:none;border-radius:8px}
.casco-app .offer .acts .doclink i{font-size:17px}
.casco-app .offer .acts .doclink:hover{color:var(--gd);text-decoration:underline;text-underline-offset:2px}
.casco-app .offer .valid{font-size:11px;color:var(--gray2);text-align:center}
.casco-app .skel{background:linear-gradient(90deg,#eceef0 25%,#f6f7f8 50%,#eceef0 75%);background-size:200% 100%;animation:casco-sh 1.4s infinite;border-radius:8px}
@keyframes casco-sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
.casco-app .spin{width:22px;height:22px;border:3px solid var(--gl);border-top-color:var(--g);border-radius:50%;animation:casco-rot .8s linear infinite;display:inline-block}
.casco-app .spin.lg{width:48px;height:48px;border-width:4px}
@keyframes casco-rot{to{transform:rotate(360deg)}}
.casco-app .prog{height:6px;background:var(--gray);border-radius:3px;overflow:hidden}.casco-app .prog i{display:block;height:100%;width:45%;background:var(--g);border-radius:3px;animation:casco-pw 2.4s ease-in-out infinite}
@keyframes casco-pw{0%{width:15%}50%{width:70%}100%{width:15%}}
.casco-app .ck{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}
.casco-app .ck .hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.casco-app .ck .hd b{font-size:14px;color:var(--ts);display:flex;align-items:center;gap:8px}.casco-app .ck .hd b i{color:var(--g)}.casco-app .ck .hd a{font-size:12px;font-weight:700}
.casco-app .ck .kv{font-size:12.5px;padding:7px 0}.casco-app .ck .kv:last-child{border-bottom:0}
.casco-app .paycard{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
.casco-app .paycard.on{border-color:var(--g);background:var(--gs2)}
.casco-app .paycard.off{opacity:.55;cursor:not-allowed}
.casco-app .paycard .rad{width:20px;height:20px;border-radius:50%;border:2px solid #b0b5bb;flex:none;margin-top:1px}
.casco-app .paycard.on .rad{border-color:var(--g);background:radial-gradient(circle,var(--g) 0 5px,#fff 6px)}
.casco-app .paycard b{font-size:13.5px;color:var(--ts);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.casco-app .paycard .sub{font-size:12px;color:var(--m);margin-top:2px}
.casco-app .paycard .logos{margin-left:auto;display:flex;gap:6px}.casco-app .paycard .logos span{font-size:10px;font-weight:800;border:1px solid var(--line);border-radius:4px;padding:2px 6px;color:var(--m)}
.casco-app .rates{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.casco-app .rate{border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12px;text-align:center;min-width:88px;background:#fff}
.casco-app .rate b{display:block;font-size:13.5px;color:var(--ts)}.casco-app .rate.on{border-color:var(--g);background:var(--gs)}.casco-app .rate.on b{color:var(--gd)}
.casco-app .rate.off{opacity:.5;position:relative}.casco-app .rate.off:hover::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:#222;color:#fff;font-size:10.5px;padding:5px 8px;border-radius:6px;white-space:nowrap;opacity:1}
.casco-app .total{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.casco-app .total span{font-size:13px;color:var(--m);font-weight:700}.casco-app .total b{font-size:22px;color:var(--g)}
.casco-app .summary-box{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}
.casco-app .consents{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.casco-app .consents .form-check{display:flex;gap:10px;padding:0;margin:0;align-items:flex-start}.casco-app .consents label{font-size:12px;line-height:1.5;color:#444}
.casco-app .consents.bad .form-check-input{border-color:var(--red)}
.casco-app .center{text-align:center;padding:30px 8px 0}

/* ── site-reset compensation: style.css resets b, p, h1-h6, ul, li to font:inherit + margin 0
      and sets body line-height 1; the design was drawn on plain Bootstrap ────────────────── */
.casco-app b,.casco-app strong{font-weight:700}
.casco-app p{margin:0 0 1rem}
.casco-app h2,.casco-app h3,.casco-app h4{line-height:1.25;margin:0 0 .5rem}
.casco-app small,.casco-app .small{font-size:.875em}
.casco-app ul,.casco-app ol{font-size:inherit;line-height:inherit}
.casco-app ul li,.casco-app ol li,.casco-app ul li a,.casco-app ul li p{line-height:inherit}
.casco-app button,.casco-app input,.casco-app select,.casco-app textarea{font-family:inherit}

/* ── headings of the step content: <h2 class="h2"> + <p class="muted"> ───────────────────── */
.casco-app .h2{font-size:18px;font-weight:800;color:var(--ts);line-height:1.3;margin:0 0 .5rem}

/* ── layout blocks used on every width (desktop widens them below) ─────────────────────── */
.casco-app .offers{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.casco-app .ckgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.casco-app .actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}

/* ── stop page (stop.php) ────────────────────────────────────────────────────────────── */
.casco-app .stop .stop-text{font-size:13.5px}
.casco-app .stop .stop-text b{color:var(--ts)}
.casco-app .stop .stop-text b.bad{color:var(--red)}
.casco-app .stop .kv .ti-x{font-size:13px}

/* ── narrow-screen overflow fixes (design bug: checkout consents overflowed; long values) ── */
.casco-app .consents,.casco-app .consents .form-check{min-width:0;max-width:100%}
.casco-app .consents .form-check .form-check-input{float:none;margin-left:0}
.casco-app .consents label .doc,.casco-app .consents label a{color:var(--g);font-weight:700}
.casco-app .consents .form-check label,.casco-app .consent label{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.casco-app .kv b{min-width:0;overflow-wrap:anywhere}
.casco-app .paycard>div,.casco-app .filecard>div{min-width:0}
.casco-app .filecard .name{overflow-wrap:anywhere}

/* ── upload zone: keep the file input keyboard-reachable (the design hid it with display:none) */
.casco-app .drop{position:relative}
.casco-app .drop input{display:block;position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);pointer-events:none}
.casco-app .drop:focus-within{outline:2px solid var(--g);outline-offset:2px}

/* ── htmx: double-submit guard (hx-sync drops the 2nd request; this greys the buttons) ───── */
.casco-app .htmx-request .btn-ep,.casco-app .htmx-request .btn-ep-ghost,
.casco-app .btn-ep.htmx-request,.casco-app .btn-ep-ghost.htmx-request{pointer-events:none;opacity:.6}
.casco-app .btn-ep,.casco-app .btn-ep-ghost{min-height:44px}

/* ── full-screen loader: the page wrapper has hx-indicator="#casco-loader"; htmx adds
      .htmx-request while a request is in flight (fades in after .25s: no flash on fast calls) */
.casco-app .casco-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1080;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(242,243,245,.72);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}
.casco-app .casco-loader.htmx-request{opacity:1;visibility:visible;pointer-events:all;transition:opacity .2s ease .25s,visibility 0s}
/* the card speaks the language of the loaders between steps (below): dark green, yellow lockup, yellow bar */
.casco-app .casco-loader-box{background:var(--gdk);color:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(6,78,66,.35);padding:22px 30px 20px;text-align:center;min-width:220px;max-width:300px;display:flex;flex-direction:column;align-items:center;gap:12px}
.casco-app .casco-loader-box .logo{height:26px;width:auto}
.casco-app .casco-loader-title{font-size:15px;font-weight:800;color:#fff;margin:2px 0 0}
.casco-app .casco-loader-sub{font-size:12.5px;color:rgba(255,255,255,.7);margin:-8px 0 0}
/* ── loaders between steps (design "Loader între pași", L6) — one per transition, markup and wiring in
   partials/step_loaders.php. Hidden until htmx puts .htmx-request on the one a step's hx-indicator names;
   a short delay keeps a fast answer from flashing the whole screen green. */
.casco-app .casco-steploader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1085;background:var(--gdk);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:0 24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}
.casco-app .casco-steploader.htmx-request{opacity:1;visibility:visible;pointer-events:all;transition:opacity .2s ease .12s,visibility 0s}
/* navigations (→ checkout, → the bank): htmx drops the class the moment it sets location.href, while the
   browser still shows the page being left — so these stay up a little longer instead of flashing it */
.casco-app .casco-steploader.nav{transition:opacity .2s ease 1.5s,visibility 0s linear 1.7s}
.casco-app .casco-steploader.nav.htmx-request{transition:opacity .2s ease .12s,visibility 0s}
.casco-app .casco-steploader .logo{height:34px;width:auto;margin-bottom:8px}
.casco-app .casco-steploader .bar,.casco-app .casco-loader-box .bar{width:min(240px,70vw);height:6px;background:rgba(255,255,255,.15);border-radius:3px;overflow:hidden}
.casco-app .casco-steploader .bar i,.casco-app .casco-loader-box .bar i{display:block;height:100%;width:40%;background:var(--y);border-radius:3px;animation:casco-steploader-slide 1.4s ease-in-out infinite}
@keyframes casco-steploader-slide{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
.casco-app .casco-steploader .t{font-size:16px;font-weight:800;color:#fff}
.casco-app .casco-steploader .s{font-size:13px;color:rgba(255,255,255,.7)}
.casco-app .casco-steploader .steps{display:flex;gap:6px;width:min(240px,70vw);margin-top:6px}
.casco-app .casco-steploader .steps span{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.2)}
.casco-app .casco-steploader .steps span.done{background:var(--g)}.casco-app .casco-steploader .steps span.on{background:var(--y)}
@media (prefers-reduced-motion:reduce){.casco-app .casco-steploader .bar i,.casco-app .casco-loader-box .bar i{animation:none;width:100%;opacity:.6}}
/* the card's bar is shorter than the interstitial's (after the shared rule, same specificity) */
.casco-app .casco-loader-box .bar{width:160px}

/* ── mobile header burger + offcanvas menu (menu.php) ─────────────────────────────────── */
.casco-app .mhead .burger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:transparent;color:#fff;font-size:24px;cursor:pointer}
.casco-app .mhead .veh .ti-check{color:var(--g)}
.casco-app .casco-menu{width:320px;max-width:86vw}
/* Bootstrap 5.0.2 parks the closed drawer at translateX(100%) — 320px PAST the right edge. Desktop browsers
   ignore that hidden box, but iOS WebKit (Safari and Chrome alike) counts it in the page width: the page
   became 390 + 320px wide and iOS zoomed the whole calculator out to fit (the half-width page, user report
   2026-09-21). The drawer now stays inside the screen, clipped away while closed, and is revealed by
   un-clipping — still sliding in from the right, but its box never leaves the viewport. */
.casco-app .casco-menu.offcanvas-end{transform:none;-webkit-clip-path:inset(0 0 0 100%);clip-path:inset(0 0 0 100%);transition:clip-path .3s ease-in-out,-webkit-clip-path .3s ease-in-out}
.casco-app .casco-menu.offcanvas-end.show{-webkit-clip-path:inset(0);clip-path:inset(0)}
@media (prefers-reduced-motion:reduce){.casco-app .casco-menu.offcanvas-end{transition:none}}
.casco-app .casco-menu .offcanvas-header{background:var(--gdk);color:#fff;padding:16px 18px}
/* the yellow lockup (logo-epolite-yellow.svg, made for dark backgrounds) in the mobile header and the menu */
.casco-app .casco-menu .logo,.casco-app .rail .logo{display:inline-flex;line-height:0}
.casco-app .casco-menu .logo img,.casco-app .rail .logo img{height:28px;width:auto;display:block}
.casco-app .casco-menu .links a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700;color:var(--ts)}
.casco-app .casco-menu .links a.on{color:var(--g)}
.casco-app .casco-menu .links a:hover{color:var(--gd);text-decoration:none}
/* "Servicii RCA": the navbar's dropdown as a native collapsible group */
.casco-app .casco-menu .links .group{border-bottom:1px solid var(--line)}
.casco-app .casco-menu .links .group summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:15px;font-weight:700;color:var(--ts);cursor:pointer;list-style:none}
.casco-app .casco-menu .links .group summary::-webkit-details-marker{display:none}
.casco-app .casco-menu .links .group summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--m);border-bottom:2px solid var(--m);transform:rotate(45deg);margin-right:4px;transition:transform .15s}
.casco-app .casco-menu .links .group[open] summary::after{transform:rotate(-135deg)}
.casco-app .casco-menu .links .group a{min-height:42px;padding-left:14px;font-size:14px;font-weight:600;color:var(--m);border-bottom:0}
.casco-app .casco-menu .links .group a:last-child{margin-bottom:6px}

/* ── mobile privacy note under the content ────────────────────────────────────────────── */
.casco-app .mnote{text-align:center;font-size:11px;color:var(--m);margin:24px 0 0}

/* ── step 3 (info) extras; the .e-info-* base rules come from the site's style.css ─────── */
.casco-app .e-info-acc .ab ul.cov li{font-size:14px}
.casco-app .e-info-acc .ab ol{list-style:decimal}
.casco-app .e-info-acc .ab ul:not(.cov){list-style:disc;padding-left:18px}

@media (prefers-reduced-motion:reduce){
.casco-app .spin,.casco-app .skel,.casco-app .prog i{animation:none}
.casco-app .casco-loader,.casco-app .casco-loader.htmx-request{transition:none}
}

/* ══ below lg (< 992px): mobile header (.rail.mhead), white page, fixed action bar ══════════ */
@media (max-width:991.98px){
.casco-app .rail{background:var(--gdk);color:#fff}
.casco-app .rail-wrap{padding:16px}

.casco-app .rail .kicker{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--y)}
.casco-app .rail h2{font-size:18px;font-weight:800;margin:2px 0 0;color:#fff}
.casco-app .rail .veh{font-size:11.5px;color:rgba(255,255,255,.7);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.casco-app .rail .veh b{color:#fff}
.casco-app .rsteps{display:flex;gap:6px;margin-top:12px}
/* a column per step: bar + label; completed steps are links (tap target = the whole column) */
.casco-app .rsteps .rstep{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding-bottom:4px;text-decoration:none;font-size:10px;font-weight:600;color:rgba(255,255,255,.6)}
.casco-app .rsteps .rstep:first-child{align-items:flex-start}.casco-app .rsteps .rstep:last-child{align-items:flex-end}
.casco-app .rsteps .rstep:not(:first-child):not(:last-child){align-items:center}
.casco-app .rsteps .rstep i{display:block;align-self:stretch;height:5px;border-radius:3px;background:rgba(255,255,255,.2)}
.casco-app .rsteps .rstep i.on{background:var(--y)}.casco-app .rsteps .rstep i.done{background:var(--g)}
.casco-app .rsteps .rstep span{white-space:nowrap}
.casco-app .rsteps .rstep .cur{color:#fff;font-weight:800}.casco-app .rsteps .rstep .d{color:var(--gl)}
.casco-app .rsteps a.rstep span{text-decoration:underline;text-underline-offset:2px}
.casco-app .page{background:#fff;min-height:calc(100vh - 140px);padding:16px 16px 24px}
/* the action row sits at the end of the step, in the flow: a fixed bottom bar took screen for a button only
   needed once the form is filled, and iOS drew it off-screen after zooming (user rule 2026-09-21) */
.casco-app .foot{position:static;border-top:0;padding:20px 0 0}
.casco-app .foot .inner{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.casco-app .foot .inner>.btn-ep,.casco-app .foot .inner>.btn-ep-ghost{width:100%}
/* the back link goes under the button, centred (the desktop row has it on the left) */
.casco-app .foot .back{order:2;align-self:center;padding:10px 0;font-size:.875em;font-weight:700}
.casco-app .foot .tot{display:flex;justify-content:space-between;align-items:baseline}
.casco-app .foot .tot span{font-size:12px;color:var(--m);font-weight:700}.casco-app .foot .tot b{font-size:18px;color:var(--g)}
.casco-app .legal-note{font-size:11px;color:rgba(255,255,255,.6);margin-top:8px}.casco-app .legal-note a{color:var(--gl)}
.casco-app .docpanel{max-height:none}
/* tap targets >= 44px for the small inline links, without moving the layout */
.casco-app .consent-ok a,.casco-app .ck .hd a,.casco-app .strip a,.casco-app .sec a{display:inline-block;padding-top:12px;padding-bottom:12px;margin-top:-12px;margin-bottom:-12px}
}
@media (max-width:767.98px){
.casco-app .e-info-acc{max-height:55vh}
}

/* ══ tablet (768–991px): the mobile layout as a centred 560px column ════════════════════════ */
@media (min-width:768px) and (max-width:991.98px){
.casco-app{padding-bottom:24px}
.casco-app .page{max-width:560px;margin:0 auto;min-height:auto;border-radius:0 0 16px 16px;padding-bottom:24px}
.casco-app .rail-wrap{max-width:560px;margin:0 auto}
}

/* ══ lg and up (>= 992px): desktop shell — rail (aside.rail.drail) + content ══════════════ */
@media (min-width:992px){
.casco-app{padding:0 16px}
.casco-app .shell{max-width:1100px;margin:32px auto;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.08)}
.casco-app .rail{background:var(--gdk);color:#fff;padding:32px 28px;display:flex;flex-direction:column;min-height:640px}
.casco-app .rail .kicker{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--y);margin-bottom:6px}
.casco-app .rail h2{font-size:20px;font-weight:800;margin:0 0 22px;color:#fff}
.casco-app .rs{display:flex;gap:14px;padding:14px 0;position:relative;color:#fff}
.casco-app a.rs:hover{color:#fff;text-decoration:none}.casco-app a.rs:hover .t{text-decoration:underline}
.casco-app .rs .dot{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none;color:rgba(255,255,255,.6)}
.casco-app .rs.cur .dot{background:var(--y);border-color:var(--y);color:#3b2d00}
.casco-app .rs.done .dot{background:var(--g);border-color:var(--g);color:#fff}
.casco-app .rs .t{font-size:14px;font-weight:700}.casco-app .rs .s{font-size:12px;color:rgba(255,255,255,.6);margin-top:2px}.casco-app .rs.cur .s{color:rgba(255,255,255,.85)}.casco-app .rs.done .s{color:var(--gl)}
.casco-app .rs:not(:last-child)::after{content:"";position:absolute;left:12px;top:44px;bottom:-4px;width:2px;background:rgba(255,255,255,.15)}
.casco-app .rail .sum{margin-top:12px;padding:12px 14px;background:rgba(255,255,255,.07);border-radius:12px;font-size:12.5px;line-height:1.6}
.casco-app .rail .sums{margin-top:10px}
.casco-app .rail .sum b{display:block;color:#fff;font-size:13px}.casco-app .rail .sum span{color:rgba(255,255,255,.7)}.casco-app .rail .sum .bad{color:#ffb4a8}
.casco-app .rail .sum .lbl{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--y);display:block;margin-bottom:2px}
.casco-app .rail .note{margin-top:auto;padding-top:22px;border-top:1px solid rgba(255,255,255,.15);font-size:12px;color:rgba(255,255,255,.65);line-height:1.6}
.casco-app .rail .note .ti{color:var(--y)}
.casco-app .rail .note a{color:var(--gl);text-decoration:underline}
.casco-app .content{padding:32px 40px 40px;min-width:0}
.casco-app .h2{font-size:22px}
.casco-app .form-label{font-size:11.5px;margin-bottom:5px}
.casco-app .form-control,.casco-app .form-select{height:46px;font-size:14.5px}
.casco-app .invalid-feedback{font-size:12px}.casco-app .form-text{font-size:12px}
.casco-app .input-ico .form-control{padding-right:40px}.casco-app .input-ico>i{font-size:18px}
.casco-app .btn-ep{padding:12px 26px}.casco-app .btn-ep-ghost{padding:11px 22px;font-size:14px}
.casco-app .drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:13.5px;min-height:170px}
.casco-app .drop i{font-size:34px}.casco-app .drop b{font-size:15px}
.casco-app .chip{font-size:12px;padding:5px 11px}
.casco-app .or{gap:14px;margin:22px 0;font-size:12px}
.casco-app .filecard{gap:14px;padding:12px 14px}.casco-app .filecard .thumb{width:56px;height:40px}.casco-app .filecard .name{font-size:14px}.casco-app .filecard .sub{font-size:13px}
.casco-app .sec{font-size:11.5px;gap:10px;margin:24px 0 12px}.casco-app .sec a{font-size:12px}
.casco-app .alert-ep{padding:14px 16px;gap:12px;font-size:13.5px}.casco-app .alert-ep i{font-size:22px}.casco-app .alert-ep b{font-size:14.5px}
.casco-app .muted{font-size:13px}
.casco-app .seg{display:inline-flex;margin-bottom:22px}.casco-app .seg a{padding:10px 26px;font-size:13.5px;flex:none}
.casco-app .stop{max-width:520px;margin:30px auto 0;padding:0}
.casco-app .stop .ic{width:84px;height:84px;font-size:42px;margin-bottom:20px}.casco-app .stop h3{font-size:24px}
.casco-app .stop .stop-text{font-size:14.5px}
.casco-app .kv{font-size:14px;padding:11px 0}
.casco-app .actions{flex-direction:row;justify-content:flex-end;align-items:center;gap:14px;margin-top:30px}
.casco-app .foot{margin-top:30px}
.casco-app .foot .inner{display:flex;justify-content:flex-end;align-items:center;gap:14px;flex-wrap:wrap}
.casco-app .foot .back{margin-right:auto;font-size:.875em;font-weight:700}
.casco-app .foot .tot{display:none}
.casco-app .foot.center .inner{justify-content:center;flex-direction:row-reverse}
.casco-app .stop .foot{margin-top:24px}
.casco-app .consent label{font-size:12.5px}
.casco-app .docpanel{max-height:380px;font-size:13px}
.casco-app .offers{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.casco-app .offers.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
.casco-app .ckgrid{grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.casco-app .ckgrid .side{position:sticky;top:20px}
.casco-app .center{padding:40px 0 0;max-width:520px;margin:0 auto}
}

/* ── touch devices: iOS zooms into any text field whose font is under 16px the moment it is tapped. The page
   then stays zoomed, pans sideways, and the fixed bottom bar (anchored to the un-zoomed layout) drifts off
   screen — "the Continuă button disappears and I can scroll on the x axis" (user report 2026-09-21, iPhone).
   Touch-first devices get 16px fields; mouse devices keep the design's 14 / 14.5px. Last in the file so it
   also beats the ≥992px rule on a large iPad in landscape. */
@media (pointer:coarse){.casco-app .form-control,.casco-app .form-select{font-size:16px}}
/* iOS keeps a text field focused when the tap lands on "non-clickable" page, so the plate / VIN never fire
   their change (the lookup) until Enter; a pointer cursor makes every tap count as a click, which moves the
   focus off the field (user report 2026-09-22). No visible effect on touch screens. */
@media (hover:none) and (pointer:coarse){.casco-app{cursor:pointer;-webkit-tap-highlight-color:transparent}}
/* nothing inside the calculator may widen the page: iOS refits its zoom to the widest box (a select sized
   by its longest option — Safari does that — or any other overflow) and the page ends up at half width */
.casco-app{overflow-x:clip}
.casco-app .form-select{min-width:0;max-width:100%;text-overflow:ellipsis}
.casco-app .row>*{min-width:0}
