/* v117 - Facturación estable: selector de cliente en modal, CFDI y regímenes editables sin duplicar etiquetas */
.pdv117-hidden-native-select,
.pdv117-hidden-code-input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  left:-9999px!important;
  top:auto!important;
}
.pdv117-client-label,
.pdv117-code-label{
  position:relative;
  display:flex!important;
  flex-direction:column;
  gap:7px;
}
.pdv117-client-trigger{
  width:100%;
  min-height:44px;
  border:1px solid #dce4ef;
  background:#fff;
  border-radius:12px;
  padding:8px 44px 8px 14px;
  text-align:left;
  color:#0e1f3b;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  position:relative;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
  transition:border-color .18s,box-shadow .18s,background .18s;
  font-family:inherit;
  cursor:pointer;
}
.pdv117-client-trigger:hover{border-color:#b8c8dd;background:#fbfdff;}
.pdv117-client-trigger:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.18);}
.pdv117-client-trigger-text{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.pdv117-client-trigger small{font-size:11px;color:#8a99aa;}
.pdv117-client-trigger-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:999px;background:#eef5ff;color:#0b1f4a;display:grid;place-items:center;font-weight:900;}
.pdv117-client-trigger.has-client{border-color:#cbd8ea;background:#ffffff;}
.pdv117-code-select{height:42px!important;border-radius:12px!important;background:#fff!important;}
.pdv117-source-note{display:block;margin-top:6px;color:#64748b;font-size:11px;line-height:1.35;font-weight:700;}
.pdv117-client-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.46);z-index:999999;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px);}
.pdv117-client-modal{width:min(760px,96vw);max-height:min(720px,92vh);background:#fff;border:1px solid #dce4ef;border-radius:24px;box-shadow:0 30px 80px rgba(2,8,23,.28);display:flex;flex-direction:column;overflow:hidden;}
.pdv117-client-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 14px;border-bottom:1px solid #edf2f7;}
.pdv117-client-modal-head h3{margin:0;color:#0b1f4a;font-size:20px;font-weight:900;}
.pdv117-client-modal-head p{margin:4px 0 0;color:#64748b;font-size:13px;}
.pdv117-client-close{width:38px;height:38px;border:1px solid #dce4ef;background:#fff;border-radius:12px;color:#0e1f3b;font-size:24px;line-height:1;cursor:pointer;}
.pdv117-client-close:hover{background:#f8fafc;}
.pdv117-client-search-wrap{margin:16px 24px 12px;display:flex;align-items:center;gap:10px;border:1px solid #dce4ef;border-radius:16px;padding:0 14px;background:#fbfdff;}
.pdv117-client-search-wrap span{color:#64748b;font-weight:900;}
.pdv117-client-search{width:100%;height:46px;border:0;outline:none;background:transparent;color:#0e1f3b;font-size:15px;font-weight:600;}
.pdv117-client-list{padding:0 24px 22px;overflow:auto;display:grid;gap:10px;}
.pdv117-client-row{width:100%;border:1px solid #e3eaf4;background:#fff;border-radius:16px;padding:12px 14px;display:grid;grid-template-columns:42px 1fr 28px;gap:12px;align-items:center;text-align:left;cursor:pointer;transition:transform .12s,border-color .12s,background .12s,box-shadow .12s;font-family:inherit;}
.pdv117-client-row:hover{transform:translateY(-1px);border-color:#bfdbfe;background:#f8fbff;box-shadow:0 8px 24px rgba(37,99,235,.08);}
.pdv117-client-row.selected{border-color:#2563eb;background:#eff6ff;}
.pdv117-avatar{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#0b1f4a,#2563eb);color:#fff;display:grid;place-items:center;font-weight:900;}
.pdv117-client-info{display:flex;flex-direction:column;gap:3px;min-width:0;}
.pdv117-client-info b{color:#0e1f3b;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pdv117-client-info small{color:#64748b;font-size:12px;}
.pdv117-check{color:#2563eb;font-weight:900;opacity:.45;text-align:center;}
.pdv117-client-row.selected .pdv117-check{opacity:1;}
.pdv117-client-empty{padding:30px;text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;font-weight:700;}
@media (max-width: 640px){
  .pdv117-client-modal-backdrop{align-items:flex-end;padding:0;}
  .pdv117-client-modal{width:100%;max-height:88vh;border-radius:22px 22px 0 0;}
  .pdv117-client-modal-head{padding:18px 18px 12px;}
  .pdv117-client-search-wrap{margin:12px 18px;}
  .pdv117-client-list{padding:0 18px 18px;}
}


/* v118 - Acomodo limpio de factura: campos alineados y sin textos explicativos redundantes */
.pdv118-facturacion-normalizada .form-grid-3{
  align-items:start!important;
  row-gap:16px!important;
  column-gap:16px!important;
}
.pdv118-facturacion-normalizada .form-grid-3 label,
.pdv118-facturacion-normalizada .pdv117-client-label,
.pdv118-facturacion-normalizada .pdv117-code-label{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:stretch!important;
  gap:8px!important;
  margin:0!important;
  min-height:0!important;
  line-height:1.2!important;
}
.pdv118-facturacion-normalizada .pdv118-field-title{
  display:block!important;
  min-height:16px!important;
  line-height:16px!important;
  font-size:12px!important;
  font-weight:800!important;
  color:#64748b!important;
  margin:0!important;
  padding:0!important;
}
.pdv118-facturacion-normalizada .form-grid-3 label > .form-input,
.pdv118-facturacion-normalizada .pdv117-code-select{
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  margin:0!important;
  line-height:1.2!important;
  box-sizing:border-box!important;
  width:100%!important;
}
.pdv118-facturacion-normalizada .pdv117-client-trigger{
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0 44px 0 14px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.pdv118-facturacion-normalizada .pdv117-client-trigger small{
  display:none!important;
}
.pdv118-facturacion-normalizada .pdv117-client-trigger-text{
  display:block!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.pdv118-facturacion-normalizada .pdv117-client-trigger-icon{
  right:10px!important;
  width:24px!important;
  height:24px!important;
}
.pdv118-facturacion-normalizada .pdv117-hidden-native-select,
.pdv118-facturacion-normalizada .pdv117-hidden-code-input{
  margin:0!important;
  padding:0!important;
}
.pdv118-hidden-help-text{
  display:none!important;
}
.pdv118-facturacion-normalizada h4{
  margin-top:18px!important;
  margin-bottom:12px!important;
}
.pdv118-facturacion-normalizada .concept-table{
  margin-top:6px!important;
}
@media (max-width:900px){
  .pdv118-facturacion-normalizada .form-grid-3{
    grid-template-columns:1fr!important;
  }
  .pdv118-facturacion-normalizada .pdv117-client-trigger,
  .pdv118-facturacion-normalizada .form-grid-3 label > .form-input,
  .pdv118-facturacion-normalizada .pdv117-code-select{
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
  }
}

/* v119 - Facturación: selectores formales SAT para método, forma de pago y moneda */
.pdv118-facturacion-normalizada .pdv119-metodo-pago-select,
.pdv118-facturacion-normalizada .pdv119-forma-pago-select,
.pdv118-facturacion-normalizada .pdv119-moneda-select{
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  width:100%!important;
  border:1px solid #dce4ef!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#0e1f3b!important;
  padding:0 38px 0 14px!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:42px!important;
  box-sizing:border-box!important;
  appearance:auto!important;
}
.pdv118-facturacion-normalizada .pdv119-metodo-pago-select:focus,
.pdv118-facturacion-normalizada .pdv119-forma-pago-select:focus,
.pdv118-facturacion-normalizada .pdv119-moneda-select:focus{
  outline:none!important;
  border-color:#60a5fa!important;
  box-shadow:0 0 0 3px rgba(96,165,250,.18)!important;
}

/* v119 - Cotizaciones: condiciones de pago como selector alineado */
.pdv119-quote-payments-normalizada .pdv119-hidden-quote-terms-input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  left:-9999px!important;
  top:auto!important;
}
.pdv119-quote-payment-label,
.pdv119-quote-terms-label{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  align-items:stretch!important;
}
.pdv119-quote-payment-select,
.pdv119-quote-terms-select{
  width:100%!important;
  min-height:46px!important;
  height:46px!important;
  border:1px solid #dce4ef!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#0e1f3b!important;
  padding:0 40px 0 16px!important;
  font-size:14px!important;
  font-weight:800!important;
  box-sizing:border-box!important;
  appearance:auto!important;
}
.pdv119-quote-payment-select:focus,
.pdv119-quote-terms-select:focus{
  outline:none!important;
  border-color:#60a5fa!important;
  box-shadow:0 0 0 3px rgba(96,165,250,.18)!important;
}
@media (max-width:900px){
  .pdv119-quote-payment-select,
  .pdv119-quote-terms-select{
    height:44px!important;
    min-height:44px!important;
  }
}
