/* Ciclo 1.3 — componentes estruturais APP. */

.dashboard-queues{display:grid;align-items:start;grid-template-columns:1fr 1fr;gap:var(--sa-space-3);margin:var(--sa-space-3) 0}.queue-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sa-space-2) 0;border-bottom:1px solid var(--sa-color-border);color:var(--sa-color-text);text-decoration:none}.queue-row>div{display:flex;flex-direction:column}.queue-row span:not(.status-pill){color:var(--sa-color-muted);font-size:var(--sa-text-xs)}.queue-row b{white-space:nowrap}.stock-risk{color:var(--sa-color-danger)}
.flow-step{padding:var(--sa-space-3);margin-bottom:var(--sa-space-3);border:1px solid var(--sa-color-border);box-shadow:0 8px 24px rgba(26,38,31,.05)}.flow-step>header{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:1rem}.flow-step h2{font-size:1.08rem;margin:0}.flow-step p{color:var(--sa-color-muted);margin:.2rem 0 0}.step-number{display:grid;place-items:center;flex:0 0 2rem;height:2rem;border-radius:50%;background:var(--sa-color-primary);color:var(--sa-color-surface);font-weight:800}.filter-bar{display:grid;grid-template-columns:minmax(200px,2fr) repeat(4,minmax(0,1fr));gap:.65rem}.selection-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;padding:.9rem 0}.server-product-list{border:1px solid var(--sa-color-border);border-radius:.8rem;overflow:hidden;min-height:5rem}.server-product-row{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--sa-color-border);cursor:pointer}.server-product-row:hover{background:var(--sa-color-bg)}.server-product-row span{display:flex;flex-direction:column}.server-product-row small{color:var(--sa-color-muted)}.server-product-row em{font-style:normal;font-size:var(--sa-text-xs);color:var(--sa-color-muted)}.pagination-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:1rem}.selected-products{background:var(--sa-color-bg);border-radius:.8rem;padding:1rem}.selected-products h3{font-size:.9rem}.selected-chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--sa-color-primary-soft);color:var(--sa-color-primary);padding:.45rem .65rem;border-radius:2rem;margin:.2rem;font-weight:700}.selected-chip button{border:0;background:transparent;font-size:1.15rem}.discount-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;align-items:end;max-width:680px}.discount-row label{font-weight:700}.mode-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1.25rem}.mode-choice legend{grid-column:1/-1;font-size:.88rem;font-weight:800}.mode-choice label{display:flex;align-items:flex-start;gap:.6rem;padding:.9rem;border:1px solid var(--sa-color-border);border-radius:.7rem;flex:1}.mode-choice span{display:flex;flex-direction:column}.mode-choice small{color:var(--sa-color-muted)}.info-callout{display:flex;gap:.8rem;padding:1rem;border:1px solid var(--sa-color-border);border-left:4px solid var(--sa-color-info);border-radius:.65rem;background:var(--sa-color-info-bg)}.form-section-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--sa-color-border);padding-bottom:var(--sa-space-2);margin-bottom:var(--sa-space-2)}.form-section-head h2{font-size:1.08rem}.product-search-add{display:grid;grid-template-columns:1fr auto;gap:.7rem;align-items:end;position:relative}.search-popover{position:absolute;z-index:20;top:100%;left:0;right:6rem;background:white;border:1px solid var(--sa-color-border);box-shadow:0 16px 35px rgba(20,38,27,.15);border-radius:.7rem;max-height:22rem;overflow:auto}.search-popover button{width:100%;border:0;border-bottom:1px solid var(--sa-color-border);background:white;padding:.8rem;text-align:left;display:flex;justify-content:space-between}.search-popover button:disabled{opacity:.65}.search-popover span{display:flex;flex-direction:column}.search-popover em{font-style:normal;font-size:var(--sa-text-xs)}.state-disponivel{color:var(--sa-color-success)}.state-outro_grupo,.state-unidade_incompativel{color:var(--sa-color-danger)}.member-list article{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--sa-color-border)}.member-list article>div{display:flex;flex-direction:column}.inline-error{color:var(--sa-color-danger);padding:1rem;font-weight:700}
@media(max-width:900px){.filter-bar{grid-template-columns:1fr 1fr}.dashboard-queues{grid-template-columns:1fr}}@media(max-width:600px){.filter-bar,.discount-row,.product-search-add{grid-template-columns:1fr}.mode-choice{grid-template-columns:1fr}.server-product-row{grid-template-columns:auto 1fr}.search-popover{right:0}.flow-step{padding:var(--sa-space-3)}}
/* Contratos globais APP; não aplicar ao portal B2B. */
:where(.sa-app) :focus-visible{outline:var(--sa-focus-width) solid var(--sa-focus-color);outline-offset:var(--sa-focus-offset)}
:where(.sa-app) .btn{min-height:var(--sa-control-h-default);height:auto;padding:8px 14px;border-radius:var(--sa-radius-sm);font-size:var(--sa-text-sm);font-weight:600;line-height:1.5;white-space:nowrap;transition:background-color var(--sa-motion-fast),border-color var(--sa-motion-fast)}
:where(.sa-app) .btn-sm{min-height:var(--sa-control-h-compact);padding:5px 10px}
:where(.sa-app) .btn i{margin-right:6px}
:where(.sa-app) .btn-primary{--bs-btn-color:var(--sa-color-surface);--bs-btn-bg:var(--sa-color-primary);--bs-btn-border-color:var(--sa-color-primary);--bs-btn-hover-color:var(--sa-color-surface);--bs-btn-hover-bg:var(--sa-color-primary-hover);--bs-btn-hover-border-color:var(--sa-color-primary-hover);--bs-btn-active-bg:var(--sa-color-primary-hover);--bs-btn-active-border-color:var(--sa-color-primary-hover);--bs-btn-disabled-bg:var(--sa-color-primary);--bs-btn-disabled-border-color:var(--sa-color-primary)}
:where(.sa-app) .btn-outline-primary{--bs-btn-color:var(--sa-color-primary);--bs-btn-border-color:var(--sa-color-primary);--bs-btn-hover-bg:var(--sa-color-primary);--bs-btn-hover-border-color:var(--sa-color-primary);--bs-btn-active-bg:var(--sa-color-primary);--bs-btn-active-border-color:var(--sa-color-primary)}
/* Ações dos módulos usam classes semânticas; btn-dark não recebe reinterpretação global. */
:where(.sa-app) .btn-light,:where(.sa-app) .btn-secondary,:where(.sa-app) .btn-outline-dark,:where(.sa-app) .registry-manager-head [data-close-dialog],:where(.sa-app) .registry-manager-head [data-close-movements]{--bs-btn-color:var(--sa-color-text);--bs-btn-bg:var(--sa-color-surface);--bs-btn-border-color:var(--sa-color-border);--bs-btn-hover-color:var(--sa-color-text);--bs-btn-hover-bg:var(--sa-color-neutral-bg);--bs-btn-hover-border-color:var(--sa-color-control-border);--bs-btn-active-color:var(--sa-color-text);--bs-btn-active-bg:var(--sa-color-neutral-bg);--bs-btn-active-border-color:var(--sa-color-control-border)}
:where(.sa-app) .btn-danger{--bs-btn-bg:var(--sa-color-danger);--bs-btn-border-color:var(--sa-color-danger);--bs-btn-hover-bg:var(--sa-color-danger);--bs-btn-hover-border-color:var(--sa-color-danger);--bs-btn-active-bg:var(--sa-color-danger);--bs-btn-active-border-color:var(--sa-color-danger);--bs-btn-disabled-bg:var(--sa-color-danger);--bs-btn-disabled-border-color:var(--sa-color-danger)}
:where(.sa-app) .btn:disabled,:where(.sa-app) .btn.disabled{cursor:not-allowed;opacity:.6}
:where(.sa-app) .icon-only{display:inline-flex;align-items:center;justify-content:center;width:var(--sa-control-h-default);padding:0;flex-shrink:0}
:where(.sa-app) .icon-only i{margin:0}
:where(.sa-app) .form-label{display:block;margin-bottom:6px;color:var(--sa-color-text);font-size:var(--sa-text-sm);font-weight:600}
:where(.sa-app) .form-control,:where(.sa-app) .form-select{height:var(--sa-control-h-default);min-height:var(--sa-control-h-default);padding:8px 12px;border:1px solid var(--sa-color-control-border);border-radius:var(--sa-radius-sm);background-color:var(--sa-color-surface);color:var(--sa-color-text);font-size:var(--sa-text-base);line-height:1.5}
:where(.sa-app) .form-select{padding-right:32px}
:where(.sa-app) textarea.form-control{height:auto;min-height:96px;resize:vertical}
:where(.sa-app) .form-control:focus,:where(.sa-app) .form-select:focus{border-color:var(--sa-color-primary);box-shadow:var(--sa-focus-ring)}
:where(.sa-app) .form-control:disabled,:where(.sa-app) .form-select:disabled,:where(.sa-app) .form-control[readonly]{background-color:var(--sa-color-neutral-bg);color:var(--sa-color-muted)}
:where(.sa-app) .form-control.is-invalid,:where(.sa-app) .form-select.is-invalid,:where(.sa-app) [aria-invalid=true]{border-color:var(--sa-color-danger)}
:where(.sa-app) .invalid-feedback{color:var(--sa-color-danger);font-size:var(--sa-text-sm)}
:where(.sa-app) .form-text,:where(.sa-app) .field-help,:where(.sa-app) .form-check-label{font-size:var(--sa-text-sm)}
:where(.sa-app) .form-text,:where(.sa-app) .field-help{color:var(--sa-color-muted);margin:6px 0 0}
:where(.sa-app) .form-check-input:checked{background-color:var(--sa-color-primary);border-color:var(--sa-color-primary)}
:where(.sa-app) .select2-container .select2-selection--single{min-height:var(--sa-control-h-default);border:1px solid var(--sa-color-control-border);border-radius:var(--sa-radius-sm);font-size:var(--sa-text-base)}
:where(.sa-app) .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:calc(var(--sa-control-h-default) - 2px);padding-left:12px;color:var(--sa-color-text)}
:where(.sa-app) .select2-container--default .select2-selection--single .select2-selection__arrow{height:calc(var(--sa-control-h-default) - 2px)}
:where(.sa-app) .select2-container--focus .select2-selection,:where(.sa-app) .select2-container--open .select2-selection{border-color:var(--sa-color-primary);box-shadow:var(--sa-focus-ring)}
:where(.sa-app) .select2-dropdown{border-color:var(--sa-color-control-border);font-size:var(--sa-text-base);box-shadow:var(--sa-shadow-overlay)}
:where(.sa-app) .select2-search--dropdown .select2-search__field{min-height:var(--sa-control-h-default);border:1px solid var(--sa-color-control-border);border-radius:var(--sa-radius-sm);padding:8px}
:where(.sa-app) .select2-results__option{padding:10px 12px}
:where(.sa-app) .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--sa-color-primary);color:var(--sa-color-surface)}
:where(.sa-app) .select2-container--default.select2-container--disabled .select2-selection--single{background:var(--sa-color-neutral-bg)}
:where(.sa-app) .card{background:var(--sa-color-surface);border:1px solid var(--sa-color-border);border-radius:var(--sa-radius-md);box-shadow:var(--sa-shadow-sm)}
:where(.sa-app) .form-card,:where(.sa-app) .card-body{padding:var(--sa-space-3)}
:where(.sa-app) .table-responsive{position:relative;width:100%;max-width:100%;overflow-x:auto}
:where(.sa-app) .table{width:100%;margin:0;--bs-table-bg:transparent;--bs-table-color:var(--sa-color-text);--bs-table-border-color:var(--sa-color-border);font-size:var(--sa-text-sm)}
:where(.sa-app) .table thead th{padding:var(--sa-space-2) var(--sa-space-3);background:var(--sa-color-neutral-bg);color:var(--sa-color-text);border-color:var(--sa-color-border);font-size:var(--sa-text-xs);font-weight:600;white-space:nowrap;vertical-align:middle}
:where(.sa-app) .table tbody td,:where(.sa-app) .table tfoot td,:where(.sa-app) .table tfoot th{padding:var(--sa-space-2) var(--sa-space-3);vertical-align:middle;line-height:1.5}
:where(.sa-app) .table tbody tr:nth-child(even){background:var(--sa-color-bg)}
:where(.sa-app) .table tbody tr:hover,:where(.sa-app) .table tbody tr:focus-within{background:var(--sa-color-neutral-bg)}
:where(.sa-app) .table .form-control,:where(.sa-app) .table .form-select{height:var(--sa-control-h-compact);min-height:var(--sa-control-h-compact);padding-block:5px}
:where(.sa-app) .table code{color:var(--sa-color-primary);font-size:var(--sa-text-xs)}
:where(.sa-app) .number,:where(.sa-app) .text-end{font-variant-numeric:tabular-nums}
:where(.sa-app) .action-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
/* Classes semânticas disponíveis para migração contextual, sem inferir status pelo texto. */
:where(.sa-app) .status-pill,:where(.sa-app) .sa-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--sa-radius-sm);background:var(--sa-color-neutral-bg);color:var(--sa-color-neutral);font-size:var(--sa-text-xs);font-weight:600;line-height:1.4}
:where(.sa-app) .status-tone-neutral,:where(.sa-app) .status-rascunho{background:var(--sa-color-neutral-bg);color:var(--sa-color-neutral)}
:where(.sa-app) .status-tone-warning,:where(.sa-app) .status-aguardando_analise,:where(.sa-app) .payment-unpaid{background:var(--sa-color-warning-bg);color:var(--sa-color-warning)}
:where(.sa-app) .status-tone-info,:where(.sa-app) .status-confirmado,:where(.sa-app) .status-em_separacao,:where(.sa-app) .status-em_transporte{background:var(--sa-color-info-bg);color:var(--sa-color-info)}
:where(.sa-app) .status-tone-success,:where(.sa-app) .status-faturado,:where(.sa-app) .status-entregue,:where(.sa-app) .payment-paid{background:var(--sa-color-success-bg);color:var(--sa-color-success)}
:where(.sa-app) .status-tone-danger,:where(.sa-app) .status-cancelado{background:var(--sa-color-danger-bg);color:var(--sa-color-danger)}
:where(.sa-app) .alert{padding:var(--sa-space-2) var(--sa-space-3);border-radius:var(--sa-radius-sm);font-size:var(--sa-text-base)}
:where(.sa-app) .alert-success{--bs-alert-color:var(--sa-color-success);--bs-alert-bg:var(--sa-color-success-bg);--bs-alert-border-color:var(--sa-color-success)}
:where(.sa-app) .alert-warning{--bs-alert-color:var(--sa-color-warning);--bs-alert-bg:var(--sa-color-warning-bg);--bs-alert-border-color:var(--sa-color-warning)}
:where(.sa-app) .alert-danger{--bs-alert-color:var(--sa-color-danger);--bs-alert-bg:var(--sa-color-danger-bg);--bs-alert-border-color:var(--sa-color-danger)}
:where(.sa-app) .alert-info{--bs-alert-color:var(--sa-color-info);--bs-alert-bg:var(--sa-color-info-bg);--bs-alert-border-color:var(--sa-color-info)}
:where(.sa-app) .pagination{--bs-pagination-color:var(--sa-color-text);--bs-pagination-active-bg:var(--sa-color-primary);--bs-pagination-active-border-color:var(--sa-color-primary);--bs-pagination-focus-box-shadow:var(--sa-focus-ring)}
:where(.sa-app) .page-link{min-height:var(--sa-control-h-default);display:flex;align-items:center}
:where(.sa-app) .empty-state{padding:var(--sa-space-4);text-align:center;color:var(--sa-color-muted);font-size:var(--sa-text-sm)}
:where(.sa-app) .sa-loader{display:flex;align-items:center;gap:8px;color:var(--sa-color-muted);min-height:var(--sa-control-h-default)}
:where(.sa-app) .sa-loader::before{content:"";width:16px;height:16px;border:2px solid var(--sa-color-border);border-top-color:var(--sa-color-primary);border-radius:50%;animation:sa-loading 800ms linear infinite}
@keyframes sa-loading{to{transform:rotate(360deg)}}
:where(.sa-app) .modal-content,:where(.sa-app) .registry-manager-dialog{border:1px solid var(--sa-color-border);border-radius:var(--sa-radius-lg);background:var(--sa-color-surface);box-shadow:var(--sa-shadow-overlay)}
:where(.sa-app) .modal-header,:where(.sa-app) .modal-footer{padding:16px;border-color:var(--sa-color-border)}
:where(.sa-app) .modal-body{padding:var(--sa-space-3)}
:where(.sa-app) .modal-title{font-size:var(--sa-title-section)}
:where(.sa-app) .btn-close{min-width:24px;min-height:24px}
:where(.sa-app) .registry-manager-dialog{width:min(1100px,94vw);height:min(780px,90dvh);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:0;overflow:hidden}
:where(.sa-app) .registry-manager-dialog::backdrop{background:rgba(16,24,40,.55)}
:where(.sa-app) .registry-manager-head{height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--sa-color-surface);border-bottom:1px solid var(--sa-color-border);color:var(--sa-color-text)}
:where(.sa-app) .registry-manager-head h2{margin:0;font-size:var(--sa-title-section)}
:where(.sa-app) .registry-manager-dialog iframe{display:block;width:100%;height:calc(100% - 64px);border:0;background:var(--sa-color-surface)}
:where(.sa-app) .bulk-commercial-dialog [data-bulk-form]{height:calc(100% - 64px);overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}
:where(.sa-app) .movement-dialog-body{height:calc(100% - 64px)}
:where(.sa-app) .sa-alert{padding:24px;border-radius:var(--sa-radius-lg);font-family:var(--sa-font-sans)}
:where(.sa-app) .sa-alert .swal2-title{font-size:var(--sa-title-section)}
:where(.sa-app) .sa-alert .swal2-html-container{font-size:var(--sa-text-base)}
:where(.sa-app) .sa-alert .swal2-actions{gap:8px}
:where(.sa-app) .sa-confirm-dark,:where(.sa-app) .sa-confirm-primary,:where(.sa-app) .sa-confirm-danger{min-height:var(--sa-control-h-default);padding:8px 16px;border:1px solid var(--sa-color-border);border-radius:var(--sa-radius-sm);font-size:var(--sa-text-sm);font-weight:600}
:where(.sa-app) .sa-confirm-primary{background:var(--sa-color-primary);color:var(--sa-color-surface);border-color:var(--sa-color-primary)}
/* Hook legado usado por Voltar/Fechar em confirmações destrutivas. */
:where(.sa-app) .sa-confirm-dark{background:var(--sa-color-neutral-bg);color:var(--sa-color-text)}
:where(.sa-app) .sa-confirm-danger{background:var(--sa-color-danger);color:var(--sa-color-surface);border-color:var(--sa-color-danger)}
@media(max-width:991.98px){
  :where(.sa-app) .btn,:where(.sa-app) .form-control,:where(.sa-app) .form-select{min-height:var(--sa-control-h-touch)}
  :where(.sa-app) .icon-only{width:var(--sa-control-h-touch)}
  :where(.sa-app) .form-control,:where(.sa-app) .form-select,:where(.sa-app) .input-group-sm>.form-control,:where(.sa-app) .input-group-sm>.form-select{font-size:var(--sa-text-touch)}
  :where(.sa-app) .select2-search--dropdown .select2-search__field{font-size:var(--sa-text-touch);min-height:var(--sa-control-h-touch)}
  :where(.sa-app) .select2-container .select2-selection--single{min-height:var(--sa-control-h-touch);font-size:var(--sa-text-touch)}
  :where(.sa-app) .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:calc(var(--sa-control-h-touch) - 2px)}
  :where(.sa-app) .select2-container--default .select2-selection--single .select2-selection__arrow{height:calc(var(--sa-control-h-touch) - 2px)}
  :where(.sa-app) .table .form-control,:where(.sa-app) .table .form-select{min-height:var(--sa-control-h-touch)}
}

/* Movement actions share the product navigation controls and wrap at touch widths. */
.inventory-movement-header{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.inventory-movement-controls{width:100%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.inventory-movement-controls .page-actions{margin-left:auto;flex-wrap:wrap}
.inventory-movement-header .page-subtitle{overflow-wrap:anywhere}
.inventory-movement-controls .product-record-navigation{flex-wrap:wrap}
