/* Editor de anuncios (administrador e aba Anuncios do profissional). */
.ad-ed__tabs { margin-bottom: 14px; flex-wrap: wrap; }
.ad-ed__load { padding: 30px; text-align: center; color: var(--muted); }
.ad-ed__bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.ad-ed__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.ad-ed__card { display: flex; gap: 12px; align-items: center; padding: 12px; flex-wrap: wrap; }
.ad-ed__card.off { opacity: .75; }
.ad-ed__card .grow { display: grid; gap: 4px; min-width: 0; flex: 1 1 160px; }
.ad-ed__card .grow b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-ed__th { display: grid; place-items: center; width: 64px; height: 64px; flex: none; border-radius: 14px; overflow: hidden; color: #fff; }
.ad-ed__th img { width: 100%; height: 100%; object-fit: cover; }
.ad-ed__acts { display: flex; gap: 6px; }
.ad-ed__empty { display: grid; justify-items: center; gap: 6px; padding: 40px 16px; text-align: center; border: 1.5px dashed var(--line-strong); border-radius: var(--r-lg, 16px); color: var(--muted); }
.ad-ed__empty p { margin: 0; max-width: 520px; }
/* Previa grande no topo e os campos embaixo, na largura toda (janela larga). */
.modal__panel.ad-ed__wide { max-width: min(1180px, 96vw); }
.ad-ed__form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.ad-ed__prev { display: grid; gap: 8px; padding: 16px; border-radius: var(--r-lg, 16px); background: var(--soft); }
/* Previa fixa no alto da janela: so o banner, sem rotulo nem moldura; os campos rolam por baixo. */
.ad-ed__wide .ad-ed__prev { position: sticky; top: var(--ad-head, 56px); z-index: 1; padding: 0 0 8px; border-radius: 0; background: var(--bg); max-height: 32vh; overflow: hidden; }
.ad-ed__wide .ad-ed__prev [data-prev] { min-height: 0; width: 100%; max-width: 900px; }
/* Banner unico/carrossel escolhidos na previa: maiores, com a area fixa um pouco mais alta. */
.ad-ed__wide .ad-ed__prev:is([data-fmt="single"], [data-fmt="carousel"], [data-fmt="marquee"], [data-fmt="coverflow"]) { max-height: 44vh; }
.ad-ed__wide .ad-ed__prev[data-fmt="single"] [data-prev] { max-width: 520px; }
/* Celular: area fixa baixa, banner na largura toda. */
@media (max-width: 720px) { .ad-ed__wide .ad-ed__prev, .ad-ed__wide .ad-ed__prev:is([data-fmt="single"], [data-fmt="carousel"]) { max-height: 30vh; } }
@media (max-height: 640px) { .ad-ed__wide .ad-ed__prev { position: relative; top: auto; max-height: none; } }
.ad-ed__prev [data-prev] { width: 100%; max-width: 820px; margin: 0 auto; min-height: 120px; }
.ad-ed__prev > b { text-align: center; }
.ad-ed__prev > .pn-chips { justify-content: center; }
.ad-ed__fields { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.ad-ed__fields .span-2, .ad-ed__fields > h3 { grid-column: 1 / -1; }
.ad-ed__plans { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important; }
.ad-ed__form .field { position: relative; }
.ad-ed__cnt { position: absolute; right: 8px; bottom: 8px; font-size: 11px; color: var(--muted); pointer-events: none; }
.ad-ed__media { display: flex; gap: 8px; flex-wrap: wrap; }
.ad-ed__mi { position: relative; width: 92px; height: 92px; border-radius: 12px; overflow: hidden; background: var(--soft); }
.ad-ed__mi img, .ad-ed__mi video { width: 100%; height: 100%; object-fit: cover; }
.ad-ed__mi .icon-btn { position: absolute; top: 4px; right: 4px; }
.ad-ed__mi .ad-ed__ml { right: auto; left: 4px; }
.ad-ed__madd { display: grid; place-items: center; gap: 2px; width: 92px; height: 92px; border: 1.5px dashed var(--line-strong); border-radius: 12px; background: none; color: var(--accent-text); cursor: pointer; font: inherit; }
.ad-ed__madd small { font-size: 11px; text-align: center; }
.ad-ed__colors { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ad-ed__col { display: grid; justify-items: center; gap: 2px; font-size: 11px; color: var(--muted); }
.ad-ed__col input { width: 44px; height: 36px; padding: 0; border: 1px solid var(--line); border-radius: 10px; background: none; cursor: pointer; }
.ad-ed__plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.ad-ed__plan { display: grid; gap: 6px; justify-items: start; padding: 14px; text-align: left; border: 1.5px solid var(--line); border-radius: var(--r-md, 12px); background: var(--surface); color: inherit; font: inherit; cursor: pointer; }
.ad-ed__plan.on { border-color: var(--accent); background: var(--soft); }
.ad-ed__plan .big { font-size: 20px; font-weight: 800; }
.ad-ed__plan small { color: var(--muted); }
.ad-ed__pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; max-height: 280px; overflow-y: auto; }
.ad-ed__pk { position: relative; display: flex; gap: 8px; align-items: center; padding: 6px; text-align: left; border: 1.5px solid var(--line); border-radius: 12px; background: var(--surface); color: inherit; font: inherit; font-size: 13px; cursor: pointer; }
.ad-ed__pk.on { border-color: var(--accent); background: var(--soft); }
.ad-ed__pk img { width: 36px; height: 36px; border-radius: 8px; object-fit: cover; flex: none; }
.ad-ed__pk span { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ad-ed__pk i { position: absolute; top: -6px; left: -6px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent); color: #fff; font-style: normal; font-size: 11px; font-weight: 800; }
.ad-ed__code { margin: 10px 0; padding: 12px; overflow-x: auto; border-radius: 12px; background: #0f172a; color: #e2e8f0; font-size: 12.5px; white-space: pre-wrap; word-break: break-all; }
.ad-ed__help ol { padding-left: 20px; display: grid; gap: 6px; }
/* Lugar dos banners no site (pagina inicial, busca, perfil e agenda). */
.gl-ads-slot { margin: 18px auto; }
.gl-ads-slot[hidden] { display: none; }
/* Aba do profissional: quadro de custo sempre visivel. */
.ad-cost { margin-bottom: 14px; display: grid; gap: 12px; }
.ad-cost__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ad-cost__head > div { display: grid; gap: 2px; }
.ad-cost__big { font-size: 26px; font-weight: 800; color: var(--accent-text); }
.ad-ed__brl { font-size: 13px; font-weight: 700; color: var(--success, #15803D); }
.ad-cost__brl { font-size: 18px; font-weight: 800; color: var(--success, #15803D); }
/* Lista de blocos no celular: nome e detalhes na largura toda, botoes embaixo. */
.ad-ed__brow .grow { min-width: 0; }
@media (max-width: 640px) {
  .ad-ed__brow { flex-wrap: wrap; row-gap: 8px; }
  .ad-ed__brow > .grow { flex: 1 1 calc(100% - 52px); }
  .ad-ed__brow > .grow small { white-space: normal; overflow-wrap: anywhere; }
  .ad-ed__brow > .pn-toggle { margin-left: 52px !important; }
  .ad-ed__brow > .btn { flex: 1 1 auto; }
}
/* Rodape das janelas: uma linha so (lixeira pequena e Salvar), sem empilhar. */
.ad-ed__wide .modal__foot { display: flex; align-items: center; gap: 8px; padding: 8px 14px calc(8px + env(safe-area-inset-bottom, 0px)); }
.ad-ed__wide .modal__foot .grow { flex: 1; }
.ad-ed__wide .modal__foot .btn { width: auto; min-height: 38px; }
.ad-ed__del { padding-inline: 10px; color: var(--danger, #dc2626); }
/* Previa do bloco: carrossel, grade e tamanhos altos aparecem inteiros (rola dentro da area). */
.ad-ed__wide .ad-ed__prev[data-kind="block"] { max-height: 56vh; overflow: auto; overscroll-behavior: contain; }
.ad-ed__wide .ad-ed__prev[data-kind="block"] [data-prev] { max-width: 100%; }
@media (max-width: 720px) { .ad-ed__wide .ad-ed__prev[data-kind="block"] { position: relative; top: auto; max-height: none; overflow: visible; } }
