@import url('https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&display=swap');

/* ========================================
   GLOBAL FORMS OVERRIDE (safe)
   Proposito: unificar skin de campos sin tocar layout por modulo.
   ======================================== */

:root {
  --omega-field-font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --omega-field-content-font-family: "Atkinson Hyperlegible", "Atkinson Hyperlegible Next", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --omega-field-font-size: 13px;
  --omega-field-line-height: 16px;
  --omega-field-label-top: 11px;
  --omega-field-label-left: 7px;
  --omega-field-letter-spacing: 0.32px;
  --omega-field-radius: 2px;
  --omega-disabled-bg: #e3e6e8;
  --omega-disabled-text: #595d62;
  --omega-disabled-border: #949494;
  --omega-disabled-label: #0b0b0b;
  --omega-disabled-dark-bg: #2a2a2a;
  --omega-disabled-dark-text: #8d8d8d;
  --omega-disabled-dark-border: #4a4a4a;
  --omega-disabled-dark-label: #8d8d8d;

  /* Label halo (contorno del texto, sin recuadro) */
  --omega-label-halo-light: #fcfcfc;
  --omega-label-halo-dark: #1f1f1f;
  --omega-label-halo-disabled-light: #fcfcfc;
  --omega-label-halo-disabled-dark: #2a2a2a;
}

/* Metrica estructural unica para evitar diferencias verticales por modulo */
.form-field {
  padding-top: 6px !important;
  padding-bottom: 3px !important;
}

/* El halo debe usar el fondo del bloque (no del input) */
.search-form,
.forms-unified-scope,
.compras-maestro-view,
.modal-body,
.dispatch-page {
  --omega-label-halo-light: #fcfcfc;
  --omega-label-halo-disabled-light: #fcfcfc;
}

.dark .search-form,
.dark .forms-unified-scope,
.dark .compras-maestro-view,
.dark .modal-body,
.dark .dispatch-page {
  --omega-label-halo-light: #1f1f1f;
  --omega-label-halo-disabled-light: #1f1f1f;
}

html.dark .search-form,
html.dark .forms-unified-scope,
html.dark .compras-maestro-view,
html.dark .modal-body,
html.dark .dispatch-page {
  --omega-label-halo-light: #1f1f1f;
  --omega-label-halo-disabled-light: #1f1f1f;
}


/* Normalizacion visual base (sin grid/flex/width/height de wrappers) */
.search-form :is(.form-field-input, .form-field-select, .form-field-date),
.forms-unified-scope :is(.form-field-input, .form-field-select, .form-field-date),
.compras-maestro-view :is(.form-field-input, .form-field-select, .form-field-date),
.dispatch-page :is(.form-field-input, .form-field-select, .form-field-date),
.modal-body :is(.form-field-input, .form-field-select, .form-field-date),
.search-form :is(.form-textarea, textarea.form-field-input),
.forms-unified-scope :is(.form-textarea, textarea.form-field-input),
.compras-maestro-view :is(.form-textarea, textarea.form-field-input),
.dispatch-page :is(.form-textarea, textarea.form-field-input),
.modal-body :is(.form-textarea, textarea.form-field-input) {
  font-family: var(--omega-field-content-font-family);
  font-size: var(--omega-field-font-size);
  line-height: var(--omega-field-line-height);
  letter-spacing: var(--omega-field-letter-spacing);
  border-radius: var(--omega-field-radius);
  box-sizing: border-box;
}

/* Canon global absoluto: labels e inputs en TODO el sistema */
:is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input) {
  font-family: var(--omega-field-content-font-family) !important;
  font-size: var(--omega-field-font-size) !important;
  line-height: var(--omega-field-line-height) !important;
  letter-spacing: var(--omega-field-letter-spacing) !important;
  border-radius: var(--omega-field-radius) !important;
  box-sizing: border-box !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  margin: 0 !important;
  transform: none !important;
  vertical-align: top !important;
}

:is(input.form-field-input, .form-field-select, .form-field-date) {
  height: 25px !important;
  min-height: 25px !important;
  max-height: 25px !important;
}

/* Canon geométrico único: misma métrica vertical en todos los estados */
:is(.form-field-input, .form-field-select, .form-field-date) {
  padding-top: 4px !important;
  padding-bottom: 3px !important;
}

.form-field-input {
  padding-left: 8px !important;
  padding-right: 8px !important;
}

.form-field-select,
.form-field-date {
  padding-left: 8px !important;
  padding-right: 16px !important;
}

:is(.form-field-input, .form-field-select, .form-field-date):focus {
  padding-top: 4px !important;
  padding-bottom: 3px !important;
  border-width: 1px !important;
  border-color: #077e38 !important;
}

.form-field-input:focus {
  padding-left: 8px !important;
  padding-right: 8px !important;
}

.form-field-select:focus,
.form-field-date:focus {
  padding-left: 8px !important;
  padding-right: 16px !important;
}

:is(.form-field-input, .form-field-select, .form-field-date):is(:disabled, [readonly]) {
  padding-top: 4px !important;
  padding-bottom: 3px !important;
}

/* Labels de campo */
.search-form .form-field-label,
.forms-unified-scope .form-field-label,
.compras-maestro-view .form-field-label,
.dispatch-page .form-field-label,
.search-form .form-textarea-label,
.forms-unified-scope .form-textarea-label,
.compras-maestro-view .form-textarea-label,
.dispatch-page .form-textarea-label,
.modal-body .form-field-label,
.modal-body .form-textarea-label {
  font-family: var(--omega-field-font-family);
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  padding: 0 1px !important;
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  text-shadow:
    -3px 0 0 var(--omega-label-halo-light),
    3px 0 0 var(--omega-label-halo-light),
    0 -3px 0 var(--omega-label-halo-light),
    0 3px 0 var(--omega-label-halo-light),
    -2px -2px 0 var(--omega-label-halo-light),
    2px -2px 0 var(--omega-label-halo-light),
    -2px 2px 0 var(--omega-label-halo-light),
    2px 2px 0 var(--omega-label-halo-light);
}

:is(.form-field-label, .form-textarea-label) {
  font-family: var(--omega-field-font-family) !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  padding: 0 1px !important;
  position: absolute !important;
  z-index: 2 !important;
  box-sizing: border-box !important;
  display: block !important;
  height: 14px !important;
  line-height: 14px !important;
  overflow: visible !important;
  text-overflow: clip !important;
  top: var(--omega-field-label-top) !important;
  transform: translateY(-100%) !important;
  text-shadow:
    -3px 0 0 var(--omega-label-halo-light),
    3px 0 0 var(--omega-label-halo-light),
    0 -3px 0 var(--omega-label-halo-light),
    0 3px 0 var(--omega-label-halo-light),
    -2px -2px 0 var(--omega-label-halo-light),
    2px -2px 0 var(--omega-label-halo-light),
    -2px 2px 0 var(--omega-label-halo-light),
    2px 2px 0 var(--omega-label-halo-light) !important;
}

/* Posicion canónica global del label flotante */
.search-form .form-field-label,
.forms-unified-scope .form-field-label,
.compras-maestro-view .form-field-label,
.dispatch-page .form-field-label,
.modal-body .form-field-label {
  top: var(--omega-field-label-top) !important;
  left: var(--omega-field-label-left) !important;
}

.form-field-label {
  top: var(--omega-field-label-top) !important;
  left: var(--omega-field-label-left) !important;
}

.search-form .form-textarea-label,
.forms-unified-scope .form-textarea-label,
.compras-maestro-view .form-textarea-label,
.dispatch-page .form-textarea-label,
.modal-body .form-textarea-label {
  top: var(--omega-field-label-top) !important;
  left: var(--omega-field-label-left) !important;
}

.form-textarea-label {
  top: var(--omega-field-label-top) !important;
  left: var(--omega-field-label-left) !important;
}

/* Asterisco obligatorio canonico (sin isla local) */
.form-field-label.maestro-required {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 2px !important;
  padding-left: 0 !important;
  max-width: calc(100% - 8px) !important;
}

.form-field-label.maestro-required::before {
  content: "" !important;
  position: relative !important;
  top: -3px !important;
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px !important;
  background-image: url("data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='8' height='8' rx='2' fill='white'/%3E%3Cpath d='M7.07902 3.48725L6.92102 3.01275L4.25002 3.903V1H3.75002V3.903L1.07902 3.01275L0.921021 3.48725L3.59202 4.3775L1.80002 6.7665L2.20002 7.06675L4.00002 4.66675L5.80002 7.06675L6.20002 6.7665L4.40802 4.3775L7.07902 3.48725Z' fill='%23A40F16'/%3E%3C/svg%3E") !important;
  background-size: 8px 8px !important;
  background-repeat: no-repeat !important;
}

.dark .form-field-label.maestro-required::before,
html.dark .form-field-label.maestro-required::before {
  background-image: url("data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.07902 3.48725L6.92102 3.01275L4.25002 3.903V1H3.75002V3.903L1.07902 3.01275L0.921021 3.48725L3.59202 4.3775L1.80002 6.7665L2.20002 7.06675L4.00002 4.66675L5.80002 7.06675L6.20002 6.7665L4.40802 4.3775L7.07902 3.48725Z' fill='%23FF6B6B'/%3E%3C/svg%3E") !important;
}

/* Disabled consistente (sin tocar iconos ni visibilidad por modulo) */
.search-form .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date),
.search-form :is(.form-field-input, .form-field-select, .form-field-date):disabled,
.search-form :is(.form-textarea, textarea.form-field-input):disabled,
.modal-body :is(.form-field-input, .form-field-select, .form-field-date):disabled,
.modal-body :is(.form-textarea, textarea.form-field-input):disabled {
  opacity: 1;
}

/* Guardrail para textareas con clase heredada de input */
.search-form textarea.form-field-input,
.forms-unified-scope textarea.form-field-input,
.compras-maestro-view textarea.form-field-input,
.dispatch-page textarea.form-field-input,
.modal-body textarea.form-field-input {
  white-space: pre-wrap;
}

/* ========================================
   Disabled uniformity + lock removal (global)
   ======================================== */

/* 1) Hide lock icons globally in form fields */
.search-form .icon-locked,
.forms-unified-scope .icon-locked,
.compras-maestro-view .icon-locked,
.dispatch-page .icon-locked,
.modal-body .icon-locked,
.search-form .form-field.is-disabled .icon-locked,
.forms-unified-scope .form-field.is-disabled .icon-locked,
.compras-maestro-view .form-field.is-disabled .icon-locked,
.dispatch-page .form-field.is-disabled .icon-locked,
.modal-body .form-field.is-disabled .icon-locked {
  display: none !important;
}

.forms-unified-scope .buscar-tag-lock {
  display: none !important;
}

.compras-maestro-view .buscar-tag-lock {
  display: none !important;
}

.compras-maestro-view .form-field.is-disabled::after,
.compras-maestro-view .mensaje-field.is-disabled::after {
  content: none !important;
  display: none !important;
}

/* 2) Light mode disabled skin */
.search-form .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.forms-unified-scope .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.compras-maestro-view .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.dispatch-page .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.search-form :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.forms-unified-scope :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.compras-maestro-view :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.dispatch-page :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.modal-body .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.modal-body :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled {
  background-color: var(--omega-disabled-bg) !important;
  color: var(--omega-disabled-text) !important;
  border-color: var(--omega-disabled-border) !important;
  -webkit-text-fill-color: var(--omega-disabled-text) !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
}

.search-form .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.forms-unified-scope .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.compras-maestro-view .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.dispatch-page .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.modal-body .form-field.is-disabled :is(.form-field-label, .form-textarea-label) {
  color: var(--omega-disabled-label) !important;
  text-shadow:
    -3px 0 0 var(--omega-label-halo-disabled-light),
    3px 0 0 var(--omega-label-halo-disabled-light),
    0 -3px 0 var(--omega-label-halo-disabled-light),
    0 3px 0 var(--omega-label-halo-disabled-light),
    -2px -2px 0 var(--omega-label-halo-disabled-light),
    2px -2px 0 var(--omega-label-halo-disabled-light),
    -2px 2px 0 var(--omega-label-halo-disabled-light),
    2px 2px 0 var(--omega-label-halo-disabled-light);
}

.form-field.is-disabled :is(.form-field-label, .form-textarea-label) {
  color: var(--omega-disabled-label) !important;
  text-shadow:
    -3px 0 0 var(--omega-label-halo-disabled-light),
    3px 0 0 var(--omega-label-halo-disabled-light),
    0 -3px 0 var(--omega-label-halo-disabled-light),
    0 3px 0 var(--omega-label-halo-disabled-light),
    -2px -2px 0 var(--omega-label-halo-disabled-light),
    2px -2px 0 var(--omega-label-halo-disabled-light),
    -2px 2px 0 var(--omega-label-halo-disabled-light),
    2px 2px 0 var(--omega-label-halo-disabled-light) !important;
}

/* 3) Dark mode disabled skin */
.dark .search-form .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.dark .forms-unified-scope .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.dark .compras-maestro-view .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.dark .dispatch-page .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.dark .search-form :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.dark .forms-unified-scope :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.dark .compras-maestro-view :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.dark .dispatch-page :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled,
.dark .modal-body .form-field.is-disabled :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input),
.dark .modal-body :is(.form-field-input, .form-field-select, .form-field-date, .form-textarea, textarea.form-field-input):disabled {
  background-color: var(--omega-disabled-dark-bg) !important;
  color: var(--omega-disabled-dark-text) !important;
  border-color: var(--omega-disabled-dark-border) !important;
  -webkit-text-fill-color: var(--omega-disabled-dark-text) !important;
  opacity: 1 !important;
}

.dark .search-form .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.dark .forms-unified-scope .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.dark .compras-maestro-view .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.dark .dispatch-page .form-field.is-disabled :is(.form-field-label, .form-textarea-label),
.dark .modal-body .form-field.is-disabled :is(.form-field-label, .form-textarea-label) {
  color: var(--omega-disabled-dark-label) !important;
}

.dark {
  --omega-label-halo-light: var(--omega-label-halo-dark);
  --omega-label-halo-disabled-light: var(--omega-label-halo-disabled-dark);
}

/* ========================================
   Inline-to-class cleanup (safe, scoped)
   ======================================== */

/* Entrada: grid del formulario de ordenes */
#search-form-orders-grid.forms-grid-orders-3col {
  display: grid;
  grid-template-columns: minmax(0, 0.5fr) minmax(0, 0.5fr) minmax(0, 0.5fr);
  gap: var(--omega-form-grid-gap);
  align-items: end;
  padding-top: 2px;
}

/* Entrada: campo suplidor ancho */
#supplier-field-wrapper.forms-grid-span-2 {
  grid-column: 2 / span 2;
}

/* Entrada: icono interno en campo */
.form-field-icon-inside.field-icon-inline {
  right: 5px;
  top: calc(50% + 4px);
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  position: absolute;
  cursor: pointer;
  z-index: 10;
}

#poid-link.field-icon-link-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
}

/* Inventario: altura fija intencional de fila */
.form-field.field-height-30 {
  height: 30px;
}

/* Inventario: wrapper y textarea de observaciones */
.form-field.is-disabled.field-obs-wrapper {
  grid-row: span 3;
  align-self: stretch;
  min-height: 0;
  height: auto;
  padding-bottom: 0 !important;
}

textarea.field-obs-textarea {
  height: calc(100% + 1px);
  min-height: 0;
  max-height: none;
  resize: none;
  overflow-y: auto;
}

.field-obs-wrapper .textarea-resize-icon {
  right: 3px;
  bottom: 2px;
  z-index: 3;
}

/* Canon global: icono de resize 1px más cerca del borde derecho */
.textarea-resize-icon {
  right: 3px !important;
}

/* Devoluciones/RMA: neutralizar ajustes inline locales y mantener inset canónico */
.notas-field .textarea-resize-icon {
  right: 3px !important;
  bottom: 4px !important;
  transform: translateY(-1px) !important;
}

.notas-field .textarea-resize-icon svg {
  bottom: 2px !important;
  right: 0 !important;
}

/* RMA / Devoluciones: detalle con 4 columnas */
.form-grid.forms-grid-4col {
  grid-template-columns: repeat(4, 1fr);
  gap: var(--omega-form-grid-gap);
}

/* RMA: usuario ocupa 2 columnas */
#usuarioField3_rma.forms-grid-span-2 {
  grid-column: span 2;
}

/* Shared utility classes for de-inlining form layouts */
.forms-grid-2col-start {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--omega-form-grid-gap);
  align-items: start;
}

.forms-grid-4col-start {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--omega-form-grid-gap);
  align-items: start;
}

.forms-grid-span-2-start {
  grid-column: 1 / span 2;
}

.forms-grid-span-2-second {
  grid-column: 2 / span 2;
}

.is-hidden-inline {
  display: none;
}

/* Compras maestro layout */
#maestro-layout.maestro-layout-4col {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 5px;
  align-items: start;
  min-height: auto;
}

.forms-grid-2col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--omega-form-grid-gap);
}
