/* ============================================================================
   onda-21-minha-conta.css — Modal "Minha conta" (self-service) + FIX avatar topbar.
   Carregado POR ÚLTIMO no <head> pra ganhar a cascade (sobrescreve onda-11).
   Tokens AAA tema claro. Aditivo — não toca outras regras.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   FIX AVATAR (.topnav-user__avatar) — pedido explícito do Gustavo.
   ANTES (onda-11): inicial DOURADA (var(--gold-fill)) sobre --ink-700, com flex
   centering SEM line-height:1 → letra assimétrica/cortada.
   AGORA: círculo simétrico via grid place-items, line-height:1 sem overflow.
   v3 (avatar colorido): a COR (background/color) NÃO é mais fixa aqui — vem do
   `:style` inline no index.html (avatarCorFundo()/avatarCorTexto()), que herda
   user.avatar_color com fallback petróleo (#173C46) e texto por luminância.
   O inline vence a cascade, então só mantemos forma/tamanho/centro aqui.
   Fallback (sem JS/Alpine ainda): petróleo + branco ≈ 11.6:1 (AAA).
   --------------------------------------------------------------------------- */
:root[data-theme="light"] .topnav-user__avatar {
  width: 30px;
  height: 30px;
  aspect-ratio: 1 / 1;             /* garante simetria mesmo sob flex squeeze */
  border-radius: 50%;
  background: var(--color-accent); /* fallback petróleo (inline :style vence) */
  color: #FFFFFF;                  /* fallback branco (inline :style vence) */
  display: grid;
  place-items: center;             /* centro perfeito nos 2 eixos */
  font-size: 13px;                 /* inicial nítida, sem estourar o círculo */
  font-weight: 600;
  line-height: 1;                  /* mata o line-box que cortava a letra */
  text-align: center;
  text-transform: uppercase;
  overflow: hidden;                /* trava qualquer overflow residual */
  flex-shrink: 0;
  padding: 0;
  box-sizing: border-box;
}
/* A inicial agora é um <span> aninhado (refactor da foto). Sem isto ele reintroduz
   um line-box maior que o glifo e a letra (ex. "G") era cortada no avatar com
   overflow:hidden. line-height:1 + block faz o grid centrar o glifo limpo. */
:root[data-theme="light"] .topnav-user__avatar > span,
:root[data-theme="light"] .user-pill__avatar > span,
:root[data-theme="light"] .mc-avatar-preview > span { line-height: 1; display: block; }

/* ---------------------------------------------------------------------------
   AVATAR GRANDE (topo do modal, Onda 21 v4) — foto OU inicial colorida, com
   os botões de foto logo abaixo, tudo centralizado.
   --------------------------------------------------------------------------- */
.mc-avatar-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 4px;
}
.mc-avatar-top__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}

/* Preview da inicial em tamanho grande (fallback sem foto). */
.mc-avatar-preview--lg {
  width: 96px;
  height: 96px;
  font-size: 38px;
}

/* Foto de perfil no modal: círculo cover de 96px. */
.mc-avatar-foto {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--border, #E2E8F0);
  display: block;
}

/* Foto dentro do círculo do topbar/pill: preenche e respeita o border-radius
   do contêiner (que mantém width/height/overflow). */
.avatar-foto-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

/* Esconde visualmente mas mantém acessível (input file). Prefixo u- pra não
   colidir com .sr-only/.visually-hidden de outras ondas. */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* ---------------------------------------------------------------------------
   COR DO AVATAR (modal) — preview ao vivo + input nativo de cor + reset.
   --------------------------------------------------------------------------- */
.mc-avatar-picker {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* Preview: mesmo círculo do topbar, maior pra leitura. background/color vêm
   do :style inline (cor escolhida + contraste por luminância). */
.mc-avatar-preview {
  width: 44px;
  height: 44px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  overflow: hidden;
  flex-shrink: 0;
  box-sizing: border-box;
  border: 1px solid var(--border, #E2E8F0);
}

/* Input type=color: zera o chrome nativo e deixa um swatch arredondado. */
.mc-color-input {
  width: 44px;
  height: 44px;
  padding: 2px;
  border: 1px solid var(--border, #E2E8F0);
  border-radius: var(--radius-sm, 6px);
  background: var(--bg-card, #FFFFFF);
  cursor: pointer;
  box-sizing: border-box;
}
.mc-color-input::-webkit-color-swatch-wrapper { padding: 0; }
.mc-color-input::-webkit-color-swatch { border: none; border-radius: 4px; }
.mc-color-input::-moz-color-swatch { border: none; border-radius: 4px; }
.mc-color-input:focus-visible {
  outline: var(--focus-outline, 2px solid var(--color-accent));
  outline-offset: 2px;
}

.mc-color-reset {
  appearance: none;
  border: 1px solid var(--border, #E2E8F0);
  background: var(--bg-card, #FFFFFF);
  color: var(--text-primary, #0F172A);
  font-size: var(--fs-sm-plus, 13px);
  font-weight: 500;
  border-radius: var(--radius-sm, 6px);
  padding: 7px 12px;
  cursor: pointer;
}
.mc-color-reset:hover { background: var(--color-accent-05, rgba(23, 60, 70, 0.05)); }
.mc-color-reset:focus-visible {
  outline: var(--focus-outline, 2px solid var(--color-accent));
  outline-offset: 2px;
}

/* ---------------------------------------------------------------------------
   MODAL "Minha conta" — reusa .modal-overlay / .modal-container--w-460 /
   .modal-header / .modal-body / .modal-footer já existentes. Aqui só os
   detalhes específicos: campo read-only, linha de papel, link trocar senha.
   --------------------------------------------------------------------------- */

/* SCROLL: o .modal-container base não tem max-height e o .modal-body não rola,
   então em viewport baixa o conteúdo estoura e o topo fica inacessível (overlay
   centraliza com flex). Mesma solução do .modal-container--users: trava a altura
   na viewport e deixa o CORPO rolar (header/footer fixos). min-height:0 é
   essencial p/ o flex item encolher e o overflow ativar. */
.mc-modal {
  max-height: calc(100vh - 48px);
}
.mc-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* Campo somente-leitura (email): aparência de "valor", não de input editável. */
.mc-readonly {
  display: block;
  padding: 9px 12px;
  border: 1px solid var(--border, #E2E8F0);
  border-radius: var(--radius-sm, 4px);
  background: var(--color-accent-05, rgba(23, 60, 70, 0.05));
  color: var(--text-primary, #0F172A);
  font-size: var(--fs-sm-plus, 13px);
  line-height: 1.4;
  word-break: break-all;
}

/* Linha "Papel" com a badge de perfil reusando .role-pill. */
.mc-role-row {
  display: flex;
  align-items: center;
}

/* Bloco trocar-senha no rodapé do corpo: separador discreto + link. */
.mc-divider {
  height: 1px;
  background: var(--border, #E2E8F0);
  margin: 16px 0 14px;
  border: 0;
}

.mc-pw-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--link, var(--color-accent));
  font-size: var(--fs-sm-plus, 13px);
  font-weight: 500;
  text-decoration: none;
  border-radius: var(--radius-sm, 4px);
  padding: 4px 2px;
}
.mc-pw-link:hover {
  text-decoration: underline;
}
.mc-pw-link:focus-visible {
  outline: var(--focus-outline, 2px solid var(--color-accent));
  outline-offset: 2px;
}
.mc-pw-link svg {
  flex-shrink: 0;
}
