:root {
  --lv-field-height: var(--lv-control-height, 40px);
  --lv-field-radius: 10px;
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* Estrutura e rótulos compartilhados */
.lv-app-admin label,
.lv-site label {
  color: var(--lv-field-label);
  font-size: 13px;
  font-weight: 730;
  letter-spacing: -.005em;
}
.lv-app-admin label > small,
.lv-site label > small,
.lv-field-help {
  color: var(--lv-muted);
  display: block;
  font-size: 10px;
  font-weight: 520;
  letter-spacing: 0;
  line-height: 1.45;
}
.lv-app-admin fieldset,
.lv-site fieldset { border-color: var(--lv-line); }
.lv-app-admin legend,
.lv-site legend { color: var(--lv-ink); font-size: 12px; font-weight: 800; }

/* Campo base: todas as telas usam o mesmo componente visual */
.lv-app-admin :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
.lv-site :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]) {
  appearance: none;
  background-color: var(--lv-field-bg);
  border: 1px solid var(--lv-field-border);
  border-radius: var(--lv-field-radius);
  box-shadow: inset 0 1px 2px var(--lv-shadow-color), 0 1px 0 var(--lv-popup-shadow-color);
  color: var(--lv-field-text);
  font-family: inherit;
  font-size: 13px;
  font-weight: 530;
  height: var(--lv-field-height);
  line-height: 1.4;
  min-height: var(--lv-field-height);
  outline: 0;
  padding: 10px 13px;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease;
  width: 100%;
}
.lv-app-admin :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):hover:not(:disabled):not([readonly]),
.lv-site :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):hover:not(:disabled):not([readonly]) {
  background-color: var(--lv-field-bg-hover);
  border-color: var(--lv-field-border-hover);
  box-shadow: none;
}
.lv-app-admin :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):focus,
.lv-site :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):focus {
  background-color: var(--lv-surface);
  border-color: var(--lv-field-focus);
  box-shadow: 0 0 0 3px var(--lv-field-ring), inset 0 1px 2px var(--lv-shadow-color);
}
.lv-app-admin :is(input, textarea)::placeholder,
.lv-site :is(input, textarea)::placeholder { color: var(--lv-field-placeholder); opacity: 1; font-weight: 450; }
.lv-app-admin textarea:not([rows="1"]),
.lv-site textarea:not([rows="1"]) { height: auto; line-height: 1.6; min-height: 126px; resize: vertical; }

/* Select consistente e acessível */
.lv-app-admin select,
.lv-site select {
  background-image: linear-gradient(45deg, transparent 50%, var(--lv-sidebar) 50%), linear-gradient(135deg, var(--lv-sidebar) 50%, transparent 50%);
  background-position: calc(100% - 17px) 20px, calc(100% - 12px) 20px;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  cursor: pointer;
  padding-right: 36px !important;
}
.lv-app-admin select[multiple],
.lv-site select[multiple] { background-image: none; height: auto; min-height: 120px; padding-right: 13px !important; }
.lv-app-admin select.is-placeholder,
.lv-site select.is-placeholder { color: var(--lv-field-placeholder); font-weight: 450; }

/* Datas, números, dinheiro e busca */
.lv-app-admin :is(input[type="number"], .lv-money-input),
.lv-site :is(input[type="number"], .lv-money-input) { font-variant-numeric: tabular-nums; }
.lv-app-admin .lv-money-input,
.lv-site .lv-money-input { font-weight: 680; text-align: right; }

/* A moeda fica dentro da borda do input, sem alterar o valor enviado. */
.lv-money-control {
  --lv-money-prefix-width: 42px;
  position: relative;
  display: block;
  min-width: 0;
  width: 100%;
  border-radius: var(--lv-field-radius);
}
.lv-money-control > .lv-money-prefix {
  position: absolute;
  z-index: 1;
  inset: 1px auto auto 1px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--lv-money-prefix-width);
  /* A mensagem de validação pode ampliar o controle, mas não o prefixo. */
  height: calc(var(--lv-field-height) - 2px);
  
  
  
  
  
  
  line-height: 1;
  cursor: text;
}
body:is(.lv-app-admin, .lv-site) .lv-money-control > input {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  
  
  
  font-variant-numeric: tabular-nums;
}


.lv-money-control:has(> input:disabled) > .lv-money-prefix {
  
  
  cursor: not-allowed;
}
.lv-money-control:has(> input[type="hidden"]) { display: none; }
.fin-valor-pago-controle > .lv-money-control { flex: 1; width: 0; }
@media (max-width: 640px) {
  
}
.lv-app-admin input[type="date"],
.lv-app-admin input[type="month"],
.lv-app-admin input[type="time"],
.lv-site input[type="date"],
.lv-site input[type="month"],
.lv-site input[type="time"] { color-scheme: light; font-variant-numeric: tabular-nums; }
.lv-app-admin input[type="date"]::-webkit-calendar-picker-indicator,
.lv-site input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .58; }
.lv-app-admin input[type="search"],
.lv-site input[type="search"] { padding-right: 34px; }
.lv-app-admin input[type="search"]::-webkit-search-cancel-button,
.lv-site input[type="search"]::-webkit-search-cancel-button { cursor: pointer; opacity: .55; }

/* Somente leitura, desabilitado e preenchimento automático */
.lv-app-admin :is(input, textarea)[readonly],
.lv-site :is(input, textarea)[readonly] {
  background: var(--lv-field-readonly);
  border-color: var(--lv-line);
  box-shadow: none;
  color: var(--lv-muted);
  cursor: default;
}
.lv-app-admin :is(input, select, textarea):disabled,
.lv-site :is(input, select, textarea):disabled {
  background-color: var(--lv-field-disabled);
  border-color: var(--lv-line);
  box-shadow: none;
  color: var(--lv-muted-light);
  cursor: not-allowed;
  opacity: .8;
}
.lv-app-admin input:-webkit-autofill,
.lv-site input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px var(--lv-popup-shadow-color) inset; -webkit-text-fill-color: var(--lv-field-text); }

/* Checkboxes e radios */
.lv-app-admin :is(input[type="checkbox"], input[type="radio"]),
.lv-site :is(input[type="checkbox"], input[type="radio"]) {
  appearance: none;
  background: var(--lv-surface);
  border: 1.5px solid var(--lv-line);
  box-shadow: 0 1px 2px var(--lv-shadow-color);
  cursor: pointer;
  display: inline-grid;
  flex: 0 0 18px;
  height: 18px;
  margin: 0;
  place-content: center;
  transition: background .14s, border-color .14s, box-shadow .14s;
  width: 18px;
}
.lv-app-admin input[type="checkbox"],
.lv-site input[type="checkbox"] { border-radius: 5px; }
.lv-app-admin input[type="radio"],
.lv-site input[type="radio"] { border-radius: 50%; }
.lv-app-admin :is(input[type="checkbox"], input[type="radio"])::before,
.lv-site :is(input[type="checkbox"], input[type="radio"])::before { content: ""; transform: scale(0); transition: transform .12s ease; }
.lv-app-admin input[type="checkbox"]::before,
.lv-site input[type="checkbox"]::before { border-bottom: 2px solid var(--lv-line); border-right: 2px solid var(--lv-line); height: 8px; transform: rotate(45deg) scale(0); width: 4px; }
.lv-app-admin input[type="radio"]::before,
.lv-site input[type="radio"]::before { background: var(--lv-sidebar); border-radius: 50%; height: 8px; width: 8px; }
.lv-app-admin :is(input[type="checkbox"], input[type="radio"]):checked,
.lv-site :is(input[type="checkbox"], input[type="radio"]):checked { background: var(--lv-yellow); border-color: var(--lv-yellow-text); }
.lv-app-admin input[type="checkbox"]:checked::before,
.lv-site input[type="checkbox"]:checked::before { transform: rotate(45deg) scale(1); }
.lv-app-admin input[type="radio"]:checked::before,
.lv-site input[type="radio"]:checked::before { transform: scale(1); }
.lv-app-admin :is(input[type="checkbox"], input[type="radio"]):focus-visible,
.lv-site :is(input[type="checkbox"], input[type="radio"]):focus-visible { box-shadow: 0 0 0 3px var(--lv-field-ring); outline: 0; }


/* Checkbox padrão: azul e marca branca; switches mantêm seus estilos próprios. */
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]) {
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  display: inline-block;
  flex: 0 0 18px;
  
  
  
  
  margin: 0;
  
  vertical-align: middle;
  border: 1.5px solid var(--lv-line);
  border-radius: 3px;
  background: var(--lv-surface) center / 100% 100% no-repeat;
  box-shadow: none;
  cursor: pointer;
}
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"])::before {
  content: none;
}
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]):checked,
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]):indeterminate {
  
  
  background-image: var(--lv-palette-icon-6);
}
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]):indeterminate {
  background-image: var(--lv-palette-icon-5);
}
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]):focus-visible {
  outline: 2px solid var(--lv-blue);
  outline-offset: 3px;
  box-shadow: none;
}
body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]):disabled {
  cursor: not-allowed;
  opacity: .5;
}
@media (forced-colors: active) {
  body:is(.lv-app-admin, .lv-site, .lv-app-front) input[type="checkbox"]:not([role="switch"]) {
    appearance: auto;
    background-image: none;
  }
}

/* Arquivos e cores */
.lv-app-admin input[type="file"],
.lv-site input[type="file"] { color: var(--lv-muted); font: inherit; width: 100%; }
.lv-app-admin input[type="file"]::file-selector-button,
.lv-site input[type="file"]::file-selector-button { background: var(--lv-surface); border: 1px solid var(--lv-field-border); border-radius: 9px; color: var(--lv-ink); cursor: pointer; font: inherit; font-size: 12px; font-weight: 750; margin-right: 10px; min-height: 38px; padding: 8px 13px; }
.lv-app-admin input[type="color"],
.lv-site input[type="color"] { background: var(--lv-surface); border: 1px solid var(--lv-field-border); border-radius: var(--lv-field-radius); cursor: pointer; height: var(--lv-field-height); padding: 5px; width: 100%; }

/* Validação só aparece depois da interação do usuário ou envio */
.lv-app-admin :is(input, select, textarea):user-invalid,
.lv-app-admin :is(input, select, textarea)[aria-invalid="true"],
.lv-app-admin form.was-validated :is(input, select, textarea):invalid,
.lv-site :is(input, select, textarea):user-invalid,
.lv-site :is(input, select, textarea)[aria-invalid="true"],
.lv-site form.was-validated :is(input, select, textarea):invalid {
  border-color: var(--lv-field-error);
  box-shadow: 0 0 0 3px var(--lv-popup-shadow-color);
}
.lv-app-admin :is(input, select, textarea):user-valid:not(:placeholder-shown):not([type="search"]),
.lv-site :is(input, select, textarea):user-valid:not(:placeholder-shown):not([type="search"]) { border-color: var(--lv-line); }

/* Controles compostos seguem o mesmo componente */
.lv-app-admin .lv-inline-control { border-radius: var(--lv-field-radius); }
.lv-app-admin .lv-client-cep-control { display: grid; grid-template-columns: minmax(0, 1fr) 44px; min-width: 0; }
.lv-app-admin .lv-client-cep-control button { display: flex;  justify-content: center;   }
.lv-app-admin .lv-client-cep-control button:disabled {  opacity: .6; }
.lv-app-admin [data-client-cep-feedback] { font-size: 11px; line-height: 1.5; color: var(--lv-muted); }
.lv-app-admin [data-client-cep-feedback]:empty { display: none; }


.lv-app-admin .lv-inline-control:focus-within { box-shadow: 0 0 0 3px var(--lv-field-ring); }
.lv-app-admin .lv-inline-control:has(input:hover:not(:disabled):not([readonly])) { box-shadow: none; }




/* O calendário personalizado também é visualmente um campo do tema */
.lv-app-admin .lv-conecta-date-picker .lv-calendar-toggle {
  background: var(--lv-field-bg);
  
  
  
  
  
  
  
  
}
.lv-app-admin .lv-conecta-date-picker .lv-calendar-toggle:hover {
  background: var(--lv-sidebar);
  
}
.lv-app-admin .lv-conecta-date-picker.aberto .lv-calendar-toggle {
  background: var(--lv-sidebar);
  
}
.lv-app-admin .lv-conecta-date-picker.lv-calendar-error .lv-calendar-toggle {
  border-color: var(--lv-field-error);
  box-shadow: 0 0 0 3px var(--lv-popup-shadow-color);
}

/* Componentes compactos continuam densos sem perder o tema */

.lv-app-admin .lv-order-totals #lv-remaining-total {
  background: var(--lv-field-readonly);
  border-color: var(--lv-line);
  color: var(--lv-field-text);
}

@media (max-width: 640px) {
  :root { --lv-field-height: var(--lv-control-height, 44px); }
  .lv-app-admin .lv-money-input,
  .lv-site .lv-money-input { text-align: left; }
}

.lv-app-admin input[type=email],.lv-site input[type=email],input[data-customer-email]{text-transform:lowercase!important}

/* Switch compartilhado: Ativo/Inativo por padrão; data-lv-switch-labels="none"
 * no controle remove o texto. "custom" usa data-lv-switch-on/off na trilha.
 * O nome acessível continua no label ou aria-label do input. */
body [class$="switch-control"]:has(> input[role="switch"]){--lv-switch-width:86px;display:flex;align-items:center;position:relative;flex:0 0 var(--lv-switch-width);width:var(--lv-switch-width);min-width:var(--lv-switch-width);gap:0;cursor:pointer;--lv-switch-active:var(--lv-blue)}
body .fin-switch-verde [class$="switch-control"]:has(> input[role="switch"]){--lv-switch-active:var(--lv-success)}
body [class$="switch-control"][data-lv-switch-labels="none"]:has(> input[role="switch"]){--lv-switch-width:50px}
body [class$="switch-control"][data-lv-switch-labels="custom"]:has(> input[role="switch"]){--lv-switch-width:124px}
body [class$="switch-control"]>input[type=checkbox][role="switch"]{position:absolute!important;inset:0!important;width:var(--lv-switch-width)!important;min-width:var(--lv-switch-width)!important;max-width:var(--lv-switch-width)!important;margin:0!important;padding:0!important;z-index:1;cursor:pointer}
body [class$="switch-control"]>input[role="switch"]+[class$="switch-track"]{display:block;box-sizing:border-box;flex:0 0 var(--lv-switch-width)!important;width:var(--lv-switch-width)!important;height:30px!important;border:2px solid var(--lv-line);border-radius:999px;background:var(--lv-surface)!important;position:relative;transition:background .18s,border-color .18s}
body [class$="switch-control"]>input[role="switch"]+[class$="switch-track"]::after{content:'';position:absolute;left:2px!important;top:2px!important;width:22px!important;height:22px!important;border-radius:50%;background:var(--lv-muted-light)!important;box-shadow:none!important;transform:none!important;transition:transform .18s}
body [class$="switch-control"]>input[role="switch"]+[class$="switch-track"]::before{content:'Inativo';position:absolute;inset:0 3px 0 28px;display:grid;place-items:center;font-size:11px;font-weight:500;line-height:1;color:var(--lv-muted);pointer-events:none}
body [class$="switch-control"]>input[role="switch"]:checked+[class$="switch-track"]{border-color:var(--lv-switch-active)!important;background:var(--lv-switch-active)!important}
body [class$="switch-control"]>input[role="switch"]:checked+[class$="switch-track"]::after{transform:translateX(calc(var(--lv-switch-width) - 30px))!important;background:var(--lv-surface)!important}
body [class$="switch-control"]>input[role="switch"]:checked+[class$="switch-track"]::before{content:'Ativo';left:3px;right:28px;color:var(--lv-surface)}
body [class$="switch-control"]>input[role="switch"]+[class$="switch-track"][data-lv-switch-off]::before{content:attr(data-lv-switch-off)}
body [class$="switch-control"]>input[role="switch"]:checked+[class$="switch-track"][data-lv-switch-on]::before{content:attr(data-lv-switch-on)}
body [class$="switch-control"][data-lv-switch-labels="none"]>input[role="switch"]+[class$="switch-track"]::before{content:none;display:none}
body [class$="switch-control"]>input[role="switch"]~[class$="switch-state"]{display:none!important}
body [class$="switch-control"]>input[role="switch"]:focus-visible+[class$="switch-track"]{outline:3px solid var(--lv-switch-active);outline-offset:3px}
body [class$="switch-control"]:has(>input[role="switch"]:disabled){cursor:default;opacity:.55}
body [class$="switch-control"]>input[role="switch"]:disabled{cursor:default}
@media(prefers-reduced-motion:reduce){body [class$="switch-control"]>input[role="switch"]+[class$="switch-track"],body [class$="switch-control"]>input[role="switch"]+[class$="switch-track"]::after{transition:none}}

/* API canônica dos campos. A camada fixa a aparência; os módulos cuidam da disposição. */
@layer lv-fields {
  :root { --lv-field-space: 6px; --lv-field-padding: 12px; --lv-field-font-size: 13px; --lv-ui-field-radius: var(--lv-field-radius); }
  .lv-ui-field { display: grid; align-content: start; gap: var(--lv-field-space); min-width: 0; }
  .lv-ui-label, .lv-ui-field label { color: var(--lv-field-label, var(--lv-ink)); font-size: 13px; font-weight: 700; }
  .lv-ui-required { color: var(--lv-field-error); }
  .lv-ui-control { align-items: center; display: flex; gap: 0; min-width: 0; position: relative; }
  .lv-ui-control > :is(input,select,textarea,.lv-conecta-date-picker,.lv-money-control,.lv-ui-selection) { flex: 1; min-width: 0; width: 100%; }
  .lv-ui-help, .lv-ui-message { color: var(--lv-muted); display: block; font-size: 12px; font-weight: 400; line-height: 1.45; margin: 0; overflow-wrap: anywhere; }
  .lv-ui-message[data-state=error] { color: var(--lv-field-error); }
  .lv-ui-message[data-state=success] { color: var(--lv-field-success); }
  .lv-ui-message[data-state=loading] { color: var(--lv-muted); }
  .lv-ui-message[hidden], .lv-ui-popup[hidden] { display: none !important; }
  .lv-ui-help:empty { display: none; }
  /* Campos visíveis de uma linha: altura única compartilhada com buttons.css. */
  :where(.lv-app-admin,.lv-app-front,.lv-site) :where(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset]),select,textarea),
  :where(.lv-ui-trigger,.fin-select-botao,.ped-order-status-toggle,.prod-cor-toggle,.lv-calendar-toggle) {
    appearance: none !important;
    background-color: var(--lv-field-bg) !important;
    border: 1px solid var(--lv-field-border) !important;
    border-radius: var(--lv-ui-field-radius) !important;
    box-shadow: none !important;
    color: var(--lv-field-text) !important;
    font-family: var(--lv-font-stack,Roboto),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
    font-size: var(--lv-field-font-size) !important;
    font-weight: 400 !important;
    height: var(--lv-field-height) !important;
    min-height: var(--lv-field-height) !important;
    line-height: 1.35 !important;
    padding: 0 var(--lv-field-padding) !important;
    text-shadow: none !important;
    transition: background-color .15s,border-color .15s,box-shadow .15s !important;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }
  :where(.lv-ui-trigger,.fin-select-botao,.ped-order-status-toggle,.prod-cor-toggle,.lv-calendar-toggle) { align-items: center; display: flex; gap: 8px; justify-content: space-between; text-align: left; width: 100%; cursor: pointer; }
  .lv-ui-selection > .lv-ui-trigger::after { content: '' !important; position: static !important; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) !important; flex: 0 0 6px; margin-left: auto; }
  .lv-ui-selection > .lv-ui-trigger { display: flex !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :where(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea):hover:not(:disabled):not([readonly]),
  :where(.lv-ui-trigger,.fin-select-botao,.ped-order-status-toggle,.prod-cor-toggle,.lv-calendar-toggle):hover:not(:disabled) {
    background-color: var(--lv-field-bg-hover) !important; border-color: var(--lv-field-border-hover) !important; box-shadow: none !important;
  }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :where(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea):focus,
  :where(.lv-ui-trigger,.fin-select-botao,.ped-order-status-toggle,.prod-cor-toggle,.lv-calendar-toggle):focus-visible {
    border-color: var(--lv-field-focus) !important; box-shadow: 0 0 0 3px var(--lv-field-ring) !important; outline: 0 !important;
  }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(input,textarea)::placeholder { color: var(--lv-field-placeholder) !important; opacity: 1; font-weight: 400 !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) select { padding-right: 34px !important; background-position: calc(100% - 17px) 50%,calc(100% - 12px) 50% !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) textarea { height: auto !important; min-height: calc(var(--lv-field-height) * 3) !important; padding: 10px var(--lv-field-padding) !important; resize: vertical; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) select[multiple] { height: auto !important; min-height: calc(var(--lv-field-height) * 3) !important; padding: 8px var(--lv-field-padding) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(input,textarea)[readonly]:not([type=hidden]) { background-color: var(--lv-field-readonly) !important; color: var(--lv-muted) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(input,select,textarea):disabled:not([type=hidden]),
  :where(.lv-ui-trigger,.fin-select-botao,.ped-order-status-toggle,.prod-cor-toggle,.lv-calendar-toggle):disabled { background-color: var(--lv-field-disabled) !important; color: var(--lv-muted) !important; border-color: var(--lv-field-border) !important; opacity: .65 !important; cursor: not-allowed; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(input,select,textarea)[aria-invalid=true]:not([type=hidden]),
  :where(.lv-ui-trigger,.fin-select-botao,.ped-order-status-toggle,.prod-cor-toggle,.lv-calendar-toggle)[aria-invalid=true],
  .lv-conecta-date-picker.lv-calendar-error .lv-calendar-toggle { border-color: var(--lv-field-error) !important; box-shadow: 0 0 0 3px color-mix(in srgb,var(--lv-field-error) 16%,transparent) !important; }
  /* Prefixos e unidades não alteram o conteúdo enviado. */
  .lv-ui-unit-control { display: block; position: relative; width: 100%; min-width: 0; }
  .lv-money-control { --lv-money-prefix-width: 42px !important; }
  .lv-ui-unit,.lv-money-prefix { background: var(--lv-field-readonly) !important; color: var(--lv-muted) !important; border-right: 1px solid var(--lv-field-border) !important; font: inherit; font-size: 13px !important; font-weight: 500 !important; }
  .lv-ui-unit { align-items: center; display: flex; justify-content: center; position: absolute; inset: 1px auto auto 1px; width: 42px; height: calc(var(--lv-field-height) - 2px); border-radius: calc(var(--lv-ui-field-radius) - 1px) 0 0 calc(var(--lv-ui-field-radius) - 1px); pointer-events: none; }
  .lv-money-prefix { border-radius: calc(var(--lv-ui-field-radius) - 1px) 0 0 calc(var(--lv-ui-field-radius) - 1px) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) .lv-money-control > input,
  :where(.lv-app-admin,.lv-app-front,.lv-site) .lv-ui-unit-control > input { padding-left: 54px !important; font-variant-numeric: tabular-nums; text-align: left !important; }
  /* A calculadora permanece dentro do campo em todos os módulos, inclusive
   * controles monetários criados dinamicamente. O alinhamento dispensa transform. */
  .fin-dinheiro-controle > input { padding-right: calc(var(--lv-field-height) + 4px) !important; }
  .fin-dinheiro-controle > .fin-calculadora-abrir {
    position: absolute !important; inset: 4px 4px auto auto !important;
    display: inline-flex; align-items: center; justify-content: center;
    box-sizing: border-box; width: calc(var(--lv-field-height) - 8px) !important;
    height: calc(var(--lv-field-height) - 8px) !important; min-width: 0 !important; min-height: 0 !important;
    padding: 0 !important; margin: 0 !important;
  }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(.fis-fiscal-campo,.fis-origem-campo) :is(input,.fin-select-botao) { padding-left: calc(var(--fis-prefix-width,40px) + 8px) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) .fis-item-unidade > input { padding: 0 4px !important; text-align: center; border-left: 0 !important; border-radius: 0 var(--lv-ui-field-radius) var(--lv-ui-field-radius) 0 !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) .fis-cfop-campo input { padding-right: calc(var(--lv-field-height) + 8px) !important; }
  .fis-cfop-campo > .fis-cfop-info { top: 1px !important; right: 1px !important; height: calc(var(--lv-field-height) - 2px) !important; min-height: 0 !important; width: calc(var(--lv-field-height) - 2px) !important; min-width: 0 !important; }
  /* Campos com ícone ou ação anexa. */
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(.lv-search-control,.fin-busca,.fis-vinculo-controle) > input { padding-left: 38px !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) .empresa-lookup > input { padding-right: calc(var(--lv-field-height) + 8px) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) .lv-inline-control input { border-radius: var(--lv-ui-field-radius) 0 0 var(--lv-ui-field-radius) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) .lv-ui-control:has(> .lv-ui-button) :is(input,.lv-ui-trigger) { border-radius: var(--lv-ui-field-radius) 0 0 var(--lv-ui-field-radius) !important; }
  .lv-ui-control > .lv-ui-button { align-self: stretch; height: var(--lv-field-height) !important; min-height: var(--lv-field-height) !important; border: 1px solid var(--lv-field-border) !important; border-left: 0 !important; border-radius: 0 var(--lv-ui-field-radius) var(--lv-ui-field-radius) 0 !important; }
  .lv-ui-control > .lv-ui-button:not(:last-child) { border-radius: 0 !important; }
  /* Calendário usa uma única borda; segmentos de digitação ficam dentro dela. */
  .lv-calendar-inline-editor input { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; outline: 0 !important; height: 100% !important; min-height: 0 !important; padding: 0 !important; color: inherit !important; }
  .lv-calendar-inline-editor input:focus { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
  .lv-calendar-inline-editor .lv-calendar-edit-year { width: 4ch !important; }
  .lv-calendar-data { min-width: 0; }
  .fis-aliquota-controle { height: var(--lv-field-height) !important; min-height: var(--lv-field-height) !important; background: var(--lv-field-bg) !important; border: 1px solid var(--lv-field-border) !important; border-radius: var(--lv-ui-field-radius) !important; }
  .fis-aliquota-controle > input { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; height: 100% !important; min-height: 0 !important; padding: 0 8px 0 29px !important; }
  .fis-aliquota-controle:focus-within { border-color: var(--lv-field-focus) !important; box-shadow: 0 0 0 3px var(--lv-field-ring) !important; }
  .fis-aliquota-controle:has(> input:hover:not(:disabled):not([readonly])) { border-color: var(--lv-field-border-hover) !important; box-shadow: none !important; }
  /* Listas, sugestões e seletores personalizados compartilham o popup. */
  .lv-ui-selection,.lv-ui-suggestions { position: relative; min-width: 0; width: 100%; }
  :is(.lv-ui-popup,.fin-select-popup,.ped-order-status-options,.prod-cor-opcoes) { background: var(--lv-surface) !important; border: 1px solid var(--lv-field-border) !important; border-radius: var(--lv-ui-field-radius) !important; box-shadow: 0 12px 30px var(--lv-popup-shadow-color) !important; color: var(--lv-field-text) !important; box-sizing: border-box; max-width: 100%; }
  .lv-ui-popup { position: absolute; inset: calc(100% + 6px) 0 auto; padding: 8px; z-index: 10005; max-height: min(320px,50dvh); overflow: auto; overscroll-behavior: contain; }
  .lv-ui-options { display: grid; gap: 3px; margin-top: 6px; max-height: min(240px,40dvh); overflow: auto; }
  :is(.lv-ui-option,.fin-select-opcoes button,.ped-order-status-option,.prod-cor-opcao) { align-items: center; display: flex; gap: 8px; justify-content: flex-start; width: 100%; min-height: var(--lv-field-height) !important; padding: 8px 10px !important; border: 1px solid transparent !important; border-radius: calc(var(--lv-field-radius) - 2px) !important; background: transparent !important; color: var(--lv-field-text) !important; font: inherit !important; font-size: 13px !important; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
  :is(.lv-ui-option,.fin-select-opcoes button,.ped-order-status-option,.prod-cor-opcao):is(:hover,:focus-visible,[aria-selected=true]) { background: var(--lv-yellow-soft) !important; border-color: var(--lv-field-focus) !important; outline: 0 !important; }
  .lv-ui-empty { color: var(--lv-muted); font-size: 12px; margin: 6px; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) select:is(.fin-select-nativo,.lv-ui-native-proxy,.prod-cor-select) { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; box-sizing: border-box !important; opacity: 0; pointer-events: none; }
  /* Marcação e switch preservam a área de toque, com cores do tema. */
  :where(.lv-app-admin,.lv-app-front,.lv-site) input:is([type=checkbox],[type=radio]):not([role=switch]) { width: 18px !important; min-width: 18px !important; height: 18px !important; min-height: 18px !important; padding: 0 !important; border-color: var(--lv-field-border) !important; background-color: var(--lv-surface) !important; color: var(--lv-primary-text) !important; accent-color: var(--lv-yellow); }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input:is([type=checkbox],[type=radio]):not([role=switch]):is(:checked,:indeterminate) { background-color: var(--lv-yellow) !important; border-color: var(--lv-yellow) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=checkbox]:not([role=switch]):checked { background-image: var(--lv-palette-icon-4) !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=checkbox]:not([role=switch]):indeterminate { background-image: var(--lv-palette-icon-3) !important; }
  .lv-ui-choice { align-items: center; display: flex; gap: 10px; min-height: var(--lv-field-height); cursor: pointer; }
  .lv-ui-choice-controls { align-items: center; display: flex; gap: 8px; }
  .lv-ui-choice-controls > .lv-ui-choice { flex: 1; }
  [class$=switch-control]:has(> input[role=switch]) { min-height: var(--lv-field-height) !important; --lv-switch-active: var(--lv-yellow); }
  [class$=switch-control] > input[role=switch] { height: var(--lv-field-height) !important; min-height: var(--lv-field-height) !important; opacity: 0 !important; }
  [class$=switch-control] > input[role=switch]:checked + [class$=switch-track] { background: var(--lv-yellow) !important; border-color: var(--lv-yellow) !important; }
  [class$=switch-control] > input[role=switch]:checked + [class$=switch-track]::before { color: var(--lv-primary-text) !important; }
  [class$=switch-control] > input[role=switch]:focus-visible + [class$=switch-track] { outline-color: var(--lv-field-focus) !important; }
  /* Switches financeiros respeitam o azul padrão e a variante verde de pagamento. */
  .fin-switch .fin-switch-control > input[role=switch]:checked + .fin-switch-track { background: var(--lv-switch-active) !important; border-color: var(--lv-switch-active) !important; }
  .fin-switch .fin-switch-control > input[role=switch]:checked + .fin-switch-track::before { color: var(--lv-surface) !important; }
  .fin-switch .fin-switch-control > input[role=switch]:focus-visible + .fin-switch-track { outline-color: var(--lv-switch-active) !important; }
  /* Arquivo, cor e intervalo usam a mesma altura de controle. */
  :where(.lv-app-admin,.lv-app-front,.lv-site) input:is([type=color],[type=file],[type=range]) { box-sizing: border-box !important; min-height: var(--lv-field-height) !important; height: var(--lv-field-height) !important; width: 100%; max-width: 100%; font: inherit; color: var(--lv-field-text); }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=file] { background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 13px !important; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=file]:focus-visible { outline: 2px solid var(--lv-field-focus); outline-offset: 2px; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=color] { background: var(--lv-field-bg) !important; border: 1px solid var(--lv-field-border) !important; border-radius: var(--lv-ui-field-radius) !important; padding: 5px !important; cursor: pointer; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=file]::file-selector-button { background: var(--lv-surface) !important; border: 1px solid var(--lv-field-border) !important; border-radius: var(--lv-ui-field-radius) !important; color: var(--lv-field-text) !important; height: var(--lv-field-height) !important; min-height: var(--lv-field-height) !important; padding: 0 12px !important; font: inherit !important; cursor: pointer; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=range] { accent-color: var(--lv-yellow); cursor: pointer; }
  :where(.lv-app-admin,.lv-app-front,.lv-site) input[type=range]::-webkit-slider-thumb { accent-color: var(--lv-yellow); }
  :where(.lv-app-admin,.lv-app-front,.lv-site) :is(input,select,textarea)[hidden] { display: none !important; }
  @media(max-width:900px),(pointer:coarse) { :root { --lv-field-height: var(--lv-control-height,44px); --lv-field-font-size: 16px; } }
  @media(prefers-reduced-motion:reduce) { .lv-ui-input,.lv-ui-trigger { transition: none !important; } }
  @media(forced-colors:active) { :where(.lv-app-admin,.lv-app-front,.lv-site) input:is([type=checkbox],[type=radio]) { appearance: auto !important; background-image: none !important; } }
}
