/* ============================================================
   admin.css — estilos compartilhados para modo admin
   Linkar em blog.html, artigo.html e editor.html
   ============================================================ */

/* --- Gating de visibilidade --- */
.admin-only  { display: none !important; }
.guest-only  { display: inline-flex; }

body.is-admin .admin-only { display: inline-flex !important; }
body.is-admin .guest-only { display: none; }

/* --- Barra de ações por card/artigo --- */
.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .9rem;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}

.admin-actions .btn {
  font-size: .8rem;
  padding: .45em 1em;
}

/* --- Badge "Oculto" --- */
.badge-hidden {
  display: inline-flex;
  align-items: center;
  font-size: .7rem;
  font-family: var(--font-sans);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--cocoa);
  background: #f0e6dc;
  border: 1px solid #ddd0c4;
  padding: .2em .65em;
  border-radius: 999px;
  vertical-align: middle;
  margin-left: .5em;
}

/* --- Modal de confirmação (<dialog> nativo) --- */
.modal {
  border: none;
  border-radius: var(--r);
  padding: 0;
  max-width: 440px;
  width: calc(100% - 40px);
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 20px 60px rgba(44, 37, 32, .25);
}

.modal::backdrop {
  background: rgba(44, 37, 32, .45);
}

.modal-card {
  padding: clamp(24px, 4vw, 32px);
}

.modal-title {
  font-family: var(--font-h3);
  font-weight: 400;
  font-size: 1.4rem;
  margin: 0 0 .55rem;
  color: var(--title-ink);
  line-height: 1.2;
}

.modal-body {
  color: var(--muted);
  font-size: .97rem;
  line-height: 1.55;
  margin: 0 0 1.6rem;
}

.modal-actions {
  display: flex;
  gap: .75rem;
  justify-content: flex-end;
}

.modal-danger {
  background: var(--cocoa);
  color: #fff;
  border: 1px solid var(--cocoa);
}

.modal-danger:hover {
  background: #5d3a2e;
  border-color: #5d3a2e;
  transform: translateY(-1px);
}

/* --- Skeletons de carregamento --- */
.skel {
  background: linear-gradient(
    90deg,
    var(--line) 0%,
    var(--paper) 50%,
    var(--line) 100%
  );
  background-size: 200% 100%;
  animation: skel-shimmer 1.4s ease-in-out infinite;
  border-radius: calc(var(--r) / 2);
}

@keyframes skel-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* --- Estados de feedback (vazio / erro) --- */
.state-empty,
.state-error {
  text-align: center;
  padding: clamp(40px, 6vw, 72px) 20px;
  color: var(--muted);
  font-family: var(--font-sans);
}

.state-empty p,
.state-error p {
  font-size: 1rem;
  margin: .5rem 0 1.2rem;
}

/* --- Affordance de login no rodapé --- */
.admin-login-link {
  font-size: .8rem;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: color .2s;
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.admin-login-link:hover {
  color: #fff;
  border-bottom-color: rgba(255,255,255,.6);
}
