/* ==========================================================================
   admin.css — painel administrativo (grid de funcionários + empresas/filiais)
   Depende de style.css e flow.css. Carregar depois de ambos.
   ========================================================================== */

.admin-shell {
  max-width: 1200px;
}

.admin-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.admin-tab {
  background: transparent;
  border: none;
  color: rgba(255,255,255,.6);
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: .02em;
  padding: 10px 4px;
  margin-right: 24px;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: var(--transition);
}
.admin-tab:hover { color: #fff; }
.admin-tab.is-active {
  color: #fff;
  border-bottom-color: var(--blue-2);
}

.admin-toolbar {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 18px;
}
.admin-toolbar input[type="text"],
.admin-toolbar select {
  border: 2px solid rgba(255,255,255,.12);
  background: rgba(8,14,28,.55);
  color: #fff;
  border-radius: 10px;
  padding: 10px 14px;
  font: inherit;
  font-size: .92rem;
}
.admin-toolbar input[type="text"] { flex: 1; min-width: 200px; }
.admin-toolbar input::placeholder { color: rgba(255,255,255,.4); }

/* Agrupamento visual dos filtros por "o que filtram", em vez de uma
   fileira única e plana de campos sem hierarquia */
.admin-filter-groups {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: flex-end;
  margin-bottom: 14px;
}
.admin-filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.admin-filter-group-label {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(255,255,255,.45);
  font-weight: 700;
}
.admin-filter-group-fields {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.admin-filter-group-fields input[type="text"],
.admin-filter-group-fields select {
  border: 2px solid rgba(255,255,255,.12);
  background: rgba(8,14,28,.55);
  color: #fff;
  border-radius: 10px;
  padding: 9px 12px;
  font: inherit;
  font-size: .88rem;
  min-width: 160px;
}
.admin-filter-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-left: auto;
}
.admin-filter-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  font-size: .82rem;
  color: rgba(255,255,255,.55);
}
.admin-clear-filters-btn {
  background: transparent;
  border: none;
  color: var(--blue-2);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 0;
}
.admin-clear-filters-btn:hover { color: #fff; text-decoration: underline; }

/* Linha divisória de grupo (empresa/filial) dentro da tabela de funcionários */
.admin-group-row td {
  background: rgba(63,124,255,.08);
  color: rgba(255,255,255,.75);
  font-weight: 700;
  font-size: .82rem;
  padding: 8px 14px;
  border-top: 1px solid rgba(63,124,255,.25);
  border-bottom: 1px solid rgba(63,124,255,.25);
}

/* Blocos de formulário (mestre-detalhe): separa visualmente "dados
   principais" de "itens filhos" dentro do mesmo modal */
.admin-form-block {
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 18px;
  background: rgba(255,255,255,.02);
}
.admin-form-block-title {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: .02em;
  color: #fff;
  margin: 0 0 12px;
}
.admin-pending-note {
  font-size: .82rem;
  color: var(--blue-2);
  background: rgba(63,124,255,.1);
  border: 1px solid rgba(63,124,255,.25);
  border-radius: 8px;
  padding: 8px 12px;
  margin: 10px 0;
}

/* Chips de tamanhos/cores (substitui texto "separado por vírgula") */
.admin-chip-input {
  border: 2px solid rgba(255,255,255,.12);
  background: rgba(8,14,28,.55);
  border-radius: 10px;
  padding: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.admin-chip-input input {
  flex: 1;
  min-width: 100px;
  background: transparent;
  border: none;
  color: #fff;
  font: inherit;
  font-size: .88rem;
  padding: 4px;
}
.admin-chip-input input:focus { outline: none; }
.admin-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(63,124,255,.18);
  border: 1px solid rgba(63,124,255,.35);
  color: #fff;
  border-radius: 999px;
  padding: 4px 6px 4px 12px;
  font-size: .82rem;
  white-space: nowrap;
}
.admin-chip button {
  background: transparent;
  border: none;
  color: rgba(255,255,255,.7);
  cursor: pointer;
  font-size: .9rem;
  line-height: 1;
  padding: 2px 4px;
}
.admin-chip button:hover { color: #ff8a8a; }
.admin-chip-hint {
  font-size: .75rem;
  color: rgba(255,255,255,.45);
  margin: 4px 0 0;
}

@media (max-width: 640px) {
  .admin-filter-groups { flex-direction: column; align-items: stretch; }
  .admin-filter-group-fields { flex-direction: column; }
  .admin-filter-group-fields input[type="text"],
  .admin-filter-group-fields select { min-width: 0; width: 100%; }
  .admin-filter-actions { margin-left: 0; width: 100%; justify-content: flex-end; }

  .admin-toolbar { flex-direction: column; align-items: stretch; }
  .admin-toolbar input[type="text"],
  .admin-toolbar select,
  .admin-toolbar .btn,
  .admin-toolbar .btn-outline,
  .admin-toolbar .admin-import-btn { width: 100%; min-width: 0; }
}

.admin-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
}
table.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .88rem;
  min-width: 760px;
}
.admin-table th {
  text-align: left;
  padding: 12px 14px;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: .78rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.55);
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.admin-table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  color: rgba(233,240,255,.9);
  vertical-align: middle;
}
.admin-table tr:last-child td { border-bottom: none; }
.admin-table tr:hover td { background: rgba(63,124,255,.06); }

.admin-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
}
.admin-badge.status-pending_measurement { background: rgba(255,215,0,.15); color: #ffd700; }
.admin-badge.status-pending_prescription { background: rgba(63,124,255,.18); color: #7fa8ff; }
.admin-badge.status-completed { background: rgba(52,211,153,.15); color: #34d399; }

/* Status do pedido (criado / em análise / produção / finalizado) */
.admin-badge.order-criado { background: rgba(255,255,255,.1); color: rgba(255,255,255,.75); }
.admin-badge.order-em_analise { background: rgba(255,215,0,.15); color: #ffd700; }
.admin-badge.order-producao { background: rgba(63,124,255,.2); color: #7fa8ff; }
.admin-badge.order-finalizado { background: rgba(52,211,153,.15); color: #34d399; }

.admin-order-select {
  background: rgba(8,14,28,.7);
  color: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 5px 8px;
  font-size: .78rem;
  font-weight: 600;
  cursor: pointer;
}
.admin-order-select:focus { outline: none; border-color: var(--blue-2); }

/* Log de auditoria */
.admin-audit-list {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}
.admin-audit-entry {
  font-size: .8rem;
  color: rgba(255,255,255,.7);
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  line-height: 1.5;
}
.admin-audit-entry:last-child { border-bottom: none; }
.admin-audit-entry .who { color: var(--blue-2); font-weight: 700; }
.admin-audit-entry .when { color: rgba(255,255,255,.45); font-size: .74rem; }

.admin-link-btn {
  background: transparent;
  border: 1px solid var(--line);
  color: #7fa8ff;
  border-radius: 8px;
  padding: 8px 14px;
  min-height: 36px;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.admin-link-btn:hover { border-color: var(--blue-2); background: rgba(63,124,255,.12); }

@media (max-width: 600px) {
  .admin-link-btn {
    padding: 10px 14px;
    min-height: 40px; /* alvo de toque confortável no celular */
    font-size: .82rem;
  }
  .admin-row-actions { gap: 8px; }
}

.admin-empty {
  text-align: center;
  padding: 50px 20px;
  color: rgba(255,255,255,.5);
  font-size: .92rem;
}

/* --------------------------------------------------------------------
   Login Microsoft 365
-------------------------------------------------------------------- */
.admin-ms-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  color: #1f1f1f;
  border: none;
  border-radius: 8px;
  padding: 12px 20px;
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
}
.admin-ms-btn:hover { background: #f3f3f3; }
.admin-ms-btn img { width: 20px; height: 20px; }

.admin-account-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  padding: 10px 16px;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: .85rem;
  color: rgba(255,255,255,.7);
}
.admin-account-bar button {
  background: transparent;
  border: 1px solid var(--line);
  color: rgba(255,255,255,.7);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: .78rem;
  cursor: pointer;
}

/* --------------------------------------------------------------------
   Barra de ações por aba (novo item + importar Excel)
-------------------------------------------------------------------- */
.admin-import-btn {
  position: relative;
  overflow: hidden;
}
.admin-import-btn input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.admin-row-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

/* --------------------------------------------------------------------
   Modal genérico de CRUD (Empresa / Filial / Marca / Modelo)
-------------------------------------------------------------------- */
.admin-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5,9,20,.75);
  backdrop-filter: blur(4px);
  z-index: 210;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 40px 20px;
}
.admin-modal-box {
  width: 100%;
  max-width: 640px;
  background: linear-gradient(135deg, rgba(50,65,100,.9) 0%, rgba(15,25,50,.97) 100%);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  box-shadow: var(--shadow-lg);
  padding: 28px;
  margin-bottom: 40px; /* garante espaço abaixo do botão Salvar ao rolar */
}
.admin-modal-box h2 {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 1.4rem;
  color: #fff;
  margin: 0 0 18px;
}

@media (max-width: 680px) {
  .admin-modal-overlay { padding: 0; }
  .admin-modal-box {
    max-width: none;
    min-height: 100vh;
    border-radius: 0;
    margin-bottom: 0;
    padding: 20px;
  }
}

/* Linha de "adicionar item" dentro dos modais mestre-detalhe
   (nova filial / novo modelo) — 2 colunas no desktop, empilha no mobile */
.admin-inline-add-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 16px;
}
@media (max-width: 560px) {
  .admin-inline-add-grid { grid-template-columns: 1fr; }
}

/* Variante com número de campos variável (3 campos + botão) — cada item
   nunca fica menor que 130px; quebra linha sozinha em telas estreitas. */
.admin-inline-add-grid-auto {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
  align-items: flex-end;
  margin-top: 16px;
}

/* Formulário de "novo modelo" — Modelo fica em linha própria (título acima);
   esta grade é só para Tamanhos/Cores/Botão, com bem mais espaço cada. */
.admin-modelo-add-grid {
  display: grid;
  grid-template-columns: 1.3fr 1.3fr auto;
  gap: 10px;
  align-items: flex-end;
  margin-top: 8px;
}
@media (max-width: 640px) {
  .admin-modelo-add-grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------
   Importação em lote — resultado
-------------------------------------------------------------------- */
.admin-import-result {
  margin-top: 12px;
  font-size: .85rem;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--line);
}
.admin-import-result ul {
  margin: 8px 0 0;
  padding-left: 18px;
  color: #ffb0b0;
}

/* --------------------------------------------------------------------
   Painel de edição (foto + pontos arrastáveis)
-------------------------------------------------------------------- */
.admin-detail-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5,9,20,.75);
  backdrop-filter: blur(4px);
  z-index: 200;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 40px 16px;
}
.admin-detail-panel {
  width: 100%;
  max-width: 640px;
  background: linear-gradient(135deg, rgba(50,65,100,.9) 0%, rgba(15,25,50,.97) 100%);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  box-shadow: var(--shadow-lg);
  padding: 30px;
}
@media (max-width: 600px) {
  .admin-detail-panel { padding: 20px; border-radius: 16px; }
  .admin-detail-overlay { padding: 0; align-items: stretch; }
  .admin-detail-panel { max-width: none; min-height: 100vh; border-radius: 0; }
}

.admin-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
}
.admin-detail-header h2 {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 1.6rem;
  color: #fff;
  margin: 0;
}
.admin-detail-sub {
  font-size: .85rem;
  color: rgba(255,255,255,.55);
  margin-top: 4px;
}
.admin-close-btn {
  background: rgba(255,255,255,.08);
  border: none;
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 1.1rem;
  cursor: pointer;
  flex-shrink: 0;
}
.admin-close-btn:hover { background: rgba(255,255,255,.16); }

.admin-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  margin-bottom: 20px;
  font-size: .88rem;
}
.admin-info-grid dt {
  color: rgba(255,255,255,.5);
  font-weight: 600;
}
.admin-info-grid dd {
  margin: 2px 0 0;
  color: #fff;
  font-weight: 600;
}

.admin-prescription-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue-2);
  font-weight: 700;
  font-size: .88rem;
  margin-bottom: 20px;
}

.admin-save-row {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.admin-save-row .btn,
.admin-save-row .btn-outline {
  flex: 1;
  min-height: 46px; /* alvo de toque confortável */
}
@media (max-width: 380px) {
  .admin-save-row { flex-direction: column; }
}

/* --------------------------------------------------------------------
   Grupo "Validade do link" — dentro do formulário de nova filial
-------------------------------------------------------------------- */
.admin-validity-group {
  background: rgba(63,124,255,.08);
  border: 1px solid rgba(63,124,255,.25);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 4px;
}
.admin-validity-title {
  font-weight: 700;
  font-size: .85rem;
  color: #fff;
  margin: 0 0 4px;
}
.admin-validity-hint {
  font-size: .78rem;
  color: rgba(255,255,255,.55);
  margin: 0 0 12px;
  line-height: 1.4;
}

/* --------------------------------------------------------------------
   Grupo "Link de cadastro" — dentro de cada filial já existente
-------------------------------------------------------------------- */
.admin-link-group {
  background: rgba(52,211,153,.06);
  border: 1px solid rgba(52,211,153,.25);
  border-radius: 10px;
  padding: 10px 12px;
  margin-top: 12px;
}
.admin-link-group-label {
  font-size: .76rem;
  font-weight: 700;
  color: #34d399;
  margin-bottom: 8px;
}
.admin-link-group-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.admin-link-url {
  flex: 1;
  min-width: 180px;
  font-size: .78rem;
  color: rgba(255,255,255,.75);
  background: rgba(0,0,0,.25);
  border-radius: 6px;
  padding: 6px 10px;
  /* URL curta com reticências — o link completo vai pelo botão Copiar
     (e aparece no title ao passar o mouse); sem barra de rolagem. */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-link-copy-btn {
  width: auto;
  padding: 6px 14px;
  font-size: .78rem;
  min-height: 0;
}

/* --------------------------------------------------------------------
   Empresa → link de cadastro → filiais (modal "Editar empresa")
   - empresa sem filiais: região "Link de cadastro da empresa" ativa
   - empresa com filiais: região desativada, link só em cada filial
-------------------------------------------------------------------- */
.admin-form-block-title + .admin-inline-add-grid { margin-top: 0; }

/* Campos de data com o mesmo visual dos campos de texto (antes ficavam no
   estilo nativo branco do navegador). */
.admin-modal-box .flow-field input[type="date"] {
  width: 100%;
  border: 2px solid rgba(255,255,255,.12);
  background: rgba(8,14,28,.55);
  color: #fff;
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  font-size: 1rem;
  color-scheme: dark;
}
.admin-modal-box .flow-field input[type="date"]:disabled { opacity: .45; }

.admin-req { color: #ff8a8a; font-weight: 600; font-size: .72rem; margin-left: 4px; }
.admin-opt { color: rgba(255,255,255,.45); font-weight: 500; font-size: .72rem; margin-left: 4px; }

.admin-link-group-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.admin-link-group-head .admin-link-group-label { margin-bottom: 0; }

.admin-link-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.admin-link-row .admin-link-url { min-width: 0; padding: 8px 10px; }
.admin-link-url.is-struck { text-decoration: line-through; color: rgba(255,255,255,.4); }
.admin-link-copy-btn:disabled { opacity: .4; cursor: not-allowed; }

.admin-link-badge {
  font-size: .66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(52,211,153,.15);
  color: #34d399;
  white-space: nowrap;
}
.admin-link-badge.is-warn { background: rgba(251,191,36,.15); color: #fbbf24; }
.admin-link-badge.is-off  { background: rgba(255,97,97,.15);  color: #ff8a8a; }

.admin-link-meta {
  font-size: .74rem;
  color: rgba(255,255,255,.55);
  margin: 8px 0 0;
}
.admin-link-meta .admin-link-btn { font-size: .74rem; }

.admin-link-pending {
  margin-top: 10px;
  font-size: .78rem;
  color: rgba(255,255,255,.6);
  background: rgba(0,0,0,.25);
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}

.admin-lock-note,
.admin-warn-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: .8rem;
  line-height: 1.5;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 12px;
}
.admin-lock-note { color: #c9d9ff; background: rgba(63,124,255,.1); border: 1px solid rgba(63,124,255,.3); }
.admin-warn-note { color: #f6deb0; background: rgba(251,191,36,.08); border: 1px solid rgba(251,191,36,.3); margin: 12px 0 0; }
.admin-lock-note b, .admin-warn-note b { color: #fff; }

/* Região desativada (empresa com filiais) */
.admin-company-link.is-disabled {
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.02) 0 10px, transparent 10px 20px);
}
.admin-company-link.is-disabled .admin-form-block-title { color: rgba(255,255,255,.55); }

/* Cartão de cada filial */
.admin-filial-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
  background: rgba(255,255,255,.02);
}
.admin-filial-card.is-pending { border-style: dashed; }
.admin-filial-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 10px;
}
.admin-filial-head strong { color: #fff; }
.admin-filial-head small { display: block; color: rgba(255,255,255,.55); font-size: .76rem; margin-top: 3px; }
.admin-nowrap { white-space: nowrap; }
.admin-link-actions { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; }

/* Formulário "Cadastrar filial" / "Editar filial" */
.admin-filial-form {
  border: 1.5px solid var(--blue, #3f7cff);
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 10px;
  background: rgba(63,124,255,.07);
}
.admin-filial-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}
.admin-filial-form-actions .btn { width: auto; }

.admin-add-filial-btn {
  width: 100%;
  min-height: 44px;
  border-radius: 12px;
  border: 1.5px solid var(--blue, #3f7cff);
  background: rgba(63,124,255,.15);
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.admin-add-filial-btn:hover { background: rgba(63,124,255,.25); }

@media (max-width: 560px) {
  .admin-link-row { flex-wrap: wrap; }
  .admin-link-row .admin-link-url { flex-basis: 100%; }
  .admin-filial-form-actions { flex-direction: column-reverse; }
}

/* Com 4 abas, a fileira passa da largura do celular e empurrava a página
   inteira para o lado — rola só a fileira de abas. */
.admin-tabs { overflow-x: auto; scrollbar-width: none; }
.admin-tabs::-webkit-scrollbar { display: none; }
.admin-tab { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 700px) {
  .admin-tab { margin-right: 10px; font-size: 1rem; }
}

/* --------------------------------------------------------------------
   Pedidos ao laboratório (Master Express / mAsk)
-------------------------------------------------------------------- */
.lab-connection {
  font-size: .88rem;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  color: rgba(233,240,255,.85);
  margin-bottom: 18px;
  line-height: 1.5;
}
.lab-connection.is-ok   { border-color: rgba(52,211,153,.4);  background: rgba(52,211,153,.08); }
.lab-connection.is-warn { border-color: rgba(251,191,36,.4);  background: rgba(251,191,36,.08); }
.lab-connection.is-off  { border-color: rgba(255,97,97,.4);   background: rgba(255,97,97,.08); }

#lab-import-result { margin: 0 0 16px; }
#lab-import-result ul { color: #fcd98a; }

.lab-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.lab-filter {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--line);
  color: rgba(233,240,255,.75);
  border-radius: 999px;
  padding: 8px 14px;
  min-height: 38px;
  font: inherit;
  font-size: .84rem;
  font-weight: 700;
  cursor: pointer;
}
.lab-filter span { opacity: .65; margin-left: 4px; }
.lab-filter.is-active { background: rgba(63,124,255,.2); border-color: var(--blue-2); color: #fff; }

.lab-ready   { background: rgba(63,124,255,.18); color: #7fa8ff; }
.lab-invalid { background: rgba(255,97,97,.15);  color: #ff8a8a; }
.lab-sent    { background: rgba(52,211,153,.15); color: #34d399; }
.lab-check   { background: rgba(251,191,36,.15); color: #fbbf24; }

.lab-table td { vertical-align: top; }
.lab-row { cursor: pointer; }
.lab-material { max-width: 240px; }
.lab-pend { font-size: .76rem; margin-top: 6px; max-width: 260px; }
.lab-pend.is-error { color: #ffb0b0; }
.admin-link-btn.lab-danger, .btn-outline.lab-danger { color: #ff8a8a; }
.btn-outline.lab-danger:hover { border-color: #ff8a8a; }

.lab-msgs { margin: 0; padding-left: 18px; font-size: .84rem; line-height: 1.5; }
.lab-msgs .is-error { color: #ffb0b0; }
.lab-msgs .is-warn  { color: #fcd98a; }

/* Formulário da OS (painel largo, seções no estilo da tela do mAsk) */
.lab-form-panel { max-width: 980px; }
.lab-section {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 16px 16px;
  margin: 0 0 14px;
  background: rgba(255,255,255,.03);
  min-width: 0;
}
.lab-section legend {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #7fa8ff;
  padding: 0 6px;
}
.lab-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px 14px; }
.lab-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lab-field.lab-wide { grid-column: span 2; }
.lab-field span { font-size: .76rem; font-weight: 700; color: rgba(233,240,255,.7); }
.lab-field input, .lab-field select, .lab-eye-table input, .lab-eye-table select {
  width: 100%;
  min-width: 0;
  border: 2px solid rgba(255,255,255,.12);
  background: rgba(8,14,28,.55);
  color: #fff;
  border-radius: 10px;
  padding: 9px 11px;
  font: inherit;
  font-size: .9rem;
  min-height: 42px;
}
.lab-field select option, .lab-eye-table select option { background: #0f1a33; color: #fff; }
.lab-field input:focus, .lab-field select:focus, .lab-eye-table input:focus, .lab-eye-table select:focus { outline: none; border-color: var(--blue-2); }
.lab-field input:disabled, .lab-field select:disabled, .lab-eye-table input:disabled, .lab-eye-table select:disabled { opacity: .55; cursor: not-allowed; }
.lab-field input::placeholder, .lab-eye-table input::placeholder { color: rgba(255,255,255,.3); }

.lab-eye-wrap { overflow-x: auto; }
.lab-eye-table { border-collapse: separate; border-spacing: 6px; min-width: 100%; }
.lab-eye-table th { font-size: .72rem; font-weight: 700; color: rgba(233,240,255,.65); text-align: left; white-space: nowrap; padding: 0 2px; }
.lab-eye-table tbody th { font-family: "Barlow Condensed", sans-serif; font-size: 1.05rem; color: #fff; }
.lab-eye-table td { min-width: 92px; }
.lab-eye-table tr.is-off td { opacity: .45; }
.lab-hint { font-size: .78rem; color: rgba(233,240,255,.55); margin: 8px 0 0; }

.lab-banner { border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; font-size: .88rem; line-height: 1.5; border: 1px solid var(--line); }
.lab-banner.is-ok    { border-color: rgba(52,211,153,.45); background: rgba(52,211,153,.1); color: #c9f5e2; }
.lab-banner.is-warn  { border-color: rgba(251,191,36,.45); background: rgba(251,191,36,.1); color: #fde7a8; }
.lab-banner.is-error { border-color: rgba(255,97,97,.45);  background: rgba(255,97,97,.1);  color: #ffd0d0; }

.lab-check-box { border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; font-size: .86rem; border: 1px solid var(--line); }
.lab-check-box.is-ok    { color: #34d399; border-color: rgba(52,211,153,.35); }
.lab-check-box.is-error { border-color: rgba(255,97,97,.4); background: rgba(255,97,97,.06); }
.lab-check-box.is-warn  { border-color: rgba(251,191,36,.4); background: rgba(251,191,36,.06); }

.lab-resolve { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-bottom: 12px; }
.lab-resolve .lab-field { flex: 1 1 200px; }

.lab-form-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 6px 0 18px; }
.lab-form-actions .lab-spacer { flex: 1; }
.lab-form-actions .btn:disabled { opacity: .45; cursor: not-allowed; }

@media (max-width: 600px) {
  .lab-field.lab-wide { grid-column: auto; }
  .lab-grid { grid-template-columns: 1fr; }
  .lab-form-actions .btn, .lab-form-actions .btn-outline { width: 100%; }
  .lab-form-actions .lab-spacer { display: none; }
  .lab-resolve .btn, .lab-resolve .btn-outline { width: 100%; }
}

/* Acompanhamento no laboratório (status, lista paginada do mAsk) */
.admin-toolbar .lab-spacer { flex: 1; }
.lab-sync-info { font-size: .82rem; color: rgba(233,240,255,.6); margin: -6px 0 14px; min-height: 1em; }
.lab-sync-info.is-warn { color: #fcd98a; }
.lab-muted { background: rgba(255,255,255,.08); color: rgba(233,240,255,.6); }
.lab-remote-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.lab-remote-filters select, .lab-remote-filters input, .lab-pager select {
  border: 2px solid rgba(255,255,255,.12);
  background: rgba(8,14,28,.55);
  color: #fff;
  border-radius: 10px;
  padding: 9px 12px;
  font: inherit;
  font-size: .9rem;
  min-height: 42px;
}
.lab-remote-filters select option, .lab-pager select option { background: #0f1a33; }
.lab-remote-filters input { min-width: 180px; }
.lab-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 14px; font-size: .88rem; color: rgba(233,240,255,.8); }
.lab-pager .btn:disabled { opacity: .4; cursor: not-allowed; }
.lab-origin { display: inline-block; font-size: .74rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.lab-origin.is-panel { background: rgba(63,124,255,.18); color: #9fbcff; }
.lab-origin.is-site { background: rgba(255,255,255,.08); color: rgba(233,240,255,.75); border: 1px dashed rgba(255,255,255,.25); }
.lab-pend { color: rgba(233,240,255,.55); }
@media (max-width: 600px) {
  .admin-toolbar .lab-spacer { display: none; }
  .lab-remote-filters select, .lab-remote-filters input, .lab-remote-filters .btn { width: 100%; }
  .lab-pager { justify-content: space-between; }
}

/* --------------------------------------------------------------------
   Prospecção de clientes (CRM) — reaproveita lab-filter / lab-section /
   lab-field / lab-banner da aba de pedidos ao laboratório
-------------------------------------------------------------------- */
.pr-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.pr-step {
  display: flex; gap: 12px; align-items: flex-start;
  border: 1px solid var(--line); border-radius: 14px; padding: 14px;
  background: rgba(255,255,255,.03); min-width: 0;
}
.pr-step-n {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center; font-weight: 800;
  background: rgba(63,124,255,.2); color: #9fbcff;
}
.pr-step-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pr-step-body strong { color: #fff; }
.pr-step-body small { color: rgba(233,240,255,.6); font-size: .8rem; line-height: 1.4; }
.pr-step-body code { font-size: .76rem; color: #c9d9ff; }
.pr-step-body .btn, .pr-step-body .btn-outline {
  width: auto; align-self: flex-start; margin-top: 4px;
  padding: 9px 16px; min-height: 40px; font-size: .86rem;
}
.pr-step-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#pr-import-result { margin: 0 0 16px; }
#pr-import-result ul { color: #fcd98a; }

.pr-toolbar select { min-width: 150px; }
.pr-table td { vertical-align: top; }
.pr-cnae { max-width: 260px; font-size: .82rem; }
.pr-muted { color: rgba(233,240,255,.55); font-size: .78rem; }
.pr-clip { max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-overdue { color: #ffb0b0; font-weight: 700; }
.lab-filter.pr-due.is-active { background: rgba(255,97,97,.18); border-color: #ff8a8a; }

.pr-tag {
  display: inline-block; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px;
  background: rgba(255,255,255,.08); color: rgba(233,240,255,.75); margin-left: 4px; vertical-align: middle;
}
.pr-tag.is-warn { background: rgba(251,191,36,.15); color: #fbbf24; margin: 6px 0 0; }
.pr-tag.is-off  { background: rgba(255,97,97,.15); color: #ff8a8a; }

.admin-badge.pr-stage-novo        { background: rgba(255,255,255,.1);  color: rgba(255,255,255,.8); }
.admin-badge.pr-stage-qualificado { background: rgba(63,124,255,.14); color: #9fbcff; }
.admin-badge.pr-stage-contato     { background: rgba(63,124,255,.24); color: #c9d9ff; }
.admin-badge.pr-stage-reuniao     { background: rgba(251,191,36,.15); color: #fbbf24; }
.admin-badge.pr-stage-proposta    { background: rgba(251,146,60,.18); color: #fdba74; }
.admin-badge.pr-stage-ganho       { background: rgba(52,211,153,.15); color: #34d399; }
.admin-badge.pr-stage-perdido     { background: rgba(255,97,97,.12);  color: #ff8a8a; }

.lab-field textarea {
  width: 100%; min-width: 0; resize: vertical;
  border: 2px solid rgba(255,255,255,.12); background: rgba(8,14,28,.55); color: #fff;
  border-radius: 10px; padding: 9px 11px; font: inherit; font-size: .9rem;
}
.lab-field textarea:focus { outline: none; border-color: var(--blue-2); }
.pr-check { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: .86rem; color: rgba(233,240,255,.8); }
.pr-check input { width: 18px; height: 18px; }

.pr-li-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pr-contact-line { font-size: .84rem; margin-top: 6px; }
.pr-contact-line a { color: #9fbcff; }
#pr-contacts { margin: 12px 0; }
#pr-contacts .admin-filial-card { margin-bottom: 10px; }
#pr-maps-box .lab-banner a { color: #9fbcff; }

.pr-timeline { margin-top: 6px; }
.pr-int { border-top: 1px solid rgba(255,255,255,.07); padding: 10px 0; }
.pr-int-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: .86rem; }
.pr-int-head .admin-link-btn { margin-left: auto; }
.pr-int-text { font-size: .88rem; color: rgba(233,240,255,.88); margin-top: 4px; white-space: pre-wrap; overflow-wrap: break-word; }
.pr-info dd { overflow-wrap: break-word; }

@media (max-width: 900px) {
  .pr-steps { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .pr-step { padding: 12px; }
  .pr-step small, .pr-step-3 { display: none; }
  .pr-toolbar select { width: 100%; }
  .pr-int-head .admin-link-btn { margin-left: 0; }
}
