/* "Status do WhatsApp" — faixa da home, modal, painel do funcionário (também usado em status.html) e painel admin.
   Prefixo swa- (funcionário) e sadm- (admin). Usa as variáveis da Central (reset.css). */

/* ------------------------------------------------------------------ faixa da home */
/* Mesmo idioma dos cards da home (acesso rápido / categorias): fundo branco, borda suave, sombra leve, ícone em quadradinho
   verde-claro. O card INTEIRO é o botão; o que pulsa (devagar, em verde) é o conteúdo de dentro dele. */
.swa-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin: 0; padding: 16px 22px;
  background: var(--white); border: 1px solid var(--line); border-radius: 20px;
  box-shadow: 0 10px 28px rgba(10, 10, 10, 0.055);
}
.swa-banner[hidden] { display: none; }
.swa-banner.is-clicavel { cursor: pointer; transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; }
.swa-banner.is-clicavel:hover { border-color: rgba(38, 38, 38, 0.4); }
.swa-banner.is-clicavel:active { transform: scale(0.995); }
.swa-banner.is-clicavel:focus-visible { outline: 3px solid rgba(38, 38, 38, 0.35); outline-offset: 2px; }
.swa-banner-conteudo { display: flex; align-items: center; gap: 16px; min-width: 0; flex: 1 1 auto; transform-origin: left center; }
.swa-banner-icone {
  position: relative; display: grid; place-items: center; flex: 0 0 auto;
  width: 48px; height: 48px; color: var(--green-900); background: var(--green-100); border-radius: 15px;
}
.swa-banner-icone .material-symbols-rounded { font-size: 25px; }
.swa-banner-texto { display: grid; gap: 2px; min-width: 0; flex: 1 1 auto; }
.swa-banner-texto strong { font-size: 15px; font-weight: 800; color: var(--green-900); }
.swa-banner-seta { display: none; color: var(--green-700); }
.swa-banner-seta .material-symbols-rounded { font-size: 26px; }
.swa-banner-botoes { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.swa-banner-abrir { flex: 0 0 auto; }
.swa-banner-ja { color: var(--green-900); background: var(--green-100); border: 1px solid rgba(38, 38, 38, 0.35); }
.swa-banner-ja:hover:not(:disabled) { background: #d6eee0; }
.swa-banner--ok { background: var(--green-050); }
.swa-banner--ok .swa-banner-icone { color: #fff; background: var(--green-700); }

/* Pendência NOVA: borda um tom mais verde + o conteúdo do card "respira" (opacidade e um respiro de escala), devagar. */
.swa-banner.is-pendente { border-color: rgba(38, 38, 38, 0.38); animation: swa-halo 2.8s ease-in-out infinite; }
.swa-banner.is-pendente .swa-banner-conteudo { animation: swa-respira 2.8s ease-in-out infinite; }
.swa-banner.is-novo .swa-banner-icone::after {
  content: ""; position: absolute; top: -3px; right: -3px; width: 11px; height: 11px;
  background: var(--green-700); border: 2px solid var(--white); border-radius: 50%;
}
@keyframes swa-respira {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.66; transform: scale(1.014); }
}
@keyframes swa-halo {
  0%, 100% { box-shadow: 0 10px 28px rgba(10, 10, 10, 0.055), 0 0 0 0 rgba(38, 38, 38, 0); }
  50% { box-shadow: 0 10px 28px rgba(10, 10, 10, 0.055), 0 0 0 5px rgba(38, 38, 38, 0.10); }
}

/* celular: sem o botão "Ver conteúdos" (o card todo é o toque) e uma setinha mostra que dá pra tocar */
@media (max-width: 700px) {
  .swa-banner { margin: 0 14px 22px; padding: 14px 16px; }
  .swa-banner .swa-banner-botoes { display: none; }
  .swa-banner-seta { display: block; }
  .swa-banner-icone { width: 44px; height: 44px; }
  .swa-banner-conteudo { gap: 14px; }
}
/* "Reduzir movimento" (comum em Android/iPhone) não some com o aviso: troca o respiro por um piscar suave só de opacidade, sem mexer de lugar. */
@media (prefers-reduced-motion: reduce) {
  .swa-banner.is-pendente { animation: none; box-shadow: 0 10px 28px rgba(10, 10, 10, 0.055), 0 0 0 4px rgba(38, 38, 38, 0.12); }
  .swa-banner.is-pendente .swa-banner-conteudo { animation: swa-suave 3.4s ease-in-out infinite; }
}
@keyframes swa-suave { 0%, 100% { opacity: 1; } 50% { opacity: 0.62; } }

/* a home é uma grade de 4 colunas (styles.css): a faixa ocupa a linha toda, logo depois do acesso rápido (order 2 = a
   linha "pergunta rápida + acesso rápido"; mesma ordem => vale a ordem do HTML) */
body:not(.busca-ativa):not(.mobile-detail-open) .swa-banner { grid-column: 1 / -1; order: 2; }

/* some quando a home não está à vista (busca ou categoria aberta) */
body.busca-ativa .swa-banner,
body.mobile-detail-open .swa-banner,
body:has(.content-layout:not(.detail-inactive)) .swa-banner { display: none; }

/* ------------------------------------------------------------------ botões */
.swa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px;
  font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; text-decoration: none;
  transition: background 0.18s ease, transform 0.18s ease, opacity 0.18s ease;
}
.swa-btn:disabled { opacity: 0.6; cursor: default; }
.swa-btn-principal { color: var(--white); background: var(--green-900); box-shadow: 0 12px 24px rgba(10, 10, 10, 0.18); }
.swa-btn-principal:hover:not(:disabled) { background: var(--green-800); }
.swa-btn-ok { color: #fff; background: var(--green-700); box-shadow: 0 12px 24px rgba(38, 38, 38, 0.25); }
.swa-btn-ok:hover:not(:disabled) { background: var(--green-800); }
.swa-btn-ja { width: 100%; margin-top: 10px; }
.swa-voltar { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 8px; padding: 4px 10px 4px 6px; color: var(--green-800); background: var(--green-050); border: 0; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.swa-voltar .material-symbols-rounded { font-size: 18px; }
.swa-btn-texto { color: var(--muted); background: transparent; }
.swa-btn-texto:hover { color: var(--green-800); }
.swa-link {
  display: inline-flex; align-items: center; gap: 4px; padding: 6px 4px;
  color: var(--muted); background: transparent; border: 0; font: inherit; font-size: 13px; cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px;
}
.swa-link:hover { color: var(--green-800); }
.swa-link .material-symbols-rounded { font-size: 18px; }

/* ------------------------------------------------------------------ modal */
.swa-modal { position: fixed; inset: 0; z-index: 4000; display: grid; place-items: center; padding: 16px; }
.swa-modal[hidden] { display: none; }
.swa-modal-fundo { position: absolute; inset: 0; background: rgba(23, 48, 40, 0.55); backdrop-filter: blur(2px); animation: swa-fundo-in 0.55s ease both; }
.swa-modal-caixa {
  position: relative; width: min(720px, 100%); max-height: calc(100dvh - 32px); overflow: auto;
  padding: 26px 26px 24px; background: var(--white); border-radius: 22px;
  box-shadow: 0 30px 70px rgba(23, 48, 40, 0.35);
}
.swa-modal-x {
  position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; display: grid; place-items: center;
  background: transparent; border: 0; border-radius: 50%; color: var(--muted); cursor: pointer;
}
.swa-modal-x:hover { background: var(--green-050); color: var(--green-800); }
body.swa-aberto { overflow: hidden; }

/* Abertura: o fundo escurece primeiro (0,55 s) e o cartão sobe devagar logo depois (0,75 s), sem pulo. Saída: some em 0,25 s. */
.swa-modal-caixa { animation: swa-caixa-in 0.75s cubic-bezier(0.16, 0.84, 0.3, 1) 0.18s both; }
.swa-modal.is-voando .swa-modal-fundo { animation: swa-fundo-out 0.7s ease both; }
.swa-modal.is-voando .swa-modal-caixa { visibility: hidden; }
.swa-modal.is-saindo .swa-modal-fundo { animation: swa-fundo-out 0.25s ease both; }
.swa-modal.is-saindo .swa-modal-caixa { animation: swa-caixa-out 0.25s ease both; }
@keyframes swa-fundo-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes swa-fundo-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes swa-caixa-in { from { opacity: 0; transform: translateY(34px) scale(0.975); } to { opacity: 1; transform: none; } }
@keyframes swa-caixa-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(14px) scale(0.985); } }
@media (prefers-reduced-motion: reduce) {
  .swa-modal-fundo, .swa-modal-caixa, .swa-modal.is-saindo .swa-modal-fundo, .swa-modal.is-saindo .swa-modal-caixa { animation: none; }
}
@media (max-width: 640px) {
  .swa-modal { padding: 0; align-items: end; }
  .swa-modal-caixa { border-radius: 22px 22px 0 0; max-height: 92dvh; padding: 22px 16px calc(20px + env(safe-area-inset-bottom)); }
}

/* ------------------------------------------------------------------ painel (modal e status.html) */
.swa-cab { margin-bottom: 14px; }
.swa-cab h2 { margin: 0 32px 2px 0; font-size: 20px; font-weight: 800; color: var(--ink); }
.swa-cab p { margin: 0; font-size: 14px; color: var(--muted); }
.swa-cab .swa-ja { margin-top: 4px; font-size: 13px; color: var(--green-700); font-weight: 700; }
.swa-carregando { margin: 24px 0; color: var(--muted); text-align: center; }
.swa-erro { margin: 12px 0 0; padding: 10px 12px; font-size: 13px; color: #8a2b2b; background: #fdeeee; border-radius: 12px; }
.swa-dica { margin: 8px 0 0; font-size: 12.5px; color: var(--muted); text-align: center; }

.swa-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 10px; margin: 16px 0 18px; }
.swa-item { position: relative; margin: 0; }
.swa-thumb {
  position: relative; aspect-ratio: 9 / 16; overflow: hidden; background: var(--green-050);
  border: 1px solid var(--line); border-radius: 14px;
}
.swa-thumb { cursor: zoom-in; }
.swa-thumb:focus-visible { outline: 3px solid rgba(38, 38, 38, 0.45); outline-offset: 2px; }
.swa-thumb img, .swa-thumb video { display: block; width: 100%; height: 100%; object-fit: cover; }
.swa-thumb img[hidden] { display: none; }
/* vídeo sem quadro (ainda carregando ou o aparelho não entrega): fundo verde com o play */
.swa-thumb--video { background: linear-gradient(160deg, var(--green-700), var(--green-900)); }
.swa-dur { position: absolute; left: 6px; bottom: 6px; padding: 1px 7px; font-size: 11px; font-weight: 800; color: #fff; background: rgba(0, 0, 0, 0.55); border-radius: 999px; }
.swa-dur[hidden] { display: none; }
.swa-play {
  position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none;
  color: #fff; background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.35));
}
.swa-play .material-symbols-rounded { font-size: 38px; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5)); }
.swa-num {
  position: absolute; top: 6px; left: 6px; min-width: 22px; height: 22px; padding: 0 6px; display: grid; place-items: center;
  font-size: 12px; font-weight: 800; color: #fff; background: rgba(10, 10, 10, 0.82); border-radius: 999px;
}
.swa-chip {
  position: absolute; top: 6px; right: 6px; padding: 2px 8px; font-size: 11px; font-weight: 800; color: #6b4300;
  background: #f6c46e; border-radius: 999px;
}
.swa-item.is-novo .swa-thumb { border-color: #e8a13c; box-shadow: 0 0 0 2px rgba(232, 161, 60, 0.35); }
.swa-item-share {
  position: absolute; right: 6px; bottom: 6px; width: 32px; height: 32px; padding: 0; display: flex; align-items: center; justify-content: center;
  color: var(--green-900); background: rgba(255, 255, 255, 0.92); border: 0; border-radius: 50%; cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.swa-item-share:disabled { opacity: 0.4; cursor: default; }
.swa-item-share .material-symbols-rounded { display: block; width: 18px; height: 18px; font-size: 18px; line-height: 18px; text-align: center; overflow: hidden; }

@media (max-width: 640px) {
  .swa-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
  .swa-cab h2 { font-size: 18px; }
}

.swa-acoes { display: grid; justify-items: center; gap: 4px; }
.swa-acoes > .swa-btn-principal { width: 100%; min-height: 52px; font-size: 15px; }
/* Foto + vídeo em passos (13/10/2026) */
.swa-passos { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 0 6px; padding: 0; list-style: none; }
.swa-passos li { padding: 4px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--muted); background: rgba(10, 10, 10, 0.07); }
.swa-passos li.is-atual { color: #fff; background: var(--green-700); }
.swa-passos li.is-feito { color: var(--green-700); background: rgba(10, 10, 10, 0.12); }
.swa-passos-explica { margin: 0 0 6px; font-size: 13px; text-align: center; color: var(--green-700); font-weight: 600; }
.swa-link-baixar { margin-top: 6px; font-size: 12.5px; opacity: 0.85; }

.swa-qr { display: grid; justify-items: center; gap: 6px; padding: 18px; width: 100%; background: var(--green-050); border-radius: 18px; text-align: center; }
.swa-qr h3 { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 17px; font-weight: 800; color: var(--ink); }
.swa-qr p { margin: 0; max-width: 420px; font-size: 14px; color: var(--muted); }
.swa-qr-caixa { margin: 6px 0 2px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 16px; line-height: 0; }
.swa-qr-canvas { display: block; min-width: 120px; min-height: 120px; }

.swa-confirma {
  margin: 14px 0 0; padding: 16px; background: var(--green-050); border: 1px solid rgba(38, 38, 38, 0.35); border-radius: 16px;
  animation: swa-entra 0.25s ease both;
}
.swa-confirma h3 { margin: 0 0 4px; font-size: 17px; font-weight: 800; color: var(--ink); }
.swa-confirma p { margin: 0 0 12px; font-size: 14px; color: var(--muted); }
.swa-confirma-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
@keyframes swa-entra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.swa-concluido { display: grid; justify-items: center; gap: 6px; padding: 26px 8px 10px; text-align: center; }
.swa-concluido h3 { margin: 0; font-size: 20px; font-weight: 800; color: var(--ink); }
.swa-concluido p { margin: 0; max-width: 360px; font-size: 14px; color: var(--muted); }
.swa-concluido-check { width: 64px; height: 64px; display: grid; place-items: center; color: #fff; background: var(--green-700); border-radius: 50%; animation: swa-entra 0.3s ease both; }
.swa-concluido-check .material-symbols-rounded { font-size: 38px; }

/* ------------------------------------------------------------------ status.html (página do QR) */
.swa-pagina { max-width: 720px; margin: 0 auto; padding: calc(var(--topbar-height, 76px) + 16px) 16px 40px; }
.swa-pagina .swa-cartao { padding: 22px 18px; background: var(--white); border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 10px 28px rgba(10, 10, 10, 0.055); }

/* ------------------------------------------------------------------ admin */
.sadm-secao { margin: 0 0 26px; }
.sadm-secao > h2 { margin: 0 0 4px; font-size: 18px; }
.sadm-dica { margin: 0 0 12px; font-size: 13px; color: var(--muted); }
.sadm-form { display: grid; gap: 12px; padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.sadm-linha { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.sadm-linha label { display: grid; gap: 4px; font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.sadm-linha input[type="date"], .sadm-linha input[type="text"] { min-height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.sadm-drop {
  display: grid; place-items: center; gap: 4px; padding: 22px; text-align: center; color: var(--muted);
  border: 2px dashed rgba(10, 10, 10, 0.25); border-radius: 14px; cursor: pointer; background: var(--green-050);
}
.sadm-drop.is-sobre { border-color: var(--green-700); background: var(--green-100); }
.sadm-drop strong { color: var(--ink); }
.sadm-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 10px; }
.sadm-lista:empty { display: none; }
.sadm-card { position: relative; display: grid; gap: 4px; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: 12px; cursor: grab; }
.sadm-card.is-arrastando { opacity: 0.4; }
.sadm-card.is-alvo { outline: 2px solid var(--green-700); outline-offset: 2px; }
.sadm-thumb { position: relative; aspect-ratio: 9 / 16; overflow: hidden; border-radius: 8px; background: var(--green-050); }
.sadm-thumb img, .sadm-thumb video { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.sadm-ord { position: absolute; top: 5px; left: 5px; min-width: 22px; height: 22px; padding: 0 6px; display: grid; place-items: center; font-size: 12px; font-weight: 800; color: #fff; background: rgba(10, 10, 10, 0.85); border-radius: 999px; }
.sadm-card .sadm-x { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; display: grid; place-items: center; color: #fff; background: rgba(150, 40, 40, 0.85); border: 0; border-radius: 50%; cursor: pointer; }
.sadm-card .sadm-x .material-symbols-rounded { font-size: 16px; }
.sadm-nome { font-size: 11.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sadm-setas { display: flex; justify-content: center; gap: 4px; }
.sadm-setas button { width: 28px; height: 24px; display: grid; place-items: center; color: var(--green-800); background: var(--green-050); border: 0; border-radius: 8px; cursor: pointer; }
.sadm-setas button:disabled { opacity: 0.3; cursor: default; }
.sadm-setas .material-symbols-rounded { font-size: 16px; }
.sadm-aviso { margin: 0; padding: 8px 10px; font-size: 12.5px; color: #7a4b00; background: #fff4de; border-radius: 10px; }
.sadm-erro { margin: 0; padding: 8px 10px; font-size: 12.5px; color: #8a2b2b; background: #fdeeee; border-radius: 10px; }
.sadm-ok { margin: 0; padding: 8px 10px; font-size: 12.5px; color: var(--green-900); background: var(--green-100); border-radius: 10px; }
.sadm-pub { padding: 14px 16px; margin: 0 0 10px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.sadm-pub-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sadm-pub-cab h3 { margin: 0; font-size: 16px; }
.sadm-pub-meta { flex: 1 1 auto; font-size: 13px; color: var(--muted); }
.sadm-chip { padding: 2px 10px; font-size: 12px; font-weight: 800; border-radius: 999px; }
.sadm-chip.on { color: var(--green-900); background: var(--green-100); }
.sadm-chip.off { color: #6b6b6b; background: #eee; }
.sadm-chip.hoje { color: #6b4300; background: #f6c46e; }
.sadm-pub-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.sadm-pub-corpo { display: grid; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
/* Validação (V.247): check verde igual ao das perguntas (.qp-valida, admin.css) + comentários. */
.sadm-chip.espera { color: #6b4300; background: #fff1d6; border: 1px dashed #e0a43a; }
.sadm-pub.is-esperando { border-color: #e9c27a; background: #fffdf7; }
.sadm-pub.is-destaque { animation: sadm-destaque 2.2s ease; }
.sadm-secao.is-destaque > .sadm-form { animation: sadm-destaque 2.2s ease; }
/* Agenda dos próximos 7 dias úteis (V.254): um botão por dia; vazio = clicar cadastra. */
.sadm-agenda { padding: 14px 16px; background: #fffaf2; border: 1px solid #f0d7a6; border-radius: 16px; }
.sadm-agenda.is-completa { background: var(--green-050); border-color: var(--line); }
.sadm-agenda > h2 { font-size: 16px; }
.sadm-agenda-dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.sadm-agenda-dia {
  display: grid; justify-items: center; gap: 2px; padding: 10px 4px; font: inherit; color: var(--green-900);
  background: #fff; border: 1px solid var(--line); border-radius: 12px; cursor: pointer;
}
.sadm-agenda-dia:focus-visible { outline: 3px solid rgba(38, 38, 38, 0.35); outline-offset: 2px; }
.sadm-agenda-sem { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.sadm-agenda-dia strong { font-size: 15px; }
.sadm-agenda-est { display: flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 700; text-align: center; }
.sadm-agenda-est .material-symbols-rounded { font-size: 15px; }
.sadm-agenda-dia.is-ok .sadm-agenda-est { color: #2e7d4f; }
.sadm-agenda-dia.is-espera { background: #fffdf7; border-color: #e9c27a; }
.sadm-agenda-dia.is-espera .sadm-agenda-est { color: #8a5a00; }
.sadm-agenda-dia.is-vazio { background: #fff6f4; border: 1px dashed #d9776a; }
.sadm-agenda-dia.is-vazio .sadm-agenda-est { color: #a3321f; }
.sadm-agenda-dia.is-vazio:hover { background: #ffece8; }
@media (max-width: 720px) { .sadm-agenda-dias { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@keyframes sadm-destaque { 0%, 40% { box-shadow: 0 0 0 4px rgba(38, 38, 38, 0.35); } 100% { box-shadow: 0 0 0 0 rgba(38, 38, 38, 0); } }
.sadm-pub-acoes .admin-mini-button .material-symbols-rounded { font-size: 16px; vertical-align: -3px; }
.sadm-coms { display: grid; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line); }
.sadm-coms ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.sadm-com { padding: 8px 12px; background: var(--green-050); border-radius: 12px; }
.sadm-com-quem { display: block; font-size: 11.5px; font-weight: 800; color: var(--green-700); }
.sadm-com p { margin: 2px 0 0; font-size: 13.5px; white-space: pre-wrap; overflow-wrap: anywhere; }
.sadm-com-form { display: grid; gap: 8px; }
.sadm-com-form textarea { width: 100%; box-sizing: border-box; min-height: 60px; padding: 8px 10px; font: inherit; font-size: 14px; border: 1px solid var(--line); border-radius: 10px; resize: vertical; }
.sadm-com-form textarea:focus { outline: 3px solid rgba(38, 38, 38, 0.25); border-color: var(--green-700); }

/* Aviso pra quem postou: "Fulano validou / comentou" — cartão fixo no canto, home e painel (avisosValidacao.js). */
.sval-avisos {
  position: fixed; top: 84px; right: 16px; z-index: 3300; box-sizing: border-box;
  width: min(380px, calc(100vw - 32px)); max-height: calc(100vh - 110px); overflow: auto;
  padding: 14px 16px; background: var(--white); border: 1px solid var(--line); border-left: 5px solid var(--green-700); border-radius: 16px;
  box-shadow: 0 18px 40px rgba(10, 10, 10, 0.18); animation: sval-entra 0.35s ease both;
}
.sval-avisos[hidden] { display: none; }
.sval-avisos h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 15px; color: var(--green-900); }
.sval-avisos h2 .material-symbols-rounded { font-size: 20px; color: var(--green-700); }
.sval-avisos ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sval-aviso { display: flex; gap: 10px; align-items: flex-start; }
.sval-aviso-icone { display: grid; place-items: center; flex: 0 0 auto; width: 32px; height: 32px; color: var(--green-900); background: var(--green-100); border-radius: 10px; }
.sval-aviso-icone .material-symbols-rounded { font-size: 19px; }
.sval-aviso.is-ok .sval-aviso-icone { color: #fff; background: #2e9e5b; }
.sval-aviso.is-tirou_ok .sval-aviso-icone { color: #6b4300; background: #fff1d6; }
.sval-aviso-texto { min-width: 0; }
.sval-aviso-texto p { margin: 0; font-size: 13.5px; line-height: 1.4; color: var(--green-900); }
.sval-aviso-texto blockquote { margin: 4px 0 0; padding: 6px 10px; font-size: 13.5px; white-space: pre-wrap; overflow-wrap: anywhere; background: var(--green-050); border-radius: 10px; }
.sval-mais { margin: 6px 0 0; font-size: 12px; color: var(--muted); }
.sval-botoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.sval-botoes button { min-height: 36px; padding: 0 14px; font: inherit; font-size: 13px; font-weight: 800; border-radius: 999px; cursor: pointer; }
.sval-ver { color: var(--green-900); background: var(--white); border: 1px solid rgba(38, 38, 38, 0.35); }
.sval-entendi { color: #fff; background: var(--green-700); border: 1px solid var(--green-700); }
.sval-botoes button:focus-visible { outline: 3px solid rgba(38, 38, 38, 0.35); outline-offset: 2px; }
@keyframes sval-entra { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
/* alerta de prazo (V.250): vermelho, acima dos avisos */
.sval-avisos.is-urgente { border-left-color: #c0392b; }
.sval-urgente-tit { color: #a3321f !important; }
.sval-urgente-tit .material-symbols-rounded { color: #c0392b !important; }
.sval-aviso.is-alerta .sval-aviso-icone { color: #7a4b00; background: #fff1d6; }
.sval-aviso.is-atrasada .sval-aviso-icone { color: #fff; background: #c0392b; }
.sval-aviso.is-agenda .sval-aviso-icone { color: #7a4b00; background: #fff1d6; }
/* V.270: faltando só o 6º/7º dia útil = sugestão (tom mais leve, sem notificação) */
.sval-aviso.is-sugestao .sval-aviso-icone { color: #2b5a47; background: #e3f1ea; }
.sval-quem { margin-top: 2px !important; font-size: 12px !important; color: var(--muted) !important; }
.sval-botoes.is-linha { justify-content: flex-start; margin-top: 8px; }
.sval-avisos ul + h2 { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
@media (max-width: 640px) { .sval-avisos { top: auto; bottom: 16px; right: 16px; left: 16px; width: auto; } }
@media (prefers-reduced-motion: reduce) { .sval-avisos, .sadm-pub.is-destaque, .sadm-secao.is-destaque > .sadm-form { animation: none; } }
.sadm-tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.sadm-tabela th, .sadm-tabela td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--line); }
.sadm-tabela th { font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.sadm-barra { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 10px; }
.sadm-barra input[type="search"], .sadm-barra select { min-height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }

/* ------------------------------------------------------------------ visualizador (arte/vídeo em tamanho maior) */
.swa-viz { position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center; background: rgba(10, 22, 18, 0.94); animation: swa-fundo-in 0.3s ease both; }
.swa-viz.is-saindo { animation: swa-fundo-out 0.22s ease both; }
.swa-viz-palco { position: absolute; inset: 0; box-sizing: border-box; padding: 56px 12px 40px; }
.swa-viz-palco img, .swa-viz-palco video { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 12px; background: transparent; }
.swa-viz-msg { position: absolute; inset: 0; display: grid; place-items: center; color: #cfe0d8; font-size: 14px; }
.swa-viz-cont { position: absolute; top: 18px; left: 50%; transform: translateX(-50%); padding: 3px 12px; font-size: 13px; font-weight: 800; color: #fff; background: rgba(255, 255, 255, 0.14); border-radius: 999px; }
.swa-viz-x, .swa-viz-seta {
  position: absolute; display: flex; align-items: center; justify-content: center; padding: 0; color: #fff;
  background: rgba(255, 255, 255, 0.14); border: 0; border-radius: 50%; cursor: pointer; transition: background 0.2s ease;
}
.swa-viz-x:hover, .swa-viz-seta:hover { background: rgba(255, 255, 255, 0.28); }
.swa-viz-x { top: 12px; right: 12px; width: 44px; height: 44px; }
.swa-viz-seta { top: 50%; width: 46px; height: 46px; transform: translateY(-50%); }
.swa-viz-seta[hidden] { display: none; }
.swa-viz-ant { left: 12px; }
.swa-viz-prox { right: 12px; }
.swa-viz .material-symbols-rounded { font-size: 26px; }
@media (max-width: 700px) { .swa-viz-seta { display: none; } .swa-viz-palco { padding: 60px 6px 28px; } }
@media (prefers-reduced-motion: reduce) { .swa-viz, .swa-viz.is-saindo { animation: none; } }

/* admin: caixa do link direto + prévia de vídeo */
.sadm-link { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 22px; padding: 14px 16px; background: var(--green-050); border: 1px solid var(--line); border-radius: 16px; }
.sadm-link strong { font-size: 13px; color: var(--green-900); }
.sadm-link .sadm-dica { flex: 1 1 260px; margin: 0; }
.sadm-card .sadm-thumb { cursor: zoom-in; }
.sadm-thumb .sadm-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; pointer-events: none; background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.35)); }
.sadm-thumb--video { background: linear-gradient(160deg, var(--green-700), var(--green-900)); }
.sadm-thumb img[hidden] { display: none; }

/* ------------------------------------------------------------------ voo pro card de Marketing + histórico */
.swa-voo {
  position: fixed; z-index: 4600; display: grid; place-items: center; overflow: hidden; pointer-events: none;
  background: linear-gradient(160deg, #ffffff, var(--green-050)); border: 1px solid rgba(38, 38, 38, 0.35); border-radius: 22px;
  box-shadow: 0 30px 70px rgba(23, 48, 40, 0.35);
}
.swa-voo-check { display: grid; place-items: center; width: 76px; height: 76px; color: #fff; background: var(--green-700); border-radius: 50%; box-shadow: 0 0 0 10px rgba(38, 38, 38, 0.16); }
.swa-voo-check .material-symbols-rounded { font-size: 44px; }

[data-category-id].swa-recebeu { position: relative; animation: swa-recebe 1.4s ease-out both; }
@keyframes swa-recebe {
  0% { box-shadow: 0 0 0 0 rgba(38, 38, 38, 0.55); transform: scale(1); }
  35% { box-shadow: 0 0 0 14px rgba(38, 38, 38, 0.0); transform: scale(1.035); }
  100% { box-shadow: 0 0 0 0 rgba(38, 38, 38, 0); transform: scale(1); }
}
/* Badge redondo só com o check, em qualquer tela (QA V.186: a dona tirou o
   texto "Artes guardadas" — o ONDE acessar fica no toast). */
.swa-selo {
  position: absolute; top: 8px; right: 8px; z-index: 5; display: inline-flex; align-items: center; padding: 6px;
  color: #fff; background: var(--green-700); border-radius: 50%; box-shadow: 0 8px 18px rgba(38, 38, 38, 0.35);
  animation: swa-selo-in 0.5s cubic-bezier(0.2, 0.9, 0.3, 1.3) both;
}
.swa-selo .material-symbols-rounded { font-size: 16px; }
.swa-selo.is-saindo { animation: swa-selo-out 0.4s ease both; }
@keyframes swa-selo-in { from { opacity: 0; transform: translateY(8px) scale(0.6); } to { opacity: 1; transform: none; } }
@keyframes swa-selo-out { to { opacity: 0; transform: translateY(-6px) scale(0.9); } }

.swa-toast {
  position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 4700; display: flex; align-items: center; gap: 12px;
  width: max-content; max-width: min(92vw, 420px); padding: 12px 18px 12px 12px; background: var(--white); border: 1px solid rgba(38, 38, 38, 0.35);
  border-radius: 18px; box-shadow: 0 18px 44px rgba(23, 48, 40, 0.22); transform: translateX(-50%);
  animation: swa-toast-in 0.55s cubic-bezier(0.16, 0.84, 0.3, 1) both;
}
.swa-toast.is-saindo { animation: swa-toast-out 0.4s ease both; }
.swa-toast-check { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; color: #fff; background: var(--green-700); border-radius: 50%; }
.swa-toast-texto { display: grid; gap: 1px; }
.swa-toast-texto strong { font-size: 14px; color: var(--green-900); }
.swa-toast-texto span { font-size: 12.5px; color: var(--muted); }
@keyframes swa-toast-in { from { opacity: 0; transform: translate(-50%, 24px) scale(0.96); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } }
@keyframes swa-toast-out { to { opacity: 0; transform: translate(-50%, 12px) scale(0.98); } }
@media (prefers-reduced-motion: reduce) { .swa-toast, .swa-selo, [data-category-id].swa-recebeu { animation: none; } }

.swa-hist { display: grid; gap: 10px; margin-top: 14px; }
.swa-hist-item {
  display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px 14px; text-align: left; font: inherit;
  background: var(--white); border: 1px solid var(--line); border-radius: 18px; cursor: pointer; transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.swa-hist-item:hover { border-color: rgba(38, 38, 38, 0.4); box-shadow: 0 10px 24px rgba(10, 10, 10, 0.08); }
.swa-hist-item > .material-symbols-rounded { flex: 0 0 auto; color: var(--green-700); }
.swa-hist-fotos { display: flex; flex: 0 0 auto; }
.swa-hist-foto { width: 40px; height: 62px; margin-left: -12px; object-fit: cover; background: var(--green-100); border: 2px solid var(--white); border-radius: 10px; }
.swa-hist-foto:first-child { margin-left: 0; }
.swa-hist-foto--video { display: grid; place-items: center; color: #fff; background: linear-gradient(160deg, var(--green-700), var(--green-900)); }
.swa-hist-foto--video .material-symbols-rounded { font-size: 22px; }
.swa-hist-texto { display: grid; gap: 2px; min-width: 0; flex: 1 1 auto; }
.swa-hist-texto strong { font-size: 15px; color: var(--green-900); white-space: nowrap; }
.swa-hist-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.swa-hist-linha > span:first-child { font-size: 13px; color: var(--muted); }
.swa-hist-ok { display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto; padding: 2px 9px; font-size: 12px; font-weight: 800; color: var(--green-900); background: var(--green-100); border-radius: 999px; }
.swa-hist-ok .material-symbols-rounded { font-size: 15px; }

/* Admin do Status: mesmos botões do resto do painel (admin-mini-button) e caixas de marcar alinhadas */
.sadm-linha label.admin-check { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-size: 14px; font-weight: 600; color: var(--ink); text-transform: none; letter-spacing: 0; }
.sadm-pub-acoes .admin-mini-button { min-height: 34px; }
.sadm-link .admin-mini-button { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; }
.sadm-link .admin-mini-button .material-symbols-rounded { font-size: 18px; }

.swa-prog-caixa { width: 100%; margin-top: 8px; }
.swa-prog { height: 8px; overflow: hidden; background: var(--green-050); border-radius: 999px; }
.swa-prog-barra { width: 0; height: 100%; background: var(--green-700); border-radius: 999px; transition: width 0.15s linear; }
.swa-prog-detalhe { margin-top: 6px; }

/* V.252: aviso de navegador embutido (leitor de QR, Instagram…) e confirmação do download por link */
.swa-embutido { display: grid; gap: 8px; margin: 4px 0 10px; padding: 12px 14px; border-radius: 14px; background: #fff4de; color: #5c3b00; border: 1px solid rgba(224, 164, 58, 0.5); }
.swa-embutido strong { font-size: 14px; }
.swa-embutido p { margin: 0; font-size: 13px; line-height: 1.45; }
.swa-embutido .swa-btn { justify-self: start; }
.swa-aviso-download { padding: 8px 12px; border-radius: 12px; background: var(--green-100); color: var(--green-900); }
