/* ------------------------------------------------------------------
   Tokens de marca — declarados no :root de propósito.
   Até a 1.7.7 eles só existiam dentro de .ubvq-quick-order,
   .ubvq-subaccounts-panel e .woocommerce-checkout. Qualquer tela do plugin
   renderizada fora desses três escopos (Notificações, o botão de baixar nota
   nos pedidos da própria conta) pedia var(--ubvq-brand) e não achava nada —
   e uma declaração com variável indefinida é DESCARTADA pelo navegador. O
   resultado era um botão sem fundo com texto branco: invisível.
   Os escopos abaixo continuam podendo sobrescrever o que precisarem.
   ------------------------------------------------------------------ */
:root {
  --ubvq-border: #e8e8e8;
  --ubvq-bg: #ffffff;
  --ubvq-muted: #666;
  --ubvq-radius: 14px;
  --ubvq-brand: #7e714a;
  --ubvq-brand-hover: #675d3d;
  --ubvq-brand-active: #554c31;
  --ubvq-brand-focus: #d6cdb2;
  --ubvq-brand-dark: #675d3d;
  --ubvq-soft: #d6cdb2;
  --ubvq-line: #d6cdb2;
  --ubvq-text: #1f1f1f;
}

.ubvq-quick-order {
  --ubvq-border: #e8e8e8;
  --ubvq-bg: #ffffff;
  --ubvq-muted: #666;
  --ubvq-radius: 14px;
  --ubvq-brand: #7e714a;
  --ubvq-brand-hover: #675d3d;
  --ubvq-brand-active: #554c31;
  --ubvq-brand-focus: #d6cdb2;
  width: 100%;
  box-sizing: border-box;
}

.ubvq-quick-order *,
.ubvq-quick-order *::before,
.ubvq-quick-order *::after {
  box-sizing: border-box;
}

.ubvq-qo-head,
.ubvq-qo-footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  background: var(--ubvq-bg);
  border: 1px solid var(--ubvq-border);
  border-radius: var(--ubvq-radius);
  padding: 18px;
  margin-bottom: 16px;
}

.ubvq-qo-head h2 {
  margin: 0 0 4px;
}

.ubvq-qo-head p,
.ubvq-qo-footer span {
  margin: 0;
  color: var(--ubvq-muted);
}

.ubvq-qo-list {
  display: grid;
  gap: 12px;
}

.ubvq-qo-item {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  background: var(--ubvq-bg);
  border: 1px solid var(--ubvq-border);
  border-radius: var(--ubvq-radius);
  padding: 12px;
}

.ubvq-qo-image img {
  width: 76px;
  height: 76px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

.ubvq-qo-info h3 {
  font-size: 16px;
  margin: 0 0 6px;
  line-height: 1.25;
}

.ubvq-qo-price {
  font-weight: 700;
  margin-bottom: 4px;
}

.ubvq-in-cart,
.ubvq-login-price-message,
.ubvq-unavailable {
  color: var(--ubvq-muted);
  font-size: 13px;
}

.ubvq-qo-actions,
.ubvq-var-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ubvq-qty {
  width: 72px;
  min-height: 38px;
  border: 1px solid var(--ubvq-border);
  border-radius: 10px;
  padding: 8px;
}

.ubvq-quick-order .ubvq-add-btn,
.ubvq-quick-order .ubvq-options-btn,
.ubvq-quick-order .ubvq-checkout-button,
.ubvq-quick-order .ubvq-checkout-top {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  min-height: 40px;
  line-height: 1;
  cursor: pointer;
  background: var(--ubvq-brand) !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.ubvq-quick-order .ubvq-add-btn:hover,
.ubvq-quick-order .ubvq-options-btn:hover,
.ubvq-quick-order .ubvq-checkout-button:hover,
.ubvq-quick-order .ubvq-checkout-top:hover {
  background: var(--ubvq-brand-hover) !important;
  color: #fff !important;
}

.ubvq-quick-order .ubvq-add-btn:active,
.ubvq-quick-order .ubvq-options-btn:active,
.ubvq-quick-order .ubvq-checkout-button:active,
.ubvq-quick-order .ubvq-checkout-top:active {
  background: var(--ubvq-brand-active) !important;
  transform: translateY(1px);
}

.ubvq-quick-order .ubvq-add-btn:focus-visible,
.ubvq-quick-order .ubvq-options-btn:focus-visible,
.ubvq-quick-order .ubvq-checkout-button:focus-visible,
.ubvq-quick-order .ubvq-checkout-top:focus-visible {
  outline: 3px solid var(--ubvq-brand-focus);
  outline-offset: 3px;
}

.ubvq-add-btn:disabled {
  opacity: .7;
  cursor: wait;
}

.ubvq-variations {
  grid-column: 1 / -1;
  border-top: 1px solid var(--ubvq-border);
  margin-top: 8px;
  padding-top: 8px;
}

.ubvq-variation-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 12px;
  background: #fafafa;
  margin-top: 8px;
}

.ubvq-var-info {
  display: grid;
  gap: 3px;
}

.ubvq-empty {
  padding: 18px;
  border: 1px dashed var(--ubvq-border);
  border-radius: var(--ubvq-radius);
  color: var(--ubvq-muted);
  background: #fff;
}

.ubvq-qo-footer {
  position: sticky;
  bottom: 14px;
  z-index: 20;
  margin-top: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

@media (max-width: 760px) {
  .ubvq-qo-head,
  .ubvq-qo-footer,
  .ubvq-qo-item,
  .ubvq-variation-row {
    grid-template-columns: 1fr;
    display: grid;
  }

  .ubvq-qo-actions,
  .ubvq-var-actions {
    width: 100%;
  }

  .ubvq-add-btn,
  .ubvq-options-btn,
  .ubvq-checkout-button,
  .ubvq-checkout-top {
    width: 100%;
  }
}


.ubvq-subaccounts-panel {
  --ubvq-border: #e8e8e8;
  --ubvq-muted: #666;
}

.ubvq-subaccounts-panel h3,
.ubvq-subaccounts-panel h4 {
  margin-top: 0;
}

.ubvq-subaccount-form {
  border: 1px solid var(--ubvq-border);
  border-radius: 14px;
  padding: 16px;
  margin: 16px 0 24px;
  background: #fff;
}

.ubvq-subaccount-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}

.ubvq-subaccount-grid p {
  margin: 0 0 10px;
}

.ubvq-subaccount-grid label {
  display: block;
  font-weight: 700;
  margin-bottom: 6px;
}

.ubvq-subaccount-grid input {
  width: 100%;
}

.ubvq-subaccount-grid small {
  display: block;
  margin-top: 5px;
  color: var(--ubvq-muted);
}

.ubvq-subaccounts-table,
.ubvq-subaccount-orders-table {
  margin-bottom: 24px;
}

.ubvq-subaccount-orders-table td[data-title="Itens"] {
  min-width: 220px;
}

@media (max-width: 760px) {
  .ubvq-subaccount-grid {
    grid-template-columns: 1fr;
  }
}

.ubvq-account-shortcuts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  margin: 0 0 18px;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  background: #fff;
}

.ubvq-account-shortcuts strong {
  margin-right: 4px;
}

.ubvq-account-shortcut.button {
  margin: 0;
  text-decoration: none !important;
}

@media (max-width: 760px) {
  .ubvq-account-shortcuts {
    align-items: stretch;
  }

  .ubvq-account-shortcuts strong,
  .ubvq-account-shortcut.button {
    width: 100%;
  }
}

/* Subcontas B2B v1.2 */
.ubvq-subaccounts-panel {
  --ubvq-brand: #9b7b35;
  --ubvq-brand-dark: #7f6429;
  --ubvq-soft: #f8f5ee;
  --ubvq-line: #e9e2d2;
  --ubvq-text: #1f1f1f;
  --ubvq-muted: #6f6a5f;
  display: grid;
  gap: 18px;
  max-width: 1100px;
  margin: 0 auto;
  color: var(--ubvq-text);
}

.ubvq-subaccounts-panel * {
  box-sizing: border-box;
}

.ubvq-card,
.ubvq-subaccount-form {
  background: #fff;
  border: 1px solid var(--ubvq-line);
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,.045);
}

.ubvq-panel-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 22px;
  background: linear-gradient(135deg, var(--ubvq-soft), #fff);
  border: 1px solid var(--ubvq-line);
  border-radius: 20px;
}

.ubvq-panel-hero h3,
.ubvq-form-head h4,
.ubvq-section-title h4 {
  margin: 0;
  line-height: 1.2;
}

.ubvq-panel-hero p,
.ubvq-form-head p,
.ubvq-empty-state {
  margin: 8px 0 0;
  color: var(--ubvq-muted);
}

.ubvq-eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 4px 10px;
  margin-bottom: 8px;
  border-radius: 999px;
  background: var(--ubvq-brand);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.ubvq-form-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ubvq-line);
}

.ubvq-admin-row,
.ubvq-subaccount-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.ubvq-subaccount-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.ubvq-subaccount-grid p:nth-child(1),
.ubvq-subaccount-grid p:nth-child(4),
.ubvq-subaccount-grid p:nth-child(5) {
  grid-column: span 3;
}

.ubvq-subaccount-grid p:nth-child(2),
.ubvq-subaccount-grid p:nth-child(3) {
  grid-column: span 3;
}

.ubvq-admin-row p,
.ubvq-subaccount-grid p {
  margin: 0;
}

.ubvq-admin-row label,
.ubvq-subaccount-grid label {
  display: block;
  margin: 0 0 6px;
  font-weight: 700;
}

.ubvq-admin-row input,
.ubvq-admin-row select,
.ubvq-subaccount-grid input {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--ubvq-line);
  border-radius: 12px;
  padding: 9px 12px;
  background: #fff;
}

.ubvq-admin-row small,
.ubvq-subaccount-grid small {
  display: block;
  margin-top: 6px;
  color: var(--ubvq-muted);
  line-height: 1.35;
}

.ubvq-primary-btn.button,
.ubvq-secondary-btn.button,
.ubvq-small-btn.button,
.ubvq-switch-banner .button {
  border: 0 !important;
  background: var(--ubvq-brand, #7e714a) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.ubvq-primary-btn.button {
  margin-top: 18px;
  padding: 12px 22px !important;
}

.ubvq-secondary-btn.button {
  white-space: nowrap;
  padding: 10px 18px !important;
}

.ubvq-small-btn.button {
  padding: 8px 13px !important;
  font-size: 13px !important;
}

.ubvq-primary-btn.button:hover,
.ubvq-secondary-btn.button:hover,
.ubvq-small-btn.button:hover,
.ubvq-switch-banner .button:hover {
  background: var(--ubvq-brand-dark, #675d3d) !important;
}

/* Botão de baixar nota fiscal: só existe quando o pedido já tem o link. */
.ubvq-nfe-btn.button {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  vertical-align: middle;
  white-space: nowrap;
}

.ubvq-nfe-btn .ubvq-nfe-icon {
  flex: 0 0 auto;
  display: block;
}

/* Fallback do rótulo acessível para temas que não trazem screen-reader-text. */
.ubvq-nfe-btn .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.ubvq-order-nfe-download {
  margin: 18px 0 24px;
}

.ubvq-order-nfe-download p {
  margin: 0 0 10px;
}

.ubvq-nfe-line .ubvq-nfe-btn.button {
  margin-left: 6px;
}

.ubvq-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.ubvq-section-title span {
  color: var(--ubvq-muted);
  font-size: 13px;
}

.ubvq-table-card {
  overflow-x: auto;
}

.ubvq-subaccounts-table,
.ubvq-subaccount-orders-table {
  margin: 0 !important;
  border-radius: 14px;
  overflow: hidden;
}

.ubvq-subaccounts-table th,
.ubvq-subaccount-orders-table th {
  background: var(--ubvq-soft);
  color: var(--ubvq-text);
  font-weight: 700;
}

.ubvq-switch-banner {
  position: fixed;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #111;
  color: #fff;
  box-shadow: 0 14px 40px rgba(0,0,0,.22);
}

.ubvq-switch-banner span {
  line-height: 1.35;
}

.ubvq-switch-banner .button {
  background: #fff !important;
  color: #111 !important;
  white-space: nowrap;
}

@media (max-width: 860px) {
  .ubvq-panel-hero,
  .ubvq-form-head,
  .ubvq-switch-banner {
    display: grid;
  }

  .ubvq-admin-row,
  .ubvq-subaccount-grid,
  .ubvq-subaccount-grid p:nth-child(n) {
    grid-template-columns: 1fr;
    grid-column: auto;
  }

  .ubvq-secondary-btn.button,
  .ubvq-primary-btn.button,
  .ubvq-switch-banner .button {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

/* v1.3 - Subcontas e mensagens de restrição */
.ubvq-restricted-message {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #f8f5ee;
  color: #7f6429;
  font-weight: 700;
  font-size: 13px;
}

.ubvq-restricted-page {
  max-width: 980px;
  margin: 60px auto;
  padding: 0 18px;
}

.ubvq-restricted-page .ubvq-card {
  text-align: center;
  padding: 34px 24px;
}

.ubvq-create-details.ubvq-card {
  padding: 0;
  overflow: hidden;
}

.ubvq-create-details > summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 22px;
  font-weight: 800;
  color: var(--ubvq-text);
  background: linear-gradient(135deg, var(--ubvq-soft), #fff);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ubvq-create-details > summary::-webkit-details-marker {
  display: none;
}

.ubvq-create-details > summary::after {
  content: '+';
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--ubvq-brand);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
}

.ubvq-create-details[open] > summary::after {
  content: '–';
}

.ubvq-create-details .ubvq-subaccount-form {
  border: 0;
  border-top: 1px solid var(--ubvq-line);
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}

.ubvq-edit-form {
  border-left: 4px solid var(--ubvq-brand);
}

/* v1.3.1 - Shortcodes para menu da Minha Conta */
.ubvq-account-menu-shortcuts {
  display: inline-flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0;
  vertical-align: middle;
}

.ubvq-account-menu-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  color: inherit !important;
  text-decoration: none !important;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.ubvq-account-menu-link:hover,
.ubvq-account-menu-link:focus {
  text-decoration: none !important;
  background: rgba(155, 123, 53, .08);
}

.ubvq-account-shortcuts--box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  margin: 0 0 18px;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  background: #fff;
}


/* v1.4.3 — Actions group no head do form de edição de subconta */
.ubvq-form-head-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

@media (max-width: 860px) {
  .ubvq-form-head-actions {
    width: 100%;
  }
  .ubvq-form-head-actions .button {
    flex: 1;
    min-width: 0;
  }
}


/* v1.4.3 — Caixinha de quantidade mais larga pra acomodar valores maiores
   (mínimos por tipo de usuário podem chegar a 100+). A largura antiga (72px)
   ficava apertada com 3 dígitos. */
.ubvq-qty {
  min-width: 88px;
}

/* Mensagem inline quando a qty foi auto-ajustada pelas regras B2B. */
.ubvq-qty-adjusted-notice {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: #7f6429;
  background: #f8f5ee;
  border-radius: 6px;
  padding: 4px 8px;
  line-height: 1.3;
}

/* v1.4.7 — campo Tipo de subconta na mesma linha da senha */
.ubvq-subaccount-grid > .ubvq-subaccount-field {
  grid-column: span 3;
}

.ubvq-subaccount-grid select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--ubvq-line);
  border-radius: 12px;
  padding: 9px 12px;
  background: #fff;
}

@media (max-width: 760px) {
  .ubvq-subaccount-grid > .ubvq-subaccount-field {
    grid-column: 1 / -1;
  }
}

.ubvq-dynamic-field-error {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.35;
  color: #b32d2e;
}

.ubvq-dynamic-checkout-input[aria-invalid="true"] {
  border-color: #b32d2e;
}

/* v1.5.1 — Filtros de pedidos das subcontas */
.ubvq-subaccount-orders-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.7fr) repeat(3, minmax(140px, 1fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 14px;
  margin: 0 0 8px;
  border: 1px solid var(--ubvq-line, #e9e2d2);
  border-radius: 14px;
  background: var(--ubvq-soft, #f8f5ee);
}

.ubvq-order-filter-field {
  min-width: 0;
}

.ubvq-order-filter-field label {
  display: block;
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ubvq-text, #1f1f1f);
}

.ubvq-order-filter-field input,
.ubvq-order-filter-field select {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--ubvq-line, #e9e2d2);
  border-radius: 10px;
  background: #fff;
}

.ubvq-order-filter-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.ubvq-order-filter-actions .button {
  margin: 0;
}

.ubvq-orders-filter-help,
.ubvq-orders-result-count {
  margin: 10px 0 14px;
  color: var(--ubvq-muted, #6f6a5f);
  font-size: 13px;
}

.ubvq-orders-result-count {
  font-weight: 700;
}

.ubvq-orders-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 18px;
}

.ubvq-orders-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--ubvq-line, #e9e2d2);
  border-radius: 9px;
  text-decoration: none;
}

.ubvq-orders-pagination .page-numbers.current {
  font-weight: 700;
  background: var(--ubvq-brand, #9b7b35);
  color: #fff;
  border-color: var(--ubvq-brand, #9b7b35);
}

@media (max-width: 980px) {
  .ubvq-subaccount-orders-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ubvq-order-filter-search,
  .ubvq-order-filter-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .ubvq-subaccount-orders-filters {
    grid-template-columns: 1fr;
  }

  .ubvq-order-filter-search,
  .ubvq-order-filter-actions {
    grid-column: auto;
  }

  .ubvq-order-filter-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .ubvq-order-filter-actions .button {
    width: 100%;
    text-align: center;
  }
}

/* v1.6.0 — dados de checkout, subcontas e filtros */
.ubvq-subaccounts-panel,
.woocommerce-checkout {
  --ubvq-brand: #7e714a;
  --ubvq-soft: #d6cdb2;
  --ubvq-line: #d6cdb2;
}

.ubvq-primary-btn,
.ubvq-subaccounts-panel .button.ubvq-primary-btn,
.ubvq-subaccounts-panel .ubvq-secondary-btn:hover,
.ubvq-orders-pagination .page-numbers.current {
  background: #7e714a;
  border-color: #7e714a;
  color: #fff !important;
}

.ubvq-checkout-unit-price {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.35;
  color: #5f573d;
}

.ubvq-checkout-unit-price span + span {
  font-weight: 700;
}

.ubvq-subaccount-extra-details {
  margin: 16px 0;
  border: 1px solid #d6cdb2;
  border-radius: 12px;
  background: #fffdf8;
  overflow: hidden;
}

.ubvq-subaccount-extra-details > summary {
  cursor: pointer;
  padding: 13px 16px;
  font-weight: 700;
  color: #4e472e;
  list-style: none;
}

.ubvq-subaccount-extra-details > summary::-webkit-details-marker {
  display: none;
}

.ubvq-subaccount-extra-details > summary::before {
  content: "›";
  display: inline-block;
  margin-right: 8px;
  font-size: 22px;
  line-height: 10px;
  transform: rotate(0deg);
  transition: transform .15s ease;
}

.ubvq-subaccount-extra-details[open] > summary::before {
  transform: rotate(90deg);
}

.ubvq-subaccount-extra-details[open] > summary {
  border-bottom: 1px solid #d6cdb2;
}

.ubvq-subaccount-extra-details > .ubvq-extra-fields-intro,
.ubvq-subaccount-extra-details > .ubvq-subaccount-grid,
.ubvq-subaccount-extra-details > .ubvq-subaccount-custom-role-fields {
  margin-left: 16px;
  margin-right: 16px;
}

.ubvq-subaccount-extra-details > .ubvq-extra-fields-intro {
  margin-top: 14px;
  color: #5f573d;
}

.ubvq-subaccount-extra-details > .ubvq-subaccount-custom-role-fields:last-child,
.ubvq-subaccount-extra-details > .ubvq-subaccount-grid:last-child {
  margin-bottom: 16px;
}

/* v1.6.8 — os campos adicionais da subconta passaram a incluir Inscrição
   Estadual, Número e Bairro. Com mais de cinco itens a grade não pode mais
   depender das regras por nth-child, então cada campo declara o próprio span. */
.ubvq-subaccount-grid.ubvq-subaccount-extra-grid > p.ubvq-extra-field {
  grid-column: span 3;
}

.ubvq-subaccount-grid.ubvq-subaccount-extra-grid > p.ubvq-span-2 {
  grid-column: span 2;
}

.ubvq-subaccount-grid.ubvq-subaccount-extra-grid > p.ubvq-span-4 {
  grid-column: span 4;
}

@media (max-width: 860px) {
  .ubvq-subaccount-grid.ubvq-subaccount-extra-grid > p.ubvq-extra-field,
  .ubvq-subaccount-grid.ubvq-subaccount-extra-grid > p.ubvq-span-2,
  .ubvq-subaccount-grid.ubvq-subaccount-extra-grid > p.ubvq-span-4 {
    grid-column: auto;
  }
}

.ubvq-account-dynamic-profile {
  margin: 22px 0;
  padding: 18px;
  border: 1px solid #d6cdb2;
  border-radius: 12px;
  background: #fffdf8;
}

.ubvq-account-dynamic-profile legend {
  padding: 0 6px;
  font-weight: 700;
  color: #4e472e;
}

.ubvq-subaccount-orders-filters {
  grid-template-columns: repeat(3, minmax(160px, 1fr));
}

.ubvq-order-filter-actions {
  grid-column: 1 / -1;
  white-space: normal;
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .ubvq-order-filter-actions {
    grid-template-columns: 1fr;
  }
}



/* v1.6.1 — campos comerciais em fluxo principal e importação em lote */
.ubvq-subaccount-custom-role-fields {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid #d6cdb2;
  border-radius: 14px;
  background: #fffdf8;
}

.ubvq-subaccount-custom-role-fields[hidden] {
  display: none !important;
}

.ubvq-subaccount-custom-fields-title {
  margin: 0 0 12px !important;
  color: #4e472e;
  font-weight: 700;
}

.ubvq-import-details {
  overflow: hidden;
}

.ubvq-import-details > summary {
  cursor: pointer;
  padding: 2px 0;
  color: #4e472e;
  font-weight: 700;
  list-style: none;
}

.ubvq-import-details > summary::-webkit-details-marker {
  display: none;
}

.ubvq-import-details > summary::before {
  content: "›";
  display: inline-block;
  margin-right: 8px;
  font-size: 22px;
  line-height: 10px;
  transform: rotate(0deg);
  transition: transform .15s ease;
}

.ubvq-import-details[open] > summary::before {
  transform: rotate(90deg);
}

.ubvq-import-details-body {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #d6cdb2;
}

.ubvq-import-copy {
  margin: 0 0 10px;
  color: #5f573d;
  line-height: 1.5;
}

.ubvq-front-import-form {
  display: grid;
  gap: 12px;
  max-width: 680px;
  margin-top: 16px;
}

.ubvq-import-dropzone {
  display: grid;
  justify-items: center;
  gap: 6px;
  min-height: 160px;
  padding: 24px;
  border: 2px dashed #b6ab8c;
  border-radius: 14px;
  background: #fffdf8;
  color: #4e472e;
  text-align: center;
  cursor: pointer;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.ubvq-import-dropzone:hover,
.ubvq-import-dropzone.is-dragover {
  border-color: #7e714a;
  background: #f5f0e5;
}

.ubvq-import-dropzone:focus-within {
  outline: 3px solid #d6cdb2;
  outline-offset: 3px;
}

.ubvq-import-dropzone-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #7e714a;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
}

.ubvq-import-dropzone-title {
  font-weight: 700;
}

.ubvq-import-dropzone-subtitle,
.ubvq-import-file-name {
  color: #6f6a5f;
  font-size: 13px;
}

.ubvq-import-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.ubvq-import-file-name {
  display: block;
  min-height: 1.4em;
}

.ubvq-import-result ul {
  margin: 10px 0 0 20px;
}

/* ============================================================
   [SAMUEL] Detalhes do pedido de subconta pela conta-mãe.
   Estilos da visualização somente leitura aberta pela conta-mãe
   (sem login pela subconta). Remova este bloco junto do código
   PHP marcado com [SAMUEL] caso esta abordagem seja descartada.
   ============================================================ */
.ubvq-samuel-order-head {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 6px 24px;
  margin-bottom: 18px;
}

.ubvq-samuel-order-head p {
  margin: 0;
}

.ubvq-samuel-items-table {
  margin-bottom: 18px;
}

.ubvq-samuel-items-table tfoot th {
  text-align: right;
}

.ubvq-samuel-addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
  margin-top: 18px;
}

.ubvq-samuel-address address {
  font-style: normal;
  line-height: 1.5;
}

.ubvq-samuel-order-note {
  margin-top: 18px;
}


/* v1.7.0 — Autorização de pedido pela conta gestora
   ------------------------------------------------------------------
   A fila de aprovação é uma lista de trabalho, não um extrato: linhas
   compactas com seleção, para decidir vários pedidos de uma vez. O bloco
   inteiro é visualmente mais forte que a listagem de baixo e não obedece
   aos filtros de data/status dela. */
.ubvq-approval-queue {
  border-left: 4px solid #b3862d;
}

.ubvq-approval-intro {
  margin: 0 0 14px;
  color: #5f573d;
  line-height: 1.45;
}

.ubvq-approval-bulk {
  margin: 0;
}

.ubvq-approval-table {
  width: 100%;
  margin: 0 0 14px !important;
  border-collapse: collapse;
  border-radius: 14px;
  overflow: hidden;
}

.ubvq-approval-table th,
.ubvq-approval-table td {
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e8e2cf;
}

.ubvq-approval-table th {
  background: var(--ubvq-soft, #f8f5ee);
  font-weight: 700;
  white-space: nowrap;
}

.ubvq-approval-table tbody tr:last-child td {
  border-bottom: 0;
}

.ubvq-approval-table tbody tr.is-selected {
  background: #fdfaf1;
}

.ubvq-approval-col-check {
  width: 36px;
}

.ubvq-approval-check {
  display: inline-flex;
  align-items: center;
  margin: 0;
  cursor: pointer;
}

.ubvq-approval-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  cursor: pointer;
}

.ubvq-approval-col-order a {
  font-weight: 700;
}

.ubvq-approval-col-date,
.ubvq-approval-col-child {
  color: #666;
  font-size: 13px;
}

.ubvq-approval-col-total {
  white-space: nowrap;
  font-weight: 700;
}

.ubvq-approval-col-items {
  font-size: 13px;
  line-height: 1.45;
  color: #555;
}

/* Barra de ações em massa: some do fluxo até haver seleção, mas o espaço
   fica reservado para a lista não pular quando a barra habilita. */
.ubvq-approval-bulkbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border: 1px solid #e8e2cf;
  border-radius: 14px;
  background: var(--ubvq-soft, #f8f5ee);
}

.ubvq-approval-count {
  margin: 0;
  font-weight: 700;
  color: #5f573d;
}

.ubvq-approval-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ubvq-approval-bulk-actions .button[disabled],
.ubvq-approval-reject-panel .button[disabled] {
  opacity: .5;
  cursor: not-allowed;
}

.ubvq-approval-reject-panel {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #e2b7b7;
  border-left: 4px solid #b32d2e;
  border-radius: 14px;
  background: #fdf6f6;
}

.ubvq-approval-reject-panel[hidden] {
  display: none;
}

.ubvq-approval-reject-panel label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}

.ubvq-approval-reject-panel textarea {
  width: 100%;
  min-height: 78px;
  padding: 9px 12px;
  border: 1px solid #d9d2bd;
  border-radius: 12px;
  background: #fff;
  box-sizing: border-box;
}

.ubvq-approval-reject-panel small {
  display: block;
  margin: 6px 0 10px;
  color: #666;
  line-height: 1.35;
}

/* Ações de um pedido só, na tela de detalhes vista pela conta gestora. */
.ubvq-single-approval {
  border-left: 4px solid #b3862d;
  margin-bottom: 18px;
}

.ubvq-single-approval-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
}

.ubvq-approval-form {
  margin: 0;
}

.ubvq-approval-reject > summary {
  cursor: pointer;
  list-style: none;
  padding: 9px 14px;
  border: 1px solid #b32d2e;
  border-radius: 999px;
  color: #b32d2e;
  font-weight: 700;
  text-align: center;
}

.ubvq-approval-reject > summary::-webkit-details-marker {
  display: none;
}

.ubvq-approval-reject[open] > summary {
  margin-bottom: 10px;
}

.ubvq-approval-reject-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}

.ubvq-approval-reject-form textarea {
  width: 100%;
  min-width: 260px;
  min-height: 78px;
  padding: 9px 12px;
  border: 1px solid #d9d2bd;
  border-radius: 12px;
  background: #fff;
  box-sizing: border-box;
}

.ubvq-approval-reject-form small {
  display: block;
  margin: 6px 0 10px;
  color: #666;
  line-height: 1.35;
}

.ubvq-danger-btn.button {
  border: 0 !important;
  background: #b32d2e !important;
  color: #fff !important;
  border-radius: 999px !important;
}

.ubvq-danger-btn.button:hover,
.ubvq-danger-btn.button:focus {
  background: #942425 !important;
  color: #fff !important;
}

/* Alerta de status do pedido — o padrão de mensagem de plataforma: box
   colorida no topo da tela dizendo em uma frase o que aconteceu. Vive fora
   do painel de subcontas (aparece na tela nativa do pedido), então não
   depende das variáveis daquele escopo. */
.ubvq-order-alert {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin: 0 0 24px;
  padding: 16px 18px;
  border: 1px solid #e2b7b7;
  border-left: 4px solid #b32d2e;
  border-radius: 12px;
  background: #fdf6f6;
  color: #4a2a2a;
}

.ubvq-order-alert--danger {
  border-color: #e2b7b7;
  border-left-color: #b32d2e;
  background: #fdf6f6;
  color: #4a2a2a;
}

.ubvq-order-alert-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #b32d2e;
  color: #fff;
  font-weight: 700;
  line-height: 1;
  font-size: 15px;
}

.ubvq-order-alert-body {
  min-width: 0;
}

.ubvq-order-alert-title {
  margin: 0 0 6px;
  font-weight: 700;
  color: #b32d2e;
}

.ubvq-order-alert-text {
  margin: 0;
  line-height: 1.5;
}

.ubvq-order-alert-meta {
  margin: 8px 0 0;
  color: #7a6a6a;
  font-size: 13px;
}

.ubvq-order-alert--warning {
  border-color: #e6d3a3;
  border-left-color: #b3862d;
  background: #fdfaf1;
  color: #4a3f21;
}

.ubvq-order-alert--warning .ubvq-order-alert-icon {
  background: #b3862d;
}

.ubvq-order-alert--warning .ubvq-order-alert-title {
  color: #8a6516;
}

.ubvq-approval-thankyou {
  margin-bottom: 20px;
}

/* v1.7.0 — Popup da janela de pedido no login
   ------------------------------------------------------------------
   Sai no rodapé de qualquer página, então precisa ser autossuficiente:
   z-index alto, cores literais e nenhuma dependência de escopo. */
.ubvq-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

/* O fechar é o checkbox irmão: sem depender de JavaScript, um overlay que
   não fecha nunca chega a existir. */
.ubvq-modal-toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}

.ubvq-modal-toggle:checked + .ubvq-modal,
.ubvq-modal[hidden],
.ubvq-modal.is-closed {
  display: none;
}

.ubvq-modal-backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  background: rgba(17, 17, 17, .55);
  cursor: pointer;
}

.ubvq-modal-close {
  cursor: pointer;
}

.ubvq-modal-box {
  position: relative;
  width: 100%;
  max-width: 460px;
  padding: 26px;
  border-radius: 18px;
  background: #fff;
  color: #23282d;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
  text-align: left;
}

.ubvq-modal-head {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}

.ubvq-modal-head h3 {
  margin: 0;
  font-size: 20px;
  line-height: 1.25;
}

.ubvq-modal-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  font-weight: 700;
  font-size: 17px;
  line-height: 1;
}

.ubvq-period-modal.is-open-period .ubvq-modal-badge {
  background: #2e7d32;
}

.ubvq-period-modal.is-open-period .ubvq-modal-box {
  border-top: 5px solid #2e7d32;
}

.ubvq-period-modal.is-closed-period .ubvq-modal-badge {
  background: #b3862d;
}

.ubvq-period-modal.is-closed-period .ubvq-modal-box {
  border-top: 5px solid #b3862d;
}

.ubvq-modal-message {
  margin: 0;
  line-height: 1.55;
}

.ubvq-modal-meta {
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f6f4ee;
  color: #5f573d;
  font-size: 14px;
  line-height: 1.45;
}

.ubvq-modal-actions {
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
}

.ubvq-modal-actions .button {
  min-width: 120px;
  text-align: center;
  justify-content: center;
}

@media (max-width: 760px) {
  .ubvq-approval-bulkbar {
    align-items: stretch;
  }

  .ubvq-approval-bulk-actions,
  .ubvq-approval-bulk-actions .button,
  .ubvq-single-approval-actions,
  .ubvq-single-approval-actions .ubvq-approval-reject {
    width: 100%;
  }

  .ubvq-approval-table thead {
    display: none;
  }

  .ubvq-approval-table,
  .ubvq-approval-table tbody,
  .ubvq-approval-table tr,
  .ubvq-approval-table td {
    display: block;
    width: 100%;
  }

  .ubvq-approval-table tr {
    position: relative;
    padding: 12px 12px 12px 42px;
    border-bottom: 1px solid #e8e2cf;
  }

  .ubvq-approval-table td {
    padding: 2px 0;
    border: 0;
  }

  .ubvq-approval-table td.ubvq-approval-col-check {
    position: absolute;
    left: 12px;
    top: 12px;
    width: auto;
    padding: 0;
  }

  .ubvq-approval-table td[data-title]::before {
    content: attr(data-title) ": ";
    font-weight: 700;
    color: #5f573d;
  }

  .ubvq-approval-table td.ubvq-approval-col-check::before {
    content: "";
  }
}

/* Notificações: lista de e-mails adicionais da conta. */
.ubvq-notify-card .ubvq-notify-form,
.ubvq-notify-field {
  display: block;
}

.ubvq-notify-card textarea,
.ubvq-notify-field textarea {
  width: 100%;
  min-height: 120px;
  padding: 10px 12px;
  /* Fallbacks: a tela de notificações fica fora dos escopos que declaram os
     tokens (.ubvq-quick-order, .ubvq-subaccounts-panel). */
  border: 1px solid var(--ubvq-border, #e8e8e8);
  border-radius: var(--ubvq-radius, 14px);
  font: inherit;
  line-height: 1.5;
  resize: vertical;
}

.ubvq-notify-card label,
.ubvq-notify-field label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}

/* <button> ganha chrome nativo em alguns navegadores, que pinta por cima do
   fundo da marca. O reset abaixo garante que o botão de salvar apareça igual
   aos outros botões do portal. */
.ubvq-notify-card .ubvq-primary-btn.button,
.ubvq-notify-field .ubvq-primary-btn.button {
  -webkit-appearance: none;
  appearance: none;
  display: inline-block;
  cursor: pointer;
}

.ubvq-notify-card small,
.ubvq-notify-field small {
  display: block;
  margin-top: 6px;
  color: var(--ubvq-muted, #666);
  line-height: 1.35;
}

/* ==================================================================
   v1.7.9 — Refinamento de interface
   ------------------------------------------------------------------
   Camada final de estilo do portal. Fica no fim do arquivo de
   propósito: as regras antigas continuam servindo de base e estas
   ajustam o que precisava mudar, sem reescrever o histórico.

   O que esta camada resolve:
    - ALINHAMENTO: o tema centraliza o conteúdo de Minha Conta, e o
      plugin nunca declarou alinhamento próprio. Formulário se lê pela
      margem esquerda, então declaramos explicitamente.
    - HIERARQUIA: rótulo deixa de competir com o dado (menor, peso 600,
      cor secundária); o conteúdo digitado é o que tem destaque.
    - FORMA: raio de 8px em campo e botão. A cápsula de 999px era o que
      mais dava aparência de template pronto. Para voltar atrás, basta
      trocar --ubvq-radius-control aqui embaixo.
    - ESTADOS: foco visível (inclusive por teclado), erro, desabilitado
      e :hover — nada disso existia.
   ================================================================== */

:root {
  --ubvq-radius-control: 8px;   /* campos e botões */
  /* Borda de controle própria: --ubvq-line existe desde a 1.6 como divisória
     (bege #d6cdb2) e ficaria pesada demais em volta de campo. */
  --ubvq-control-line: #e2ded3;
  --ubvq-control-line-soft: #eeebe2;
  --ubvq-ghost-hover: #f4f2ec;
  --ubvq-surface-sunk: #faf9f6;
  --ubvq-radius-card: 10px;     /* cards e painéis */
  --ubvq-field-height: 42px;
  --ubvq-focus-ring: 0 0 0 3px rgba(126, 113, 74, 0.18);
  --ubvq-label: #3d3a33;
}

/* ------------------------------------------------------------------
   1. Alinhamento — declarado por nós porque o tema centraliza tudo
   ------------------------------------------------------------------ */

.ubvq-subaccounts-panel,
.ubvq-subaccount-form,
.ubvq-quick-order,
.ubvq-card,
.ubvq-notify-card,
.ubvq-create-details,
.ubvq-orders-filters,
.ubvq-samuel-order-details {
  text-align: left;
}

/* ------------------------------------------------------------------
   2. Cards e cabeçalhos de seção
   ------------------------------------------------------------------ */

.ubvq-card,
.ubvq-create-details {
  border-radius: var(--ubvq-radius-card);
}

.ubvq-create-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 20px;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: -0.01em;
  border-bottom: 1px solid var(--ubvq-control-line);
  background: transparent;
  cursor: pointer;
}

.ubvq-create-details[open] > summary {
  margin-bottom: 4px;
}

.ubvq-form-head {
  align-items: flex-start;
  margin-bottom: 20px;
  padding-bottom: 16px;
}

.ubvq-form-head h4 {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 0 0 4px;
}

.ubvq-form-head p {
  margin: 0;
  font-size: 13px;
  color: var(--ubvq-muted, #6b6759);
  max-width: 62ch;
}

.ubvq-section-title h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.015em;
  margin: 0;
}

/* ------------------------------------------------------------------
   3. Grupos de campos (fieldset + legend)
   ------------------------------------------------------------------ */

.ubvq-field-group {
  border: 0;
  padding: 0;
  margin: 0 0 22px;
  min-width: 0;   /* fieldset não encolhe em grid sem isto */
}

.ubvq-field-group > legend {
  padding: 0;
  margin-bottom: 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ubvq-muted, #6b6759);
}

.ubvq-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
}

.ubvq-field-grid > p,
.ubvq-field-grid > .ubvq-subaccount-field {
  margin: 0;
  min-width: 0;
}

.ubvq-field-wide {
  grid-column: 1 / -1;
}

/* Os grids antigos (campos por tipo de conta) passam a seguir a mesma
   régua: duas colunas iguais, sem os spans por posição que existiam. */
.ubvq-subaccount-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
}

.ubvq-subaccount-grid p:nth-child(1),
.ubvq-subaccount-grid p:nth-child(2),
.ubvq-subaccount-grid p:nth-child(3),
.ubvq-subaccount-grid p:nth-child(4),
.ubvq-subaccount-grid p:nth-child(5) {
  grid-column: auto;
}

/* ------------------------------------------------------------------
   4. Campos: rótulo, controle, ajuda e estados
   ------------------------------------------------------------------ */

.ubvq-subaccounts-panel label,
.ubvq-subaccount-grid label,
.ubvq-field-grid label,
.ubvq-admin-row label,
.ubvq-notify-card label,
.ubvq-notify-field label,
.ubvq-orders-filters label {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0 0 5px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ubvq-label, #3d3a33);
  letter-spacing: 0;
}

.ubvq-req {
  color: var(--ubvq-brand, #7e714a);
  font-weight: 700;
}

.ubvq-opt {
  font-weight: 400;
  font-size: 11.5px;
  color: var(--ubvq-muted, #6b6759);
}

.ubvq-subaccounts-panel input[type="text"],
.ubvq-subaccounts-panel input[type="email"],
.ubvq-subaccounts-panel input[type="password"],
.ubvq-subaccounts-panel input[type="date"],
.ubvq-subaccounts-panel input[type="search"],
.ubvq-subaccounts-panel select,
.ubvq-field-grid input,
.ubvq-field-grid select,
.ubvq-admin-row input,
.ubvq-admin-row select,
.ubvq-subaccount-grid input,
.ubvq-subaccount-grid select,
.ubvq-notify-card textarea,
.ubvq-notify-field textarea {
  width: 100%;
  min-height: var(--ubvq-field-height);
  border: 1px solid var(--ubvq-control-line);
  border-radius: var(--ubvq-radius-control);
  padding: 9px 12px;
  background: #fff;
  color: inherit;
  font: inherit;
  font-size: 14px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ubvq-subaccounts-panel input:focus,
.ubvq-subaccounts-panel select:focus,
.ubvq-field-grid input:focus,
.ubvq-field-grid select:focus,
.ubvq-admin-row input:focus,
.ubvq-admin-row select:focus,
.ubvq-subaccount-grid input:focus,
.ubvq-subaccount-grid select:focus,
.ubvq-notify-card textarea:focus,
.ubvq-notify-field textarea:focus {
  border-color: var(--ubvq-brand, #7e714a);
  box-shadow: var(--ubvq-focus-ring);
  outline: none;
}

/* Só marca erro depois que a pessoa mexeu no campo — :invalid sozinho
   pintaria o formulário inteiro de vermelho antes do primeiro clique. */
.ubvq-subaccount-form input:not(:placeholder-shown):invalid,
.ubvq-subaccount-form input:focus:invalid {
  border-color: #a03528;
}

.ubvq-subaccounts-panel input::placeholder,
.ubvq-field-grid input::placeholder,
.ubvq-notify-card textarea::placeholder {
  color: #a8a294;
}

.ubvq-subaccounts-panel input:disabled,
.ubvq-subaccounts-panel select:disabled {
  background: #f5f3ee;
  color: var(--ubvq-muted, #6b6759);
  cursor: not-allowed;
}

.ubvq-subaccounts-panel small,
.ubvq-field-grid small,
.ubvq-admin-row small,
.ubvq-subaccount-grid small,
.ubvq-notify-card small,
.ubvq-notify-field small {
  display: block;
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.35;
  color: var(--ubvq-muted, #6b6759);
}

/* ------------------------------------------------------------------
   5. Barra de ações — fecha o formulário
   ------------------------------------------------------------------ */

.ubvq-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px -20px -20px;
  padding: 16px 20px;
  border-top: 1px solid var(--ubvq-control-line);
  background: var(--ubvq-surface-sunk);
  border-bottom-left-radius: var(--ubvq-radius-card);
  border-bottom-right-radius: var(--ubvq-radius-card);
}

.ubvq-required-note {
  margin-right: auto;
  font-size: 12.5px;
  color: var(--ubvq-muted, #6b6759);
}

.ubvq-form-actions .ubvq-primary-btn.button {
  margin-top: 0;
}

/* ------------------------------------------------------------------
   6. Botões
   ------------------------------------------------------------------ */

.ubvq-primary-btn.button,
.ubvq-secondary-btn.button,
.ubvq-small-btn.button,
.ubvq-switch-banner .button {
  border-radius: var(--ubvq-radius-control) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  transition: background-color 0.15s ease, box-shadow 0.15s ease !important;
}

.ubvq-primary-btn.button {
  padding: 11px 20px !important;
  font-size: 13.5px !important;
}

.ubvq-secondary-btn.button {
  padding: 10px 16px !important;
  font-size: 13.5px !important;
  background: transparent !important;
  color: var(--ubvq-brand-active, #554c31) !important;
  border: 1px solid var(--ubvq-control-line) !important;
}

.ubvq-secondary-btn.button:hover {
  background: var(--ubvq-ghost-hover) !important;
  color: var(--ubvq-brand-active, #554c31) !important;
}

.ubvq-small-btn.button {
  padding: 7px 11px !important;
  font-size: 12.5px !important;
}

.ubvq-primary-btn.button:focus-visible,
.ubvq-secondary-btn.button:focus-visible,
.ubvq-small-btn.button:focus-visible {
  outline: none !important;
  box-shadow: var(--ubvq-focus-ring) !important;
}

/* Ícone sozinho (baixar nota, "+") fica quadrado, do tamanho do toque. */
.ubvq-nfe-btn.button,
.ubvq-small-btn.button.ubvq-nfe-btn {
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0 !important;
  justify-content: center;
}

.ubvq-nfe-btn.button .ubvq-nfe-btn-text {
  display: none;
}

/* Na lista de pedidos da própria conta os botões são textuais: ali o
   rótulo volta, senão o ícone fica sem contexto no meio de "Ver"/"Pagar". */
.woocommerce-orders-table .ubvq-nfe-btn.button {
  width: auto;
  min-width: 0;
  height: auto;
  padding: 7px 11px !important;
}

.woocommerce-orders-table .ubvq-nfe-btn.button .ubvq-nfe-btn-text {
  display: inline;
}

/* ------------------------------------------------------------------
   7. Tabelas
   ------------------------------------------------------------------ */

.ubvq-subaccounts-panel table.shop_table th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ubvq-muted, #6b6759);
  background: var(--ubvq-surface-sunk);
  padding: 10px 12px;
  border-bottom: 1px solid var(--ubvq-control-line);
}

.ubvq-subaccounts-panel table.shop_table td {
  padding: 12px;
  font-size: 13.5px;
  vertical-align: middle;
  border-bottom: 1px solid var(--ubvq-control-line-soft);
}

.ubvq-subaccounts-panel table.shop_table tr:last-child td {
  border-bottom: 0;
}

.ubvq-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
  background: #f1efe9;
  color: #4a4740;
  border-color: #e2ded3;
}

.ubvq-status--pending,
.ubvq-status--on-hold {
  background: #fdf3e2;
  color: #8a5a12;
  border-color: #f0dcb8;
}

.ubvq-status--processing {
  background: #eaf0f7;
  color: #2c4f77;
  border-color: #cfdcec;
}

.ubvq-status--completed {
  background: #e9f2eb;
  color: #2f5a3e;
  border-color: #cfe2d5;
}

.ubvq-status--cancelled,
.ubvq-status--failed,
.ubvq-status--refunded {
  background: #f9ebe8;
  color: #8d2f23;
  border-color: #eed3cd;
}

/* ------------------------------------------------------------------
   8. Recolhíveis e respiro geral
   ------------------------------------------------------------------ */

.ubvq-subaccount-form details > summary,
.ubvq-optional-fields > summary {
  padding: 12px 0;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ubvq-brand-active, #554c31);
  border-top: 1px solid var(--ubvq-control-line);
  border-bottom: 0;
  background: transparent;
  cursor: pointer;
}

.ubvq-orders-filter-help {
  font-size: 12.5px;
  color: var(--ubvq-muted, #6b6759);
}

/* ------------------------------------------------------------------
   9. Telas estreitas
   ------------------------------------------------------------------ */

@media (max-width: 640px) {
  .ubvq-field-grid,
  .ubvq-subaccount-grid,
  .ubvq-admin-row {
    grid-template-columns: 1fr;
  }

  .ubvq-form-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .ubvq-form-actions .button {
    width: 100%;
    text-align: center;
  }

  .ubvq-required-note {
    margin: 4px 0 0;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ubvq-primary-btn.button,
  .ubvq-secondary-btn.button,
  .ubvq-small-btn.button,
  .ubvq-subaccounts-panel input,
  .ubvq-subaccounts-panel select {
    transition: none !important;
  }
}

/* ------------------------------------------------------------------
   10. Ajustes finais desta camada
   ------------------------------------------------------------------ */

/* O marcador do recolhível era um círculo cheio na cor da marca, que
   competia com o botão de ação. Vira um controle discreto. */
.ubvq-create-details > summary::after {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  background: var(--ubvq-ghost-hover);
  color: var(--ubvq-muted, #6b6759);
  font-size: 15px;
  font-weight: 600;
}

.ubvq-create-details > summary:hover::after {
  background: var(--ubvq-control-line);
}

/* Dentro do recolhível o formulário não tem cantos próprios: quem
   arredonda é o card de fora. */
.ubvq-create-details .ubvq-form-actions {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* Exceção proposital: a página de acesso restrito é uma mensagem curta,
   centralizada de propósito. A regra de alinhamento à esquerda desta
   camada não pode alcançá-la. */
.ubvq-restricted-page .ubvq-card {
  text-align: center;
}

/* Linha dupla sob o cabeçalho: o <summary> desta camada já traça a
   divisória, e o formulário de dentro trazia outra logo abaixo. */
.ubvq-create-details .ubvq-subaccount-form {
  border-top: 0;
}

/* Nas listas de pedidos, as duas ações não têm o mesmo peso: "+" abre o
   detalhe (secundária) e a nota é o que o cliente vem buscar (principal).
   Dar o mesmo preenchimento às duas obrigava a ler os ícones um a um. */
.ubvq-subaccount-orders-table .ubvq-small-btn.button {
  background: #fff !important;
  color: var(--ubvq-brand-active, #554c31) !important;
  border: 1px solid var(--ubvq-control-line) !important;
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ubvq-subaccount-orders-table .ubvq-small-btn.button:hover {
  background: var(--ubvq-ghost-hover) !important;
}

.ubvq-subaccount-orders-table td[data-title="Ações"] {
  display: table-cell;
  white-space: nowrap;
}

/* Célula de duas linhas na lista de pedidos: o responsável entra como
   sobrelinha discreta e a EMPRESA leva o destaque, que é por ela que se
   procura um pedido numa operação B2B. */
.ubvq-cell-person {
  display: block;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--ubvq-muted, #6b6759);
}

.ubvq-cell-company {
  display: block;
  margin-top: 1px;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

/* Sem empresa no pedido, o nome é a única informação da célula e assume o
   destaque — do contrário sobraria uma linha fraca e nada acima dela. */
.ubvq-cell-person--alone {
  font-size: 14.5px;
  font-weight: 700;
  color: inherit;
  letter-spacing: -0.01em;
}

.ubvq-subaccount-orders-table td[data-title="Local"] {
  white-space: nowrap;
}

/* Coluna de dinheiro: quebrar "R$ 5.363,00" em duas linhas atrapalha a
   leitura, e valores alinhados à direita com dígitos de largura fixa deixam
   comparar magnitudes correndo o olho pela coluna. */
.ubvq-subaccount-orders-table td[data-title="Total"],
.ubvq-subaccount-orders-table th:nth-child(7) {
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* Nome de duas palavras não deveria quebrar antes de a tabela apertar. */
.ubvq-subaccount-orders-table td[data-title="Nome"] {
  min-width: 165px;
}

@media (max-width: 760px) {
  /* No modo empilhado do WooCommerce cada célula vira uma linha: aí o
     alinhamento à direita e a largura mínima atrapalham. */
  .ubvq-subaccount-orders-table td[data-title="Total"] {
    text-align: left;
  }

  .ubvq-subaccount-orders-table td[data-title="Nome"] {
    min-width: 0;
  }
}
