/* ===== assets/admin.css =====
   Módulo Administração. Reaproveita o vocabulário visual já existente (variáveis de
   marketing.css, o sistema de modal/toast de work-agenda.css — .wa-overlay/.wa-modal/
   .wa-field/.wa-btn-save/.wa-btn-cancel/.wa-toast — e os cards de dashboard.css) em vez
   de recriar; só o que é realmente novo (cards de entrada, linhas de lista, badges de
   status, portão de reautenticação) ganha classe própria aqui, prefixada `.adm-`. */

.adm-wrap { padding: 32px 36px 60px; max-width: 1100px; }
.adm-header { margin-bottom: 26px; }
.adm-title { font-family: 'Fraunces', serif; font-weight: var(--fw-semibold); font-size: var(--fs-page-title); margin: 0 0 4px; color: #1c361d; text-transform: lowercase; }
.adm-subtitle { font-size: 13.5px; color: var(--ink-soft); margin: 0; }

/* ---- Home: 4 cards principais + atalhos secundários ---- */
.adm-home-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin-bottom: 22px; }
.adm-home-card {
  display: flex; align-items: flex-start; gap: 14px; text-align: left;
  background: var(--card-bg, #fff); border: 1px solid var(--line); border-radius: 14px;
  padding: 20px; cursor: pointer; font-family: 'Inter', sans-serif;
}
.adm-home-card:hover { border-color: var(--teal); }
.adm-home-card-icon {
  width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color: #1c361d; background: #F5D9EF;
}
.adm-home-card-main { min-width: 0; }
.adm-home-card-title { font-size: 14.5px; font-weight: 700; color: var(--ink); margin: 0 0 3px; text-transform: lowercase; }
.adm-home-card-desc { font-size: 12.5px; color: var(--ink-soft); margin: 0; }

.adm-home-secondary { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.adm-secondary-link {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--off-white); border: 1px solid var(--line); border-radius: 10px;
  padding: 10px 16px; text-decoration: none; color: var(--ink); font-size: var(--fs-btn); font-weight: var(--fw-semibold); cursor: pointer;
  text-transform: lowercase;
}
.adm-secondary-link:hover { border-color: var(--teal); }

/* ---- Seção interna (Equipe / Permissões / Listas / Cofre / Histórico / Config) ---- */
.adm-section-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.adm-section-head-main { display: flex; align-items: center; gap: 12px; }
.adm-back-btn {
  background: none; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-soft);
  padding: 7px 9px; cursor: pointer; display: flex; align-items: center;
}
.adm-back-btn:hover { border-color: var(--teal); color: var(--teal-dark); }
.adm-section-title { font-family: 'Fraunces', serif; font-size: 19px; margin: 0; color: var(--ink); text-transform: lowercase; }
.adm-section-sub { font-size: 12.5px; color: var(--ink-soft); margin: 2px 0 0; }
.adm-section-note {
  font-size: 12px; color: var(--ink-soft); background: var(--off-white); border-radius: 8px;
  padding: 9px 12px; margin-bottom: 16px;
}

/* ---- Listas em linhas (Equipe / Cofre / Permissões) ---- */
.adm-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.adm-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  background: var(--card-bg, #fff); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px;
}
.adm-row.adm-row-inactive { opacity: 0.55; }
.adm-color-input { width: 32px; height: 32px; padding: 2px; border: 1px solid var(--line); border-radius: 6px; background: var(--off-white); cursor: pointer; flex-shrink: 0; }
.adm-row-main { flex: 1 1 220px; min-width: 0; }
.adm-row-title { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.adm-row-sub { font-size: 12px; color: var(--ink-soft); margin-top: 1px; }
.adm-row-obs { font-size: 11.5px; color: var(--ink-soft); font-style: italic; margin-top: 4px; white-space: pre-wrap; overflow-wrap: anywhere; }
.adm-row-field { flex: 1 1 130px; min-width: 110px; font-size: 12.5px; color: var(--ink); overflow-wrap: anywhere; }
.adm-row-field-label { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--ink-soft); margin-bottom: 2px; }
.adm-row-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; margin-left: auto; }
.adm-empty { font-size: 13.5px; color: var(--ink-soft); padding: 18px 4px; text-align: center; }

.adm-badge { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 3px 10px; border-radius: 12px; white-space: nowrap; text-transform: lowercase; }
.adm-badge-on { background: rgba(0,168,150,0.14); color: var(--teal-dark); }
.adm-badge-off { background: rgba(107,98,89,0.14); color: var(--ink-soft); }
.adm-badge-admin { background: #F5D9EF; color: #1c361d; }

.adm-icon-btn {
  background: none; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-soft);
  padding: 6px 7px; cursor: pointer; display: inline-flex; align-items: center;
}
.adm-icon-btn:hover { border-color: var(--teal); color: var(--teal-dark); }
.adm-icon-btn.adm-danger:hover { border-color: var(--coral); color: var(--coral-dark); }

.adm-inline-input, .adm-inline-select {
  font-family: 'Inter', sans-serif; font-size: 12.5px; padding: 6px 8px; border-radius: 6px;
  border: 1px solid var(--line); background: var(--off-white); color: var(--ink); box-sizing: border-box; width: 100%;
}

/* ---- Permissões: grade por membro/módulo ---- */
.adm-perm-add { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.adm-perm-add select { flex: 1 1 180px; }
.adm-perm-checks { display: flex; gap: 14px; flex-wrap: wrap; }
.adm-perm-check { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--ink); white-space: nowrap; }
.adm-perm-check input { width: 14px; height: 14px; }

/* ---- Cofre de acessos ---- */
.adm-vault-secret { font-family: monospace; font-size: 12.5px; letter-spacing: 0.04em; color: var(--ink-soft); overflow-wrap: anywhere; }
.adm-vault-secret.adm-revealed { color: var(--ink); font-weight: 600; }
/* Fonte levemente menor só na lista do cofre (ferramenta/usuário/responsável/etc) pra
   caber melhor no espaço disponível — não afeta Equipe/Permissões, que reaproveitam as
   mesmas classes .adm-row/.adm-row-field com o tamanho padrão. */
.adm-list-vault .adm-row { padding: 10px 13px; gap: 10px; }
.adm-list-vault .adm-row-title { font-size: 12.5px; }
.adm-list-vault .adm-row-sub { font-size: 11px; }
.adm-list-vault .adm-row-field { font-size: 11.5px; }
.adm-list-vault .adm-row-field-label { font-size: 9px; }
.adm-list-vault .adm-vault-secret { font-size: 11.5px; }

/* ---- Configurações ---- */
.adm-config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.adm-config-item { background: var(--card-bg, #fff); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }
.adm-config-label { display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--ink-soft); margin-bottom: 4px; }
.adm-config-value { font-size: 14px; font-weight: 600; color: var(--ink); }

/* ---- Histórico ---- */
.adm-hist-row { display: flex; gap: 12px; align-items: flex-start; background: var(--card-bg, #fff); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
.adm-hist-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; background: var(--teal); }
.adm-hist-main { flex: 1; min-width: 0; }
.adm-hist-action { font-size: 13px; font-weight: 700; color: var(--ink); }
.adm-hist-meta { font-size: 11.5px; color: var(--ink-soft); margin-top: 2px; }

/* ---- Portão de reautenticação / acesso negado ---- */
.adm-gate-wrap { display: flex; align-items: center; justify-content: center; min-height: 60vh; padding: 40px 20px; }
.adm-gate-box { background: var(--card-bg, #fff); border-radius: 16px; padding: 32px; width: 360px; max-width: 100%; box-shadow: 0 12px 40px rgba(0,0,0,0.08); text-align: center; }
.adm-gate-icon { width: 52px; height: 52px; border-radius: 50%; background: #F5D9EF; color: #1c361d; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.adm-gate-box h2 { font-family: 'Fraunces', serif; font-size: 19px; margin: 0 0 6px; color: #1c361d; text-transform: lowercase; }
.adm-gate-box p { font-size: 13px; color: var(--ink-soft); margin: 0 0 16px; }
.adm-gate-box input { width: 100%; padding: 10px 12px; border-radius: 8px; border: 1.5px solid var(--line); font-size: 14px; margin-bottom: 12px; font-family: 'Inter', sans-serif; box-sizing: border-box; }
.adm-gate-box input:focus { outline: none; border-color: var(--teal); }
.adm-gate-error { font-size: 12.5px; color: var(--coral-dark); margin-top: 4px; }
.adm-denied { padding: 80px 20px; text-align: center; color: var(--ink-soft); }
.adm-denied h2 { font-family: 'Fraunces', serif; color: var(--ink); text-transform: lowercase; }

@media (max-width: 720px) {
  .adm-wrap { padding: 24px 18px 40px; }
  .adm-row { flex-direction: column; align-items: stretch; }
  .adm-row-actions { margin-left: 0; }
}
