/* ============================================================
   Painel administrativo — identidade vintage de aviação do convite.
   Paleta/atmosfera herdadas do convite do Isaac (ver style.css :root).
   Funcional e discreto: tipografia + tons envelhecidos ditam a hierarquia,
   com respiro (white space). Sem barras de status nas bordas, sem AI-slop.
   ============================================================ */

.adm-body{
  /* tons envelhecidos derivados do convite */
  --adm-bg:#F4F1EA;            /* creme aquecido geral */
  --adm-card:#FFFFFF;          /* cards puramente brancos */
  --adm-navy:#2F4A66;          /* azul-marinho do bilhete (botões/headers 2ºs) */
  --adm-navy-deep:#26405A;
  --adm-red:#A23B2C;           /* vermelho aviador envelhecido (destaques) */
  --adm-ink:#3A332A;           /* tinta marrom-escura */
  --adm-muted:#8C8273;         /* marrom-cinza envelhecido (apoio) */
  --adm-line:#E3DCCB;          /* linhas/bordas suaves */
  --adm-olive:#6E7A45;         /* confirmado (verde-oliva dessaturado) */
  --adm-gold:#A8842E;          /* pendente (ocre/ouro-velho) */
  --adm-blue:#3B5A78;          /* parcial (azul vintage) */
  --adm-stone:#8C8273;         /* inativo */
  --adm-shadow:0 1px 2px rgba(58,51,42,.05), 0 1px 3px rgba(58,51,42,.05);

  background:var(--adm-bg);
  min-height:100vh;
  color:var(--adm-ink);
}
.adm-root{max-width:1040px;margin:0 auto;padding:26px 18px 60px}

/* ---------- botões ---------- */
/* primário = vermelho aviador, recorte de bilhete (cantos 4px, typewriter) */
.adm-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:11px 22px;border:0;border-radius:4px;cursor:pointer;
  background:var(--adm-red);color:#FBF6E9;
  font-family:'Special Elite',monospace;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;
  transition:filter .15s,transform .08s;box-shadow:var(--adm-shadow)}
.adm-btn:hover{filter:brightness(1.07)}
.adm-btn:active{transform:translateY(1px)}
.adm-btn:disabled{opacity:.55;cursor:not-allowed;filter:none}

/* navy do bilhete = ações secundárias (Copiar link / Sair) */
.adm-btn-sm{
  min-height:40px;padding:8px 16px;font-size:12.5px;letter-spacing:1px;
  background:var(--adm-navy);color:#EFE9DA;border-radius:4px}
.adm-btn-sm:hover{filter:brightness(1.12)}
.adm-btn-sm.is-ok{background:var(--adm-olive)}
.adm-btn-ghost{
  background:transparent;color:var(--adm-navy);
  border:1.5px solid var(--adm-navy);border-radius:4px;box-shadow:none}
.adm-btn-ghost:hover{background:var(--adm-navy);color:#EFE9DA;filter:none}

:where(.adm-btn,.adm-btn-ghost,.adm-input,.adm-toggle,select,input):focus-visible{
  outline:2.5px solid var(--adm-gold);outline-offset:2px}

/* ---------- LOGIN ---------- */
.adm-login{min-height:82vh;display:flex;align-items:center;justify-content:center;padding:24px 12px}
.adm-login-card{
  width:100%;max-width:404px;background:var(--adm-card);
  border:1px solid var(--adm-line);border-radius:14px;padding:34px 30px;
  box-shadow:0 10px 30px rgba(47,74,102,.08)}
.adm-login-titulo{
  font-family:'Playfair Display',Georgia,serif;font-weight:800;color:var(--adm-ink);
  font-size:30px;line-height:1.1;letter-spacing:-.2px}
.adm-login-sub{font-family:'Special Elite',monospace;color:var(--adm-navy);font-size:12.5px;letter-spacing:.5px;margin:6px 0 22px}
.adm-login-form{display:flex;flex-direction:column;gap:17px}
.adm-campo{display:flex;flex-direction:column;gap:7px}
.adm-campo label{font-family:'Special Elite',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--adm-navy)}
.adm-input{
  width:100%;min-height:46px;padding:11px 14px;border-radius:6px;
  border:1.5px solid var(--adm-line);background:#FCFBF7;color:var(--adm-ink);
  font-family:'Nunito',sans-serif;font-size:16px;transition:border-color .15s}
.adm-input:hover{border-color:#d2c7ad}
.adm-input:focus{border-color:var(--adm-navy)}
.adm-input[aria-invalid="true"]{border-color:var(--adm-red)}
.adm-senha-wrap{position:relative;display:flex;align-items:center}
.adm-senha-wrap .adm-input{padding-right:92px}
.adm-toggle{
  position:absolute;right:6px;min-height:34px;padding:0 12px;border:0;border-radius:6px;
  background:transparent;color:var(--adm-navy);cursor:pointer;
  font-family:'Special Elite',monospace;font-size:12px;letter-spacing:.5px}
.adm-toggle:hover{text-decoration:underline}
.adm-erro{color:var(--adm-red);font-size:14px;font-weight:700;background:#A23B2C12;border-radius:6px;padding:10px 12px}
.adm-login-form .adm-btn{width:100%}
.adm-login-nota{
  margin-top:20px;font-family:'Special Elite',monospace;font-size:11.5px;line-height:1.5;color:var(--adm-muted);
  border-top:1.5px dashed var(--adm-line);padding-top:15px}

/* ---------- SHELL ---------- */
.adm-boot{min-height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--adm-muted)}
.adm-header{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-bottom:18px;margin-bottom:24px;border-bottom:1.5px dashed var(--adm-line)}
.adm-titulo{font-family:'Playfair Display',Georgia,serif;font-weight:800;color:var(--adm-ink);font-size:32px;line-height:1;letter-spacing:-.3px}
.adm-sub{font-family:'Special Elite',monospace;color:var(--adm-navy);font-size:13px;letter-spacing:.4px;margin-top:8px}

/* ---------- ABAS ---------- */
.adm-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1.5px dashed var(--adm-line)}
.adm-tab{
  appearance:none;border:0;background:transparent;cursor:pointer;
  font-family:'Special Elite',monospace;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--adm-muted);padding:12px 18px;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;
  transition:color .15s}
.adm-tab:hover{color:var(--adm-navy)}
.adm-tab.is-ativa{color:var(--adm-red);border-bottom-color:var(--adm-red)}
.adm-tab:focus-visible{outline:2.5px solid var(--adm-gold);outline-offset:2px;border-radius:4px}
.adm-view[hidden]{display:none}

/* ---------- PESSOAS ---------- */
.adm-pessoas{display:flex;flex-direction:column;gap:9px}
.adm-pessoas-info{font-family:'Special Elite',monospace;font-size:12px;letter-spacing:.4px;color:var(--adm-muted);margin-bottom:6px}
/* linha calma por padrão (roster); vira form só no modo edição */
.adm-pessoa{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--adm-card);border:1px solid var(--adm-line);border-radius:12px;
  padding:13px 18px;box-shadow:var(--adm-shadow)}
.adm-pessoa.is-menor{background:#A8842E07}
.adm-pessoa.is-edit{outline:1.5px solid var(--adm-navy);outline-offset:-1px}
.adm-pessoa-id{flex:1 1 240px;min-width:0;display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.adm-pessoa-nome{font-family:'Playfair Display',Georgia,serif;font-size:17px;font-weight:700;color:var(--adm-ink);overflow-wrap:anywhere}
.adm-pessoa-conv{
  flex:0 1 auto;margin-left:auto;font-family:'Special Elite',monospace;font-size:11px;letter-spacing:.3px;color:var(--adm-muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.adm-pessoa-conv::before{content:'✦ ';opacity:.45}

/* badges de idade (tons envelhecidos do convite) */
.adm-badge-maior{color:#566034;border-color:#6E7A4555;background:#6E7A450f}
.adm-badge-menor{color:#8A6A22;border-color:#A8842E55;background:#A8842E12}

/* modo edição inline */
.adm-pessoa-nome-edit{flex:1 1 220px;min-width:0}
.adm-pessoa-nome-edit .adm-input{min-height:42px;font-size:15px}
.adm-pessoa-tipo{flex:0 0 auto;min-height:42px;width:auto;min-width:168px}
.adm-pessoa-edit-acoes{flex:0 0 auto;display:flex;gap:8px}
@media (max-width:560px){
  .adm-pessoa-id{flex:1 1 100%}
  .adm-pessoa-conv{flex:1 1 100%;max-width:none;margin-left:0}
  .adm-pessoa>.adm-btn-sm{flex:1 1 100%}
  .adm-pessoa-nome-edit{flex:1 1 100%}
  .adm-pessoa-tipo{flex:1 1 100%;min-width:0}
  .adm-pessoa-edit-acoes{flex:1 1 100%}
  .adm-pessoa-edit-acoes .adm-btn-sm{flex:1}
}

/* relação no roster (linha abaixo do nome) */
.adm-pessoa-rel{flex:1 1 100%;margin:2px 0 0;font-family:'Special Elite',monospace;font-size:11.5px;letter-spacing:.2px;color:var(--adm-blue);overflow-wrap:anywhere}

/* relações no modal */
.adm-rel-lista{display:flex;flex-direction:column;gap:6px}
.adm-rel-item{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:#3B5A780a;border:1px solid var(--adm-line);border-radius:8px;padding:7px 12px;
  font-family:'Nunito',sans-serif;font-size:14px;color:var(--adm-ink)}
.adm-rel-item .adm-btn-perigo{min-height:32px;padding:0 11px;font-size:16px;line-height:1}
.adm-rel-add{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch;margin-top:4px}
.adm-rel-add .adm-select{flex:1 1 140px;min-height:44px}
.adm-rel-add .adm-ac{flex:2 1 190px}
.adm-rel-add .adm-btn-sm{flex:0 0 auto}
@media (max-width:560px){
  .adm-rel-add .adm-select,.adm-rel-add .adm-ac{flex:1 1 100%}
  .adm-rel-add .adm-btn-sm{flex:1 1 100%}
}

/* ---------- SELECT custom (vintage) ---------- */
.adm-select{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:46px;padding:10px 14px;border-radius:6px;border:1.5px solid var(--adm-line);background:#FCFBF7;cursor:pointer;
  font-family:'Special Elite',monospace;font-size:13px;letter-spacing:.4px;color:var(--adm-ink);user-select:none;
  transition:border-color .15s}
.adm-select:hover{border-color:#d2c7ad}
.adm-select.is-open{border-color:var(--adm-navy)}
.adm-select:focus-visible{outline:2.5px solid var(--adm-gold);outline-offset:2px}
.adm-select-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-select-arrow{flex:none;color:var(--adm-navy);font-size:11px;transition:transform .15s}
.adm-select.is-open .adm-select-arrow{transform:rotate(180deg)}
.adm-select-menu{
  position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;margin:0;padding:5px;list-style:none;
  background:var(--adm-card);border:1px solid var(--adm-line);border-radius:8px;box-shadow:0 12px 30px rgba(38,40,30,.18);
  max-height:262px;overflow:auto}
.adm-select-opt{padding:9px 11px;border-radius:5px;cursor:pointer;font-family:'Special Elite',monospace;font-size:13px;color:var(--adm-ink)}
.adm-select-opt:hover{background:#A8842E14}
.adm-select-opt.is-sel{background:var(--adm-navy);color:#EFE9DA}

/* ---------- AUTOCOMPLETE custom ---------- */
.adm-ac{position:relative;min-width:0}
.adm-ac-input{width:100%}
.adm-ac-menu{
  position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;margin:0;padding:5px;list-style:none;
  background:var(--adm-card);border:1px solid var(--adm-line);border-radius:8px;box-shadow:0 12px 30px rgba(38,40,30,.18);
  max-height:262px;overflow:auto}
.adm-ac-opt{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:5px;cursor:pointer}
.adm-ac-opt:hover,.adm-ac-opt.is-cursor{background:#A8842E14}
.adm-ac-nome{font-family:'Nunito',sans-serif;font-size:14px;color:var(--adm-ink)}
.adm-ac-sub{font-family:'Special Elite',monospace;font-size:10.5px;letter-spacing:.3px;color:var(--adm-muted);white-space:nowrap}

/* ---------- SENHAS ---------- */
.adm-senhas{display:flex;flex-direction:column;gap:11px}
.adm-senhas-topo{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  background:var(--adm-navy);color:#F4EEDF;border-radius:12px;padding:18px 22px;box-shadow:var(--adm-shadow)}
.adm-senhas-num{font-family:'Special Elite',monospace;font-size:40px;line-height:1;color:#F4EEDF}
.adm-senhas-lbl{font-family:'Special Elite',monospace;font-size:12px;letter-spacing:.6px;color:#D9CFB8;text-transform:uppercase}
.adm-senha-card{background:var(--adm-card);border:1px solid var(--adm-line);border-radius:12px;padding:14px 18px;box-shadow:var(--adm-shadow)}
.adm-senha-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.adm-senha-conv{font-family:'Playfair Display',Georgia,serif;font-size:17px;font-weight:700;color:var(--adm-ink)}
.adm-senha-qtd{
  font-family:'Special Elite',monospace;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--adm-red);
  border:1px solid #A23B2C44;background:#A23B2C0d;border-radius:6px;padding:3px 10px;white-space:nowrap}
.adm-senha-nomes{font-family:'Nunito',sans-serif;font-size:14px;color:var(--adm-muted);margin-top:6px;overflow-wrap:anywhere}

/* ---------- MÉTRICAS ---------- */
.adm-metricas{
  display:grid;gap:14px;margin-bottom:26px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.adm-card{
  background:var(--adm-card);border:1px solid var(--adm-line);border-radius:12px;
  padding:18px 20px;box-shadow:var(--adm-shadow)}
.adm-card-num{font-family:'Special Elite',monospace;font-size:32px;color:var(--adm-red);line-height:1;letter-spacing:.5px}
.adm-card-lbl{font-family:'Special Elite',monospace;font-size:11.5px;letter-spacing:.6px;color:var(--adm-muted);margin-top:9px;text-transform:uppercase}

/* ---------- CONTROLES ---------- */
.adm-controles{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.adm-busca{flex:1 1 240px}
.adm-filtro{flex:0 1 230px}
.adm-controles .adm-input{min-height:46px}
select.adm-input{cursor:pointer;font-family:'Special Elite',monospace;font-size:13px;letter-spacing:.4px;color:var(--adm-ink)}

/* ---------- LISTA ---------- */
.adm-lista{display:flex;flex-direction:column;gap:12px}
.adm-estado{display:flex;flex-direction:column;align-items:center;gap:12px;padding:46px 20px;color:var(--adm-muted);text-align:center;font-family:'Special Elite',monospace;font-size:14px}

/* cards de convidados: branco puro, 12px, sombra difusa, SEM barra lateral */
.adm-item{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  background:var(--adm-card);border:1px solid var(--adm-line);border-radius:12px;
  padding:16px 18px;box-shadow:var(--adm-shadow)}
.adm-item-main{flex:1 1 260px;min-width:0}
.adm-item-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adm-item-nome{font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:700;color:var(--adm-ink)}
.adm-item-membros{font-family:'Nunito',sans-serif;font-size:14px;color:var(--adm-muted);margin-top:4px;overflow-wrap:anywhere}
.adm-item-rel{margin-top:8px;display:flex;flex-direction:column;gap:2px}
.adm-item-rel p{font-family:'Special Elite',monospace;font-size:11.5px;letter-spacing:.2px;color:var(--adm-blue);overflow-wrap:anywhere}
.adm-item-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:10px;
  font-family:'Special Elite',monospace;font-size:12px;letter-spacing:.3px;color:var(--adm-muted)}
.adm-item-meta code{font-family:'Special Elite',monospace;font-size:12px;background:#3A332A0a;border:1px solid var(--adm-line);padding:2px 8px;border-radius:4px;color:var(--adm-ink)}
/* picote vertical separando a ação (vira horizontal no mobile) */
.adm-item-acoes{flex:0 0 auto;padding-left:16px;border-left:1.5px dashed var(--adm-line)}

/* badges discretas, tons envelhecidos, cantos suaves — única indicação de status */
.adm-badge{
  font-family:'Special Elite',monospace;font-size:10px;letter-spacing:.6px;text-transform:uppercase;
  padding:3px 9px;border-radius:6px;border:1px solid;background:transparent;white-space:nowrap}
.adm-badge-pendente{color:#8A6A22;border-color:#A8842E55;background:#A8842E12}
.adm-badge-parcial{color:#36536F;border-color:#3B5A7855;background:#3B5A780f}
.adm-badge-confirmado{color:#566034;border-color:#6E7A4555;background:#6E7A450f}
.adm-badge-inativo{color:#73695B;border-color:#8C827355;background:#8C82730f}

@media (max-width:560px){
  .adm-item{align-items:flex-start}
  .adm-item-acoes{width:100%;padding-left:0;padding-top:14px;margin-top:4px;border-left:0;border-top:1.5px dashed var(--adm-line)}
  .adm-item-acoes .adm-btn-sm{width:100%}
  .adm-filtro,.adm-busca{flex:1 1 100%}
  .adm-titulo{font-size:28px}
}

/* ---------- AÇÕES DE CABEÇALHO / CRUD ---------- */
.adm-header-acoes{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.adm-btn-perigo{background:transparent;color:var(--adm-red);border:1.5px solid #A23B2C66;box-shadow:none}
.adm-btn-perigo:hover{background:var(--adm-red);color:#FBF6E9;filter:none}
.adm-item-acoes{display:flex;flex-direction:column;gap:8px}

/* ---------- MODAL (criar/editar convite) ---------- */
.adm-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}
.adm-modal[hidden]{display:none}
.adm-modal-bg{position:fixed;inset:0;background:rgba(38,40,30,.5)}
.adm-modal-card{position:relative;z-index:1;width:100%;max-width:520px;margin:auto;
  background:var(--adm-card);border:1px solid var(--adm-line);border-radius:14px;
  padding:26px 24px;box-shadow:0 20px 60px rgba(38,40,30,.3);
  display:flex;flex-direction:column;gap:12px}
.adm-modal-titulo{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:24px;color:var(--adm-ink)}
.adm-form-label{font-family:'Special Elite',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--adm-navy);margin-top:4px}
.adm-form-ativo{display:inline-flex;align-items:center;gap:8px;font-family:'Nunito',sans-serif;font-size:14px;color:var(--adm-ink);cursor:pointer;margin-top:2px}
.adm-check{width:20px;height:20px;accent-color:var(--adm-olive);cursor:pointer;flex:none}
.adm-form-dica{font-size:12.5px;color:var(--adm-muted);margin-top:-4px}
.adm-form-membros{display:flex;flex-direction:column;gap:8px}
.adm-membro-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adm-membro-row .adm-input{flex:1;min-height:42px}
.adm-membro-row .adm-ac{flex:1;min-width:180px}
.adm-membro-row.is-importado{background:#3B5A7808;border:1px solid #3B5A7826;border-radius:8px;padding:8px}
.adm-membro-origem{
  flex:1 1 100%;margin:0 0 0 2px;
  font-family:'Special Elite',monospace;font-size:11px;letter-spacing:.3px;color:var(--adm-blue)}
.adm-membro-senha{flex:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  font-family:'Special Elite',monospace;font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--adm-muted);white-space:nowrap}
.adm-membro-row .adm-btn-perigo{min-height:42px;padding:0 14px;font-size:18px;line-height:1}
.adm-form-resumo{font-family:'Special Elite',monospace;font-size:12px;letter-spacing:.4px;color:var(--adm-navy);margin-top:2px}
.adm-form-erro{color:var(--adm-red);font-size:14px;font-weight:700;background:#A23B2C12;border-radius:6px;padding:9px 12px}
.adm-modal-acoes{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
.adm-confirm-layer{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px}
.adm-confirm-bg{position:absolute;inset:0;background:rgba(38,40,30,.38)}
.adm-confirm-card{
  position:relative;z-index:1;width:100%;max-width:480px;background:var(--adm-card);
  border:1px solid var(--adm-line);border-radius:14px;padding:24px;
  box-shadow:0 20px 60px rgba(38,40,30,.35);display:flex;flex-direction:column;gap:12px}
.adm-confirm-titulo{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:24px;color:var(--adm-ink)}
.adm-confirm-texto{font-family:'Nunito',sans-serif;font-size:15px;color:var(--adm-ink)}
.adm-confirm-lista{margin:0;padding-left:20px;color:var(--adm-muted);font-family:'Nunito',sans-serif;font-size:14px}
.adm-confirm-lista li+li{margin-top:4px}
.adm-confirm-nota{font-size:12.5px;color:var(--adm-blue);background:#3B5A780a;border:1px solid #3B5A7826;border-radius:8px;padding:9px 11px}

@media (max-width:560px){
  .adm-membro-row{flex-wrap:wrap}
  .adm-membro-row .adm-input{flex:1 1 100%}
  .adm-modal-acoes .adm-btn{flex:1}
}

@media (prefers-reduced-motion:reduce){
  .adm-btn,.adm-btn-sm,.cf-spinner{transition:none;animation:none}
}
