/* Configurações da clínica (Rodada A): segmentado das abas, módulos e editor de
   etiquetas dos campos da ficha pré-anestésica. Cores pelas variáveis de tokens.css —
   o modo escuro vem delas. */

/* O segmentado (.seg) é componente (components/panel.css); aqui só o que é das abas
   das Configurações: o espaço abaixo e os botões settings-tab-* que o settings.js alterna. */
.settings-tabs.seg { margin: 0 0 18px; }

.seg .settings-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 36px;
  padding: 0 14px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--color-text-secondary);
  font: 600 13px/1 var(--font-sans);
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
}

.seg .settings-tab-btn:hover {
  background: var(--surface-2);
  color: var(--color-text);
}

.seg .settings-tab-btn--active,
.seg .settings-tab-btn--active:hover {
  background: var(--pill);
  color: var(--on-pill);
}

.seg .settings-tab-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Subdomínio (somente leitura). */
.settings-subdomain {
  padding: 10px 12px;
  background: var(--surface-2);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  color: var(--color-text);
}

/* Lista de módulos contratados. */
.settings-module {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid var(--color-border);
}

.settings-module__icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--accent-soft);
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.settings-module__name {
  flex: 1;
  min-width: 0;
  font: 600 14px/1.25 var(--font-sans);
  color: var(--color-text);
}

.settings-module__price {
  color: var(--color-text-secondary);
  font-size: 12px;
  white-space: nowrap;
}

.settings-card-head {
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}

.settings-card-head .admin-note { margin-top: 4px; }

/* Sistemas da ficha: grade de cartões com o editor de etiquetas. */
.settings-systems {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}

.system-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.system-card:hover { border-color: var(--accent-mid); }

.system-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.system-title {
  font: 700 11px/1.2 var(--font-sans);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--color-text);
}

.mode-badge {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: 20px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text-secondary);
  font: 600 11px/1 var(--font-sans);
  cursor: pointer;
  user-select: none;
  flex-shrink: 0;
}

.mode-badge:hover { color: var(--color-text); background: var(--surface-2); }

.mode-badge--raw {
  background: var(--accent-soft);
  border-color: transparent;
  color: var(--accent);
}

.tag-container {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 110px;
  max-height: 180px;
  overflow-y: auto;
  padding: 10px;
  background: var(--surface-2);
  border-radius: 10px;
  align-content: flex-start;
  scrollbar-width: thin;
}

.tag-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px 5px 10px;
  background: var(--accent-soft);
  color: var(--accent);
  font: 600 12px/1.2 var(--font-sans);
  border-radius: 20px;
  cursor: default;
  animation: tagFadeIn .2s ease-out;
}

.tag-delete-btn {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  padding: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tag-delete-btn:hover { background: var(--danger); color: #fff; }

.tag-add-wrapper {
  display: flex;
  gap: 6px;
  margin-top: 8px;
}

.tag-add-input {
  flex: 1;
  min-width: 0;
  height: 38px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: 0 12px;
  font: 400 13px/1 var(--font-sans);
  color: var(--color-text);
  outline: none;
}

.tag-add-input:focus { border-color: var(--accent); }

.tag-add-btn {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  background: var(--accent);
  color: #fff;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tag-add-btn:hover { background: var(--color-primary-700); }

.empty-tags-placeholder {
  color: var(--color-text-secondary);
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 80px;
}

.settings-raw {
  font: 400 12px/1.45 var(--font-sans);
  height: 145px;
  margin-bottom: 0;
}

.settings-raw--short { height: 80px; }

/* Sistemas personalizados adicionais. */
.settings-custom-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.custom-section-block {
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 14px 16px;
  background: var(--color-surface);
}

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

.custom-section-block__head .admin-subtitle { margin: 0; }

@keyframes tagFadeIn {
  from { opacity: 0; transform: scale(.9); }
  to { opacity: 1; transform: scale(1); }
}

@media (max-width: 900px) {
  /* Só as abas das Configurações (o .seg é componente usado no app todo). */
  .settings-tabs.seg { display: flex; }
  .settings-tabs.seg .settings-tab-btn,
  .settings-tabs.seg .seg__item { flex: 1 0 auto; justify-content: center; min-height: 44px; }
  .settings-systems { grid-template-columns: 1fr; }
}

/* ============================================================
   Administração (Rodada A, fase 2) — peças das telas da engrenagem:
   Configurações, Clínicas, Unidades, Convênios, Sistema, Perfil, Ajuda.
   Tudo prefixado .adm- para não vazar para outras telas.
   ============================================================ */

/* Cartão de destaque escuro (mesmo azul-marinho da faixa do topo / .pf-next). */
.adm-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px 24px;
  align-items: center;
  padding: 22px 24px;
  margin-bottom: 16px;
  border-radius: 16px;
  color: #eef1fa;
  background:
    radial-gradient(120% 160% at 90% 0%, rgba(116, 132, 255, .3) 0%, rgba(116, 132, 255, 0) 55%),
    linear-gradient(180deg, #0b1636 0%, #0d1a42 100%);
  overflow: hidden;
}

.adm-hero__id { display: flex; align-items: center; gap: 16px; min-width: 0; }

.adm-hero__icon {
  width: 52px;
  height: 52px;
  border-radius: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  color: #9fb0ff;
}

.adm-hero__icon--ok { color: #3fcb8d; }
.adm-hero__icon--warn { color: #f2b33d; }
.adm-hero__icon--danger { color: #ff6b6e; }

.adm-hero__text { min-width: 0; }

.adm-hero__kicker {
  display: block;
  font: 600 11px/1.2 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #8e9ac0;
  margin-bottom: 6px;
}

.adm-hero__title {
  margin: 0;
  font: 700 22px/1.2 var(--font-sans);
  letter-spacing: -.01em;
  color: #fff;
  overflow-wrap: anywhere;
}

.adm-hero__title em { font: italic 400 24px/1 var(--font-serif); color: #9fb0ff; }

.adm-hero__sub {
  margin: 6px 0 0;
  font: 400 13px/1.45 var(--font-sans);
  color: #a9b4d6;
  overflow-wrap: anywhere;
}

.adm-hero__sub .mono { color: #eef1fa; }

.adm-hero__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

.adm-hero__actions .btn--secondary,
.adm-hero__actions .rd-btn {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .14);
  color: #fff;
}

.adm-hero__actions .btn--secondary:hover,
.adm-hero__actions .rd-btn:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.adm-hero__actions .btn--primary { background: #5466e8; border-color: #5466e8; color: #fff; }

/* Números grandes no rodapé do destaque. */
.adm-hero__stats {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.adm-hero__stat { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

.adm-hero__n {
  font: 700 26px/1 var(--font-sans);
  letter-spacing: -.02em;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.adm-hero__n--mono { font-family: var(--font-mono); font-size: 22px; font-weight: 600; }
.adm-hero__n small { font-size: 14px; font-weight: 600; color: #a9b4d6; }
.adm-hero__n--ok { color: #3fcb8d; }
.adm-hero__n--warn { color: #f2b33d; }
.adm-hero__n--danger { color: #ff6b6e; }

.adm-hero__label { font: 500 12px/1.3 var(--font-sans); color: #a9b4d6; }

/* Lista no padrão das listas de procedimentos: cartão com linhas em grade fixa, link
   sobreposto (a linha abre o item) e ações acima do link. */
.adm-list {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 16px;
}

.adm-list__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-border);
}

.adm-list__title { flex: 1; min-width: 0; margin: 0; font: 700 15px/1.2 var(--font-sans); color: var(--color-text); }
.adm-list__title .ms { color: var(--accent); vertical-align: -4px; margin-right: 8px; }
.adm-list__count { font: 500 12px/1 var(--font-sans); color: var(--color-text-secondary); }

.adm-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px 130px 190px;
  align-items: center;
  gap: 16px;
  padding: 12px 18px;
  border-top: 1px solid var(--color-border);
  min-height: 64px;
}

.adm-list > .adm-row:first-child,
.adm-list__head + .adm-row { border-top: 0; }
.adm-row--link:hover { background: var(--surface-2); }

.adm-row__link { position: absolute; inset: 0; z-index: 0; }
.adm-row__actions { position: relative; z-index: 1; }

.adm-row__who { display: flex; align-items: center; gap: 12px; min-width: 0; }

.adm-row__icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--accent-soft);
  color: var(--accent);
  font: 700 12px/1 var(--font-sans);
}

.adm-row__icon--ok { background: var(--ok-soft); color: var(--ok); }
.adm-row__icon--warn { background: var(--warn-soft); color: var(--warn); }
.adm-row__icon--danger { background: var(--danger-soft); color: var(--danger); }
.adm-row__icon--muted { background: var(--surface-2); color: var(--color-text-secondary); }

.adm-row__id { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.adm-row__name {
  font: 600 14px/1.25 var(--font-sans);
  color: var(--color-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.adm-row__sub,
.adm-row__meta {
  font: 400 12px/1.3 var(--font-sans);
  color: var(--color-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.adm-row__meta { font-size: 13px; }
.adm-row__meta .mono { color: var(--color-text); }
.adm-row__chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.adm-row__status { justify-self: start; display: flex; gap: 6px; flex-wrap: wrap; }

.adm-row__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.adm-row__actions form { display: inline-flex; margin: 0; }
.adm-row__chev { color: var(--color-text-secondary); }
.adm-row--off .adm-row__name { color: var(--color-text-secondary); }

/* Variações de colunas por tela (grade fixa: as linhas alinham entre si). */
.adm-row--tenant { grid-template-columns: minmax(0, 1fr) 250px 90px 120px 110px 250px; }
.adm-row--insurer { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) 130px 200px; }
.adm-row--unit { grid-template-columns: minmax(0, 1fr) 180px 200px 110px; }
.adm-row--plan { grid-template-columns: minmax(0, 1fr) 130px 200px; }
.adm-row--user { grid-template-columns: minmax(0, 1fr) 180px; }

.adm-row__num { font: 600 14px/1 var(--font-mono); color: var(--color-text); display: inline-flex; align-items: center; gap: 6px; }
.adm-row__num .ms { color: var(--color-text-secondary); }

.adm-empty {
  padding: 36px 18px;
  text-align: center;
  color: var(--color-text-secondary);
  font-size: 14px;
}

.adm-empty .ms { display: block; margin: 0 auto 8px; color: var(--accent); }

/* Formulários: seções em cartões com cabeçalho de ícone; coluna lateral de apoio. */
.adm-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 16px;
  align-items: start;
}

.adm-form-layout__main { min-width: 0; }
.adm-form-layout__aside { min-width: 0; display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; }

.adm-section {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 18px 20px;
  margin-bottom: 16px;
  min-width: 0;
}

.adm-section__head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
}

.adm-section__icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--accent-soft);
  color: var(--accent);
}

.adm-section__icon--ok { background: var(--ok-soft); color: var(--ok); }
.adm-section__icon--warn { background: var(--warn-soft); color: var(--warn); }
.adm-section__icon--danger { background: var(--danger-soft); color: var(--danger); }

.adm-section__titles { flex: 1; min-width: 0; }
.adm-section__title { margin: 0; font: 700 15px/1.25 var(--font-sans); color: var(--color-text); }
.adm-section__hint { margin: 3px 0 0; font: 400 12px/1.45 var(--font-sans); color: var(--color-text-secondary); }
.adm-section__tools { display: flex; gap: 8px; flex-wrap: wrap; }

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

.adm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.adm-grid__full { grid-column: 1 / -1; }
.adm-grid .form-group,
.adm-section .form-group { min-width: 0; }
.adm-section .form-input,
.adm-section .form-select { min-width: 0; max-width: 100%; }
.adm-section > :last-child { margin-bottom: 0; }

/* Barra de ações do formulário: fixa no rodapé enquanto se rola. */
.adm-actions {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 12px 16px;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
  box-shadow: 0 -8px 24px -18px rgba(8, 16, 40, .35);
}

.adm-actions__hint { flex: 1 1 220px; min-width: 0; font: 400 12px/1.4 var(--font-sans); color: var(--color-text-secondary); }
.adm-actions--static { position: static; box-shadow: none; }

/* Caixa de seleção grande (ativa / inativa) dentro de cartão. */
.adm-toggle {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--surface-2);
  cursor: pointer;
}

.adm-toggle input { margin-top: 2px; width: 18px; height: 18px; accent-color: var(--accent); flex-shrink: 0; }
.adm-toggle__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.adm-toggle__title { font: 600 14px/1.3 var(--font-sans); color: var(--color-text); }
.adm-toggle__hint { font: 400 12px/1.4 var(--font-sans); color: var(--color-text-secondary); }

/* Módulos contratados em ladrilhos (Configurações, Clínicas). */
.adm-modules {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.adm-module {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface);
  min-width: 0;
  --mod-tone: var(--viz-1);
}

.adm-module--off { background: var(--surface-2); }
.adm-module--off .adm-module__icon { background: var(--color-surface); color: var(--color-text-secondary); }

.adm-module__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }

.adm-module__icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--mod-tone);
}

.adm-module__name { margin: 0; font: 700 14px/1.25 var(--font-sans); color: var(--color-text); }
.adm-module__desc { margin: 0; font: 400 12px/1.45 var(--font-sans); color: var(--color-text-secondary); }

.adm-module__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--color-border);
}

.adm-module__price { font: 600 13px/1 var(--font-mono); color: var(--color-text); }
.adm-module__price small { font: 500 11px/1 var(--font-sans); color: var(--color-text-secondary); }

/* Ladrilho de módulo com caixa (formulário da clínica). */
.adm-module--check { cursor: pointer; }
.adm-module--check:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.adm-module--check input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--accent); margin: 0; }

/* Ficha (detalhe): reaproveita .pf-layout/.pf-aside/.pf-summary; aqui só ajustes. */
.adm-summary-actions { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; }
.adm-summary-actions .btn,
.adm-summary-actions form,
.adm-summary-actions form .btn { width: 100%; justify-content: center; }

.adm-role-chips { display: flex; flex-wrap: wrap; gap: 6px; }

/* Abas de página em telas da administração (data-tabs genérico do application.js). */
.adm-tabs.seg { margin: 0 0 16px; }

/* Configurações — aba da ficha: índice lateral dos sistemas + grade. */
.adm-cf {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.adm-cf__index {
  position: sticky;
  top: 84px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 14px 10px 10px;
  max-height: calc(100vh - 110px);
  overflow-y: auto;
}

.adm-cf__index-title {
  margin: 0 8px 8px;
  font: 600 11px/1 var(--font-sans);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.adm-cf__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 9px;
  color: var(--color-text);
  font: 500 13px/1.25 var(--font-sans);
}

.adm-cf__link:hover { background: var(--surface-2); text-decoration: none; color: var(--color-text); }

.adm-cf__n {
  min-width: 24px;
  height: 22px;
  padding: 0 7px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-soft);
  color: var(--accent);
  font: 600 11px/1 var(--font-mono);
}

.adm-cf__n--zero { background: var(--surface-2); color: var(--color-text-secondary); }
.adm-cf__main { min-width: 0; }
.adm-cf .system-card { scroll-margin-top: 96px; }
.adm-cf .settings-systems { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* Aviso recolhível ("Como funciona"). */
.adm-howto {
  margin-bottom: 16px;
  border-radius: 14px;
  background: var(--warn-soft);
  color: var(--color-text);
  font: 400 13px/1.55 var(--font-sans);
}

.adm-howto > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  cursor: pointer;
  list-style: none;
  font: 700 14px/1.3 var(--font-sans);
  color: var(--warn-ink);
}

.adm-howto > summary::-webkit-details-marker { display: none; }
.adm-howto > summary .ms { color: var(--warn); }
.adm-howto > summary .adm-howto__chev { margin-left: auto; color: var(--warn-ink); transition: transform .2s ease; }
.adm-howto[open] > summary .adm-howto__chev { transform: rotate(180deg); }
.adm-howto__body { padding: 0 16px 14px 46px; }

/* Passos numerados (2FA, ajuda). */
.adm-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.adm-step { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; }

.adm-step__n {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-soft);
  color: var(--accent);
  font: 700 13px/1 var(--font-mono);
}

.adm-step--done .adm-step__n { background: var(--ok-soft); color: var(--ok); }
.adm-step__body { min-width: 0; }
.adm-step__title { margin: 5px 0 6px; font: 700 14px/1.3 var(--font-sans); color: var(--color-text); }

/* Requisitos por pilar no Sistema: barra empilhada feito/parcial/lacuna. */
.adm-bar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: var(--surface-2); min-width: 80px; }
.adm-bar__seg--ok { background: var(--ok); }
.adm-bar__seg--warn { background: var(--warn); }
.adm-bar__seg--danger { background: var(--danger); }

.adm-pillar-sum {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 140px auto;
  align-items: center;
  gap: 8px 14px;
  width: 100%;
}

.adm-kv-mono { font-family: var(--font-mono); font-size: 13px; }

/* Componentes (Sistema): ladrilhos de versão. */
.adm-comps { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }

.adm-comp {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--surface-2);
  min-width: 0;
}

.adm-comp__name { font: 600 12px/1.2 var(--font-sans); color: var(--color-text-secondary); overflow-wrap: anywhere; }
.adm-comp__v { font: 600 15px/1.2 var(--font-mono); color: var(--color-text); overflow-wrap: anywhere; }

@media (max-width: 1200px) {
  .adm-row--tenant { grid-template-columns: minmax(0, 1fr) 200px 80px 110px 230px; }
  .adm-row--tenant .adm-row__date { display: none; }
}

@media (max-width: 1100px) {
  .adm-form-layout { grid-template-columns: minmax(0, 1fr); }
  .adm-form-layout__aside { position: static; }
  .adm-cf { grid-template-columns: minmax(0, 1fr); }
  .adm-cf__index { position: static; max-height: none; display: flex; gap: 6px; overflow-x: auto; padding: 8px; scrollbar-width: none; }
  .adm-cf__index::-webkit-scrollbar { display: none; }
  .adm-cf__index-title { display: none; }
  .adm-cf__link { flex: 0 0 auto; background: var(--surface-2); white-space: nowrap; }
}

@media (max-width: 900px) {
  .adm-hero { grid-template-columns: minmax(0, 1fr); padding: 18px 16px; border-radius: 14px; }
  .adm-hero__actions { justify-content: stretch; }
  .adm-hero__actions > * { flex: 1 1 auto; justify-content: center; }
  .adm-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adm-hero__n { font-size: 22px; }
  .adm-hero__title { font-size: 19px; }

  /* Celular: cada linha vira um cartão — identificação no topo, metadados e ações embaixo. */
  .adm-list { background: transparent; border: 0; border-radius: 0; overflow: visible; }
  .adm-list__head { padding: 0 2px 10px; border: 0; }
  .adm-row,
  .adm-row--tenant,
  .adm-row--insurer,
  .adm-row--unit,
  .adm-row--plan,
  .adm-row--user {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 12px;
    padding: 14px;
    margin-bottom: 10px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-surface);
  }
  .adm-list > .adm-row:first-child,
  .adm-list__head + .adm-row { border-top: 1px solid var(--color-border); }
  .adm-row__who { grid-column: 1; grid-row: 1; }
  .adm-row__status { grid-column: 2; grid-row: 1; justify-self: end; }
  .adm-row > .adm-row__meta,
  .adm-row > .adm-row__chips { grid-column: 1 / -1; padding-left: 50px; white-space: normal; }
  .adm-row--tenant .adm-row__date { display: none; }
  .adm-row__actions { grid-column: 1 / -1; justify-content: flex-start; flex-wrap: wrap; padding-left: 50px; }
  .adm-row__actions:not(:has(.btn)) { display: none; }
  .adm-row__actions .btn { min-height: 44px; }
  .adm-row__chev { display: none; }
  .adm-empty { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 14px; }

  .adm-section { padding: 14px; border-radius: 14px; }
  .adm-grid,
  .adm-grid--3 { grid-template-columns: minmax(0, 1fr); }
  .adm-actions { margin-left: -14px; margin-right: -14px; border-radius: 0; border-width: 1px 0 0; bottom: 72px; padding: 12px 14px; }
  .adm-actions .btn { flex: 1 1 auto; justify-content: center; min-height: 44px; }
  .adm-actions__hint { flex-basis: 100%; }
  .adm-actions--static { margin: 0 0 16px; border-radius: 14px; border-width: 1px; }
  .adm-modules { grid-template-columns: minmax(0, 1fr); }
  .adm-pillar-sum { grid-template-columns: auto minmax(0, 1fr) auto; }
  .adm-pillar-sum .adm-bar { grid-column: 1 / -1; grid-row: 2; }
  .adm-comps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.adm-custom-empty {
  display: none;
  margin: 0;
  padding: 18px;
  border: 1px dashed var(--color-border);
  border-radius: 12px;
  text-align: center;
  font: 400 13px/1.45 var(--font-sans);
  color: var(--color-text-secondary);
}

.settings-custom-list:empty { display: none; }
.settings-custom-list:empty + .adm-custom-empty { display: block; }

/* Faixa de situação: três itens não esticam pela largura toda. */
.adm-strip.stage-strip { grid-template-columns: repeat(auto-fill, minmax(150px, 210px)); }

.adm-section .adm-grid { gap: 14px 16px; margin-bottom: 14px; }
.adm-grid > .form-group { margin-bottom: 0; }
.adm-section > .adm-grid:last-child { margin-bottom: 0; }
.adm-section > .adm-grid:last-child > .form-group,
.adm-section > .form-group:last-child { margin-bottom: 0; }
.adm-grid + .adm-toggle { margin-top: 2px; }


.adm-mods { align-items: center; gap: 6px; flex-wrap: nowrap; }
.adm-mods__i {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--mod-tone);
  color: #fff;
  flex-shrink: 0;
}
.adm-mods__i--off { background: var(--surface-2); color: var(--color-text-secondary); opacity: .7; }
.adm-mods__n { margin-left: 4px; font: 500 12px/1 var(--font-sans); color: var(--color-text-secondary); white-space: nowrap; }
@media (min-width: 1201px) {
  .adm-row--tenant { grid-template-columns: minmax(0, 1fr) 190px 80px 110px 100px 180px; }
}
@media (max-width: 1200px) and (min-width: 901px) {
  .adm-row--tenant { grid-template-columns: minmax(0, 1fr) 170px 70px 100px 180px; }
}
.adm-module--check .adm-module__name,
.adm-module--check .adm-module__desc { display: block; }
.adm-module--check .adm-module__desc { margin-top: 3px; }

/* Sistema. */
.adm-hero-note { display: flex; align-items: center; gap: 6px; margin: -6px 0 16px; }
.adm-hero-note .ms { color: var(--accent); }
.adm-list__note { padding: 10px 18px 0; }
.adm-list__note + .adm-row { border-top: 0; }
.adm-row--doc { grid-template-columns: minmax(0, 1fr) auto; }
.adm-row--doc .adm-row__sub { white-space: normal; }
.sysinfo-pillar__summary .adm-pillar-sum { grid-template-columns: 104px minmax(0, 1fr) 160px auto; }
.sysinfo-pillar__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
@media (max-width: 900px) {
  .sysinfo-pillar__summary .adm-pillar-sum { grid-template-columns: 96px minmax(0, 1fr) auto; }
  .adm-list__note { padding: 0 2px 10px; }
  .adm-row--doc .adm-row__actions { padding-left: 50px; }
}

.adm-hero--compact .adm-hero__title { font-size: 18px; }
.adm-hero--compact .adm-hero__title em { font-size: 21px; }

/* 2FA: QR ao lado das chaves; código e botão numa linha. */
.adm-qr-row { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 18px; align-items: start; }
.adm-qr-row .profile-qr { justify-content: flex-start; }
.adm-qr-row__keys { min-width: 0; }
.adm-code-form { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.adm-code-form .form-group { margin: 0; flex: 0 1 220px; min-width: 0; }
@media (max-width: 900px) {
  .adm-qr-row { grid-template-columns: minmax(0, 1fr); }
  .adm-qr-row .profile-qr { justify-content: center; }
  .adm-code-form .form-group,
  .adm-code-form .btn { flex: 1 1 100%; }
}

@media (max-width: 900px) {
  /* As duas abas das Configurações cabem lado a lado (rótulo quebra em duas linhas). */
  .settings-tabs.seg { overflow: visible; }
  .seg.settings-tabs .settings-tab-btn { flex: 1 1 0; min-width: 0; height: auto; min-height: 44px; padding: 6px 8px; white-space: normal; line-height: 1.2; text-align: center; }
  .seg.settings-tabs .settings-tab-btn .ms { display: none; }
  .adm-tabs.seg .seg__item { flex: 1 1 0; min-width: 0; justify-content: center; padding: 0 6px; font-size: 12px; }
  .adm-tabs.seg .seg__item .ms { display: none; }

  /* Requisitos do pilar: cada requisito vira um bloco (a tabela tinha 2.000px). */
  .sysinfo-pillar__body .table thead { display: none; }
  .sysinfo-pillar__body .table,
  .sysinfo-pillar__body .table tbody,
  .sysinfo-pillar__body .table tr,
  .sysinfo-pillar__body .table td { display: block; width: 100%; white-space: normal; }
  .sysinfo-pillar__body .table tr { padding: 10px 14px; border-top: 1px solid var(--color-border); }
  .sysinfo-pillar__body .table td { padding: 2px 0; border: 0; }
}
@media (max-width: 900px) {
  .adm-row--tenant .adm-row__num { grid-column: 1 / -1; padding-left: 50px; font-size: 13px; }
  .adm-row--tenant .adm-row__num::after { content: ' usuários'; font: 400 12px/1 var(--font-sans); color: var(--color-text-secondary); }
}
@media (max-width: 900px) {
  .adm-list__head { flex-wrap: wrap; }
  .adm-list__title { flex: 1 1 60%; }
  .adm-list__head .adm-role-chips { flex: 1 1 100%; }
}
.adm-pillar-sum > .chip { justify-self: start; }
