/* ══════════════════════════════════════════════════════
   Quote Editor — QuoteEditor.razor   (.enix-qe-*)
   Extracted from enix-crm.css — standalone file
   ══════════════════════════════════════════════════════ */

/* ── Radio de las imágenes de presupuestos ──
   Editor (QuoteDetail), link público (Quote_Public) y PDF (#qo-quote-document) usan
   TODOS este radio para fotos, miniaturas, portada del editor y chip del logo.
   No hardcodear otro valor en una imagen: usar var(--enix-q-img-radius). */
:root { --enix-q-img-radius: 13px; }

/* ── Full-page shell (replaces overlay) ── */
.enix-qe-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #e8edf2;
}

/* ── Toolbar ── */
.enix-qe-toolbar {
  display: flex;
  align-items: center;
  padding: 0 4px;
  height: 48px;
  background: #0d2240;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  flex-shrink: 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.enix-qe-toolbar__left  { padding: 0 14px; flex-shrink: 0; }
.enix-qe-toolbar__title {
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  white-space: nowrap;
}
.enix-qe-toolbar__center {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.enix-qe-toolbar__right { padding: 0 6px; flex-shrink: 0; }
.enix-qe-toolbar-group  { display: flex; align-items: center; gap: 1px; }
.enix-qe-toolbar-divider {
  width: 1px;
  height: 24px;
  background: rgba(255,255,255,0.12);
  margin: 0 8px;
  flex-shrink: 0;
}

/* ── Toolbar icon buttons ── */
.enix-qe-tb-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,0.72);
  cursor: pointer;
  font-family: 'Mulish', sans-serif;
  font-size: 12px;
  font-weight: 600;
  transition: background 0.12s, color 0.12s;
  white-space: nowrap;
}
.enix-qe-tb-btn:hover          { background: rgba(255,255,255,0.1); color: #fff; }
.enix-qe-tb-btn svg            { flex-shrink: 0; }
.enix-qe-tb-btn--wa            { background: rgba(37,211,102,0.15); color: #25D366; }
.enix-qe-tb-btn--wa:hover      { background: rgba(37,211,102,0.25); color: #4ade80; }
.enix-qe-tb-btn--close         { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.6); border: 1px solid rgba(255,255,255,0.12); }
.enix-qe-tb-btn--close:hover   { background: rgba(255,255,255,0.12); color: #fff; border-color: rgba(255,255,255,0.25); }

/* ── Scroll canvas ── */
.enix-qe-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 24px 20px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.enix-qe-paper {
  width: 100%;
  max-width: 900px;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.10);
  font-family: 'Mulish', sans-serif;
}

/* ── Ghost inputs — blend into document context ── */
.enix-qe-input {
  background: transparent;
  border: none;
  border-bottom: 1.5px dashed transparent;
  padding: 2px 4px;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  width: 100%;
  outline: none;
  transition: border-color 0.15s, background 0.15s;
  box-sizing: border-box;
}
.enix-qe-input:hover  { border-bottom-color: rgba(255,255,255,0.35); }
.enix-qe-input:focus  { border-bottom-color: #f97316; background: rgba(255,165,0,0.07); }

.enix-qe-input--light:hover { border-bottom-color: #cbd5e1; }
.enix-qe-input--light:focus { border-bottom-color: #4f8ef7; background: rgba(79,142,247,0.05); }

.enix-qe-input--num  { width: 72px; text-align: right; }
.enix-qe-input--pct  { width: 52px; text-align: right; }

/* ── Header (navy) ── */
.enix-qe-header {
  background: #0d2240;
  padding: 24px 32px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
/* ── LOGO DE LA AGENCIA EN EL HEADER ────────────────────────────────────────
   El header es navy, así que el fondo del logo depende de qué tan claro sea el arte.
   Se medía siempre con chip blanco (para los logos oscuros) y los claros —que son la
   mayoría de los PNG transparentes— desaparecían. El nivel de claridad lo calcula
   window.enixLogoEsClaro (enix-quote-export.js) y el .razor elige la variante.
   La base NO define fondo: cada variante pone el suyo. */
/* Bloque de marca: el logo va ARRIBA y el nombre de la agencia DEBAJO, como un membrete.
   Antes iban en fila (logo chico a la izquierda, nombre al lado) y el logo no preponderaba.
   El mismo bloque se usa en el link público (Quote_Public.razor) y en el documento que se
   exporta a PDF/imagen (QuoteDetail.razor): si se cambia uno, hay que cambiar el otro. */
.enix-qe-brand {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.enix-qe-logo {
  max-height: 84px;
  max-width: 260px;
  object-fit: contain;
}
/* Logo oscuro: necesita el chip blanco para despegarse del navy (comportamiento de siempre) */
.enix-qe-logo--onlight {
  background: #fff;
  border-radius: var(--enix-q-img-radius);
  padding: 5px 8px;
}
/* Logo claro: se apoya directo sobre el navy. Sin padding, para que no quede
   flotando con un margen que ya no delimita nada. */
.enix-qe-logo--ondark {
  background: transparent;
  padding: 0;
}

/* Con el logo arriba el nombre pasa a ser el pie de la marca, no el título: 18px.
   Sin logo el nombre ES la marca, así que ahí no se achica. */
.enix-qe-agency-name {
  font-family: 'Poppins', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .2px;
}
.enix-qe-brand--logoless .enix-qe-agency-name { font-size: 22px; }
.enix-qe-agency-tagline {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  margin-top: 3px;
  font-style: italic;
}
.enix-qe-agency-contact {
  font-size: 11px;
  color: rgba(255,255,255,0.65);
  line-height: 2.2;
  text-align: right;
}
.enix-qe-accent { height: 4px; background: #f97316; }

/* ── Meta row ── */
.enix-qe-meta {
  background: #f8fafc;
  padding: 12px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #e2e8f0;
}
.enix-qe-quote-num {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0d2240;
}
.enix-qe-meta-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #94a3b8;
  margin-bottom: 2px;
}

/* ── Section ── */
.enix-qe-section {
  padding: 20px 32px;
  border-bottom: 1px solid #f1f5f9;
}
.enix-qe-section:last-child { border-bottom: none; }
.enix-qe-section-title {
  font-family: 'Poppins', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #0d2240;
  margin-bottom: 14px;
  padding-bottom: 5px;
  border-bottom: 2px solid #f97316;
  display: inline-block;
}
.enix-qe-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.enix-qe-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 10px;
}
.enix-qe-field:last-child { margin-bottom: 0; }
.enix-qe-field-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #94a3b8;
}
.enix-qe-field-value {
  font-size: 13px;
  color: #374151;
}

/* ── Cover image ── */
.enix-qe-hero__image {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.enix-qe-hero__gradient {
  width: 100%;
  min-height: 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px 32px;
  box-sizing: border-box;
}

/* ── Services table ── */
.enix-qe-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.enix-qe-table th {
  background: #0d2240;
  color: #fff;
  padding: 8px 12px;
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.enix-qe-table td {
  padding: 7px 10px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
  color: #374151;
}
.enix-qe-table tbody tr:nth-child(even) td { background: #fafbfc; }
.enix-qe-table tbody tr:hover td { background: #f0f9ff; }

.enix-qe-del-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: #f87171;
  font-size: 12px;
  padding: 2px 6px;
  border-radius: 4px;
  transition: background 0.15s;
  line-height: 1;
}
.enix-qe-del-btn:hover { background: #fee2e2; }

.enix-qe-add-row-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1.5px dashed #cbd5e1;
  border-radius: 6px;
  cursor: pointer;
  color: #64748b;
  font-size: 12px;
  font-family: 'Mulish', sans-serif;
  font-weight: 600;
  padding: 6px 14px;
  margin-top: 10px;
  transition: border-color 0.15s, color 0.15s;
}
.enix-qe-add-row-btn:hover { border-color: #4f8ef7; color: #4f8ef7; }

/* ── Totals sub-table ── */
.enix-qe-totals {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-top: 10px;
}
.enix-qe-totals td { padding: 7px 10px; border-bottom: 1px solid #f1f5f9; color: #374151; }
.enix-qe-totals tr:last-child td { border-bottom: none; }
.enix-qe-totals tr.subtotal td { font-weight: 600; border-top: 2px solid #e2e8f0; }
.enix-qe-totals tr.discount td { color: #16a34a; }
.enix-qe-totals tr.grand td {
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #0d2240;
  border-top: 2px solid #0d2240;
}

/* ── Total highlight box ── */
.enix-qe-total-box {
  background: #0d2240;
  padding: 20px 32px;
  text-align: center;
}

/* ── Inclusions / Exclusions ── */
.enix-qe-inclusions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 20px 32px;
  background: #f8fafc;
}
.enix-qe-list-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #374151;
  margin-bottom: 5px;
}
.enix-qe-list-item__text { flex: 1; }

.enix-qe-add-item-row {
  display: flex;
  gap: 6px;
  margin-top: 8px;
}
.enix-qe-add-item-row input {
  flex: 1;
  height: 28px;
  padding: 0 8px;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  font-size: 12px;
  font-family: 'Mulish', sans-serif;
  outline: none;
  box-sizing: border-box;
}
.enix-qe-add-item-row input:focus { border-color: #4f8ef7; }
.enix-qe-add-item-btn {
  height: 28px;
  padding: 0 12px;
  background: #0d2240;
  color: #fff;
  border: none;
  border-radius: 5px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: 'Mulish', sans-serif;
  transition: opacity 0.15s;
}
.enix-qe-add-item-btn:hover { opacity: 0.85; }

/* ── Terms ── */
.enix-qe-terms-area {
  width: 100%;
  padding: 10px 12px;
  font-size: 11px;
  color: #64748b;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-family: 'Mulish', sans-serif;
  line-height: 1.7;
  resize: vertical;
  min-height: 70px;
  outline: none;
  box-sizing: border-box;
}
.enix-qe-terms-area:focus { border-color: #4f8ef7; }

/* ── Editor footer (dark) ── */
.enix-qe-footer {
  background: #0d2240;
  padding: 14px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  color: rgba(255,255,255,0.55);
}

/* ── Modal action buttons ── */
.enix-qe-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: 'Mulish', sans-serif;
  font-size: 13px;
  font-weight: 600;
  transition: opacity 0.15s;
}
.enix-qe-btn:hover { opacity: 0.88; }
.enix-qe-btn--wa   { background: #25D366; color: #fff; }

/* Capture mode — static values replace form elements during screenshot */
.enix-qe-static-val {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  display: inline-block;
}

/* ── Valid-until plain text input ── */
.enix-qe-meta__date-input {
  border: none;
  border-bottom: 1px dashed #cbd5e1;
  background: transparent;
  font-size: 13px;
  font-family: 'Mulish', sans-serif;
  font-weight: 600;
  color: #374151;
  outline: none;
  width: 90px;
  padding: 1px 3px;
}
.enix-qe-meta__date-input:focus { border-bottom-color: #f97316; }

/* ── Unified cover / hero ── */
.enix-qe-cover {
  position: relative;
  overflow: hidden;
}
.enix-qe-cover .enix-qe-hero__gradient {
  min-height: 200px;
  padding: 0;
}
.enix-qe-cover .enix-qe-hero__image {
  height: 200px;
}
.enix-qe-cover__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 50%, transparent 80%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding-bottom: 34px;
}
.enix-qe-cover__img-ctrl {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  flex-wrap: wrap;
}
.enix-qe-cover__img-ctrl-label {
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  white-space: nowrap;
  flex-shrink: 0;
}
.enix-qe-cover__img-ctrl input[type="text"] {
  flex: 1;
  min-width: 160px;
  height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 5px;
  font-size: 11px;
  font-family: 'Mulish', sans-serif;
  outline: none;
  color: #fff;
  background: rgba(255,255,255,0.1);
  box-sizing: border-box;
}
.enix-qe-cover__img-ctrl input[type="text"]:focus {
  border-color: #f97316;
  background: rgba(255,255,255,0.15);
}
.enix-qe-cover__img-ctrl input[type="text"]::placeholder { color: rgba(255,255,255,0.4); }
.enix-qe-cover__preset-btn {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 4px;
  color: rgba(255,255,255,0.75);
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  cursor: pointer;
  font-family: 'Mulish', sans-serif;
  white-space: nowrap;
  transition: background 0.15s;
}
.enix-qe-cover__preset-btn:hover { background: rgba(255,255,255,0.22); color: #fff; }

/* ══════════════════════════════════════════════════════
   ETAPA 3–4  —  Section drag handles, format bar,
                 rich-text cells
   ══════════════════════════════════════════════════════ */

/* ── Section drag handles ── */
.enix-qe-section-wrap {
    position: relative;
    transition: opacity 0.15s;
}
.enix-qe-section-wrap--dragging { opacity: 0.4; }
.enix-qe-section-handle {
    position: absolute;
    left: -28px;
    top: 50%;
    transform: translateY(-50%);
    color: #cbd5e1;
    font-size: 18px;
    cursor: grab;
    padding: 4px;
    opacity: 0;
    transition: opacity 0.15s;
    user-select: none;
    line-height: 1;
}
.enix-qe-section-wrap:hover .enix-qe-section-handle { opacity: 1; }

/* ── Format bar ── */
.enix-qe-format-bar {
    display: flex;
    gap: 2px;
    position: absolute;
    top: 6px;
    right: 8px;
    background: #0d2240;
    border-radius: 6px;
    padding: 4px 6px;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.enix-qe-format-bar button {
    width: 26px;
    height: 26px;
    border-radius: 4px;
    border: none;
    background: transparent;
    color: #fff;
    cursor: pointer;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.1s;
}
.enix-qe-format-bar button:hover { background: rgba(255,255,255,0.15); }

/* ── Rich text cell ── */
.enix-qe-cell-rich {
    min-width: 120px;
    padding: 4px 6px;
    border-radius: 4px;
    outline: none;
    font-family: 'Mulish', sans-serif;
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    transition: background 0.1s;
    cursor: text;
}
.enix-qe-cell-rich:focus { background: #f0f9ff; }

/* ══════════════════════════════════════════════════════
   IMAGE PASTE / DRAG-DROP  (.enix-qe-dropzone, gallery)
   ══════════════════════════════════════════════════════ */

.enix-qe-capture .enix-qe-row-img-zone { display: none !important; }

.enix-qe-dropzone {
    transition: box-shadow 0.15s;
}
.enix-qe-dropzone--active {
    box-shadow: inset 0 0 0 3px #4f8ef7 !important;
}

.enix-qe-paste-hint {
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    background: rgba(0,0,0,0.35);
    border: 1px dashed rgba(255,255,255,0.25);
    border-radius: 5px;
    padding: 4px 10px;
    pointer-events: none;
}

.enix-qe-row-img-zone {
    width: 60px;
    height: 44px;
    border: 1.5px dashed #cbd5e1;
    border-radius: var(--enix-q-img-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.15s;
    margin: 0 auto;
}
.enix-qe-row-img-zone:hover { border-color: #4f8ef7; }
.enix-qe-row-img-zone.enix-qe-dropzone--active {
    border-color: #4f8ef7;
    background: #eff6ff;
    box-shadow: none !important;
}

.enix-qe-row-img-label {
    font-size: 18px;
    color: #94a3b8;
    cursor: pointer;
    line-height: 1;
    user-select: none;
}
.enix-qe-row-img-zone:hover .enix-qe-row-img-label { color: #4f8ef7; }

.enix-qe-row-img-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.enix-qe-row-img-clear {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 16px;
    height: 16px;
    background: rgba(0,0,0,0.55);
    color: #fff;
    border: none;
    border-radius: 50%;
    font-size: 9px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
}
.enix-qe-row-img-clear:hover { background: rgba(0,0,0,0.75); }

.enix-qe-row-gallery {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 0 4px;
}
.enix-qe-gallery-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100px;
}
.enix-qe-gallery-img {
    width: 100px;
    height: 70px;
    object-fit: cover;
    border-radius: var(--enix-q-img-radius);
    border: 1px solid #e2e8f0;
}
.enix-qe-gallery-label {
    font-size: 10px;
    color: #64748b;
    font-family: 'Mulish', sans-serif;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100px;
}

/* ══════════════════════════════════════════════════════
   PUBLIC QUOTE PAGE  (.enix-pq-*)
   ══════════════════════════════════════════════════════ */

.enix-pq-page {
    min-height: 100vh;
    background: #f8fafc;
    padding-bottom: 80px;
}

.enix-pq-cta-bar {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #0d2240;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 24px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.2);
}
.enix-pq-cta-bar__info { display: flex; flex-direction: column; }
.enix-pq-cta-bar__dest {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
}
.enix-pq-cta-bar__total {
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    color: rgba(255,255,255,0.7);
}
.enix-pq-cta-btn {
    padding: 10px 24px;
    background: #f97316;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.15s;
}
.enix-pq-cta-btn:hover { opacity: 0.9; }
.enix-pq-cta-btn--lg { padding: 14px 32px; font-size: 16px; }

.enix-pq-document {
    max-width: 860px;
    margin: 24px auto;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}

.enix-pq-header {
    background: #0d2240;
    padding: 24px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.enix-pq-agency-name {
    font-family: 'Poppins', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
}
.enix-pq-agency-tag {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    font-style: italic;
    margin-top: 3px;
}
.enix-pq-header__contact {
    font-size: 11px;
    color: rgba(255,255,255,0.7);
    text-align: right;
    line-height: 1.9;
}
.enix-pq-accent { height: 4px; background: #f97316; }

.enix-pq-meta {
    display: flex;
    justify-content: space-between;
    padding: 12px 32px;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    font-family: 'Mulish', sans-serif;
}
.enix-pq-meta__label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #94a3b8;
    font-weight: 600;
}
.enix-pq-meta__number {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #0d2240;
}
.enix-pq-meta__dates {
    font-size: 12px;
    color: #64748b;
    text-align: right;
    line-height: 2;
}

.enix-pq-cover {
    height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.enix-pq-cover__dest {
    font-family: 'Poppins', sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.enix-pq-cover__date { font-size: 14px; color: rgba(255,255,255,0.85); }

.enix-pq-clients {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    padding: 24px 32px;
    border-bottom: 1px solid #f1f5f9;
    font-family: 'Mulish', sans-serif;
}
.enix-pq-section-title {
    font-family: 'Poppins', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #0d2240;
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 2px solid #f97316;
    display: inline-block;
}
.enix-pq-field {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 13px;
}
.enix-pq-field span { color: #94a3b8; width: 80px; flex-shrink: 0; }

.enix-pq-services { padding: 24px 32px; border-bottom: 1px solid #f1f5f9; }
.enix-pq-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: 'Mulish', sans-serif;
}
.enix-pq-table th {
    background: #0d2240;
    color: #fff;
    padding: 8px 12px;
    text-align: left;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 600;
}
.enix-pq-table td { padding: 10px 12px; border-bottom: 1px solid #f8fafc; color: #374151; }
.enix-pq-table tr:hover td { background: #fafbfc; }
.enix-pq-subtotal td, .enix-pq-discount td {
    color: #64748b;
    font-size: 13px;
    border-top: 1px solid #e2e8f0;
}
.enix-pq-discount td { color: #16a34a; }
.enix-pq-total-row td {
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0d2240;
    border-top: 2px solid #0d2240;
    padding-top: 12px;
}

.enix-pq-total-box {
    background: #0d2240;
    padding: 24px 32px;
    text-align: center;
}
.enix-pq-total-box__label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: rgba(255,255,255,0.6);
    margin-bottom: 6px;
}
.enix-pq-total-box__value {
    font-family: 'Poppins', sans-serif;
    font-size: 36px;
    font-weight: 700;
    color: #fff;
}
.enix-pq-total-box__value span { font-size: 18px; opacity: 0.7; margin-left: 4px; }
.enix-pq-total-box__note { font-size: 11px; color: #f97316; font-style: italic; margin-top: 8px; }

.enix-pq-inclusions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    padding: 20px 32px;
    background: #f8fafc;
    border-bottom: 1px solid #f1f5f9;
    font-family: 'Mulish', sans-serif;
}
.enix-pq-inclusion-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #374151;
    margin-bottom: 6px;
}

.enix-pq-terms {
    padding: 16px 32px;
    font-size: 12px;
    color: #64748b;
    line-height: 1.7;
    background: #f8fafc;
    border-bottom: 1px solid #f1f5f9;
    font-family: 'Mulish', sans-serif;
}

.enix-pq-signature-block {
    margin: 16px 32px;
    padding: 16px;
    border: 2px solid #16a34a;
    border-radius: 8px;
    background: #f0fdf4;
    font-family: 'Mulish', sans-serif;
}
.enix-pq-signature-block__label {
    font-size: 11px;
    color: #16a34a;
    font-weight: 600;
    text-transform: uppercase;
}
.enix-pq-signature-block__name {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #15803d;
}
.enix-pq-signature-block__date, .enix-pq-signature-block__code { font-size: 11px; color: #64748b; }

.enix-pq-footer {
    background: #0d2240;
    padding: 14px 32px;
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    font-family: 'Mulish', sans-serif;
}

.enix-pq-bottom-cta { text-align: center; padding: 32px 24px; }
.enix-pq-bottom-cta__sub {
    font-size: 13px;
    color: #94a3b8;
    margin-top: 10px;
    font-family: 'Mulish', sans-serif;
}

.enix-pq-notfound {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    gap: 12px;
    font-family: 'Mulish', sans-serif;
}
.enix-pq-notfound__icon { font-size: 48px; }
.enix-pq-notfound__title {
    font-family: 'Poppins', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #0d2240;
}
.enix-pq-notfound__sub { font-size: 14px; color: #94a3b8; }

.enix-pq-sig-canvas {
    width: 100%;
    height: 150px;
    border: 2px dashed #e2e8f0;
    border-radius: 8px;
    cursor: crosshair;
    background: #f8fafc;
    display: block;
    margin: 10px 0;
}

.enix-pq-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.enix-pq-modal {
    background: #fff;
    border-radius: 14px;
    padding: 28px;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.enix-pq-modal__title {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #0d2240;
}
.enix-pq-modal__sub { font-size: 13px; color: #64748b; font-family: 'Mulish', sans-serif; line-height: 1.5; }
.enix-pq-modal__fields { display: flex; flex-direction: column; gap: 10px; }
.enix-pq-modal__field { display: flex; flex-direction: column; gap: 4px; }
.enix-pq-modal__field label {
    font-size: 12px;
    color: #64748b;
    font-family: 'Mulish', sans-serif;
    font-weight: 600;
}
.enix-pq-modal__input, .enix-pq-modal__textarea {
    padding: 9px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 13px;
    font-family: 'Mulish', sans-serif;
    color: #0d2240;
    outline: none;
    width: 100%;
    box-sizing: border-box;
}
.enix-pq-modal__input:focus, .enix-pq-modal__textarea:focus { border-color: #f97316; }
.enix-pq-modal__textarea { min-height: 80px; resize: none; }
.enix-pq-modal__error { font-size: 12px; color: #dc2626; font-family: 'Mulish', sans-serif; }
.enix-pq-modal__actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 4px; }
.enix-pq-modal__btn {
    padding: 9px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    font-family: 'Mulish', sans-serif;
    transition: opacity 0.15s;
}
.enix-pq-modal__btn:hover { opacity: 0.88; }
.enix-pq-modal__btn--primary { background: #f97316; color: #fff; }
.enix-pq-modal__btn--ghost   { background: #f1f5f9; color: #374151; }
.enix-pq-modal__success {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.enix-pq-modal__success-icon { font-size: 48px; }

/* ══════════════════════════════════════════════════════
   QUOTE EDITOR WIZARD  (.enix-wz-*)
   QuoteEditorWizard.razor  —  /Cotizacion/Nueva
   ══════════════════════════════════════════════════════ */

/* ── Animations ── */
@keyframes pqpop {
  from { transform: translateY(8px); }
  to   { transform: translateY(0);   }
}
@keyframes pqfloat {
  0%,100% { transform: translateY(0);    }
  50%     { transform: translateY(-7px); }
}
@keyframes pqslide {
  from { transform: translateX(100%); }
  to   { transform: translateX(0);    }
}
@keyframes pqfade {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0);   }
}
@keyframes pqover {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Shell ── */
.enix-wz-shell {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 100vh;
  background: #e9eef4;
  padding: 28px 16px 48px;
}

/* ── 3-col grid ── */
.enix-wz-grid {
  display: grid;
  grid-template-columns: 236px 1fr 344px;
  width: 100%;
  max-width: 1200px;
  min-height: 780px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 44px rgba(13,34,64,.16);
  /* Ancla del loader propio del wizard (.enix-wz-loading, absolute inset:0) */
  position: relative;
}

/* ── LOADER DEL WIZARD ──────────────────────────────────────
   Cubre solo el wizard, no la pantalla entera, y difumina lo que hay detrás para que el agente
   no pierda el contexto de dónde estaba. Se usa al cambiar de paso y al salir: los tres caminos
   guardan primero, así que hay una espera de red real.
   z-index bajo a propósito: tiene que quedar POR DEBAJO de los modales de la pantalla (el form
   manual y el de resort fee usan 1085/1090), que son fixed y viven fuera de este contenedor. */
.enix-wz-loading {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(233, 238, 244, .5);
  backdrop-filter: blur(3px) saturate(.92);
  -webkit-backdrop-filter: blur(3px) saturate(.92);
  animation: enixwz-fade .14s ease;
}
.enix-wz-loading__box {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px 19px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 10px 34px rgba(13,34,64,.18);
  font: 600 13px/1 'Onest', 'Mulish', sans-serif;
  color: #0d2240;
}
.enix-wz-loading__spinner {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  border: 2px solid #dbe4ef;
  border-top-color: #1e5fa8;
  border-radius: 50%;
  animation: enixwz-spin .7s linear infinite;
}
@keyframes enixwz-spin { to { transform: rotate(360deg); } }
@keyframes enixwz-fade { from { opacity: 0; } to { opacity: 1; } }

/* ── LEFT RAIL ── */
.enix-wz-rail {
  background: #0d2240;
  display: flex;
  flex-direction: column;
  gap: 26px;
  padding: 24px 18px;
}
.enix-wz-rail-header {
  display: flex;
  align-items: center;
  gap: 10px;
}
.enix-wz-rail-logo {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: #1e5fa8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.enix-wz-rail-agency {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}
.enix-wz-rail-quotenum {
  font-size: 10.5px;
  color: #7e93b3;
  line-height: 1;
  margin-top: 2px;
}

/* Steps */
.enix-wz-steps { display: flex; flex-direction: column; gap: 6px; }
.enix-wz-step {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 12px;
  border-radius: 11px;
  font-size: 13.5px;
  border: none;
  background: transparent;
  cursor: pointer;
  transition: background .15s, color .15s;
  text-align: left;
  width: 100%;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-step-badge {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}
.enix-wz-step--active {
  background: #1e5fa8;
  color: #fff;
  font-weight: 600;
}
.enix-wz-step--active .enix-wz-step-badge {
  background: rgba(255,255,255,.22);
  color: #fff;
}
.enix-wz-step--done {
  background: rgba(255,255,255,.06);
  color: #c9d6e8;
}
.enix-wz-step--done .enix-wz-step-badge {
  background: #22c55e;
  color: #fff;
}
.enix-wz-step--pending { color: #7e93b3; }
.enix-wz-step--pending .enix-wz-step-badge {
  border: 1.5px solid #3a5278;
  color: #7e93b3;
}
.enix-wz-step--pending:hover { background: rgba(255,255,255,.04); color: #c9d6e8; }

/* Rail misc */
.enix-wz-rail-help {
  background: rgba(255,255,255,.06);
  border-radius: 12px;
  padding: 14px;
  font-size: 11px;
  color: #9fb3cf;
  line-height: 1.55;
  margin-top: auto;
}
.enix-wz-rail-footer {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: #7e93b3;
  padding: 0 4px;
}
.enix-wz-draft-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f0b429;
  display: inline-block;
  flex-shrink: 0;
}

/* ── CENTER ── */
.enix-wz-center {
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.enix-wz-center-body {
  flex: 1;
  overflow-y: auto;
  padding: 26px 28px 18px;
}
.enix-wz-step-content { animation: pqpop .25s ease; }

/* Step header (step 2 with button) */
.enix-wz-step-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.enix-wz-step-title {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 21px;
  font-weight: 800;
  color: #0d2240;
  letter-spacing: -.01em;
  margin-bottom: 4px;
}
.enix-wz-step-title:not(.enix-wz-step-header .enix-wz-step-title) { margin-bottom: 4px; }
.enix-wz-step-sub {
  font-size: 13px;
  color: #94a3b8;
  margin-bottom: 20px;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-step-header .enix-wz-step-sub { margin-bottom: 0; }

/* Nav bar */
.enix-wz-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 28px 20px;
  border-top: 1px solid #eef2f7;
  flex-shrink: 0;
}

/* ── FIELD SYSTEM ── */
.enix-wz-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 14px;
}
.enix-wz-label {
  font-family: 'Onest', 'Mulish', sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.enix-wz-input {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
  font: 500 14px / 1.4 'Onest', 'Mulish', sans-serif;
  color: #0d2240;
  background: #fff;
  transition: border-color .15s;
  outline: none;
}
.enix-wz-input:focus { border-color: #1e5fa8; }

/* Dato de solo lectura donde otro perfil ve un input (agencia / vendedor del paso 1).
   Misma tipografia y mismo alto de linea que .enix-wz-input, pero sin borde ni fondo: con un input
   deshabilitado el agente intentaba escribir; asi se lee como lo que es, un dato fijo.
   El padding vertical iguala el del input (10px + 1px de borde) para que la grilla de dos columnas
   no se descalce cuando una celda es input y la otra texto. */
.enix-wz-static {
  padding: 11px 0;
  font: 500 14px / 1.4 'Onest', 'Mulish', sans-serif;
  color: #334155;
  min-width: 0;
  overflow-wrap: break-word;
}
.enix-wz-input-lg {
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  padding: 11px 14px;
  font: 700 22px / 1.2 'Schibsted Grotesk', 'Poppins', sans-serif;
  color: #0d2240;
  background: #fff;
  transition: border-color .15s;
  outline: none;
  width: 100%;
}
.enix-wz-input-lg:focus { border-color: #1e5fa8; }
.enix-wz-input--error { border-color: #ef4444 !important; }
.enix-wz-field-error {
  font-size: 12px;
  color: #ef4444;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-textarea {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
  font: 400 12.5px / 1.55 'Onest', 'Mulish', sans-serif;
  color: #475569;
  resize: vertical;
  outline: none;
  transition: border-color .15s;
}
.enix-wz-textarea:focus { border-color: #1e5fa8; }
.enix-wz-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
}

/* Cover dropzone */
.enix-wz-cover-drop {
  width: 100%;
  height: 152px;
  border: 2px dashed #cdd9ea;
  border-radius: var(--enix-q-img-radius);
  background: linear-gradient(180deg,#f9fcff,#eef5fd);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.enix-wz-cover-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.enix-wz-cover-clear {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background: rgba(0,0,0,.55);
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.enix-wz-cover-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #94a3b8;
  font-family: 'Onest', 'Mulish', sans-serif;
  font-size: 13px;
  text-align: center;
}

/* ── BUTTONS ── */
.enix-wz-btn-accent {
  background: #1e5fa8;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 10px 16px;
  font: 600 13.5px 'Onest', 'Mulish', sans-serif;
  cursor: pointer;
  transition: filter .12s;
  white-space: nowrap;
}
.enix-wz-btn-accent:hover { filter: brightness(1.08); }
.enix-wz-btn-accent:disabled { opacity: .5; cursor: not-allowed; filter: none; }
.enix-wz-btn-ghost {
  background: #fff;
  color: #475569;
  border: 1px solid #cdd6e2;
  border-radius: 10px;
  padding: 10px 16px;
  font: 500 13.5px 'Onest', 'Mulish', sans-serif;
  cursor: pointer;
  transition: background .12s;
  white-space: nowrap;
}
.enix-wz-btn-ghost:hover { background: #f1f5f9; }
.enix-wz-btn-ghost:disabled { opacity: .5; cursor: not-allowed; }
.enix-wz-btn-publish {
  background: #0f8a5a;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 10px 18px;
  font: 600 13.5px 'Onest', 'Mulish', sans-serif;
  cursor: pointer;
  transition: filter .12s;
  white-space: nowrap;
}
.enix-wz-btn-publish:hover { filter: brightness(1.08); }
.enix-wz-btn-add-more {
  width: 100%;
  margin-top: 10px;
  padding: 11px;
  border: 2px dashed #cdd9ea;
  border-radius: 12px;
  background: transparent;
  color: #64748b;
  font: 500 13.5px 'Onest', 'Mulish', sans-serif;
  cursor: pointer;
  transition: border-color .12s, color .12s;
}
.enix-wz-btn-add-more:hover { border-color: #1e5fa8; color: #1e5fa8; }

/* ── EMPTY STATE ── */
.enix-wz-empty {
  border: 2px dashed #cdd9ea;
  border-radius: 18px;
  background: linear-gradient(180deg,#f9fcff,#eef5fd);
  padding: 40px 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}
.enix-wz-empty-icon {
  font-size: 44px;
  line-height: 1;
  animation: pqfloat 3.2s ease-in-out infinite;
}
.enix-wz-empty-title {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #0d2240;
}
.enix-wz-empty-sub { font-size: 13px; color: #64748b; font-family: 'Onest', 'Mulish', sans-serif; }
.enix-wz-empty-btns { display: flex; gap: 10px; margin-top: 8px; }

/* ── SERVICE CARDS ── */
.enix-wz-svc-list { display: flex; flex-direction: column; gap: 13px; }
.enix-wz-svc-card {
  display: flex;
  border: 1px solid #e6ebf2;
  border-radius: 15px;
  background: #fff;
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
  animation: pqpop .25s ease;
}
.enix-wz-svc-card:hover {
  border-color: #c9dbf2;
  box-shadow: 0 4px 16px rgba(13,34,64,.07);
}
.enix-wz-svc-thumb {
  width: 90px;
  flex-shrink: 0;
  background: linear-gradient(135deg,#dbe7f5,#eef4fb);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
}
.enix-wz-svc-body { flex: 1; padding: 13px 15px; min-width: 0; }
.enix-wz-svc-row1 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.enix-wz-svc-name {
  flex: 1;
  border: none;
  outline: none;
  font: 600 15px 'Onest', 'Mulish', sans-serif;
  color: #0d2240;
  background: transparent;
  min-width: 0;
}
.enix-wz-svc-del {
  background: none;
  border: none;
  color: #cbd5e1;
  cursor: pointer;
  font-size: 14px;
  padding: 2px 4px;
  flex-shrink: 0;
  transition: color .12s;
}
.enix-wz-svc-del:hover { color: #ef4444; }
.enix-wz-svc-desc {
  width: 100%;
  border: none;
  outline: none;
  font: 400 12px 'Onest', 'Mulish', sans-serif;
  color: #64748b;
  background: transparent;
  margin-bottom: 8px;
}
.enix-wz-svc-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.enix-wz-chip {
  font-size: 10.5px;
  background: #eef4fb;
  color: #5b6b80;
  border-radius: 6px;
  padding: 3px 8px;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-chip--date { color: #94a3b8; }
.enix-wz-chip--markup { color: #0f8a5a; background: #e9f9f0; }
.enix-wz-svc-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.enix-wz-svc-ctrl-label {
  font-size: 10.5px;
  color: #94a3b8;
  font-family: 'Onest', 'Mulish', sans-serif;
  font-weight: 600;
  text-transform: uppercase;
}
.enix-wz-svc-ctrl {
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  padding: 4px 8px;
  font: 500 13px 'Onest', 'Mulish', sans-serif;
  color: #0d2240;
  outline: none;
  transition: border-color .12s;
}
.enix-wz-svc-ctrl:focus { border-color: #1e5fa8; }
.enix-wz-svc-ctrl--pax  { width: 50px; text-align: center; }
.enix-wz-svc-ctrl--unit { width: 80px; text-align: right; }
.enix-wz-svc-ctrl--curr { width: 72px; }
.enix-wz-svc-total {
  margin-left: auto;
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0d2240;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ── STEP 3 — REVIEW ── */
.enix-wz-summary-card {
  background: linear-gradient(135deg, #0d2240, #1e5fa8);
  border-radius: 14px;
  padding: 20px 22px;
  color: #fff;
  margin-bottom: 20px;
}
.enix-wz-summary-eyebrow {
  font-size: 11px;
  color: rgba(255,255,255,.65);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 6px;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-summary-dest {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 23px;
  font-weight: 800;
  letter-spacing: -.01em;
  margin-bottom: 8px;
}
.enix-wz-summary-meta {
  font-size: 13px;
  color: rgba(255,255,255,.75);
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-incl-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 4px;
}
.enix-wz-incl-header {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #0f8a5a;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.enix-wz-incl-item {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #e6ebf2;
  border-radius: 9px;
  padding: 7px 10px;
  margin-bottom: 5px;
}
.enix-wz-incl-check { font-size: 12px; color: #0f8a5a; flex-shrink: 0; }
.enix-wz-incl-input {
  flex: 1;
  border: none;
  outline: none;
  font: 400 12.5px 'Onest', 'Mulish', sans-serif;
  color: #334155;
  background: transparent;
  min-width: 0;
}
.enix-wz-incl-del {
  background: none;
  border: none;
  color: #cbd5e1;
  cursor: pointer;
  font-size: 12px;
  flex-shrink: 0;
  padding: 0 2px;
  transition: color .12s;
}
.enix-wz-incl-del:hover { color: #ef4444; }
.enix-wz-incl-add {
  width: 100%;
  padding: 7px;
  border: 1.5px dashed #cdd9ea;
  border-radius: 9px;
  background: transparent;
  color: #94a3b8;
  font: 500 12px 'Onest', 'Mulish', sans-serif;
  cursor: pointer;
  transition: border-color .12s, color .12s;
}
.enix-wz-incl-add:hover { border-color: #1e5fa8; color: #1e5fa8; }
.enix-wz-valid-until {
  margin-top: 10px;
  font-size: 12.5px;
  color: #64748b;
  font-family: 'Onest', 'Mulish', sans-serif;
}

/* ── RIGHT SIDEBAR ── */
.enix-wz-sidebar {
  background: #f7f9fc;
  border-left: 1px solid #e6ebf2;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow-y: auto;
}
.enix-wz-sidebar-title {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0d2240;
}
.enix-wz-sidebar-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
}
.enix-wz-sidebar-meta {
  font-size: 13px;
  color: #64748b;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-sidebar-discount { margin-bottom: 0; }
.enix-wz-multicurr-banner {
  background: #fff8e6;
  border: 1px solid #ffe9a8;
  border-radius: 9px;
  padding: 9px 12px;
  font-size: 11.5px;
  color: #b08900;
  font-family: 'Onest', 'Mulish', sans-serif;
  line-height: 1.4;
}
.enix-wz-total-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 12px;
  padding: 13px 15px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  animation: pqpop .2s ease;
}
.enix-wz-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: #475569;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-total-disc { color: #0f8a5a; }
.enix-wz-total-grand {
  border-top: 1px solid #eef2f7;
  padding-top: 7px;
  margin-top: 3px;
  font-weight: 700;
  color: #0d2240;
}
.enix-wz-total-grand span:last-child {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 19px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* ── SLIDE-OVER PANEL ── */
.enix-wz-overlay {
  position: fixed;
  inset: 0;
  background: rgba(13,34,64,.42);
  backdrop-filter: blur(2px);
  z-index: 200;
  animation: pqover 200ms ease;
}
.enix-wz-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 440px;
  background: #fff;
  box-shadow: -12px 0 40px rgba(13,34,64,.22);
  z-index: 201;
  display: flex;
  flex-direction: column;
  animation: pqslide 280ms cubic-bezier(.2,.8,.2,1);
}
.enix-wz-panel-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 18px 20px;
  border-bottom: 1px solid #eef2f7;
  flex-shrink: 0;
}
.enix-wz-panel-back {
  background: none;
  border: none;
  color: #64748b;
  font-size: 13px;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 6px;
  font-family: 'Onest', 'Mulish', sans-serif;
  transition: background .12s;
}
.enix-wz-panel-back:hover { background: #f1f5f9; }
.enix-wz-panel-title {
  flex: 1;
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0d2240;
}
.enix-wz-panel-close {
  background: none;
  border: none;
  color: #94a3b8;
  font-size: 16px;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 6px;
  transition: color .12s, background .12s;
}
.enix-wz-panel-close:hover { color: #0d2240; background: #f1f5f9; }
.enix-wz-panel-body { flex: 1; overflow-y: auto; padding: 20px; }
.enix-wz-panel-footer {
  display: flex;
  gap: 10px;
  padding: 16px 20px;
  border-top: 1px solid #eef2f7;
  flex-shrink: 0;
  justify-content: flex-end;
}

/* Mode chooser */
.enix-wz-mode-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.enix-wz-mode-card {
  border: 1.5px solid #e6ebf2;
  border-radius: 14px;
  padding: 24px 16px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
  text-align: center;
}
.enix-wz-mode-card:hover { border-color: #1e5fa8; box-shadow: 0 4px 16px rgba(13,34,64,.07); }
.enix-wz-mode-title {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #0d2240;
}
.enix-wz-mode-sub { font-size: 12px; color: #64748b; font-family: 'Onest', 'Mulish', sans-serif; }

/* Manual form */
.enix-wz-manual-form { display: flex; flex-direction: column; }
.enix-wz-price-box {
  background: linear-gradient(135deg,#f0f7ff,#e8f4fb);
  border: 1px solid #c9dbf2;
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 6px;
}
.enix-wz-price-label {
  font-size: 11px;
  color: #7e93b3;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-family: 'Onest', 'Mulish', sans-serif;
  font-weight: 600;
  margin-bottom: 4px;
}
.enix-wz-price-value {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: #0d2240;
  font-variant-numeric: tabular-nums;
}
.enix-wz-price-markup {
  font-size: 11.5px;
  color: #0f8a5a;
  font-family: 'Onest', 'Mulish', sans-serif;
  margin-top: 4px;
}

/* Integration grid */
.enix-wz-int-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.enix-wz-int-card {
  border: 1.5px solid #e6ebf2;
  border-radius: 13px;
  padding: 18px 12px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
  text-align: center;
}
.enix-wz-int-card:hover { border-color: #1e5fa8; box-shadow: 0 4px 12px rgba(13,34,64,.07); }
/* Iconos FA de las tarjetas VIP: mismo azul que la barra de productos (.enix-product-tab__icon i) */
.enix-wz-int-card > i { color: #2c5078; }
.enix-wz-int-name {
  font-weight: 600;
  font-size: 13.5px;
  color: #0d2240;
  font-family: 'Onest', 'Mulish', sans-serif;
}
.enix-wz-int-sub { font-size: 11px; color: #94a3b8; font-family: 'Onest', 'Mulish', sans-serif; }

/* Redirect interstitial */
.enix-wz-redirect {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 30px 20px;
  text-align: center;
}
.enix-wz-redirect-title {
  font-family: 'Schibsted Grotesk', 'Poppins', sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #0d2240;
}
.enix-wz-redirect-sub { font-size: 13px; color: #64748b; font-family: 'Onest', 'Mulish', sans-serif; line-height: 1.5; }
.enix-wz-redirect-banner {
  background: #fff8e6;
  border: 1px solid #ffe9a8;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 12px;
  color: #b08900;
  font-family: 'Onest', 'Mulish', sans-serif;
  width: 100%;
}

/* ── TOAST ── */
.enix-wz-toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  background: #0d2240;
  color: #fff;
  border-radius: 12px;
  padding: 12px 22px;
  font: 500 14px 'Onest', 'Mulish', sans-serif;
  box-shadow: 0 12px 32px rgba(13,34,64,.32);
  z-index: 300;
  white-space: nowrap;
  animation: pqfade 200ms ease;
}

/* ── Responsive: hide wizard columns on small screens ── */
@media (max-width: 860px) {
  .enix-wz-shell { padding: 0; }
  .enix-wz-grid  { grid-template-columns: 1fr; border-radius: 0; }
  .enix-wz-sidebar { border-left: none; border-top: 1px solid #e6ebf2; }
  .enix-wz-panel { width: 100%; }

  /* El rail NO se esconde: era la unica forma de saltar entre pasos (el nav de abajo solo
     avanza/retrocede de a uno). Pasa a ser una barra horizontal arriba del contenido, sin
     las partes decorativas — el numero de presupuesto y la fecha ya estan en el header. */
  .enix-wz-rail {
    flex-direction: row;
    align-items: center;
    gap: 6px;
    padding: 9px 10px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .enix-wz-rail::-webkit-scrollbar { display: none; }
  .enix-wz-rail-header,
  .enix-wz-rail-help,
  .enix-wz-rail-footer { display: none; }

  .enix-wz-steps { flex-direction: row; width: 100%; gap: 6px; }
  /* flex:1 + min-width:0 para que los 3 pasos entren sin desbordar; el label se recorta con
     ellipsis en vez de envolver ("Revisar y enviar" no entra en pantallas chicas). */
  .enix-wz-step {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    gap: 7px;
    padding: 9px 8px;
    font-size: 12.5px;
  }
  .enix-wz-step > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  /* El paso activo se queda con el doble de ancho: es el unico cuyo label importa leer completo */
  .enix-wz-step--active { flex: 2 1 0; }

  /* Formularios y grillas fijas del paso 1 y del paso 3 */
  .enix-wz-grid2 { grid-template-columns: 1fr; }
  .enix-wz-photo-grid { grid-template-columns: repeat(2, 1fr); }

  .enix-wz-center-body { padding-left: 14px; padding-right: 14px; }

  /* Header del paso 2: titulo arriba y los botones de agregar abajo, a lo ancho. Con
     space-between y poco ancho, "Agregar servicios" y "MANUAL" se pisaban con el titulo. */
  .enix-wz-step-header { flex-direction: column; gap: 11px; }
  .enix-wz-step-header > div:last-child { width: 100%; }
  .enix-wz-step-header > div:last-child > button { flex: 1 1 auto; justify-content: center; }

  /* Barra de navegacion: los botones pasan a ocupar el ancho, en dos filas si hace falta.
     Con justify-content:space-between y poco ancho quedaban apretados y se cortaban. */
  .enix-wz-nav {
    flex-wrap: wrap;
    gap: 9px;
    padding: 13px 14px 16px;
  }
  .enix-wz-nav > div { flex: 1 1 100%; display: flex; gap: 9px; }
  .enix-wz-nav > div > button { flex: 1 1 auto; justify-content: center; }

  /* Acá el grid crece con el contenido y la página scrollea, así que un overlay absolute centraría
     el cartel en el medio del grid — fuera de la vista si estás scrolleado. Fixed lo mantiene
     siempre centrado en el viewport. */
  .enix-wz-loading { position: fixed; }
}

/* ══ QUOTEOPEN (--fit): shell acotado al viewport ══════
   Sin esto, .enix-wz-grid crece con el contenido (min-height sin tope) y el
   overflow-y de .enix-wz-center-body nunca se activa: scrollea la página entera
   (o aparecen dos scrollbars). Acotado al alto disponible, el scroll Y vive
   solo en el cuerpo central; rail y sidebar quedan fijos. */
.enix-wz-shell--fit {
  min-height: 0;
  height: calc(100vh - var(--nav-navbar-height, 52px) - var(--nav-modulebar-height, 0px) - var(--nav-product-tabs-height, 60px));
  height: calc(100dvh - var(--nav-navbar-height, 52px) - var(--nav-modulebar-height, 0px) - var(--nav-product-tabs-height, 60px));
  padding: 16px 16px 20px;
  overflow: hidden;
}
.enix-wz-shell--fit .enix-wz-grid {
  grid-template-rows: minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}
.enix-wz-shell--fit .enix-wz-rail,
.enix-wz-shell--fit .enix-wz-sidebar {
  min-height: 0;
  overflow-y: auto;
}
/* El scroll de los items vive en la propia lista: el header del paso y el
   botón "+ Agregar" quedan siempre a la vista. Cadena flex con min-height:0
   para que la lista pueda encogerse y activar su overflow. */
.enix-wz-shell--fit .enix-wz-center-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.enix-wz-shell--fit .enix-wz-step-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.enix-wz-shell--fit .enix-wz-step-header { flex-shrink: 0; }
.enix-wz-shell--fit .items-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 4px 10px 14px 4px;
  scrollbar-width: thin;
  scrollbar-color: var(--gray300, #cbd5e1) transparent;
}
/* Sin esto las tarjetas se encogen (flex-shrink) para "entrar" en el alto
   disponible en lugar de desbordar y activar el scroll */
.enix-wz-shell--fit .items-list > .item { flex-shrink: 0; }
.enix-wz-shell--fit .items-list::-webkit-scrollbar { width: 10px; }
.enix-wz-shell--fit .items-list::-webkit-scrollbar-track { background: transparent; }
.enix-wz-shell--fit .items-list::-webkit-scrollbar-thumb { background: var(--gray200, #e2e8f0); border-radius: 99px; border: 2px solid #fff; }
.enix-wz-shell--fit .items-list::-webkit-scrollbar-thumb:hover { background: var(--gray400, #94a3b8); }
@media (max-width: 860px) {
  .enix-wz-shell--fit { height: auto; overflow: visible; }
  .enix-wz-shell--fit .enix-wz-grid { height: auto; }
  .enix-wz-shell--fit .items-list { overflow-y: visible; }
}

/* ══ COVER PHOTO PRESETS ══════════════════════════════ */
.enix-wz-photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.enix-wz-photo-thumb {
  position: relative;
  border: 2px solid transparent;
  border-radius: var(--enix-q-img-radius);
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  background: #e2e8f0;
  aspect-ratio: 16 / 9;
  transition: border-color 140ms, transform 120ms, box-shadow 140ms;
  display: block;
  width: 100%;
}
.enix-wz-photo-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.enix-wz-photo-thumb:hover {
  border-color: #1e5fa8;
  transform: scale(1.025);
  box-shadow: 0 4px 16px rgba(30,95,168,.18);
}
.enix-wz-photo-thumb--sel {
  border-color: #1e5fa8;
  box-shadow: 0 0 0 3px rgba(30,95,168,.25);
}
.enix-wz-photo-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(0,0,0,.62));
  color: #fff;
  font: 500 11px 'Onest', 'Mulish', sans-serif;
  padding: 18px 7px 6px;
  pointer-events: none;
}
.enix-wz-photo-check {
  position: absolute;
  top: 6px; right: 6px;
  width: 20px; height: 20px;
  background: #1e5fa8;
  color: #fff;
  border-radius: 50%;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}

/* ══ HOTEL SEARCH MOCKUP ══════════════════════════════ */
.enix-wz-hsearch { display: flex; flex-direction: column; gap: 12px; }

.enix-wz-hsearch-bar {
  display: grid;
  grid-template-columns: 1fr 110px 110px auto;
  gap: 8px;
  align-items: center;
}
.enix-wz-hsearch-pax {
  display: flex;
  align-items: center;
  gap: 5px;
}

.enix-wz-hsearch-badge {
  font: 500 11px 'Onest', 'Mulish', sans-serif;
  color: #7e93b3;
  background: #f0f4f8;
  border-radius: 6px;
  padding: 6px 10px;
}

.enix-wz-hotel-results {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 400px;
  overflow-y: auto;
  padding-right: 2px;
}

.enix-wz-hotel-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #f8fafc;
  border: 1px solid #e6ebf2;
  border-radius: 12px;
  padding: 10px 12px;
  transition: background 120ms, border-color 120ms;
}
.enix-wz-hotel-card:hover {
  background: #eef3fa;
  border-color: #c9d8eb;
}

.enix-wz-hotel-img {
  width: 80px;
  height: 60px;
  border-radius: var(--enix-q-img-radius);
  object-fit: cover;
  flex-shrink: 0;
  background: #e2e8f0;
}

.enix-wz-hotel-info { flex: 1; min-width: 0; }

.enix-wz-hotel-name {
  font: 600 13px 'Onest', 'Mulish', sans-serif;
  color: #0d2240;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
}
.enix-wz-hotel-stars {
  font-size: 12px;
  color: #f59e0b;
  margin-bottom: 2px;
}
.enix-wz-hotel-room {
  font-size: 11px;
  color: #64748b;
}

.enix-wz-hotel-price-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  flex-shrink: 0;
}
.enix-wz-hotel-price {
  font: 700 14px 'Schibsted Grotesk', 'Onest', sans-serif;
  color: #0d2240;
  white-space: nowrap;
}
.enix-wz-hotel-pnight {
  font-size: 10px;
  color: #94a3b8;
  margin-bottom: 2px;
}
.enix-wz-hotel-add {
  background: #1e5fa8;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 6px 13px;
  font: 600 12px 'Onest', 'Mulish', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 120ms, transform 80ms;
}
.enix-wz-hotel-add:hover {
  background: #1a4e8e;
  transform: scale(1.03);
}

/* ══════════════════════════════════════════════════════
   PUBLIC QUOTE SHARE  (.enix-pqv-*)
   Quote_Public.razor — /QuoteShare/{enc}
   Vista del cliente final (sin login). Reusa el shell
   .enix-qe-* (paper/header/meta/cover/section/footer) y
   agrega acá las piezas propias: fichas de contacto,
   resumen del viaje y tarjetas de servicio.
   ══════════════════════════════════════════════════════ */

/* ── Contacto: cliente + vendedor ── */
.enix-pqv-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.enix-pqv-card {
    background: #f8fafc;
    border: 1px solid #eef2f7;
    border-radius: 10px;
    padding: 14px 16px;
}
.enix-pqv-card__label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    color: #94a3b8;
    margin-bottom: 6px;
}
.enix-pqv-card__name {
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0d2240;
}
.enix-pqv-card__line {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: #64748b;
    margin-top: 5px;
    word-break: break-word;
}
.enix-pqv-card__line i { color: #94a3b8; width: 13px; flex-shrink: 0; text-align: center; }
.enix-pqv-card__line a { color: #1e5fa8; text-decoration: none; }
.enix-pqv-card__line a:hover { text-decoration: underline; }

.enix-pqv-wa {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    background: #25D366;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 15px;
    font-family: 'Poppins', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}
.enix-pqv-wa:hover { filter: brightness(1.06); color: #fff; }

/* ── Resumen del viaje ── */
.enix-pqv-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.enix-pqv-stat {
    flex: 1 1 120px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
    border-radius: 10px;
    padding: 10px 14px;
}
.enix-pqv-stat__label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #94a3b8;
}
.enix-pqv-stat__value {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #0d2240;
    margin-top: 3px;
}

/* ── Tarjeta de servicio ── */
.enix-pqv-item {
    display: flex;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid #f1f5f9;
    align-items: flex-start;
}
.enix-pqv-item:last-of-type { border-bottom: none; }
.enix-pqv-item__photo {
    width: 118px;
    height: 82px;
    border-radius: var(--enix-q-img-radius);
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}
.enix-pqv-item__tile {
    width: 118px;
    height: 82px;
    border-radius: var(--enix-q-img-radius);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #1e5fa8;
    background: linear-gradient(135deg, #eaf1fb, #f7fafd);
}
/* Las imágenes que el agente le agrega al servicio: la primera queda como foto grande
   (.enix-pqv-item__photo) y el resto van acá abajo, sin desarmar la fila del ítem. */
.enix-pqv-item__gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.enix-pqv-item__thumb {
    width: 86px;
    height: 60px;
    border-radius: var(--enix-q-img-radius);
    object-fit: cover;
    display: block;
    border: 1px solid var(--gray200, #e2e8f0);
}
.enix-pqv-item__body { flex: 1; min-width: 0; }
.enix-pqv-item__cat {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    color: #f97316;
    margin-bottom: 3px;
}
.enix-pqv-item__title {
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0d2240;
    line-height: 1.3;
}
.enix-pqv-item__sub { font-size: 12.5px; color: #64748b; margin-top: 2px; }

.enix-pqv-item__price { text-align: right; flex-shrink: 0; min-width: 108px; }
.enix-pqv-item__amount {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #0d2240;
    white-space: nowrap;
}
.enix-pqv-item__amount-lbl {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #94a3b8;
    margin-top: 1px;
}
/* Desglose contado / tarjeta por servicio (instancias con descuento al contado). El bloque en sí
   son las clases .p-* de enix-quote.css, las MISMAS que usa el editor, para que el cliente vea
   exactamente lo que vio el agente. Acá van solo las dos cosas que en el editor las da su propio
   contenedor (.item__price): el ancho de la columna y el separador. */
.enix-pqv-item__price--breakdown { min-width: 152px; }
.enix-pqv-item__price hr {
    width: 100%;
    border: none;
    border-top: 1px dashed #e2e8f0;
    margin: 9px 0;
}
.enix-pqv-del {
    border: none;
    background: none;
    color: #94a3b8;
    cursor: pointer;
    font-size: 11.5px;
    padding: 6px 0 0;
}
.enix-pqv-del:hover { color: #dc2626; }

/* ── Habitaciones (multiroom) ── */
.enix-pqv-rooms {
    margin-top: 8px;
    border: 1px solid #eef2f7;
    border-radius: 9px;
    overflow: hidden;
}
.enix-pqv-room {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 11px;
    font-size: 12.5px;
    color: #374151;
    background: #fcfdfe;
    border-bottom: 1px solid #f1f5f9;
}
.enix-pqv-room:last-child { border-bottom: none; }
.enix-pqv-room__idx {
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #0d2240;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.enix-pqv-room__name { flex: 1; min-width: 0; }
.enix-pqv-room__pax { color: #94a3b8; font-size: 11.5px; white-space: nowrap; }
.enix-pqv-room__price { font-weight: 700; color: #0d2240; white-space: nowrap; }

/* ── Chips de meta ── */
.enix-pqv-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 8px;
}
.enix-pqv-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #f1f5f9;
    color: #475569;
    border-radius: 6px;
    padding: 3px 8px;
    font-size: 11px;
}
.enix-pqv-chip i { font-size: 10px; color: #94a3b8; }
.enix-pqv-chip--ok  { background: #ecfdf5; color: #15803d; }
.enix-pqv-chip--ok i { color: #16a34a; }
.enix-pqv-chip--nrf { background: #fef2f2; color: #b91c1c; }
.enix-pqv-chip--nrf i { color: #dc2626; }

/* ── Descripcion del servicio y de la tarifa ───────────────────────────────
   Texto plano, sin caja: es contenido del servicio y no un aviso. Se normaliza
   el HTML del proveedor (h3/h4 gigantes, listas con sangria) para que no
   compita con el titulo del item. */
.enix-pqv-item__desc {
    margin-top: 8px;
    font-size: 12px;
    color: #64748b;
    line-height: 1.6;
}
.enix-pqv-item__desc p { margin: 0 0 5px; }
.enix-pqv-item__desc p:last-child { margin-bottom: 0; }
.enix-pqv-item__desc h1, .enix-pqv-item__desc h2, .enix-pqv-item__desc h3,
.enix-pqv-item__desc h4, .enix-pqv-item__desc h5 {
    margin: 0 0 5px; font-size: 13px; font-weight: 700; color: #0d2240; line-height: 1.4;
}
.enix-pqv-item__desc ul, .enix-pqv-item__desc ol { margin: 5px 0 0; padding-left: 18px; }
.enix-pqv-item__desc li { margin-bottom: 3px; }
.enix-pqv-item__desc img { max-width: 100%; height: auto; border-radius: var(--enix-q-img-radius); }

/* ── Condiciones del proveedor (SpecialNotes) ──────────────────────────────
   Estas SI van en caja ambar: son cargos y depositos que el pasajero paga
   aparte, no descripcion del producto. */
.enix-pqv-item__notes {
    margin-top: 8px;
    padding: 10px 12px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-left: 3px solid #f59e0b;
    border-radius: 8px;
    font-size: 12px;
    color: #475569;
    line-height: 1.6;
}
.enix-pqv-item__notes > div + div { margin-top: 7px; padding-top: 7px; border-top: 1px solid #fde68a; }
/* El proveedor manda HTML armado para su propia pagina: se acotan margenes y listas. */
.enix-pqv-item__notes p { margin: 0 0 5px; }
.enix-pqv-item__notes p:last-child { margin-bottom: 0; }
.enix-pqv-item__notes ul, .enix-pqv-item__notes ol { margin: 5px 0 0; padding-left: 18px; }
.enix-pqv-item__notes li { margin-bottom: 3px; }

/* ── Detalle por tipo de servicio ── */
.enix-pqv-details { margin-top: 8px; }
.enix-pqv-d {
    font-size: 12px;
    color: #64748b;
    line-height: 1.6;
}
.enix-pqv-d b { color: #374151; font-weight: 600; }
.enix-pqv-d a { color: #1e5fa8; }

/* ── Desglose Disney ── */
.enix-pqv-disney {
    margin-top: 9px;
    border: 1px solid #e6ebf2;
    border-radius: 9px;
    overflow: hidden;
}
.enix-pqv-disney__row {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 8px 11px;
    font-size: 12.5px;
    color: #374151;
    border-bottom: 1px solid #f1f5f9;
    background: #fcfdff;
}
.enix-pqv-disney__row:last-child { border-bottom: none; }
.enix-pqv-disney__icon { width: 16px; text-align: center; color: #1e5fa8; flex-shrink: 0; }
.enix-pqv-disney__body { flex: 1; min-width: 0; }
.enix-pqv-disney__label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #94a3b8;
}
.enix-pqv-disney__price { font-weight: 700; color: #0d2240; white-space: nowrap; }

/* ── Mobile ── */
@media (max-width: 640px) {
    .enix-pqv-contact-grid { grid-template-columns: 1fr; }
    .enix-pqv-item { flex-wrap: wrap; }
    .enix-pqv-item__photo,
    .enix-pqv-item__tile { width: 100%; height: 132px; }
    .enix-pqv-item__price,
    .enix-pqv-item__price--breakdown { text-align: left; min-width: 0; width: 100%; }
    .enix-pqv-room { flex-wrap: wrap; }
}

/* ── Live-check del link publico (Quote_Public) ───────────────────────────────────────────────
   Mientras se revalida el precio contra el proveedor va este placeholder EN LUGAR del importe.
   Ocupa el alto de la linea del precio para que la fila no cambie de tamano cuando llega el
   numero: el resto del servicio (hotel, habitacion, fechas) nunca se tapa, asi que sin esto la
   columna derecha seria lo unico que salta.

   El fade-in de .45s es a proposito: cuando el proveedor contesta rapido el placeholder no
   alcanza a hacerse visible y el cliente ve el precio directo, sin un parpadeo de "cargando"
   que se lee como error. */
.enix-pqv-price-sk,
.enix-pqv-total-sk {
    border-radius: 6px;
    background: linear-gradient(90deg, #eef2f7 25%, #dfe6ee 37%, #eef2f7 63%);
    background-size: 400% 100%;
    animation: enixlc-sweep 1.25s ease-in-out infinite, enixlc-in .45s ease-out both;
}

/* Ancho fijo y alineado a la derecha como los importes (.p-simple / __amount) */
.enix-pqv-price-sk { height: 18px; width: 84px; margin-left: auto; }
.enix-pqv-total-sk { height: 34px; width: 100%; max-width: 190px; margin-left: auto; }

/* Sobre el fondo navy de la caja de pagar el gris claro desaparece */
.enix-pqv-total-sk--dark {
    background: linear-gradient(90deg, rgba(255,255,255,.10) 25%, rgba(255,255,255,.22) 37%, rgba(255,255,255,.10) 63%);
    background-size: 400% 100%;
}

/* Servicio que el proveedor dio de baja durante el chequeo: sin importe, porque cotizar algo que
   no se puede vender es peor que no mostrar nada. */
.enix-pqv-price-na {
    font-size: 12.5px;
    font-weight: 700;
    color: #b91c1c;
    line-height: 1.3;
}

@keyframes enixlc-sweep { from { background-position: 100% 0; } to { background-position: 0 0; } }
@keyframes enixlc-in { from { opacity: 0; } to { opacity: 1; } }

/* Respeta a quien pidio menos movimiento: queda el bloque quieto, sin barrido */
@media (prefers-reduced-motion: reduce) {
    .enix-pqv-price-sk,
    .enix-pqv-total-sk { animation: enixlc-in .45s ease-out both; }
}
