@import url('/__assets/06c794d8018c2bbda64ca6454ee16cba0e4bc8671e7f89f3122bd723da91bd31/css/overlay-cart.css');
@import url('/__assets/461973f1d5fa0c512f9e740214a5c626b7d76646180d68639cceabee334fc4d0/js/propuesta/view.css');

/* Una superficie compartida; Pro conserva el azul y los tokens de su shell. */
#qvCartDialog {
  --qv-cart-control-height:36px;
  --qv-cart-summary-surface:var(--bg-subtle,#f4f8ff);
  inset:0; margin:auto; width:min(520px,calc(100vw - 40px));
  max-height:calc(var(--qvs-viewport-height,100dvh) - 64px);
  color:var(--ink,#0f172a); font:400 14px/1.5 var(--ff-sans,Inter,system-ui,sans-serif);
}
#qvCartDialog:not([open]) { display:none; }
#qvCartDialog #cartPanel {
  /* La base automática conserva la altura del contenido al abrir un dialog
     sin altura fija. Una base cero (flex:1) lo colapsa en Safari. */
  position:static; inset:auto; display:flex; flex:0 1 auto; min-height:0;
  width:100%; height:auto; max-height:inherit; margin:0; padding:0;
  border:0; border-radius:0; background:#fff; box-shadow:none;
  transform:none; transition:none; opacity:1; visibility:visible;
  pointer-events:auto; overflow:hidden; will-change:auto;
}
#qvCartDialog #cartPanel[hidden],#qvCartDialog [hidden] { display:none !important; }
#qvCartDialog #cartPanel .mobile-overlay__sheet {
  display:flex; flex-direction:column; width:100%; height:auto; min-height:0;
  max-height:inherit; margin:0; padding:0; border:0; border-radius:0;
  background:#fff; box-shadow:none; transform:none; transition:none;
}
#qvCartDialog #cartPanel .mobile-overlay__head {
  display:flex; flex:0 0 auto; align-items:center; justify-content:space-between;
  height:auto; min-height:64px; gap:16px; padding:16px 24px;
  border-bottom:0; background:#fff;
}
#qvCartDialog .mobile-overlay__eyebrow { display:none; }
#qvCartDialog .mobile-overlay__title { margin:0; font:600 18px/1.4 var(--ff-sans,Inter,system-ui); color:inherit; }
#qvCartDialog #cartPanel .mobile-overlay__body {
  display:flex; flex-direction:column; flex:1 1 auto; min-height:0;
  padding:8px 24px 24px; gap:20px; overflow:auto; overscroll-behavior:contain;
  scrollbar-gutter:auto; background:#fff;
}
#qvCartDialog #cartPanel .cart-body { flex:none; padding:0; border:0; border-radius:0; background:transparent; overflow:visible; }
#qvCartDialog .cart-selection-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; color:var(--muted,#475569); font-size:12px; }
#qvCartDialog .cart-selection-tools .cart-text-action { color:var(--muted,#475569); }
#qvCartDialog .cart-selection-tools .cart-text-action:hover { color:var(--ink,#0f172a); }
#qvCartDialog #cartPanel .cart-checkout { display:grid; flex:none; margin:0; padding:0; gap:16px; border:0; background:transparent; }
#qvCartDialog #cartList:not(.cart-empty) { padding:12px; border-radius:12px; background:var(--qv-cart-summary-surface); }
#qvCartDialog .cart-item-row { grid-template-columns:20px minmax(0,1fr) auto auto; grid-template-areas:"icon title price remove" "icon insurer price remove"; align-items:center; gap:2px 12px; }
#qvCartDialog .cart-item { padding:10px 0; }
#qvCartDialog .cart-item:first-child { padding-top:0; }
#qvCartDialog .cart-item:last-child { padding-bottom:0; }
#qvCartDialog .cart-item-icon { grid-area:icon; width:20px; height:20px; border:0; border-radius:0; background:none; color:var(--muted,#64748b); }
#qvCartDialog .cart-item-icon svg { width:20px; height:20px; }
#qvCartDialog .cart-item-title { grid-area:title; min-width:0; margin:0; padding:0; border:0; border-radius:3px; background:none; color:var(--ink,#0f172a); white-space:normal; overflow:visible; overflow-wrap:anywhere; text-align:left; cursor:pointer; font:600 14px/20px var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-item-title:hover { color:var(--brand,#0d99ff); }
#qvCartDialog .cart-item-sub { grid-area:insurer; color:var(--muted,#64748b); font:400 12px/18px var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-item-price { grid-area:price; color:var(--ink,#0f172a); font:600 13px/20px var(--ff-sans,Inter,system-ui); font-variant-numeric:tabular-nums; white-space:nowrap; justify-self:end; }
/* Quitar conserva fondo transparente; el hover compartido sólo oscurece el icono. */
#qvCartDialog [data-cart-remove].qv-close-button { --qv-close-bg:transparent; grid-area:remove; }
#qvCartDialog .cart-btn { min-height:var(--qv-cart-control-height); padding:7px 12px; font:500 13px/20px var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-request-fields { display:grid; gap:16px; }
#qvCartDialog .cart-contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; min-width:0; }
#qvCartDialog .cart-field { min-width:0; }
#qvCartDialog .cart-field-label { font:500 13px/1.5 var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-field input { box-sizing:border-box; font:400 14px/20px var(--ff-sans,Inter,system-ui); min-height:var(--qv-cart-control-height); height:var(--qv-cart-control-height); box-shadow:none; padding:7px 12px; border-radius:10px; }
#qvCartDialog .phone-field { box-sizing:border-box; min-height:var(--qv-cart-control-height); height:var(--qv-cart-control-height); border-radius:10px; box-shadow:none; }
#qvCartDialog .phone-field input { min-width:0; min-height:0; height:100%; }
#qvCartDialog .phone-prefix { flex:0 0 auto; padding:7px 10px; background:transparent; font:500 13px/20px var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-consents { gap:16px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
#qvCartDialog .cart-consent { margin:0; }
#qvCartDialog .cart-consent-label { font-size:12px; line-height:1.5; }
#qvCartDialog .cart-consent-label a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
#qvCartDialog .cart-channels {
  display:flex; justify-self:center; margin-inline:auto; width:fit-content; max-width:100%; box-sizing:border-box;
  gap:2px; padding:3px; border:1px solid var(--separator,#e2e8f0); border-radius:var(--qv-action-radius,9999px); background:var(--qv-neutral-surface,#f3f4f6);
}
#qvCartDialog .cart-channels button {
  display:inline-flex; align-items:center; justify-content:center; min-width:0; min-height:28px;
  margin:0; padding:3px 14px; border:0; border-radius:inherit; background:transparent;
  color:var(--muted,#475569); cursor:pointer; font:500 13px/20px var(--ff-sans,Inter,system-ui);
}
#qvCartDialog .cart-channels button[aria-pressed="true"] { background:#fff; color:var(--ink,#0f172a); box-shadow:0 1px 3px #0f172a0d; }
#qvCartDialog .cart-channels button:disabled { cursor:wait; opacity:.6; }
#qvCartDialog .cart-field-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
#qvCartDialog .cart-client-actions { display:flex; gap:8px; }
#qvCartDialog .cart-text-action {
  box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  width:auto; min-height:var(--qv-cart-control-height); margin:0; padding:7px 0;
  border:0; border-radius:6px; background:transparent; color:var(--brand,#0d99ff);
  font:500 13px/20px var(--ff-sans,Inter,system-ui); text-decoration:none; cursor:pointer;
}
#qvCartDialog .cart-text-action:hover { color:var(--brand-hover,#007bea); }
#qvCartDialog .cart-text-action:disabled { opacity:.5; cursor:not-allowed; }
#qvCartDialog .cart-text-action svg { width:16px; height:16px; }
#qvCartDialog #proQuoteNewClient { color:var(--muted,#475569); }
#qvCartDialog #cartPanel :is(.cart-submit-wrap,.qv-pro-quote-receipt-actions) { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:12px; margin-top:4px; }
#qvCartDialog #proQuotePreview { margin-right:auto; color:var(--muted,#475569); }
#qvCartDialog #proQuotePreview:hover { color:var(--ink,#0f172a); }
#qvCartDialog .cart-submit-wrap > :is(.cart-field-error,.cart-submit-progress,.cart-submit-status) { flex:0 0 100%; width:100%; min-width:0; }
#qvCartDialog :is(.cart-submit,.cart-whatsapp) {
  box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 auto; width:auto; max-width:100%; height:auto; min-height:var(--qv-cart-control-height);
  padding:7px 16px; gap:6px; font:500 13px/20px var(--ff-sans,Inter,system-ui);
  border-radius:var(--qv-action-radius,var(--r-pill,9999px)); box-shadow:none; text-decoration:none;
}
#qvCartDialog .cart-submit { border:1px solid transparent; background:var(--brand,#0d99ff); color:#fff; }
#qvCartDialog .cart-submit:not(:disabled):hover { background:var(--brand-hover,#007bea); color:#fff; transform:none; box-shadow:none; }
/* Verde digital oficial de WhatsApp; texto e icono blancos en ambos estados. */
#qvCartDialog :is(#cartWhatsapp,#proQuoteWa[data-quote-action="send"],#proQuoteContinueWa) { background:#25d366; border-color:transparent; color:#fff; }
#qvCartDialog :is(#cartWhatsapp,#proQuoteWa[data-quote-action="send"],#proQuoteContinueWa):not(:disabled):hover { background:#1ebe5d; color:#fff; }
#qvCartDialog .cart-submit:active { transform:none; }
#qvCartDialog .cart-submit svg { width:16px; height:16px; flex:0 0 16px; color:inherit; }
#qvCartDialog [data-quote-action="review"] > [data-quote-channel-icon] { display:none; }
#qvCartDialog #proQuoteClientContext { color:#92400e; }
#qvCartDialog :focus-visible { outline:2px solid var(--brand,#0d99ff); outline-offset:3px; }
#qvCartDialog #cartPanel .cart-empty { margin:0; padding:8px 0 12px; border:0; border-radius:0; background:transparent; font:inherit; }
#qvCartDialog .cart-empty-state { display:grid; justify-items:center; gap:12px; text-align:center; }
#qvCartDialog .cart-empty-state h3 { margin:0; color:var(--ink,#0f172a); font:600 16px/1.4 var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-empty-state p { max-width:32ch; margin:0; color:var(--muted,#475569); font:400 14px/1.5 var(--ff-sans,Inter,system-ui); }
#qvCartDialog .cart-empty-state .cart-submit { margin-top:8px; cursor:pointer; }
/* La sombra de contacto pertenece al WebP; la base le da un suelo visible. */
#qvCartDialog .cart-empty-scene { position:relative; width:168px; height:152px; }
#qvCartDialog .cart-empty-scene::before { content:""; position:absolute; bottom:8px; left:22px; width:124px; height:14px; border-radius:50%; background:var(--qv-cart-summary-surface); }
#qvCartDialog .cart-empty-scene img { position:absolute; bottom:8px; left:12px; width:144px; height:144px; object-fit:contain; }
/* Ocultar conserva destinatario, consentimientos y canal en sus mismos nodos.
   El comprobante profesional tiene prioridad aunque el envío vacíe el carrito. */
#qvCartDialog #cartPanel.cart-is-empty:not(.qv-pro-quote-complete) #cartForm { display:none; }
#qvCartDialog[data-professional="true"] { --brand:#0d99ff; }

@media(max-width:640px) {
  #qvCartDialog { width:100%; height:var(--qvs-viewport-height,100dvh); max-height:var(--qvs-viewport-height,100dvh); border:0; border-radius:0; margin:0; top:var(--qvs-viewport-top,0px); bottom:auto; }
  #qvCartDialog #cartPanel { height:100%; }
  #qvCartDialog #cartPanel .mobile-overlay__sheet { height:100%; }
  #qvCartDialog #cartPanel .mobile-overlay__head { padding:12px 16px; }
  #qvCartDialog #cartPanel .mobile-overlay__body { padding:16px 16px calc(20px + env(safe-area-inset-bottom)); }
  #qvCartDialog #cartPanel.cart-is-empty:not(.qv-pro-quote-complete) .cart-body { margin-block:auto; }
  #qvCartDialog .cart-field input { font-size:16px; }
  #qvCartDialog .cart-contact-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
}
@media(max-width:860px),(pointer:coarse) {
  #qvCartDialog { --qv-cart-control-height:44px; }
  #qvCartDialog .cart-field input { font-size:16px; }
  #qvCartDialog .cart-item-row { grid-template-areas:"icon title title remove" "icon insurer price remove"; column-gap:10px; }
  #qvCartDialog .cart-item-title { position:relative; }
  #qvCartDialog .cart-item-title::after { content:""; position:absolute; inset:0; min-height:44px; }
}

/* El formulario profesional usa cartPanel y los campos/botones públicos. */
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-note { margin:0; font-size:13px; line-height:1.5; color:var(--muted, #64748b); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-note.is-error { color:var(--err, #b91c1c); }
/* La variante profesional no modifica Solicitudes en el recomendador público. */
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .cart-submit {box-shadow:none;transition:transform .16s ease,opacity .16s ease,filter .16s ease,background .16s ease;}
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .cart-submit:hover,
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .cart-submit[disabled],
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .cart-submit[aria-disabled="true"] {box-shadow:none;}
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .cart-submit:focus-visible {outline:2px solid var(--brand,#0d99ff);outline-offset:2px;box-shadow:none;}

/* El resultado ocupa el mismo modal; nunca convive con el carrito vacío. */
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote [hidden] { display:none !important; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-editor { display:grid; gap:14px; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-complete :is(.cart-body,.qvw-cart-footer) { display:none; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) #cartPanel.qv-pro-quote-complete #cartForm { flex:1; align-content:start; margin-top:0; padding:0; overflow:auto; border-top:0; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt {
  display:grid; gap:16px; padding:24px; border:1px solid var(--separator);
  border-radius:16px; background:var(--surface,#fff); color:var(--label,#0f1422);
  font:400 14px/1.5 var(--ff-sans,Inter,system-ui,sans-serif); overflow-wrap:anywhere;
}
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt h3 { margin:0; font:600 16px/1.4 var(--ff-sans,Inter,system-ui,sans-serif); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt p { margin:0; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-check { color:var(--brand); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-recipient { display:grid; gap:4px; padding-block:16px; border-block:1px solid var(--separator); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-recipient strong { font-weight:600; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-recipient span { font-size:12px; line-height:18px; color:var(--muted); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-recipient :empty { display:none; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt-actions { display:grid; gap:12px; margin-top:8px; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt :is(.cart-submit,.cart-whatsapp) { min-height:var(--qv-cart-control-height,44px); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt .cart-btn { min-height:var(--qv-cart-control-height,44px); font:500 13px/20px var(--ff-sans,Inter,system-ui,sans-serif); }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt :focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt:focus { outline:none; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt.is-inline { padding:16px; gap:8px; }
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt.is-inline .qv-pro-quote-check,
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt.is-inline .qv-pro-quote-recipient,
:is(html.qv-pro-workspace,#qvCartDialog[data-professional="true"]) .qv-pro-quote-receipt.is-inline #proQuoteReceiptHint { display:none; }
#qvCartDialog #cartPanel .qv-pro-quote-receipt { padding:0; border:0; border-radius:0; }

@media(max-width:860px),(pointer:coarse) {
  #qvCartDialog .cart-text-action { min-width:44px; }
  #qvCartDialog .cart-channels button { min-height:44px; padding:7px 14px; }
}
@media(max-width:370px) {
  #qvCartDialog #cartPanel .cart-submit-wrap { flex-direction:column; align-items:stretch; }
  #qvCartDialog #proQuotePreview { margin:0; order:2; align-self:center; }
  #qvCartDialog .cart-field-heading { align-items:baseline; flex-wrap:wrap; }
}
