/* ==========================================================================
   GRUPO IFT — painel administrativo
   Reaproveita as variáveis e os componentes de css/style.css
   ========================================================================== */

.admin {
  min-height: 100vh;
  background:
    radial-gradient(900px 500px at 85% -5%, rgba(var(--gold-rgb), .08), transparent 65%),
    var(--ink-deep);
}

.admin h2, .admin h3, .admin h4 { text-transform: none; letter-spacing: -.01em; }

/* ---------- Telas de bloqueio ---------- */
.admin-setup,
.admin-login {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 2rem 1rem;
}

.admin-setup__card,
.admin-login__card {
  width: min(420px, 100%);
  display: grid;
  gap: .9rem;
  padding: 2.2rem;
  border: 1px solid rgba(var(--gold-rgb), .35);
  border-radius: var(--r-lg);
  background: rgba(var(--soft-rgb), .95);
  box-shadow: var(--shadow-4);
  text-align: center;
}

.admin-setup__card > span {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 2.4rem;
  line-height: 1;
}

.admin-setup__card h1,
.admin-login__card h1 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 800;
}

.admin-setup__card p,
.admin-login__card > p { color: var(--muted); font-size: var(--fs-md); line-height: 1.6; }

.admin-setup__card code {
  padding: .1rem .35rem;
  border-radius: 5px;
  background: rgba(var(--deep-rgb), .8);
  color: var(--gold-soft);
  font-size: .82em;
}

.admin-setup__card .btn { justify-self: center; margin-top: .5rem; }

.admin-login__logo { height: 44px; width: auto; justify-self: center; margin-bottom: .3rem; }
.admin-login__card .field { text-align: left; }

.admin-login__erro {
  padding: .7rem;
  border: 1px solid rgba(214, 122, 92, .45);
  border-radius: var(--r-xs);
  background: rgba(214, 122, 92, .12);
  color: #e2a893;
  font-size: var(--fs-md);
}

.admin-login__voltar { color: var(--muted); font-size: var(--fs-sm); text-decoration: none; }
.admin-login__voltar:hover { color: var(--gold); }

/* ---------- Topo ---------- */
.admin-topo {
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid var(--ink-line);
  background: rgba(var(--deep-rgb), .94);
  backdrop-filter: blur(12px);
}

.admin-topo__inner {
  width: min(1320px, 94%);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: .8rem 0;
  flex-wrap: wrap;
}

.admin-topo__marca {
  display: flex;
  align-items: center;
  gap: .7rem;
  color: var(--paper);
  text-decoration: none;
}

.admin-topo__marca img { height: 32px; width: auto; }

.admin-topo__marca span {
  padding-left: .7rem;
  border-left: 1px solid var(--ink-line);
  color: var(--gold);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.admin-abas { display: flex; gap: .35rem; flex-wrap: wrap; }

.admin-aba {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--r-full);
  background: transparent;
  color: var(--text-4);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: 700;
  cursor: pointer;
  transition: color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}

.admin-aba:hover { color: var(--paper); background: rgba(var(--line-rgb), .08); }

.admin-aba.is-active {
  border-color: rgba(var(--gold-rgb), .45);
  background: rgba(var(--gold-rgb), .12);
  color: var(--gold-soft);
}

.admin-aba__contador {
  padding: .05rem .45rem;
  border-radius: var(--r-full);
  background: rgba(var(--gold-rgb), .2);
  color: var(--gold-soft);
  font-size: var(--fs-xs);
}

.admin-topo__usuario {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-left: auto;
  color: var(--muted);
  font-size: var(--fs-sm);
}

.admin-sair { padding: .45rem 1rem; font-size: var(--fs-sm); }

/* ---------- Corpo ---------- */
.admin-conteudo {
  width: min(1320px, 94%);
  margin-inline: auto;
  padding: 2.5rem 0 5rem;
}

.admin-painel { display: none; }
.admin-painel.is-active { display: block; }

.admin-painel__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.8rem;
}

.admin-painel__head h2 { font-family: var(--font-display); font-size: 1.6rem; font-weight: 800; }
.admin-painel__head p { margin-top: .35rem; color: var(--muted); font-size: var(--fs-md); max-width: 46rem; }

/* ---------- Cartões de resumo ---------- */
.admin-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 1.8rem;
}

.admin-card {
  display: grid;
  gap: .2rem;
  padding: 1.1rem 1.3rem;
  border: 1px solid rgba(var(--line-rgb), .16);
  border-radius: var(--r-sm);
  background: rgba(var(--soft-rgb), .6);
}

.admin-card strong {
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 1;
}

.admin-card span { color: var(--muted); font-size: var(--fs-sm); }

/* ---------- Filtros ---------- */
.admin-filtros {
  display: flex;
  gap: .7rem;
  flex-wrap: wrap;
  margin-bottom: 1.2rem;
}

.admin-filtros input,
.admin-filtros select {
  padding: .7rem .9rem;
  border: 1px solid rgba(var(--line-rgb), .22);
  border-radius: var(--r-xs);
  background: rgba(var(--deep-rgb), .85);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--fs-md);
}

.admin-filtros input { flex: 1 1 260px; }
.admin-filtros input:focus,
.admin-filtros select:focus { outline: none; border-color: var(--gold); }

/* ---------- Tabela ---------- */
.admin-tabela__wrap {
  overflow-x: auto;
  border: 1px solid rgba(var(--line-rgb), .16);
  border-radius: var(--r-sm);
  background: rgba(var(--soft-rgb), .5);
}

.admin-tabela { width: 100%; border-collapse: collapse; font-size: var(--fs-md); }

.admin-tabela th {
  padding: .9rem 1rem;
  border-bottom: 1px solid rgba(var(--line-rgb), .16);
  color: var(--text-4);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .1em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.admin-tabela td {
  padding: .85rem 1rem;
  border-bottom: 1px solid rgba(var(--line-rgb), .08);
  color: var(--text-3);
  vertical-align: top;
}

.admin-tabela tbody tr { cursor: pointer; transition: background var(--t-fast) var(--ease); }
.admin-tabela tbody tr:hover { background: rgba(var(--gold-rgb), .06); }
.admin-tabela tbody tr:last-child td { border-bottom: 0; }

.admin-tabela strong { color: var(--paper); font-weight: 600; }
.admin-tabela a { color: var(--gold-soft); text-decoration: none; }
.admin-tabela a:hover { text-decoration: underline; }
.admin-tabela__sub { display: block; color: var(--text-5); font-size: var(--fs-sm); }
.admin-tabela__data { color: var(--text-5); white-space: nowrap; font-size: var(--fs-sm); }

.admin-vazio { padding: 3rem 1rem; color: var(--muted); text-align: center; }

/* ---------- Status ---------- */
.admin-status {
  display: inline-block;
  padding: .25rem .6rem;
  border: 1px solid;
  border-radius: var(--r-full);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.admin-status--novo         { border-color: rgba(var(--gold-rgb), .5);  color: var(--gold-soft); background: rgba(var(--gold-rgb), .1); }
.admin-status--em_contato   { border-color: rgba(120, 168, 210, .5); color: #93bede; background: rgba(120, 168, 210, .1); }
.admin-status--qualificado  { border-color: rgba(150, 190, 130, .5); color: #a9cf92; background: rgba(150, 190, 130, .1); }
.admin-status--ganho        { border-color: rgba(94, 190, 130, .55); color: #7ed6a1; background: rgba(94, 190, 130, .12); }
.admin-status--perdido      { border-color: rgba(214, 122, 92, .45); color: #e2a893; background: rgba(214, 122, 92, .1); }

/* ---------- Gaveta do lead ---------- */
.admin-gaveta {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  justify-content: flex-end;
  background: rgba(6, 9, 12, .75);
  backdrop-filter: blur(4px);
}

.admin-gaveta[hidden],
.admin-modal[hidden] { display: none; }

.admin-gaveta__painel {
  width: min(460px, 100%);
  height: 100%;
  overflow-y: auto;
  border-left: 1px solid var(--ink-line);
  background: var(--ink-soft);
  animation: admin-entrar .25s ease;
}

@keyframes admin-entrar {
  from { transform: translateX(24px); opacity: 0; }
  to   { transform: none; opacity: 1; }
}

.admin-gaveta__head,
.admin-modal__head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid var(--ink-line);
  background: var(--ink-soft);
}

.admin-gaveta__head h3,
.admin-modal__head h3 { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 800; }

.admin-gaveta__fechar {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--line-rgb), .22);
  border-radius: 50%;
  background: transparent;
  color: var(--paper);
  font-size: var(--fs-xl);
  line-height: 1;
  cursor: pointer;
}

.admin-gaveta__fechar:hover { border-color: var(--gold); color: var(--gold); }

.admin-gaveta__corpo { display: grid; gap: 1.5rem; padding: 1.5rem; }

.admin-gaveta__acoes { display: flex; gap: .6rem; flex-wrap: wrap; }
.admin-gaveta__acoes .btn { flex: 1 1 auto; padding: .65rem 1rem; font-size: var(--fs-md); }

.admin-dados { display: grid; gap: .1rem; }

.admin-dados > div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 1rem;
  padding: .5rem 0;
  border-bottom: 1px solid rgba(var(--line-rgb), .1);
}

.admin-dados dt {
  color: var(--text-4);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding-top: .12rem;
}

.admin-dados dd { color: var(--text-2); font-size: var(--fs-md); word-break: break-word; }

.admin-gaveta__bloco { display: grid; gap: .8rem; }

.admin-gaveta__bloco h4 {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.admin-citacao {
  padding: .9rem 1rem;
  border-left: 2px solid var(--gold);
  border-radius: 0 10px 10px 0;
  background: rgba(var(--gold-rgb), .07);
  color: #d3dbe1;
  font-size: var(--fs-base);
  line-height: 1.65;
}

.admin-gaveta__rodape {
  display: flex;
  justify-content: space-between;
  gap: .6rem;
  flex-wrap: wrap;
}

.admin-gaveta__rodape .btn { padding: .6rem 1.1rem; font-size: var(--fs-sm); }

.admin-perigo { border-color: rgba(214, 122, 92, .4); color: #e2a893; }
.admin-perigo:hover { border-color: #d67a5c; color: #f0bda9; }

/* ---------- Lista de eventos ---------- */
.admin-eventos { display: grid; gap: 1rem; }

.admin-evento {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  align-items: center;
  gap: 1.2rem;
  padding: 1rem;
  border: 1px solid rgba(var(--line-rgb), .16);
  border-radius: var(--r-sm);
  background: rgba(var(--soft-rgb), .6);
  transition: border-color var(--t-fast) var(--ease);
}

.admin-evento:hover { border-color: rgba(var(--gold-rgb), .4); }

.admin-evento__capa {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: var(--r-xs);
  background: var(--ink);
  color: rgba(var(--gold-rgb), .4);
  font-family: var(--font-display);
  font-size: 1.6rem;
}

.admin-evento__capa img { width: 100%; height: 100%; object-fit: cover; }

.admin-evento__corpo { min-width: 0; display: grid; gap: .4rem; }
.admin-evento__corpo h3 { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 700; }
.admin-evento__corpo p { color: var(--muted); font-size: var(--fs-sm); }

.admin-evento__tags { display: flex; gap: .4rem; flex-wrap: wrap; }

.admin-evento__categoria {
  padding: .25rem .6rem;
  border: 1px solid rgba(var(--line-rgb), .2);
  border-radius: var(--r-full);
  color: var(--text-4);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.admin-evento__acoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.admin-evento__acoes .btn { padding: .55rem 1rem; font-size: var(--fs-sm); }

/* ---------- Modal do evento ---------- */
.admin-modal {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: grid;
  place-items: center;
  padding: 1.5rem 1rem;
  background: rgba(6, 9, 12, .8);
  backdrop-filter: blur(4px);
  overflow-y: auto;
}

.admin-modal__painel {
  width: min(760px, 100%);
  max-height: 92vh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--gold-rgb), .55) rgba(var(--deep-rgb), .65);
  border: 1px solid rgba(var(--gold-rgb), .3);
  border-radius: var(--r-lg);
  background: var(--ink-soft);
  box-shadow: var(--shadow-4);
}

.admin-modal__painel::-webkit-scrollbar { width: 8px; }
.admin-modal__painel::-webkit-scrollbar-track { background: rgba(var(--deep-rgb), .65); }
.admin-modal__painel::-webkit-scrollbar-thumb { border-radius: 8px; background: rgba(var(--gold-rgb), .55); }

.admin-modal__corpo { display: grid; gap: 1rem; padding: 1.5rem; }

.admin-modal__acoes {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  flex-wrap: wrap;
  margin-top: .6rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--ink-line);
}

.admin-modal__acoes > div { display: flex; gap: .6rem; margin-left: auto; }
.admin-modal__acoes .btn { padding: .65rem 1.3rem; font-size: var(--fs-md); }

/* ---------- Upload e galeria ---------- */
.admin-upload {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.admin-upload img {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border: 1px solid rgba(var(--line-rgb), .2);
  border-radius: var(--r-xs);
  background: var(--ink);
}

.admin-upload input[type="file"],
.admin-modal__corpo input[type="file"] {
  flex: 1 1 220px;
  padding: .6rem;
  border: 1px dashed rgba(var(--line-rgb), .3);
  border-radius: var(--r-xs);
  background: rgba(var(--deep-rgb), .6);
  color: var(--muted);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  cursor: pointer;
}

.admin-modal__corpo input[type="file"]:disabled { opacity: .45; cursor: not-allowed; }

/* ---------- Foto de capa e editor de enquadramento ---------- */
.admin-capa-upload {
  display: grid;
  gap: .75rem;
}

.admin-capa-upload__preview {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 1px dashed rgba(var(--line-rgb), .28);
  border-radius: var(--r-sm);
  background:
    linear-gradient(45deg, rgba(var(--line-rgb), .035) 25%, transparent 25%, transparent 75%, rgba(var(--line-rgb), .035) 75%),
    linear-gradient(45deg, rgba(var(--line-rgb), .035) 25%, transparent 25%, transparent 75%, rgba(var(--line-rgb), .035) 75%),
    rgba(var(--deep-rgb), .7);
  background-position: 0 0, 12px 12px;
  background-size: 24px 24px;
}

.admin-capa-upload__preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.admin-capa-upload__vazio {
  display: grid;
  justify-items: center;
  gap: .28rem;
  padding: 1.5rem;
  color: var(--muted);
  text-align: center;
}

.admin-capa-upload__vazio > span { color: var(--gold); font-size: 2rem; line-height: 1; }
.admin-capa-upload__vazio strong { color: var(--text-2); font-family: var(--font-display); font-size: var(--fs-md); }
.admin-capa-upload__vazio small { font-size: var(--fs-sm); }

.admin-capa-upload__acoes {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
}

.admin-capa-upload__acoes .btn {
  margin: 0;
  padding: .6rem 1rem;
  font-size: var(--fs-sm);
  cursor: pointer;
}

.admin-crop { z-index: 85; }

.admin-crop__painel {
  width: min(920px, 100%);
  max-height: 95vh;
}

.admin-crop .admin-modal__head > div { display: grid; gap: .2rem; }
.admin-crop .admin-modal__head p { color: var(--muted); font-size: var(--fs-sm); }

.admin-crop__corpo {
  display: grid;
  gap: 1rem;
  padding: 1.2rem 1.5rem;
}

.admin-crop__stage {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(var(--gold-rgb), .45);
  border-radius: var(--r-sm);
  background: #070b0f;
  box-shadow: 0 18px 42px rgba(0, 0, 0, .25);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.admin-crop__stage.is-dragging { cursor: grabbing; }

.admin-crop__stage canvas {
  width: 100%;
  height: 100%;
  display: block;
}

.admin-crop__stage canvas:focus-visible {
  outline: 3px solid rgba(var(--gold-rgb), .7);
  outline-offset: -4px;
}

.admin-crop__grade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent calc(33.333% - .5px), rgba(255, 255, 255, .58) 33.333%, transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(255, 255, 255, .58) 66.666%, transparent calc(66.666% + .5px)),
    linear-gradient(0deg, transparent calc(33.333% - .5px), rgba(255, 255, 255, .58) 33.333%, transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(255, 255, 255, .58) 66.666%, transparent calc(66.666% + .5px));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5);
}

.admin-crop__grade::after {
  content: "";
  position: absolute;
  inset: 8%;
  border: 1px dashed rgba(var(--gold-rgb), .85);
  border-radius: 4px;
  box-shadow: 0 0 0 999px rgba(0, 0, 0, .08);
}

.admin-crop__grade span {
  position: absolute;
  z-index: 1;
  left: 9%;
  top: 9%;
  padding: .18rem .42rem;
  border-radius: 4px;
  background: rgba(7, 11, 15, .72);
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.admin-crop__controles {
  display: grid;
  grid-template-columns: auto auto minmax(150px, 1fr) auto 58px;
  align-items: center;
  gap: .65rem;
}

.admin-crop__controles label {
  color: var(--text-3);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.admin-crop__controles input { width: 100%; accent-color: var(--gold); cursor: pointer; }
.admin-crop__controles output { color: var(--gold-soft); font-variant-numeric: tabular-nums; text-align: right; }
.admin-crop__dica { color: var(--muted); font-size: var(--fs-sm); line-height: 1.5; }

.admin-crop__previews {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  align-items: end;
  gap: 1rem;
  padding-top: .2rem;
}

.admin-crop__previews figure { display: grid; gap: .4rem; min-width: 0; }

.admin-crop__previews canvas {
  width: 100%;
  display: block;
  border: 1px solid rgba(var(--line-rgb), .2);
  border-radius: 8px;
  background: var(--ink-deep);
}

.admin-crop__previews figcaption {
  color: var(--text-5);
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}

.admin-crop__acoes {
  display: flex;
  justify-content: flex-end;
  gap: .7rem;
  padding: 1rem 1.5rem 1.3rem;
  border-top: 1px solid var(--ink-line);
}

.admin-crop__acoes .btn { padding: .65rem 1.2rem; font-size: var(--fs-md); }

.admin-galeria {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .8rem;
  margin-top: .6rem;
}

.admin-foto {
  position: relative;
  display: grid;
  gap: .4rem;
  padding: .5rem;
  border: 1px solid rgba(var(--line-rgb), .16);
  border-radius: var(--r-xs);
  background: rgba(var(--deep-rgb), .5);
}

.admin-foto img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 8px;
}

.admin-foto input {
  width: 100%;
  padding: .4rem .5rem;
  border: 1px solid rgba(var(--line-rgb), .18);
  border-radius: 7px;
  background: rgba(var(--deep-rgb), .8);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
}

.admin-foto input:focus { outline: none; border-color: var(--gold); }

.admin-foto__remover {
  position: absolute;
  right: .35rem;
  top: .35rem;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(6, 9, 12, .82);
  color: var(--paper);
  font-size: var(--fs-lg);
  line-height: 1;
  cursor: pointer;
}

.admin-foto__remover:hover { background: #d67a5c; }

/* ---------- Interruptores ---------- */
.admin-switches { display: flex; gap: 1.5rem; flex-wrap: wrap; }

.admin-switch {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  color: var(--text-2);
  font-size: var(--fs-md);
  cursor: pointer;
}

.admin-switch input { width: 18px; height: 18px; accent-color: var(--gold); cursor: pointer; }

/* ---------- Dica de campo (usada no editor de eventos) ---------- */
.admin-bloco__dica { color: var(--text-5); font-size: var(--fs-sm); line-height: 1.5; }

/* ---------- Aviso flutuante ---------- */
.admin-aviso {
  position: fixed;
  left: 50%;
  bottom: 1.5rem;
  z-index: 90;
  translate: -50% 0;
  max-width: min(480px, 92vw);
  padding: .85rem 1.3rem;
  border: 1px solid rgba(var(--gold-rgb), .5);
  border-radius: var(--r-xs);
  background: rgba(var(--soft-rgb), .97);
  box-shadow: var(--shadow-2);
  color: var(--paper);
  font-size: var(--fs-md);
  text-align: center;
}

.admin-aviso[hidden] { display: none; }
.admin-aviso--erro { border-color: rgba(214, 122, 92, .6); color: #f0bda9; }

/* ---------- Responsivo ---------- */
@media (max-width: 860px) {
  .admin-topo__inner { gap: 1rem; }
  .admin-topo__usuario { width: 100%; margin-left: 0; justify-content: space-between; }
  .admin-evento { grid-template-columns: 90px 1fr; }
  .admin-evento__acoes { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .admin-conteudo { padding-top: 1.8rem; }
  .admin-dados > div { grid-template-columns: 1fr; gap: .1rem; }
  .admin-modal__acoes > div { width: 100%; margin-left: 0; }
  .admin-modal__acoes .btn { flex: 1 1 auto; }
  .admin-crop { padding-inline: .5rem; }
  .admin-crop__corpo { padding: 1rem; }
  .admin-crop__stage {
    height: calc((100vw - 64px) * .5625);
    min-height: calc((100vw - 64px) * .5625);
    aspect-ratio: auto;
  }
  .admin-crop__previews { grid-template-columns: 1fr; }
  .admin-crop__preview--hero { display: none !important; }
  .admin-crop__controles { grid-template-columns: auto auto minmax(90px, 1fr) auto 50px; gap: .4rem; }
  .admin-crop__acoes { padding: 1rem; }
  .admin-crop__acoes .btn { flex: 1 1 0; padding-inline: .7rem; }
}

/* ---------- Fotos ainda não enviadas ---------- */
.admin-foto--pendente { border-style: dashed; border-color: rgba(var(--gold-rgb), .45); }
.admin-foto--pendente img { opacity: .7; }

.admin-foto__etiqueta {
  padding: .3rem .4rem;
  border-radius: var(--r-xs);
  background: rgba(var(--gold-rgb), .14);
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}

/* ---------- Saldo de vídeos ---------- */
.admin-quota {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: .6rem;
  padding: .35rem .75rem;
  border: 1px solid rgba(var(--gold-rgb), .35);
  border-radius: var(--r-full);
  background: rgba(var(--gold-rgb), .08);
  color: var(--gold-soft);
  font-size: var(--fs-xs);
}

.admin-quota strong { font-family: var(--font-display); }

.admin-quota--cheia {
  border-color: rgba(214, 122, 92, .45);
  background: rgba(214, 122, 92, .1);
  color: #e2a893;
}

/* ---------- Envio de vídeo ---------- */
.admin-video-upload {
  display: grid;
  gap: .7rem;
  padding: 1rem;
  border: 1px solid rgba(var(--line-rgb), .2);
  border-radius: var(--r-sm);
  background: rgba(var(--deep-rgb), .45);
}

.admin-video-upload__vazio {
  display: grid;
  justify-items: center;
  gap: .25rem;
  padding: 1.6rem 1rem;
  border: 1px dashed rgba(var(--line-rgb), .28);
  border-radius: var(--r-xs);
  text-align: center;
}

.admin-video-upload__vazio span {
  color: var(--gold);
  font-size: 1.4rem;
  line-height: 1;
}

.admin-video-upload__vazio strong {
  color: var(--text-3);
  font-family: var(--font-display);
  font-size: var(--fs-md);
}

.admin-video-upload__vazio small { color: var(--text-5); font-size: var(--fs-sm); }

.admin-video-upload video {
  width: 100%;
  max-height: 260px;
  display: block;
  border-radius: var(--r-xs);
  background: #000;
}

.admin-video-upload__acoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.admin-video-upload__acoes .btn { padding: .55rem 1.1rem; font-size: var(--fs-sm); }

/* Rótulo que age como botão precisa parecer bloqueado quando não há vaga. */
.admin-video-upload__acoes .is-disabled {
  opacity: .45;
  cursor: not-allowed;
  pointer-events: none;
}

/* Aviso do campo de vídeo: links clicáveis e estado de recusa */
.admin-video-upload .admin-bloco__dica a {
  color: var(--gold-soft);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.admin-video-upload .admin-bloco__dica a:hover { color: var(--paper); }

.admin-video-upload .admin-bloco__dica.is-erro {
  padding: .7rem .85rem;
  border: 1px solid rgba(214, 122, 92, .45);
  border-radius: var(--r-xs);
  background: rgba(214, 122, 92, .1);
  color: #e2a893;
}

.admin-video-upload .admin-bloco__dica.is-erro a { color: #f0bda9; }

/* Botão de recentralizar dentro da barra de zoom */
.admin-crop__reset {
  padding: .4rem .9rem;
  font-size: var(--fs-xs);
  white-space: nowrap;
}

.admin-crop__stage { cursor: grab; }
.admin-crop__stage:active { cursor: grabbing; }
.admin-crop__dica strong { color: var(--text-2); }

/* ---------- Depoimentos ---------- */
.admin-quota--pronta {
  border-color: rgba(94, 190, 130, .5);
  background: rgba(94, 190, 130, .1);
  color: #7ed6a1;
}

.admin-evento__capa--redonda {
  aspect-ratio: 1;
  border-radius: 50%;
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: 800;
}

.admin-depoimento__trecho {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: .3rem;
  color: var(--text-3);
  font-size: var(--fs-md);
  font-style: italic;
  line-height: 1.55;
}

.admin-iniciais {
  width: 92px;
  height: 92px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--gold-rgb), .3);
  border-radius: 50%;
  background: rgba(var(--gold-rgb), .1);
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: 800;
}

.admin-upload img { border-radius: 50%; }
.admin-upload__acoes { display: grid; gap: .5rem; }
.admin-upload__acoes .btn { padding: .5rem 1rem; font-size: var(--fs-sm); }
