/* Cotizaciones: lista, cotizador con calculadora en vivo, catálogo de precios. Plano: colores sólidos, líneas de 1 px. */

.qt-filters { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; }
.qt-filters .chips { flex: 1 1 auto; min-width: 0; }
.qt-search { flex: 0 1 340px; min-width: 220px; }
.qt-list { padding-top: 0 !important; }
.qt-row { display: flex; align-items: center; gap: 14px; text-align: left; width: 100%; }
.qt-folio { font: 700 0.75rem/1 var(--vc-font-mono); letter-spacing: .03em; background: var(--vc-carbon); color: var(--vc-oro); border-radius: 8px; padding: 7px 9px; white-space: nowrap; flex: none; }
.qt-row-end { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; flex: none; }
.qt-row-end strong { font-size: 0.9688rem; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }

/* ───── encabezado del cotizador ───── */
.qt-top { display: grid; gap: 12px; }
.qt-back { display: inline-flex; align-items: center; gap: 6px; justify-self: start; text-decoration: none; font-size: 0.875rem; }
.qt-title-row { display: flex; align-items: center; gap: 14px; }
.qt-title-row h1 { font-size: 1.875rem; letter-spacing: -.025em; font-family: var(--vc-font-display); font-weight: 800; }
.qt-meta { gap: 10px; margin-top: 6px; align-items: center; }

.qt-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.qt-main { min-width: 0; }
.qt-side { position: sticky; top: 20px; display: grid; gap: 16px; min-width: 0; }

fieldset.qt-sheet { min-width: 0; margin: 0; }
fieldset.qt-sheet:disabled .input { background: var(--vc-arena); color: var(--vc-texto-2); }
.qt-sec { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.qt-sec:not(:first-child) { margin-top: 14px; padding-top: 18px; border-top: 1px solid var(--vc-linea-suave); }
.qt-sec h3 { font-size: 1rem; letter-spacing: -.01em; }
.qt-sec-n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--vc-carbon); color: var(--vc-oro); font: 800 0.7813rem/1 var(--vc-font-display); }
.qt-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.qt-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.qt-2 > *, .qt-3 > * { min-width: 0; }
.qt-page .field { grid-template-columns: minmax(0, 1fr); }

/* ───── conceptos ───── */
.qt-lines { display: grid; gap: 10px; }
.qt-line { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; padding: 12px 12px 8px 10px; border: 1px solid var(--vc-linea); border-radius: 14px; background: #fff;
  transition: border-color var(--vc-t2), box-shadow var(--vc-t2); animation: qtIn .28s var(--vc-ease) both; }
.qt-line:focus-within { border-color: var(--vc-oro); box-shadow: 0 0 0 3px rgba(253, 178, 7, .16); }
.qt-line-n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--vc-arena); color: var(--vc-texto-2); font: 700 0.75rem/1 var(--vc-font-ui); margin-top: 11px; }
.qt-line-body { display: grid; gap: 10px; min-width: 0; }
.qt-concept { position: relative; }
.qt-concept-in { font-weight: 600; }
.qt-sug { top: calc(100% + 2px); }
.qt-sug li { align-items: center; }
.qt-sug .grow { display: grid; gap: 1px; min-width: 0; }
.qt-sug-t { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.qt-nums { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: 10px; align-items: end; }
.qt-num { display: grid; gap: 5px; min-width: 0; }
.qt-num > span:first-child { font-size: 0.75rem; font-weight: 600; color: var(--vc-texto-3); }
.qt-num .input { min-height: 44px; padding: 0 12px; font-variant-numeric: tabular-nums; width: 100%; min-width: 0; }
.qt-num select.input { padding-right: 28px; }
.qt-qty { display: flex; gap: 6px; }
.qt-qty .input { flex: 1; }
.qt-calc-btn { flex: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--vc-linea); background: #fff; color: var(--vc-texto-2); display: grid; place-items: center; cursor: pointer;
  transition: background var(--vc-t1), color var(--vc-t1), border-color var(--vc-t1); }
.qt-calc-btn:hover { border-color: var(--acero-300); }
.qt-calc-btn.on { background: var(--vc-carbon); border-color: var(--vc-carbon); color: var(--vc-oro); }
.qt-money { position: relative; display: block; }
.qt-money > span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--vc-texto-3); font-weight: 600; pointer-events: none; }
.qt-money .input { padding-left: 26px; }
.qt-money.qt-pct > span { left: auto; right: 12px; }
.qt-money.qt-pct .input { padding-left: 12px; padding-right: 28px; }
.qt-amt strong { display: block; min-height: 44px; line-height: 44px; text-align: right; font-size: 1.0625rem; letter-spacing: -.01em; font-variant-numeric: tabular-nums; color: var(--vc-tinta); white-space: nowrap; }

.qt-tool { display: grid; gap: 10px; background: var(--vc-arena); border-radius: 12px; padding: 10px 12px 12px; animation: qtIn .22s var(--vc-ease) both; }
.qt-tool-h { display: inline-flex; align-items: center; gap: 6px; font-size: 0.7813rem; font-weight: 700; color: var(--vc-texto-2); }
.qt-tool-h em { font-style: normal; font-weight: 500; color: var(--vc-texto-3); }
.qt-measure-row, .qt-cost-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.qt-measure-row label, .qt-cost-row label { display: grid; gap: 4px; font-size: 0.75rem; font-weight: 600; color: var(--vc-texto-3); }
.qt-measure-row .input { width: 84px; min-height: 42px; padding: 0 10px; background: #fff; font-variant-numeric: tabular-nums; }
.qt-cost-row .input { width: 124px; min-height: 42px; background: #fff; font-variant-numeric: tabular-nums; }
.qt-cost-row .qt-pct .input { width: 92px; }
.qt-measure-row i { font-style: normal; color: var(--vc-texto-3); font-weight: 700; padding-bottom: 11px; }
.qt-measure-r { padding-bottom: 10px; font-size: 1rem; font-variant-numeric: tabular-nums; color: var(--vc-tinta); }
.qt-more-fields { display: grid; gap: 10px; }
.qt-desc { min-height: 64px; resize: vertical; font-size: 0.9063rem; }
.qt-line-acts { display: flex; align-items: center; gap: 2px; margin: -2px -4px 0 0; }
.qt-line-acts .btn-icon { width: 36px; min-height: 36px; border-radius: 10px; color: var(--vc-texto-3); }
.qt-line-acts .btn-icon:hover:not(:disabled) { color: var(--vc-tinta); }
.qt-line-acts .btn-icon svg { width: 18px; height: 18px; }
.qt-neg { color: var(--vc-error); }
.qt-add { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; border: 1.5px dashed var(--vc-linea); border-radius: 14px;
  background: none; color: var(--vc-texto-2); font: 650 0.9375rem/1 var(--vc-font-ui); cursor: pointer; transition: border-color var(--vc-t2), color var(--vc-t2), background var(--vc-t2); }
.qt-add:hover { border-color: var(--vc-oro); color: var(--vc-tinta); background: var(--vc-hover); }

/* ───── resumen ───── */
.qt-sum { padding: 16px; }
.qt-sum-total { display: grid; gap: 4px; background: var(--vc-carbon); color: #fff; border-radius: 14px; padding: 16px 18px 15px; }
.qt-sum-total > span { font-size: 0.7188rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #BDB6A8; }
.qt-total-n { font: 800 2.125rem/1.1 var(--vc-font-display); letter-spacing: -.03em; color: var(--vc-oro); font-variant-numeric: tabular-nums; animation: qtPop .32s var(--vc-ease); overflow-wrap: anywhere; }
.qt-sum-total small { color: #BDB6A8; font-size: 0.7813rem; }
.qt-rows { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 12px; margin: 16px 2px 12px; align-items: center; }
.qt-rows dt { color: var(--vc-texto-2); font-size: 0.875rem; }
.qt-rows dd { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.qt-disc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.qt-seg { display: inline-flex; border: 1px solid var(--vc-linea); border-radius: 9px; overflow: hidden; }
.qt-seg button { width: 30px; height: 30px; border: 0; background: #fff; font: 700 0.8125rem/1 var(--vc-font-ui); color: var(--vc-texto-2); cursor: pointer; }
.qt-seg button[aria-pressed="true"] { background: var(--vc-carbon); color: var(--vc-oro); }
.qt-disc-in { width: 72px; min-height: 32px; padding: 0 8px; font-size: 0.875rem; text-align: right; }
.qt-iva { min-height: 34px; width: auto; max-width: 100%; padding: 0 28px 0 10px; font-size: 0.875rem; }
.qt-words { font-size: 0.6875rem; font-weight: 600; letter-spacing: .02em; color: var(--vc-texto-3); border-top: 1px solid var(--vc-linea-suave); padding-top: 10px; line-height: 1.45; }
.qt-profit { display: grid; gap: 6px; margin-top: 12px; padding: 12px; border-radius: 12px; background: var(--vc-ok-bg); }
.qt-profit-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 0.8125rem; font-weight: 600; color: var(--vc-ok); }
.qt-profit-head strong { font-size: 1.0625rem; font-variant-numeric: tabular-nums; color: var(--vc-ok); }
.qt-profit-head strong.neg { color: var(--vc-error); }
.qt-profit-bar { height: 6px; border-radius: 6px; background: rgba(29, 122, 75, .16); overflow: hidden; }
.qt-profit-bar span { display: block; height: 100%; background: var(--vc-ok); border-radius: 6px; transition: width var(--vc-t3) var(--vc-ease); }
.qt-acts { display: grid; gap: 8px; margin-top: 16px; }
.qt-acts-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.qt-status { display: grid; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--vc-linea-suave); }
.qt-status-h { font-size: 0.75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vc-texto-3); }
.qt-ok svg { color: var(--vc-ok); }
.qt-status .link-btn { justify-self: start; }
.qt-more { display: flex; flex-wrap: wrap; gap: 16px; }
.qt-del { color: var(--vc-error) !important; }
.qt-warn { color: var(--vc-aviso); }
.qt-fin { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--vc-ok-bg); color: var(--vc-ok); }
.qt-fin-hero { display: flex; align-items: center; gap: 14px; }
.qt-fin-hero strong { font: 800 1.625rem/1.1 var(--vc-font-display); letter-spacing: -.02em; }
.qt-log h3 { font-size: 0.875rem; margin-bottom: 8px; }
.qt-log li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid var(--vc-linea-suave); }
.qt-log li:first-child { border-top: 0; }

/* Barra fija en el celular (encima de la barra de accesos). */
.qt-bar { position: sticky; bottom: calc(86px + var(--safe-b)); z-index: 30; display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 16px;
  background: #fff; border: 1px solid var(--vc-linea); border-radius: 16px; box-shadow: var(--vc-sh-3); }
.qt-bar .grow { display: grid; line-height: 1.15; }
.qt-bar strong { font: 800 1.25rem/1.1 var(--vc-font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }

/* ───── catálogo ───── */
.qt-cat-g { font-size: 0.7188rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--vc-texto-3); margin: 6px 0 8px; }
.qt-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.qt-cat-item { display: flex; align-items: center; gap: 10px; text-align: left; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--vc-linea); background: #fff; cursor: pointer;
  transition: border-color var(--vc-t1), background var(--vc-t1); font: inherit; color: inherit; }
.qt-cat-item:hover { border-color: var(--acero-300); }
.qt-cat-item .grow { display: grid; gap: 2px; min-width: 0; }
.qt-cat-item[aria-pressed="true"] { border-color: var(--vc-carbon); background: var(--vc-sel); }
.qt-cat-check { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--acero-300); display: grid; place-items: center; flex: none; color: transparent; }
.qt-cat-item[aria-pressed="true"] .qt-cat-check { background: var(--vc-carbon); border-color: var(--vc-carbon); color: var(--vc-oro); }
.qt-cat-price { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.qt-cat-row { display: flex; align-items: center; gap: 12px; text-align: left; width: 100%; }
.qt-cat-row.off { opacity: .55; }

@keyframes qtIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes qtPop { 0% { transform: scale(.96); opacity: .6; } 100% { transform: none; opacity: 1; } }

@media (max-width: 1180px) { .qt-grid { grid-template-columns: minmax(0, 1fr) 300px; } }
@media (max-width: 900px) {
  .qt-grid { grid-template-columns: minmax(0, 1fr); }
  .qt-side { position: static; }
  .qt-3 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .qt-title-row h1 { font-size: 1.5rem; }
  .qt-title-row .i3d { width: 42px !important; height: 42px !important; }
  .qt-2 { grid-template-columns: minmax(0, 1fr); }
  .qt-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qt-line-n { display: none; }
  .qt-amt strong { text-align: left; }
  .qt-filters { padding: 12px 14px; }
  .qt-filters .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 0 14px; }
  .qt-filters .chips::-webkit-scrollbar { display: none; }
  .qt-search { flex: 1 1 100%; }
  .qt-row { gap: 10px; }
  .qt-row > svg:last-child { display: none; }
  .qt-folio { font-size: 0.6875rem; padding: 6px 7px; }
  .qt-total-n { font-size: 1.875rem; }
}
@media (prefers-reduced-motion: reduce) {
  .qt-line, .qt-tool, .qt-total-n { animation: none !important; }
}

/* Tienda o cliente elegido: textos largos se recortan en vez de ensanchar la pantalla. */
.qt-editor .fin-picked .grow { min-width: 0; }
.qt-editor .fin-picked .ellipsis { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qt-editor .fin-pick-list li { min-width: 0; }
.qt-editor .fin-pick-list li .ellipsis { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ───── conceptos en columnas (pantalla ancha) ───── */
.qt-tbl-wrap { margin: 0 -6px; }
.qt-tbl { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 0.875rem; }
.qt-tbl col.qt-c-qty { width: 96px; }
.qt-tbl col.qt-c-unit { width: 108px; }
.qt-tbl col.qt-c-money { width: 102px; }
.qt-tbl col.qt-c-amt { width: 106px; }
.qt-tbl col.qt-c-mg { width: 76px; }
.qt-tbl col.qt-c-acts { width: 84px; }
.qt-tbl th { text-align: left; padding: 8px 6px; font-size: 0.75rem; font-weight: 650; color: var(--acero-500); border-bottom: 1px solid var(--vc-linea); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qt-tbl th.num { text-align: right; }
.qt-tbl td { padding: 7px 6px; vertical-align: top; }
.qt-tbl .qt-tr td { border-top: 1px solid var(--vc-linea-suave); }
.qt-tbl tbody:first-of-type .qt-tr td { border-top: 0; }
.qt-tbl .qt-tb { animation: qtIn .24s var(--vc-ease) both; }
.qt-tbl .qt-tb:focus-within td, .qt-tbl .qt-tb.is-open td { background: var(--vc-hover); }
.qt-tbl .qt-tb:focus-within td:first-child, .qt-tbl .qt-tb.is-open td:first-child { box-shadow: inset 3px 0 0 var(--vc-oro); }
.qt-tbl .input { min-height: 40px; height: 40px; padding: 0 9px; width: 100%; min-width: 0; font-size: 0.875rem; font-variant-numeric: tabular-nums; background: #fff; }
.qt-tbl textarea.input { height: auto; padding: 10px 12px; }
.qt-tbl select.input { padding-right: 24px; font-size: 0.8438rem; }
.qt-tbl .qt-money .input { padding-left: 22px; text-align: right; }
.qt-tbl .qt-money > span { left: 9px; }
.qt-tbl .qt-qty .input { text-align: right; }
.qt-tbl .qt-calc-btn { width: 38px; height: 40px; border-radius: 10px; }
.qt-tbl .qt-calc-btn svg { width: 16px; height: 16px; }
.qt-td-n { color: var(--vc-texto-3); font-size: 0.7813rem; font-weight: 700; text-align: center; padding-top: 18px !important; }
.qt-td-concept .qt-sug { min-width: 380px; right: auto; }
.qt-td-desc { margin-top: 4px; font-size: 0.7813rem; color: var(--vc-texto-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qt-td-amt { display: block; line-height: 40px; text-align: right; font-size: 0.9375rem; font-variant-numeric: tabular-nums; color: var(--vc-tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qt-td-acts { white-space: nowrap; text-align: right; }
.qt-td-acts .btn-icon { width: 34px; min-height: 40px; border-radius: 10px; color: var(--vc-texto-3); }
.qt-td-acts .btn-icon:hover:not(:disabled) { color: var(--vc-tinta); }
.qt-td-acts .btn-icon svg { width: 18px; height: 18px; }
.qt-tbl .qt-mg .input { padding-left: 8px; padding-right: 24px; text-align: right; font-weight: 650; }
.qt-tbl .qt-mg > span { left: auto; right: 8px; }
.qt-mg.ok .input { color: var(--vc-ok); }
.qt-mg.low .input { color: var(--vc-aviso); }
.qt-mg.neg .input { color: var(--vc-error); background: var(--vc-error-bg); }
.qt-mg-none { display: block; line-height: 40px; text-align: right; color: var(--vc-texto-3); }
.qt-tr-more td { padding-top: 0; }
.qt-tr-more-in { display: grid; gap: 10px; padding: 2px 0 10px; }
.qt-tr-more-in .qt-desc { background: #fff; }
.qt-tr-more-in .qt-tool { background: #fff; border: 1px solid var(--vc-linea); }
.qt-tbl-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding-top: 6px; }
.qt-tbl-profit { display: grid; gap: 2px; padding: 10px 14px; border-radius: 12px; background: var(--vc-ok-bg); }
.qt-tbl-profit strong { font-size: 1.125rem; color: var(--vc-ok); font-variant-numeric: tabular-nums; }
.qt-tbl-profit strong.qt-neg { color: var(--vc-error); }
.qt-tbl-sum { display: grid; grid-template-columns: auto minmax(130px, auto); gap: 6px 22px; margin: 0; min-width: 300px; font-variant-numeric: tabular-nums; }
.qt-tbl-sum dt { color: var(--vc-texto-2); text-align: right; font-size: 0.875rem; }
.qt-tbl-sum dd { margin: 0; text-align: right; font-weight: 650; }
.qt-tbl-sum .tot { padding-top: 8px; border-top: 1px solid var(--vc-linea); font: 800 1.25rem/1.2 var(--vc-font-display); letter-spacing: -.02em; color: var(--vc-tinta); }
.qt-tbl-sum dt.tot { font-size: 0.9375rem; font-family: var(--vc-font-ui); align-self: end; }
.qt-sug-p { white-space: nowrap; }

/* En pantalla ancha la barra fija queda abajo a la derecha (guardar sin subir). */
.qt-wide .qt-bar { bottom: 16px; justify-self: end; width: min(440px, 100%); }

/* ───── estado: vista por el cliente, aceptada ───── */
.qt-viewed { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; background: var(--vc-info-bg, #EAF2FB); color: var(--vc-info, #1E5AA8); font-size: 0.8438rem; font-weight: 600; }
.qt-viewed svg { flex: none; }
.qt-accepted { display: grid; gap: 10px; padding: 12px; border-radius: 14px; border: 1px solid rgba(29, 122, 75, .28); background: var(--vc-ok-bg); }
.qt-acc-h { display: flex; align-items: center; gap: 10px; }
.qt-acc-h .grow { min-width: 0; }
.qt-acc-h strong { display: block; color: var(--vc-ok); }
.qt-acc-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 0.8438rem; }
.qt-acc-dl dt { color: var(--vc-texto-3); }
.qt-acc-dl dd { margin: 0; font-weight: 650; text-align: right; overflow-wrap: anywhere; }
.qt-accepted .btn { background: #fff; }

/* ───── «Cotización aceptada» y link para el cliente ───── */
.qt-label { font-size: 0.875rem; font-weight: 650; color: var(--vc-texto-2); margin-bottom: 8px; }
.qt-pay-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.qt-pay-opt { all: unset; box-sizing: border-box; display: grid; align-content: start; gap: 6px; padding: 12px; border: 1.5px solid var(--vc-linea); border-radius: 14px; background: #fff; cursor: pointer;
  transition: border-color var(--vc-t1), background var(--vc-t1), box-shadow var(--vc-t1); min-width: 0; }
.qt-pay-opt:hover { border-color: var(--acero-300); }
.qt-pay-opt:focus-visible { outline: 3px solid var(--vc-foco); outline-offset: 2px; }
.qt-pay-opt[aria-checked="true"] { border-color: var(--vc-carbon); background: var(--vc-sel, #FFF8E6); box-shadow: 0 0 0 3px rgba(253, 178, 7, .18); }
.qt-pay-ic { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--vc-arena); color: var(--vc-texto-2); }
.qt-pay-opt[aria-checked="true"] .qt-pay-ic { background: var(--vc-carbon); color: var(--vc-oro); }
.qt-pay-t { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-weight: 700; color: var(--vc-tinta); }
.qt-pay-rec { font-size: 0.6563rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--vc-oro-texto); background: var(--vc-crema); border-radius: 999px; padding: 2px 7px; }
.qt-pay-h { font-size: 0.7813rem; line-height: 1.35; color: var(--vc-texto-3); }
.qt-box { display: grid; gap: 12px; padding: 14px; border-radius: 16px; border: 1px solid var(--vc-linea); }
.qt-box .fin-switch { margin: 0; }
.qt-fiscal { display: grid; gap: 12px; }
.qt-fis-3 { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, .7fr) minmax(0, 1.2fr); gap: 14px; }
.qt-fis-3 > * { min-width: 0; }
.qt-work { display: flex; align-items: center; gap: 12px; }
.qt-work .grow { display: grid; gap: 2px; min-width: 0; }
.qt-share-t { font: 800 1.25rem/1.2 var(--vc-font-display) !important; letter-spacing: -.02em; }
.qt-share-url { font: 600 0.875rem/1.2 var(--vc-font-mono); background: var(--vc-arena); color: var(--vc-tinta); }
.qt-share-btns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }

.qt-pay-grid.qt-pay-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) {
  .qt-pay-grid, .qt-pay-grid.qt-pay-3 { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .qt-pay-opt { grid-template-columns: 38px minmax(0, 1fr); column-gap: 12px; row-gap: 2px; align-items: center; padding: 10px 12px; }
  .qt-pay-ic { grid-row: span 2; }
  .qt-fis-3 { grid-template-columns: minmax(0, 1fr); }
  .qt-share-btns { grid-template-columns: minmax(0, 1fr); }
}

/* ───── marca de la cotización: empresa que cotiza, empresa de cada concepto y cómo sale ─────
   Los logotipos oficiales están hechos para fondo claro: siempre van sobre blanco. */
/* Cada recuadro fija el tamaño del logotipo (cabe completo, sin deformarse: FIO es ancho, Limpieza alto y Ratagom redondo). */
.qt-logo { display: block; width: 100%; height: 100%; object-fit: contain; }
.qt-co-logo .qt-logo { width: 56px; height: 30px; }
.qt-bb-logo .qt-logo { width: 66px; height: 38px; }
.qt-bb-logo.is-sm .qt-logo { width: 44px; height: 26px; }
.pq-logo .qt-logo { width: 80px; height: 42px; }
.pq-co-logo .qt-logo { width: 48px; height: 30px; }
@media (max-width: 520px) { .pq-logo .qt-logo { width: 60px; height: 34px; } }
.qt-co-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.qt-co-opt { all: unset; box-sizing: border-box; display: grid; justify-items: center; align-content: start; gap: 6px; min-width: 0; padding: 10px 6px 9px; border: 1.5px solid var(--vc-linea);
  border-radius: 14px; background: #fff; cursor: pointer; text-align: center; transition: border-color var(--vc-t1), box-shadow var(--vc-t1), background var(--vc-t1); }
.qt-co-opt:hover { border-color: var(--acero-300); }
.qt-co-opt:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 2px; }
.qt-co-opt[aria-checked="true"] { border-color: var(--brand, var(--vc-carbon)); box-shadow: inset 0 0 0 1.5px var(--brand, var(--vc-carbon)); background: var(--brand-soft, var(--vc-sel)); }
.qt-co-logo { width: 64px; height: 34px; display: grid; place-items: center; padding: 2px 4px; border-radius: 8px; background: #fff; }
.qt-co-name { font-size: 0.7813rem; font-weight: 650; line-height: 1.2; color: var(--vc-tinta); overflow-wrap: break-word; min-width: 0; max-width: 100%; }
fieldset:disabled .qt-co-opt { cursor: default; }
fieldset:disabled .qt-co-opt:not([aria-checked="true"]) { opacity: .55; }
/* Celular: dos columnas, el logotipo a un lado del nombre. */
@media (max-width: 760px) {
  .qt-co-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qt-co-opt { grid-template-columns: 44px minmax(0, 1fr); justify-items: start; align-items: center; text-align: left; gap: 6px; padding: 8px 6px; }
  .qt-co-logo { width: 44px; height: 28px; padding: 0; }
  .qt-co-logo .qt-logo { width: 44px; height: 26px; }
  .qt-co-name { font-size: 0.75rem; }
}

.qt-lco { position: relative; display: inline-flex; align-items: center; justify-self: start; max-width: 100%; min-width: 0; height: 30px; border-radius: 999px;
  background: var(--brand-soft, var(--vc-arena)); color: var(--brand-2, var(--vc-tinta)); }
.qt-lco i { position: absolute; left: 10px; width: 9px; height: 9px; border-radius: 50%; background: var(--brand, var(--vc-oro)); pointer-events: none; }
.qt-lco select { appearance: none; -webkit-appearance: none; max-width: 100%; min-width: 0; height: 30px; border: 1px solid transparent; border-radius: 999px; padding: 0 28px 0 25px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2359554D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;
  font: 650 0.7813rem/1 var(--vc-font-ui); color: inherit; cursor: pointer; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.qt-lco select:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 1px; }
.qt-lco.is-own select { border-color: var(--brand, var(--vc-linea)); }
.qt-lco.is-grupo { background: var(--vc-arena); color: var(--vc-texto-2); }
.qt-lco.is-grupo i { background: var(--acero-300); }
fieldset:disabled .qt-lco select { cursor: default; background-image: none; padding-right: 12px; }
.qt-td-concept .qt-lco { margin-top: 6px; height: 26px; }
.qt-td-concept .qt-lco select { height: 26px; font-size: 0.75rem; }

.qt-brandbar { display: flex; align-items: center; gap: 12px; padding: 12px 14px; position: relative; overflow: hidden; border-top: 4px solid var(--brand, var(--vc-oro)); }
.qt-brandbar .grow { display: grid; gap: 2px; min-width: 0; }
.qt-brandbar strong { font: 800 1rem/1.2 var(--vc-font-display); letter-spacing: -.01em; color: var(--vc-tinta); overflow-wrap: anywhere; }
.qt-bb-logo { flex: none; width: 76px; height: 46px; display: grid; place-items: center; padding: 3px 5px; border-radius: 10px; background: #fff; border: 1px solid var(--vc-linea); }
.qt-bb-logo.is-sm { width: 52px; height: 32px; padding: 2px 4px; border-radius: 8px; }
.qt-brandbar.is-multi { display: grid; gap: 10px; border-top: 0; padding-top: 16px; }
.qt-bb-stripe { position: absolute; inset: 0 0 auto 0; height: 4px; display: flex; }
.qt-bb-stripe i { flex: 1; }
.qt-bb-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.qt-bb-list { display: grid; gap: 6px; }
.qt-bb-it { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; background: var(--brand-soft, var(--vc-arena)); border-left: 4px solid var(--brand); min-width: 0; }
.qt-bb-it .grow { display: grid; min-width: 0; }
.qt-bb-it b { font-size: 0.8438rem; color: var(--vc-tinta); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qt-bb-it small { font-size: 0.7813rem; color: var(--vc-texto-2); font-variant-numeric: tabular-nums; }

.qt-row-co { display: inline-flex; align-items: center; gap: 5px; margin-right: 8px; padding: 2px 8px 2px 6px; border-radius: 999px; vertical-align: 1px;
  font-size: 0.7188rem; font-weight: 700; background: var(--brand-soft, var(--vc-arena)); color: var(--brand-2, var(--vc-texto-2)); }
.qt-row-co::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--brand, var(--acero-400)); }

/* ───── link del cliente con la marca de la empresa ─────
   --pq-c (principal), --pq-c2 (oscuro), --pq-soft, --pq-ink (texto sobre el principal), --pq-on (el principal sobre el oscuro). */
.pq.pq-brand .pq-hero { background: var(--pq-c2); border-bottom: 6px solid var(--pq-c); }
.pq.pq-brand .pq-total { color: var(--pq-on); }
.pq.pq-brand .pq-folio { color: var(--pq-on); background: rgba(255, 255, 255, .1); }
.pq.pq-brand .pq-accept { border-color: var(--pq-c2); }
.pq.pq-brand .pq-accept .btn-primary { background: var(--pq-c); border-color: var(--pq-c); color: var(--pq-ink); }
.pq.pq-brand .pq-accept .btn-primary svg { color: currentColor; }
.pq.pq-brand .qt-pay-opt[aria-checked="true"] { border-color: var(--pq-c2); background: var(--pq-soft); box-shadow: none; }
.pq.pq-brand .qt-pay-opt[aria-checked="true"] .qt-pay-ic { background: var(--pq-c2); color: #fff; }
.pq-logo { flex: none; width: 92px; height: 52px; display: grid; place-items: center; padding: 4px 6px; border-radius: 12px; background: #fff; border: 1px solid var(--vc-linea); }
.pq-logos { display: flex; flex-wrap: wrap; gap: 8px; max-width: 860px; margin: 0 auto; padding: 0 16px 14px; }
.pq-co { display: flex; align-items: center; gap: 8px; padding: 5px 10px 5px 5px; border-radius: 12px; background: #fff; border: 1px solid var(--vc-linea); border-left: 4px solid var(--brand); min-width: 0; }
.pq-co-logo { width: 48px; height: 30px; display: grid; place-items: center; flex: none; }
.pq-co b { font-size: 0.8125rem; color: var(--vc-tinta); }
.pq-item-co { display: inline-flex; align-items: center; gap: 6px; justify-self: start; font-size: 0.75rem; font-weight: 700; padding: 2px 9px 2px 7px; border-radius: 999px;
  background: var(--brand-soft, var(--vc-arena)); color: var(--brand-2, var(--vc-tinta)); }
.pq-item-co::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); }
.pq-items.is-multi .pq-item { box-shadow: inset 4px 0 0 var(--brand, transparent); padding-left: 12px; }
@media (max-width: 520px) { .pq-logo { width: 72px; height: 44px; } }
@media print { .pq.pq-brand .pq-hero { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* ───── R42 · cotizador: cliente temporal, varios correos, empresa elegida sola, secciones y fotos ───── */
/* Cliente temporal («A quien corresponda»): ícono + palabra, nunca solo color. */
.cq-pending { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px 3px 8px; border-radius: 999px; background: var(--vc-aviso-bg); color: var(--vc-aviso);
  font-size: 0.8125rem; font-weight: 700; white-space: nowrap; vertical-align: 1px; }
.cq-pending svg { flex: none; }
.qt-row-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.cq-client { gap: 8px; min-width: 0; }
.cq-temp-btn { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 8px 14px; border-radius: 14px;
  border: 1.5px dashed var(--vc-linea); color: var(--vc-texto-2); cursor: pointer; transition: border-color var(--vc-t1), background var(--vc-t1); }
.cq-temp-btn:hover { border-color: var(--vc-oro); background: var(--vc-hover); color: var(--vc-tinta); }
.cq-temp-btn:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 2px; }
.cq-temp-btn .grow { display: grid; gap: 1px; min-width: 0; }
.cq-temp-btn b { font-size: 0.9375rem; color: var(--vc-tinta); }
.cq-temp-btn small { font-size: 0.8125rem; color: var(--vc-texto-3); }
.cq-confirm-bar { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1.5px solid var(--vc-aviso); background: var(--vc-aviso-bg); }
.cq-confirm-bar .grow { display: grid; gap: 2px; min-width: 0; }
.cq-confirm-bar strong { font-size: 1rem; }
@media (max-width: 640px) {
  .cq-confirm-bar { flex-wrap: wrap; }
  .cq-confirm-bar .btn { flex: 1 1 100%; min-height: 52px; }
}

/* Empresa que cotiza elegida sola. */
.cq-auto { display: flex; align-items: flex-start; gap: 8px; padding: 8px 12px; border-radius: 12px; background: var(--vc-ok-bg); color: var(--vc-ok); font-size: 0.8438rem; font-weight: 600; }
.cq-auto svg { flex: none; margin-top: 2px; }

/* ───── R44 · conceptos como en Odoo: secciones como franja gris, notas, arrastrar con ⠿, menú ⋮ y barra de abajo ───── */
.qt-editor { --qt-band: #E9E7E2; }
.cq-sec-hint { margin: -2px 2px 0; }
.cq-pdfmode { background: #fff; }
.qt-drag-hint { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.qt-drag-hint svg { width: 16px; height: 16px; }

/* Agarradera ⠿: con el ratón o con el dedo (no desplaza la página al tocarla). */
.qt-grip { flex: none; display: grid; place-items: center; width: 32px; height: 40px; padding: 0; border: 0; border-radius: 10px; background: none; color: var(--vc-texto-3);
  cursor: grab; touch-action: none; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.qt-grip:hover { background: rgba(20, 21, 25, .07); color: var(--vc-tinta); }
.qt-grip:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 1px; }
html.qt-dragging, html.qt-dragging * { cursor: grabbing !important; -webkit-user-select: none !important; user-select: none !important; }
.qt-line.is-dragging, .qt-note.is-dragging { position: relative; z-index: 40; box-shadow: 0 10px 28px rgba(20, 21, 25, .2); border-color: var(--vc-oro); animation: none; transition: none; }
.qt-tbl tbody.is-dragging { position: relative; z-index: 40; }
.qt-tbl tbody.is-dragging td { background: #FFF8E1 !important; }
.is-drag-block { opacity: .45; }
.qt-drop-mark { position: fixed; z-index: 1000; height: 4px; border-radius: 4px; background: var(--vc-oro); box-shadow: 0 0 0 2px #fff; pointer-events: none; }

/* Menú ⋮ */
.qt-menu { position: relative; display: inline-flex; flex: none; vertical-align: middle; }
.qt-menu-btn { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: none; color: var(--vc-texto-2); cursor: pointer; }
.qt-menu-btn:hover, .qt-menu.is-open .qt-menu-btn { background: rgba(20, 21, 25, .08); color: var(--vc-tinta); }
.qt-menu-btn:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 1px; }
.qt-menu-panel { position: absolute; right: 0; top: calc(100% + 4px); z-index: 60; display: grid; gap: 2px; width: 300px; max-width: calc(100vw - 40px);
  padding: 6px; border-radius: 14px; background: #fff; border: 1px solid var(--vc-linea); box-shadow: var(--vc-sh-3); text-align: left; white-space: normal; font-size: 0.9375rem; }
.qt-menu-it span { min-width: 0; overflow-wrap: anywhere; }
.qt-menu-panel.is-up { top: auto; bottom: calc(100% + 4px); }
.qt-menu-it { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 12px; border: 0; border-radius: 10px; background: none;
  font: 600 0.9375rem/1.25 var(--vc-font-ui); color: var(--vc-tinta); cursor: pointer; text-align: left; white-space: normal; }
.qt-menu-it svg { flex: none; color: var(--vc-texto-3); }
.qt-menu-it:hover:not(:disabled), .qt-menu-it:focus-visible { background: var(--vc-hover); outline: none; }
.qt-menu-it:focus-visible { box-shadow: inset 0 0 0 2px var(--vc-carbon); }
.qt-menu-it:disabled { opacity: .4; cursor: default; }
.qt-menu-it.is-danger, .qt-menu-it.is-danger svg { color: var(--vc-error); }
.qt-menu-node { margin: 2px 0; padding: 10px 12px; border-block: 1px solid var(--vc-linea-suave); }
.qt-menu-node .fin-switch { margin: 0; }
.qt-menu-note { display: flex; align-items: flex-start; gap: 8px; font-size: 0.8438rem; font-weight: 600; color: var(--vc-texto-2); }

/* Sección: franja gris con el nombre en negritas, «Compactado», su total a la derecha y ⋮. */
.qt-band { display: grid; gap: 4px; margin-top: 8px; padding: 4px 2px; border-radius: 12px; background: var(--qt-band); min-width: 0; }
.qt-lines > .qt-band:first-child { margin-top: 0; }
.qt-band-row { display: flex; align-items: center; gap: 4px; min-width: 0; }
.qt-band-in.input { flex: 1 1 auto; min-width: 0; min-height: 44px; height: 44px; padding: 0 10px; border-color: transparent; background: transparent; box-shadow: none;
  font-weight: 800; font-size: 1rem; color: var(--vc-tinta); }
.qt-band-in.input:hover { background: rgba(255, 255, 255, .55); }
.qt-band-in.input:focus { background: #fff; border-color: var(--vc-oro); }
.qt-band-in::placeholder { font-weight: 600; }
.qt-band-sum { flex: none; display: grid; justify-items: end; line-height: 1.15; padding: 0 4px 0 6px; }
.qt-band-sum small { font-size: 0.6875rem; font-weight: 600; color: var(--vc-texto-3); white-space: nowrap; }
.qt-band-sum strong { font-size: 1rem; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--vc-tinta); white-space: nowrap; letter-spacing: -.01em; }
.qt-band-sub { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; padding: 0 6px 4px 38px; }
.qt-band.is-ro .qt-band-sub { padding-left: 10px; }
.qt-band-d.input { flex: 1 1 200px; min-width: 0; min-height: 40px; height: 40px; font-size: 0.875rem; background: #fff; }
.qt-chip { display: inline-flex; align-items: center; gap: 4px; flex: none; height: 26px; padding: 0 9px; border-radius: 999px; background: var(--vc-carbon); color: #fff;
  font-size: 0.75rem; font-weight: 700; white-space: nowrap; }
.qt-chip svg { color: var(--vc-oro); }

/* Nota: texto libre en cursivas, sin cantidad ni precio. */
.qt-note { display: flex; align-items: flex-start; gap: 4px; padding: 4px 2px; border-radius: 12px; border: 1px dashed var(--vc-linea); background: #fff; animation: qtIn .24s var(--vc-ease) both; }
.qt-note-main { flex: 1 1 auto; display: grid; gap: 4px; min-width: 0; }
.qt-note-box { position: relative; min-width: 0; }
.qt-note-ic { position: absolute; left: 11px; top: 13px; color: var(--vc-texto-3); pointer-events: none; }
.qt-note-in.input { display: block; width: 100%; min-width: 0; min-height: 44px; height: 44px; padding: 11px 12px 9px 34px; resize: none; overflow: hidden; border-color: transparent;
  background: var(--vc-arena); font-style: italic; font-size: 0.9375rem; line-height: 1.4; }
.qt-note-in.input:focus { background: #fff; border-color: var(--vc-oro); }
.qt-note-hint { display: inline-flex; align-items: center; gap: 5px; padding-left: 4px; font-size: 0.75rem; font-weight: 600; color: var(--vc-texto-3); }
.qt-note.is-hidden .qt-note-in, .qt-tb-note.is-hidden .qt-note-in { color: var(--vc-texto-3); }

/* Renglón de concepto: agarradera y número a la izquierda. */
.qt-line { grid-template-columns: 34px minmax(0, 1fr); padding-left: 4px; }
.qt-line-side { display: grid; justify-items: center; align-content: start; gap: 2px; padding-top: 2px; min-width: 0; }
.qt-line-side .qt-line-n { margin-top: 0; }
.qt-line.is-ro { grid-template-columns: 26px minmax(0, 1fr); padding-left: 10px; }
.qt-line.is-ro .qt-line-side { padding-top: 9px; }
.qt-line-acts .qt-menu-btn { width: 40px; height: 40px; color: var(--vc-texto-3); }
.qt-line-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.qt-line-tags .qt-lco { justify-self: auto; }
.qt-lsec { position: relative; display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-width: 0; height: 30px; padding-left: 10px; border-radius: 999px;
  background: var(--vc-arena); color: var(--vc-texto-2); font-size: 0.8125rem; }
.qt-lsec svg { flex: none; pointer-events: none; }
.qt-lsec select { appearance: none; -webkit-appearance: none; max-width: 100%; min-width: 0; height: 30px; border: 0; background: transparent; padding: 0 12px 0 0;
  font: inherit; font-weight: 650; color: inherit; cursor: pointer; text-overflow: ellipsis; }
.qt-lsec select:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 2px; border-radius: 999px; }

/* Tabla del panel: la franja ocupa todo el ancho y su total cae en la columna «Importe». */
.qt-tbl col.qt-c-n { width: 44px; }
.qt-tbl td.qt-td-n { padding: 4px 2px !important; text-align: center; vertical-align: top; }
.qt-td-n .qt-grip { margin: 0 auto; width: 34px; }
.qt-td-num { display: block; font-size: 0.75rem; font-weight: 700; color: var(--vc-texto-3); }
.qt-td-num:first-child { padding-top: 14px; }
.qt-tbl .qt-tb-sec td { background: var(--qt-band) !important; box-shadow: none !important; border-top: 0 !important; padding: 4px 6px; vertical-align: middle; }
.qt-tbl .qt-tb-sec .qt-band-tr:first-child td { border-top: 10px solid #fff !important; background-clip: padding-box; }
.qt-tbl tbody.qt-tb-sec:first-of-type .qt-band-tr:first-child td { border-top: 0 !important; }
.qt-tbl .qt-tb-sec td.qt-td-n { padding: 4px 2px !important; vertical-align: middle; }
.qt-tbl .qt-tb-sec .qt-band-tr.is-d td { padding-top: 0; padding-bottom: 8px; }
.qt-tbl .qt-tb-sec .qt-band-sum { padding: 0; }
.qt-tbl .qt-tb-sec .qt-td-acts { text-align: right; }
.qt-band-t { display: flex; align-items: center; gap: 8px; min-width: 0; }
.qt-tbl .qt-band-in.input { height: 42px; min-height: 42px; font-size: 1rem; }
.qt-tbl .qt-band-d.input { height: 38px; min-height: 38px; }
.qt-tbl .qt-tb-sec + .qt-tb .qt-tr td { border-top: 0; }
.qt-tbl .qt-tb-note td { vertical-align: middle; border-top: 1px solid var(--vc-linea-suave); padding: 5px 6px; }
.qt-tbl .qt-tb-note td.qt-td-n { padding: 4px 2px !important; vertical-align: middle; }
.qt-tbl .qt-tb-note .qt-note-in.input { height: 40px; min-height: 40px; padding: 10px 12px 8px 34px; font-size: 0.9063rem; }
.qt-tbl .qt-tb-note .qt-note-ic { top: 12px; }
.qt-tbl .qt-td-acts .qt-menu-btn { width: 38px; height: 40px; }
.qt-td-concept .qt-lsec { height: 26px; font-size: 0.75rem; }
.qt-td-concept .qt-lsec select { height: 26px; }
.qt-td-concept .qt-line-tags { margin-top: 6px; flex-wrap: nowrap; }
.qt-td-concept .qt-line-tags > * { flex: 0 1 auto; min-width: 0; }
.qt-td-concept .qt-line-tags > .qt-lsec { flex: 0 0 auto; max-width: 46%; }

/* Barra de abajo: botones grandes con ícono y palabra. */
.qt-act-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.qt-sheet-tbl .qt-act-bar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.qt-act { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; min-height: 52px; padding: 6px 12px; border-radius: 14px; border: 1.5px solid var(--vc-linea);
  background: #fff; color: var(--vc-tinta); font: 700 0.9375rem/1.2 var(--vc-font-ui); text-align: center; cursor: pointer; transition: border-color var(--vc-t1), background var(--vc-t1); }
.qt-act svg { flex: none; color: var(--vc-texto-2); }
.qt-act:hover { border-color: var(--vc-carbon); background: var(--vc-hover); }
.qt-act:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 2px; }
.qt-act.is-main { background: var(--vc-carbon); border-color: var(--vc-carbon); color: #fff; }
.qt-act.is-main svg { color: var(--vc-oro); }
.qt-act.is-main:hover { background: #2A2C33; }
@media (max-width: 640px) {
  .qt-line { grid-template-columns: 36px minmax(0, 1fr); padding: 8px 10px 8px 2px; gap: 6px; }
  .qt-line.is-ro { grid-template-columns: minmax(0, 1fr); padding-left: 12px; }
  .qt-line.is-ro .qt-line-side { display: none; }
  .qt-line-side .qt-grip { width: 36px; height: 48px; }
  .qt-grip { width: 36px; height: 44px; }
  .qt-band-sub { padding-left: 8px; }
  .qt-band-sum small { display: none; }
  .qt-act { font-size: 0.875rem; padding: 6px 8px; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) { .qt-note { animation: none !important; } }

/* Link del cliente: título de sección como franja gris con su total; la compacta en un renglón; las notas en cursivas. */
.pq-group { list-style: none; display: flex; align-items: center; gap: 10px; margin: 12px 0 2px; padding: 10px 12px; border-radius: 10px; background: #E9E7E2;
  font-size: 0.9375rem; font-weight: 800; color: var(--vc-tinta); }
.pq-group:first-child { margin-top: 0; }
.pq-group .grow { min-width: 0; overflow-wrap: anywhere; }
.pq-group strong { flex: none; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pq-group + .pq-item, .pq-group + .pq-note { border-top: 0; }
.pq-item.is-compact strong { font-size: 1rem; }
.pq-note { list-style: none; padding: 10px 0 10px 36px; border-top: 1px solid var(--vc-linea-suave); color: var(--vc-texto-2); font-size: 0.9375rem; overflow-wrap: anywhere; }
.pq-note em { font-style: italic; }

/* Varios correos como chips. */
.cq-mails { display: grid; gap: 6px; min-width: 0; }
.cq-mails-box { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 48px; padding: 6px 8px; border: 1px solid var(--vc-linea); border-radius: var(--vc-r-md, 12px);
  background: #fff; cursor: text; min-width: 0; }
.cq-mails-box:focus-within { border-color: var(--vc-oro); box-shadow: 0 0 0 3px rgba(253, 178, 7, .16); }
.cq-mails-box.is-bad { border-color: var(--vc-error); }
.cq-mail { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-width: 0; min-height: 34px; padding: 0 4px 0 10px; border-radius: 999px; background: var(--vc-arena);
  font-size: 0.875rem; font-weight: 600; color: var(--vc-tinta); }
.cq-mail svg { flex: none; color: var(--vc-texto-3); }
.cq-mail-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cq-mail small { font-size: 0.6875rem; font-weight: 700; color: var(--vc-oro-texto); text-transform: uppercase; letter-spacing: .04em; }
.cq-mail-x { all: unset; box-sizing: border-box; flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; color: var(--vc-texto-2); }
.cq-mail-x:hover { background: #fff; color: var(--vc-error); }
.cq-mail-x:focus-visible { outline: 2px solid var(--vc-carbon); }
.cq-mails-in { flex: 1 1 160px; min-width: 120px; min-height: 34px; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1rem; padding: 0 4px; }
.cq-mails .err { color: var(--vc-error); font-size: 0.8125rem; font-weight: 600; }

/* Confirmar cliente. */
.cq-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cq-seg button { all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; border-radius: 14px; border: 1.5px solid var(--vc-linea);
  font-weight: 700; cursor: pointer; }
.cq-seg button[aria-checked="true"] { border-color: var(--vc-carbon); background: var(--vc-carbon); color: var(--vc-oro); }
.cq-seg button:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 2px; }
.cq-picked { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; border: 1.5px solid var(--vc-carbon); }
.cq-picked .grow { display: grid; gap: 2px; min-width: 0; }
.cq-hits { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 320px; overflow-y: auto; }
.cq-hit { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 8px 12px; border-radius: 12px; border: 1px solid var(--vc-linea); cursor: pointer; }
.cq-hit:hover { background: var(--vc-hover); }
.cq-hit:focus-visible { outline: 2px solid var(--vc-carbon); }
.cq-hit .grow { display: grid; gap: 1px; min-width: 0; }

/* Fotos de la cotización. */
.cq-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.cq-photo { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 8px; border-radius: 14px; border: 1px solid var(--vc-linea); background: #fff; }
.cq-photo.is-off .cq-photo-img img { opacity: .45; filter: grayscale(1); }
.cq-photo.is-draft { padding: 0; border: 0; }
.cq-photo-img { all: unset; position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: var(--vc-arena); cursor: zoom-in; }
.cq-photo-img img, .cq-photo.is-draft img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4 / 3; border-radius: 10px; }
.cq-photo-img:focus-visible { outline: 2px solid var(--vc-carbon); outline-offset: 2px; }
.cq-photo-src { position: absolute; left: 6px; top: 6px; padding: 2px 8px; border-radius: 999px; background: rgba(11, 12, 14, .78); color: #fff; font-size: 0.6875rem; font-weight: 700; }
.cq-photo-body { display: grid; gap: 6px; min-width: 0; }
.cq-photo-body .fin-switch { margin: 0; }
.cq-photo-cap { min-height: 40px; font-size: 0.875rem; min-width: 0; width: 100%; }
.cq-photo-body .qt-del { justify-self: start; display: inline-flex; align-items: center; gap: 4px; min-height: 36px; }
.cq-photo-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.cq-visit-note { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--vc-info-bg); color: var(--vc-info); }
.cq-only-phone { display: none !important; }
@media (pointer: coarse) { .cq-only-phone { display: inline-flex !important; } }
@media (max-width: 640px) {
  .cq-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .cq-photo-acts .btn { flex: 1 1 100%; min-height: 52px; }
}
