/* Garante que o atributo HTML `hidden` sempre oculta o elemento,
   independente de regras CSS de maior especificidade (ex.: .btn). */
[hidden] { display: none !important; }

:root {
  --brand: #2411dc;
  --brand-rgb: 36, 17, 220;
  --brand-soft: #eeecfc;
  --navy-deep: #f7f8fb;
  --navy: #f0f2f7;
  --navy-mid: #e2e6ef;
  --navy-light: #c8cfde;
  --royal: #2411dc;
  --royal-bright: #3d2ee8;
  --accent: #1a0db8;
  --accent-green: #8ada00;
  --accent-yellow: #ffc400;
  --heading: #1a1a1a;
  --text: #3d3d3d;
  --text-muted: #5c5c5c;
  --white: #ffffff;
  --black: #1a1a1a;
  --ok: #15803d;
  --warn: #d97706;
  --radius: 16px;
  --shadow: 0 12px 40px rgba(26, 26, 26, 0.08);
  --border: #e8eaf0;
  --surface-muted: #fafafa;
  --surface: #ffffff;
  --primary: var(--brand);
  --muted: var(--text-muted);
  --webmail-content-bg: #ffffff;
  --font: "Poppins", system-ui, sans-serif;
  /* Mobile-first: toque confortável + 16px nos campos (evita zoom no iOS) */
  --touch-target: 48px;
  --field-font: 1rem;
  --field-py: 0.875rem;
  --field-px: 1rem;
  --field-radius: 12px;
  --field-gap: clamp(1rem, 4vw, 1.35rem);
  /** Setas em `<select>` customizadas (altura alinhada com inputs). Sobrescrita em tema escuro no `body.theme-dark`. */
  --select-chevron-svg: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath fill='%23657478' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  /* Animação de âncoras fica a cargo do main.js (evita rolagem nativa lenta + conflito com hash ao carregar) */
  scroll-behavior: auto;
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
}

body.theme-light {
  margin: 0;
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background-color: var(--white);
  background-image: radial-gradient(900px 420px at 8% -6%, rgba(var(--brand-rgb), 0.06), transparent),
    radial-gradient(640px 320px at 100% 0%, rgba(var(--brand-rgb), 0.04), transparent);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
}

/*
 * Plano, serviço e carrinho públicos: paleta clara fixa.
 * O THEME_STYLE do admin pode deixar o tema "light" com fundo escuro (home);
 * estas páginas ficam de fora desse bloco e usam fundo/texto claros.
 */
body.theme-light.page-pacote:not(.admin-static):not(.user-static),
body.theme-light.page-servico:not(.admin-static):not(.user-static),
body.theme-light.page-carrinho:not(.admin-static):not(.user-static),
body.theme-light.page-bio-gratis:not(.admin-static):not(.user-static),
body.page-pacote,
body.page-servico,
body.page-carrinho,
body.page-bio-gratis {
  --heading: #1a1a1a;
  --text: #3d3d3d;
  --text-muted: #5c5c5c;
  --border: #e8eaf0;
  --white: #ffffff;
  --black: #1a1a1a;
  --navy-deep: #f7f8fb;
  --navy: #f0f2f7;
  --navy-mid: #e2e6ef;
  --surface: #ffffff;
  --surface-muted: #fafafa;
  background-color: #ffffff;
  background-image: none;
  color: #3d3d3d;
}

body.theme-dark {
  --brand-soft: #172554;
  --navy-deep: #070b16;
  --navy: #0f172a;
  --navy-mid: #172033;
  --navy-light: #253149;
  --heading: #f8fafc;
  --text: #dbe4f0;
  --text-muted: #9fb0c6;
  --white: #0f172a;
  --black: #f8fafc;
  --border: #263247;
  --shadow: 0 16px 42px rgba(0, 0, 0, 0.42);
  --surface-muted: #131c2e;
  --surface: #0f172a;
  --primary: var(--brand);
  --muted: var(--text-muted);
  --webmail-content-bg: #ffffff;
  margin: 0;
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background-color: #070b16;
  background-image: radial-gradient(900px 420px at 8% -6%, rgba(var(--brand-rgb), 0.18), transparent),
    radial-gradient(640px 320px at 100% 0%, rgba(var(--brand-rgb), 0.1), transparent);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
  --select-chevron-svg: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath fill='%2394a3b8' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
}

a {
  color: inherit;
  text-decoration: none;
}

.wrap {
  width: min(1120px, 92vw);
  margin-inline: auto;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  padding: 0.75rem 0;
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  transition: transform 0.35s ease, opacity 0.35s ease;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.brand {
  background: transparent;
}

.brand img {
  display: block;
  height: auto;
  max-height: 44px;
  width: auto;
  background: transparent;
  object-fit: contain;
}

/* Logo nos painéis: sem “caixa” escura atrás do PNG transparente */
.client-nav > div:first-child img,
.client-nav > a:first-child img {
  background: transparent;
  object-fit: contain;
}

.nav-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem clamp(0.75rem, 3vw, 1.25rem);
  font-size: clamp(0.95rem, 2.8vw, 1rem);
  color: var(--text-muted);
}

.nav-main > a:not(.btn) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.25rem 0;
}

.nav-main a:hover {
  color: var(--brand);
}

/* Páginas públicas (fora da home): contraste do topo igual ao site-home-nav.is-top */
body.front-static:not(.page-home):not(.admin-static):not(.user-static) .site-header {
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid #e4e7ef;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

body.front-static:not(.page-home):not(.admin-static):not(.user-static) .site-header .nav-main {
  color: #3d3d3d;
}

body.front-static:not(.page-home):not(.admin-static):not(.user-static) .site-header .nav-main > a:not(.btn) {
  color: #3d3d3d;
  font-weight: 600;
}

body.front-static:not(.page-home):not(.admin-static):not(.user-static) .site-header .nav-main > a:not(.btn):hover {
  color: var(--brand);
}

body.front-static:not(.page-home):not(.admin-static):not(.user-static) .site-header .nav-main .btn--ghost {
  color: #1a1d24;
  border-color: rgba(var(--brand-rgb), 0.42);
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.12);
}

body.front-static:not(.page-home):not(.admin-static):not(.user-static) .site-header .nav-main .btn--ghost:hover {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
  border-color: rgba(var(--brand-rgb), 0.5);
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.22);
}

.mobile-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-direction: column;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.95);
  color: var(--heading);
  cursor: pointer;
}

.mobile-menu-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.mobile-menu-toggle.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.mobile-menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.mobile-menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

@media (max-width: 767px) {
  .site-header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .site-header__inner {
    position: relative;
  }

  .site-header .mobile-menu-toggle:not(.public-menu-fab) {
    display: inline-flex;
    margin-left: auto;
  }

  .nav-main {
    position: absolute;
    top: calc(100% + 0.6rem);
    left: 1rem;
    right: 1rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 0.85rem;
    border: 1px solid #e1e5ee;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
  }

  .nav-main.is-open {
    display: flex;
  }

  .nav-main a,
  .nav-main .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ── Logo alternada por tema (dupla classe para superar .brand img / .site-home-nav__logo img) ── */
.site-logo.site-logo--dark { display: none; }
body.theme-dark .site-logo.site-logo--light { display: none; }
body.theme-dark .site-logo.site-logo--dark  { display: block; }

/* ── Dark mode: site-header, nav-main, mobile-menu-toggle ── */
body.theme-dark .site-header {
  background: rgba(7, 11, 22, 0.94);
  border-bottom-color: var(--border);
}
body.theme-dark .mobile-menu-toggle {
  background: rgba(15, 23, 42, 0.95);
  border-color: rgba(var(--brand-rgb), 0.35);
  color: var(--heading);
}
@media (max-width: 767px) {
  body.theme-dark .nav-main {
    background: #0d1627;
    border-color: var(--border);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--touch-target);
  padding: 0.875rem 1.35rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.25;
  border: 1px solid transparent;
  cursor: pointer;
  background: linear-gradient(135deg, var(--royal), var(--accent));
  color: #ffffff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 36px rgba(var(--brand-rgb), 0.32);
}

.btn--ghost {
  background: transparent;
  border-color: rgba(var(--brand-rgb), 0.35);
  color: var(--heading);
}

.btn--sm {
  min-height: 44px;
  padding: 0.65rem 1.15rem;
  font-size: 0.9375rem;
}

@media (min-width: 768px) {
  .btn--sm {
    min-height: 40px;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
  }
}

.btn--block {
  width: 100%;
}

.hero {
  position: relative;
  min-height: 100vh;
  display: grid;
  align-items: center;
  padding: 7rem 0 4rem;
  perspective: 1200px;
}

.hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.hero__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.35;
  pointer-events: none;
  animation: floatOrb 18s ease-in-out infinite alternate;
}

.hero__orb--1 {
  width: 420px;
  height: 420px;
  background: rgba(var(--brand-rgb), 0.42);
  top: 10%;
  right: -10%;
}

.hero__orb--2 {
  width: 300px;
  height: 300px;
  background: rgba(var(--brand-rgb), 0.22);
  bottom: 5%;
  left: -5%;
  animation-delay: -4s;
}

@keyframes floatOrb {
  from {
    transform: translate3d(0, 0, 0) scale(1);
  }
  to {
    transform: translate3d(-30px, 20px, 0) scale(1.08);
  }
}

.hero__grid {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(var(--brand-rgb), 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--brand-rgb), 0.07) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, black 20%, transparent 75%);
  opacity: 0.5;
}

.hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .hero__content {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
  }
}

.hero__title {
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  line-height: 1.08;
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--heading);
}

.hero__title span {
  color: var(--brand);
}

.hero__lead {
  font-size: 1.1rem;
  color: var(--text-muted);
  max-width: 36ch;
  margin: 0 0 1.75rem;
}

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.hero__stage {
  position: relative;
  min-height: 360px;
  transform-style: preserve-3d;
}

.hero__figure {
  margin: 0;
  position: relative;
  z-index: 1;
}

.hero__mockup {
  display: block;
  width: 100%;
  max-width: 420px;
  height: auto;
  margin-inline: auto;
  filter: drop-shadow(0 24px 48px rgba(var(--brand-rgb), 0.18));
}

.floating-card {
  position: absolute;
  width: min(100%, 280px);
  padding: 1rem 1.15rem;
  border-radius: var(--radius);
  background: linear-gradient(145deg, #ffffff, var(--brand-soft));
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  transform-style: preserve-3d;
  transition: box-shadow 0.3s ease;
}

.floating-card__thumb {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  margin-bottom: 0.5rem;
  display: block;
}

.floating-card h3 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  color: var(--heading);
}

.floating-card p {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.floating-card--1 {
  top: 8%;
  right: 5%;
  transform: translateZ(40px) rotateY(-8deg) rotateX(4deg);
}

.floating-card--2 {
  bottom: 12%;
  left: 0;
  transform: translateZ(20px) rotateY(6deg) rotateX(-3deg);
}

.floating-card--3 {
  top: 42%;
  right: 18%;
  transform: translateZ(60px) rotateX(6deg);
}

.section {
  padding: 4.5rem 0;
  position: relative;
}

.section--alt {
  background: linear-gradient(180deg, transparent, rgba(var(--brand-rgb), 0.035), transparent);
}

.section__head {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2.75rem;
}

.section__head h2 {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  margin: 0 0 0.5rem;
  color: var(--heading);
}

.section__head p {
  margin: 0;
  color: var(--text-muted);
}

/* ── Grid de serviços — estilo loja virtual ── */
.services-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  align-items: stretch;
}

.service-tile {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius);
  /* Fundo sempre branco: em theme-dark `--white` vira navy e o texto some. */
  background: #ffffff;
  border: 1px solid #e8eaf0;
  overflow: hidden;
  text-decoration: none;
  color: #3d3d3d;
  cursor: pointer;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.service-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.1);
  border-color: rgba(var(--brand-rgb), 0.25);
}
body.theme-dark .service-tile:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

.service-tile__cover {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--surface-muted);
  flex-shrink: 0;
}

.service-tile__cover-img,
.service-tile__cover video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.service-tile:hover .service-tile__cover-img,
.service-tile:hover .service-tile__cover video {
  transform: scale(1.05);
}

.service-tile__cover-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--brand-rgb), 0.08);
  color: var(--brand);
  font-size: 3rem;
  font-weight: 700;
  user-select: none;
}

.service-tile__body {
  padding: 0.9rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.service-tile__title {
  margin: 0 0 0.3rem;
  font-size: 0.97rem;
  font-weight: 600;
  color: var(--heading);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.service-tile__desc {
  margin: 0;
  font-size: 0.83rem;
  color: var(--text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.service-tile__footer {
  margin-top: 0.7rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--border);
}

.service-tile__price {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.service-tile__period {
  font-weight: 500;
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-left: 0.1rem;
}

.service-tile__price-consulta {
  font-size: 1rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -0.01em;
  line-height: 1.1;
}

/* Preço com desconto — tile de serviço */
.service-tile__price-oferta-wrap {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.service-tile__price-de {
  font-size: .78rem;
  color: var(--text-muted);
}
.service-tile__price-base {
  text-decoration: line-through;
  color: var(--text-muted);
  font-size: inherit;
}
.service-tile__price-oferta {
  color: var(--brand, #2563eb);
  font-weight: 700;
  font-size: 1.05rem;
}
.theme-dark .service-tile__price-oferta {
  color: var(--brand, #2563eb);
}

.service-tile--featured {
  border-color: rgba(var(--brand-rgb), 0.4);
  box-shadow: 0 0 0 2px rgba(var(--brand-rgb), 0.1);
}

/* ── Página de detalhe de serviço (/servicos/{id}) — estilo loja virtual ── */
.service-detail-page {
  padding: 5rem 0 4rem;
}

.service-detail-wrap,
.pacote-detail-wrap {
  max-width: 1100px;
}

.service-detail-breadcrumb {
  margin-bottom: 1.75rem;
  font-size: 0.9rem;
}

.service-detail-breadcrumb a {
  color: var(--brand);
  text-decoration: none;
}

.service-detail-loading {
  color: var(--text-muted);
  padding: 2rem 0;
}

/* Layout 2 colunas: galeria | info */
.svc-page-layout {
  display: grid;
  gap: 2.5rem;
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 768px) {
  .svc-page-layout {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  }
}

/* ── Galeria do produto ── */
.svc-gallery__main {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--navy-soft, #f0f2f5);
  border: 1px solid var(--border);
  margin-bottom: 0.65rem;
}

.svc-gallery__main--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  font-size: 3rem;
}

.svc-gallery__main-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.svc-gallery__main-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #000;
}

.svc-gallery__thumbs {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  padding-bottom: 0.2rem;
  scrollbar-width: thin;
}

.svc-gallery__thumb {
  flex-shrink: 0;
  width: 68px;
  height: 68px;
  padding: 0;
  border: 2px solid var(--border);
  border-radius: calc(var(--radius) - 2px);
  overflow: hidden;
  background: var(--navy-soft, #f0f2f5);
  cursor: pointer;
  transition: border-color 0.18s ease;
}

.svc-gallery__thumb:hover {
  border-color: rgba(var(--brand-rgb), 0.5);
}

.svc-gallery__thumb--active {
  border-color: var(--brand);
}

.svc-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.svc-gallery__thumb-video {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1a1a2e;
  color: #fff;
  font-size: 1.6rem;
}

/* ── Fullscreen de imagem da galeria ── */
.svc-img-fs {
  position: fixed;
  inset: 0;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
  z-index: 99999;
}

.svc-img-fs:-webkit-full-screen { background: #000; }
.svc-img-fs:-moz-full-screen    { background: #000; }
.svc-img-fs:fullscreen          { background: #000; }

.svc-img-fs__media {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: calc(100% - 7rem);
  max-height: calc(100% - 3rem);
}

.svc-img-fs__media img {
  max-width: 100%;
  max-height: calc(100vh - 3rem);
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

.svc-img-fs__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease;
}

.svc-img-fs__close:hover {
  background: rgba(255, 255, 255, 0.28);
}

.svc-img-fs__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease;
}

.svc-img-fs__nav:hover {
  background: rgba(255, 255, 255, 0.28);
}

.svc-img-fs__nav--prev { left: 0.75rem; }
.svc-img-fs__nav--next { right: 0.75rem; }
.svc-img-fs__nav[hidden] { display: none; }

.svc-img-fs__counter {
  position: absolute;
  bottom: 0.85rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.82rem;
  pointer-events: none;
  white-space: nowrap;
}

/* cursor zoom na imagem principal da galeria */
.svc-gallery__main-img {
  cursor: zoom-in;
}

/* Wrapper do vídeo principal — necessário para posicionar o botão fullscreen */
.svc-gallery__video-wrap {
  position: relative;
  width: 100%;
  height: 100%;
}

.svc-gallery__video-wrap .svc-gallery__main-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #000;
}

/* Botão de tela cheia visível sobre o vídeo */
.svc-gallery__fullscreen-btn {
  position: absolute;
  bottom: 0.6rem;
  right: 0.6rem;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.svc-gallery__fullscreen-btn:hover {
  background: rgba(0, 0, 0, 0.78);
  transform: scale(1.08);
}

/* ── Coluna de informações ── */
.svc-page-info h1 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.45rem, 3vw, 2rem);
  color: var(--heading);
  line-height: 1.25;
}

.service-detail-desc {
  margin: 0 0 1rem;
  color: var(--text-muted);
  line-height: 1.65;
}

.service-detail-items {
  margin: 0 0 1.25rem;
  padding-left: 1.1rem;
  color: var(--text);
  line-height: 1.75;
}

.service-detail-price {
  margin-bottom: 1.5rem;
  min-height: 2rem;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.2rem 0;
}

.service-detail-price-loading {
  color: var(--text-muted);
  font-size: 0.9rem;
}

.service-detail-price-label {
  font-size: clamp(2rem, 5vw, 2.8rem);
  font-weight: 900;
  color: var(--brand);
  letter-spacing: -0.03em;
  line-height: 1;
}

.service-detail-price--consulta {
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  font-weight: 900;
  color: var(--brand);
  letter-spacing: -0.02em;
  line-height: 1;
}

.service-detail-price-suffix {
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-muted);
  margin-left: 0.35rem;
  align-self: flex-end;
  padding-bottom: 0.25rem;
}

/* Preço com desconto — detalhe do serviço */
.service-detail-price--oferta-wrap {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  flex: 1 1 100%;
  width: 100%;
}
.service-detail-price--de {
  font-size: .9rem;
  color: #000;
}
.service-detail-price--base {
  color: #000;
  font-size: inherit;
  text-decoration: line-through;
}
.service-detail-price--oferta {
  color: var(--brand, #2563eb);
  font-weight: 700;
}
.theme-dark .service-detail-price--oferta {
  color: var(--brand, #2563eb);
}
.service-detail-price-badge {
  display: inline-block;
  background: rgba(220, 38, 38, .1);
  color: #dc2626;
  border-radius: 4px;
  padding: 0 .35rem;
  font-size: .8rem;
  font-weight: 600;
}

.service-detail-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

.service-detail-add-btn {
  min-width: 220px;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}

/* ── Seção "outros" abaixo dos detalhes (serviços e pacotes) ── */
.catalog-others-section {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--border);
}

.catalog-others-title {
  margin: 0 0 1.5rem;
  font-size: clamp(1.15rem, 2.5vw, 1.5rem);
  color: var(--heading);
}

.catalog-others-grid {
  /* herda .services-grid ou .plans, sem restrição adicional de largura */
}

/* ── Página de detalhe de pacote (/pacotes/{code}) ── */
/* ── Página de detalhe de pacote — mesmo layout que serviço ── */
.pacote-detail-page {
  padding: 5rem 0 4rem;
}

.pacote-detail-wrap {
  max-width: 1100px;
}

.pacote-detail-breadcrumb {
  margin-bottom: 1.75rem;
  font-size: 0.9rem;
}

.pacote-detail-breadcrumb a {
  color: var(--brand);
  text-decoration: none;
}

.pacote-detail-loading {
  color: var(--text-muted);
  padding: 2rem 0;
}

/* Reutiliza .svc-page-layout e .svc-page-info do serviço */

.pacote-detail-items {
  margin: 0 0 1.25rem;
  padding-left: 1.1rem;
  color: var(--text);
  line-height: 1.75;
}

.pacote-detail-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

.pacote-detail-add-btn {
  min-width: 220px;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}

/* ── Botão flutuante do carrinho (FAB) ── */
.cart-fab {
  position: fixed;
  bottom: calc(1.75rem - 15px + env(safe-area-inset-bottom, 0px));
  right: 1.75rem;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: var(--brand, #0026ff);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(0, 38, 255, 0.38);
  text-decoration: none;
  z-index: 1200;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.cart-fab:hover,
.cart-fab:focus-visible {
  transform: scale(1.07);
  box-shadow: 0 6px 24px rgba(0, 38, 255, 0.45);
  outline: none;
}

.cart-fab__badge {
  position: absolute;
  top: -0.28rem;
  right: -0.28rem;
  background: #e63a00;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  min-width: 1.3rem;
  height: 1.3rem;
  border-radius: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.28rem;
  border: 2px solid #fff;
  pointer-events: none;
  line-height: 1;
}

.cart-fab--bump {
  animation: cart-fab-bump 0.38s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

@keyframes cart-fab-bump {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.22); }
  70%  { transform: scale(0.95); }
  100% { transform: scale(1); }
}

/* ── Botão flutuante do menu (FAB esquerdo, espelha cart-fab) ── */
@media (max-width: 767px) {
  body:not(.admin-static):not(.user-static) {
    --public-fab-bottom: calc(1.75rem - 15px + env(safe-area-inset-bottom, 0px));
    --public-fab-size: 3.4rem;
    --public-fab-gap: 0.85rem;
  }

  body:not(.admin-static):not(.user-static) .public-menu-fab {
    display: inline-flex;
    position: fixed;
    left: 1.75rem;
    right: auto;
    top: auto;
    bottom: var(--public-fab-bottom);
    width: var(--public-fab-size);
    height: var(--public-fab-size);
    margin: 0;
    padding: 0;
    border-radius: 50%;
    border: none;
    background: rgba(12, 14, 22, 0.94);
    color: #fff;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.28);
    z-index: 1200;
    pointer-events: auto;
  }

  body:not(.admin-static):not(.user-static) .public-menu-fab span {
    width: 18px;
  }

  body:not(.admin-static):not(.user-static) .public-menu-fab.is-open {
    background: var(--brand, #0026ff);
    border: none;
    color: #fff;
  }

  body:not(.admin-static):not(.user-static) .site-header .public-menu-panel.is-open,
  body:not(.admin-static):not(.user-static) .site-header .nav-main.is-open {
    display: flex;
    position: fixed;
    left: 1.75rem;
    right: 1.75rem;
    top: auto;
    bottom: calc(var(--public-fab-bottom) + var(--public-fab-size) + var(--public-fab-gap));
    max-height: min(58vh, 22rem);
    overflow-y: auto;
    z-index: 1199;
  }

  body.page-home .site-home-nav.is-top {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  body.page-home .site-home-nav:not(.is-top) {
    background: transparent;
    padding: 0;
    box-shadow: none;
    border: none;
  }

  body.page-home .site-home-nav:not(.is-top) .site-home-nav__inner {
    position: fixed;
    width: 0;
    height: 0;
    overflow: visible;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    pointer-events: none;
  }

  body.page-home .site-home-nav:not(.is-top) .site-home-nav__logo {
    display: none;
  }

  body.page-home .site-home-nav__cluster {
    display: none;
  }

  body.page-home .site-home-nav__cluster.is-open {
    display: flex;
    position: fixed;
    left: 1.75rem;
    right: 1.75rem;
    top: auto;
    bottom: calc(var(--public-fab-bottom) + var(--public-fab-size) + var(--public-fab-gap));
    max-height: min(58vh, 22rem);
    overflow-y: auto;
    z-index: 1199;
    pointer-events: auto;
  }

  body.page-home .site-home-nav.is-top .site-home-nav__inner {
    width: 100%;
    max-width: min(1120px, 94vw);
    justify-content: flex-start;
  }

  body.page-home.theme-dark .public-menu-fab,
  body.theme-dark:not(.admin-static):not(.user-static) .public-menu-fab {
    background: rgba(15, 23, 42, 0.96);
    color: #f8fafc;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
  }

  body.page-home.theme-dark .public-menu-fab.is-open,
  body.theme-dark:not(.admin-static):not(.user-static) .public-menu-fab.is-open {
    background: var(--brand, #0026ff);
  }
}

/* ── Carrinho público (/carrinho) ── */
.public-cart-page {
  padding: 5rem 0 4rem;
}

.public-cart-layout {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 768px) {
  .public-cart-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
  }
}

.public-cart-aside {
  display: grid;
  gap: 1rem;
}

.public-cart-item {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 0.75rem 1rem;
  align-items: center;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border);
}

.public-cart-item:last-child {
  border-bottom: none;
}

.public-cart-item__img {
  width: 64px;
  height: 64px;
  border-radius: calc(var(--radius) - 4px);
  object-fit: cover;
  border: 1px solid var(--border);
}

.public-cart-item__img--empty {
  background: var(--surface-muted, #f1f5f9);
}

.public-cart-item__title {
  margin: 0 0 0.2rem;
  font-weight: 600;
}

.public-cart-item__price {
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  color: var(--text-muted);
}

.public-cart-item__qty {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.public-cart-qty-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--white);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  display: grid;
  place-items: center;
  color: var(--heading);
}

.public-cart-qty-btn:hover {
  border-color: var(--brand);
  color: var(--brand);
}

.public-cart-qty-val {
  min-width: 1.5rem;
  text-align: center;
  font-weight: 600;
  font-size: 0.9rem;
}

.public-cart-item__remove {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.3rem;
  cursor: pointer;
  padding: 0.2rem;
  line-height: 1;
  align-self: start;
}

.public-cart-item__remove:hover {
  color: #dc2626;
}

.public-cart-summary h2 {
  margin: 0 0 0.65rem;
  font-size: 1rem;
}

.public-cart-summary__count {
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.public-cart-summary__total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem;
  padding: .5rem 0;
  border-top: 1px solid var(--border, #e2e8f0);
  margin: .5rem 0 .4rem;
}
.public-cart-summary__total-row strong {
  color: var(--brand, #2563eb);
  font-size: 1.05rem;
}
.public-cart-summary__consulta-note {
  font-size: 0.82rem;
  margin: 0 0 .4rem;
}
.public-cart-summary__note {
  font-size: 0.82rem;
  margin: 0;
}

.public-cart-auth h2 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

/* ── Link da Bio grátis (/criar-link-da-bio-gratis) ── */
.public-bio-gratis__layout {
  display: grid;
  gap: 2rem;
  align-items: start;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .public-bio-gratis__layout {
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 2.5rem 3rem;
  }

  .public-bio-gratis__figure {
    position: sticky;
    top: 5.5rem;
  }
}

.public-bio-gratis__figure {
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.public-bio-gratis__img {
  display: block;
  width: min(100%, 340px);
  max-height: min(78vh, 720px);
  height: auto;
  object-fit: contain;
}

.public-bio-gratis__content {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.public-bio-gratis__pitch-title {
  margin: 0 0 1rem;
  font-size: 1.1rem;
}

.public-bio-gratis__list {
  margin: 0;
  padding: 0 0 0 1.15rem;
  display: grid;
  gap: 0.55rem;
  color: var(--text);
  line-height: 1.45;
}

.public-bio-gratis__note {
  margin: 1.25rem 0 0;
  font-size: 0.88rem;
}

.public-bio-gratis__actions {
  display: grid;
  gap: 0.65rem;
  margin-top: 1rem;
}

.public-bio-gratis__back {
  margin-top: 0.85rem;
}

.public-bio-gratis__session {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
}

.home-bio-gratis {
  text-align: center;
}

.home-bio-gratis__figure {
  margin: 0.5rem auto 0;
  max-width: 280px;
}

.home-bio-gratis__img {
  display: block;
  width: 100%;
  height: auto;
}

.home-bio-gratis__actions {
  margin-top: 1.25rem;
}

.plans {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  align-items: stretch;
}

.home-plans-loading {
  grid-column: 1 / -1;
  text-align: center;
  color: var(--text-muted);
  margin: 0;
  padding: 1rem 0;
}

/* ── Grid de pacotes — estilo loja virtual (igual ao service-tile) ── */
.plan-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius);
  /* Fundo sempre branco: em theme-dark `--white` vira navy e o texto some. */
  background: #ffffff;
  border: 1px solid #e8eaf0;
  overflow: hidden;
  text-decoration: none;
  color: #3d3d3d;
  cursor: pointer;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  min-height: 100%;
}

.plan-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.1);
  border-color: rgba(var(--brand-rgb), 0.25);
}
body.theme-dark .plan-card:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

.plan-card__figure {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--surface-muted);
  flex-shrink: 0;
  margin: 0;
}

.plan-card__figure img,
.plan-card__figure video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.plan-card:hover .plan-card__figure img,
.plan-card:hover .plan-card__figure video {
  transform: scale(1.05);
}

.plan-card__figure-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--brand-rgb), 0.08);
  color: var(--brand);
  font-size: 3rem;
  font-weight: 700;
  user-select: none;
}

.plan-card__body {
  padding: 0.9rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.plan-card h3 {
  margin: 0 0 0.3rem;
  font-size: 0.97rem;
  font-weight: 600;
  color: var(--heading);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.plan-card__desc {
  margin: 0;
  font-size: 0.83rem;
  color: var(--text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.plan-card__footer {
  margin-top: 0.7rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--border);
}

.plan-card .price {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin: 0;
}

.plan-card__price-de {
  font-size: 0.95rem;
  font-weight: 600;
}

.plan-card__price-de s {
  text-decoration: line-through;
}

.plan-card__price-sale {
  color: var(--brand);
}

/* Secção #planos: preço base riscado em preto (não herda --brand de .plan-card .price) */
#planos .plan-card .price.plan-card__price-de,
#planos .plan-card .price.plan-card__price-de s {
  color: #000;
}

.plan-card__period {
  font-weight: 500;
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-left: 0.1rem;
}

.plan-card__price-consulta {
  font-size: 1rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.plan-card ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-muted);
  font-size: 0.83rem;
  line-height: 1.6;
}

.plan-card li {
  margin-bottom: 0.3rem;
}

.plan-card--featured {
  border-color: rgba(var(--brand-rgb), 0.4);
  box-shadow: 0 0 0 2px rgba(var(--brand-rgb), 0.1);
}

/* ── Hero de destaques no site público ── */
.home-featured-hero {
  container-type: inline-size;
  padding: 1.25rem 0 2rem;
}

.home-featured-hero__slider {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    "view view"
    "prev next";
  align-items: center;
  column-gap: 0.75rem;
  row-gap: 0.75rem;
  padding: 0 1rem;
}

.home-featured-hero__viewport {
  grid-area: view;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  border-radius: var(--radius);
  container-type: inline-size;
}

.home-featured-hero__viewport::-webkit-scrollbar { display: none; }

.home-featured-hero__track {
  display: flex;
  width: max-content;
  align-items: stretch;
}

.home-featured-hero__slide {
  flex: 0 0 100cqw;
  width: 100cqw;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
}

/* Mobile: o slide reutiliza .plan-card (mesma aparência dos planos). */
.home-featured-hero__card {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  width: 100%;
  min-height: 100%;
}

.home-featured-hero__bg,
.home-featured-hero__overlay {
  display: none;
  z-index: 0;
  pointer-events: none;
}

/* No mobile, intro/action somem do fluxo — filhos ficam no body do plan-card. */
.home-featured-hero__intro,
.home-featured-hero__action {
  display: contents;
}

.home-featured-hero__copy,
.home-featured-hero__media,
.home-featured-hero__card > .card-like-badge {
  position: relative;
  z-index: 1;
}

.home-featured-hero .plan-card .price.plan-card__price-de,
.home-featured-hero .plan-card .price.plan-card__price-de s {
  color: #000;
}

/* Preço: rótulo De/Por acima; valor embaixo; /mês só no preço final */
.home-featured-hero__action .plan-card__footer,
.home-featured-hero__action .home-featured-hero__price {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 0.55rem;
  min-width: 0;
  width: 100%;
}

.home-featured-hero__price-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  min-width: 0;
  max-width: 100%;
}

.home-featured-hero__action .home-featured-hero__price-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #5c5c5c;
}

.home-featured-hero__action .plan-card__price-de,
.home-featured-hero__action .plan-card__price-sale,
.home-featured-hero__action .price {
  display: inline-block;
  max-width: 100%;
  line-height: 1.15;
  white-space: normal;
  overflow-wrap: anywhere;
}

.home-featured-hero__action .plan-card__price-de {
  font-size: 1.05rem;
  font-weight: 600;
  color: #000;
}

.home-featured-hero__action .plan-card__price-sale,
.home-featured-hero__action .price {
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 800;
}

.home-featured-hero__price-suffix {
  display: inline;
  margin-left: 0.2em;
  font-size: 0.55em;
  font-weight: 500;
  color: #5c5c5c;
  vertical-align: baseline;
  white-space: nowrap;
}

.home-featured-hero__action .plan-card__cta {
  margin-top: 0.35rem;
}

.home-featured-hero__nav {
  position: static;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 999px;
  background: #ffffff;
  color: #1a1a1a;
  cursor: pointer;
  font-size: 1.3rem;
  line-height: 1;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.1);
  transition: border-color 0.15s, color 0.15s;
}

.home-featured-hero__nav--prev {
  grid-area: prev;
  justify-self: end;
}

.home-featured-hero__nav--next {
  grid-area: next;
  justify-self: start;
}

.home-featured-hero__nav:hover:not(:disabled) {
  border-color: rgba(var(--brand-rgb), 0.5);
  color: var(--brand);
}

.home-featured-hero__nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

body.theme-dark .home-featured-hero__nav {
  background: #ffffff;
  color: #1a1a1a;
  border-color: #e8eaf0;
}

.home-featured-hero__dots {
  display: none;
}

/* Desktop: visual do hero (mobile é que usa aparência de plan-card) */
@media (min-width: 768px) {
  .home-featured-hero__card.plan-card,
  .home-featured-hero__card {
    color: #3d3d3d;
    background: #ffffff;
    transform: none;
  }

  .home-featured-hero__card.plan-card:hover {
    transform: none;
  }

  .home-featured-hero__intro,
  .home-featured-hero__action {
    position: relative;
    z-index: 1;
  }

  .home-featured-hero__card h3,
  body.theme-dark .home-featured-hero__card h3 {
    color: #1a1a1a;
  }

  .home-featured-hero__card .plan-card__desc,
  body.theme-dark .home-featured-hero__card .plan-card__desc {
    color: #5c5c5c;
  }

  .home-featured-hero__card ul,
  body.theme-dark .home-featured-hero__card ul {
    color: #5c5c5c;
    list-style: disc;
    padding-left: 1.1rem;
  }

  .home-featured-hero__card ul li {
    padding-left: 0;
    margin-bottom: 0.25rem;
  }

  .home-featured-hero__card ul li::before {
    display: none;
  }

  .home-featured-hero__card .price,
  .home-featured-hero__card .plan-card__price-sale,
  .home-featured-hero__card .plan-card__price-consulta,
  body.theme-dark .home-featured-hero__card .price,
  body.theme-dark .home-featured-hero__card .plan-card__price-sale,
  body.theme-dark .home-featured-hero__card .plan-card__price-consulta {
    color: var(--brand);
  }

  .home-featured-hero__card .plan-card__price-de,
  .home-featured-hero__card .plan-card__price-de s,
  body.theme-dark .home-featured-hero__card .plan-card__price-de,
  body.theme-dark .home-featured-hero__card .plan-card__price-de s {
    color: #000;
  }

  .home-featured-hero__card .plan-card__period,
  body.theme-dark .home-featured-hero__card .plan-card__period {
    color: #5c5c5c;
  }

  .home-featured-hero__action .btn,
  .home-featured-hero__action .plan-card__cta {
    background: linear-gradient(135deg, var(--royal), var(--accent));
    color: #ffffff;
    border-color: transparent;
  }
}

/* Mediana: 2 colunas — imagem | texto+preço+CTA */
@media (min-width: 768px) and (max-width: 1099px) {
  .home-featured-hero {
    padding: 2rem 0 2.5rem;
  }

  .home-featured-hero__slider {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0 1rem;
  }

  .home-featured-hero__viewport {
    flex: 1;
  }

  .home-featured-hero__nav,
  .home-featured-hero__nav--prev,
  .home-featured-hero__nav--next {
    grid-area: auto;
    justify-self: auto;
    flex-shrink: 0;
  }

  .home-featured-hero__slide,
  .home-featured-hero__card {
    height: 65vh;
    min-height: 65vh;
    max-height: 65vh;
  }

  .home-featured-hero__bg {
    display: block;
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.03);
    filter: blur(10px);
    opacity: 0.07;
  }

  .home-featured-hero__overlay {
    display: block;
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.94) 50%, rgba(255,255,255,0.88) 100%);
  }

  .home-featured-hero__card {
    display: grid;
    grid-template-areas: "media copy";
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(0, 1fr);
    gap: 0.85rem 1.35rem;
    padding: 1.35rem 1.5rem;
    align-items: stretch;
    overflow: hidden;
  }

  .home-featured-hero__copy {
    grid-area: copy;
    display: grid;
    gap: 0.85rem;
    align-content: center;
    align-self: stretch;
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 0;
    background: transparent;
  }

  .home-featured-hero__intro {
    display: grid;
    gap: 0.5rem;
    align-content: start;
    padding: 0;
  }

  .home-featured-hero__media {
    grid-area: media;
    aspect-ratio: auto;
    height: 100%;
    min-height: 0;
    max-height: none;
    background: transparent;
  }

  .home-featured-hero__media img,
  .home-featured-hero__media video,
  .home-featured-hero__media .plan-card__cover-img {
    object-fit: contain;
  }

  .home-featured-hero__action {
    display: grid;
    gap: 0.65rem;
    align-content: start;
    padding: 0;
  }

  .home-featured-hero__action .plan-card__footer {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
  }

  .home-featured-hero__card h3 {
    font-size: clamp(1.55rem, 3.2vw, 2rem);
    -webkit-line-clamp: 3;
  }

  .home-featured-hero__card .plan-card__desc {
    font-size: 1.02rem;
    line-height: 1.55;
    -webkit-line-clamp: 4;
    flex: none;
  }

  .home-featured-hero__card .price {
    font-size: clamp(1.35rem, 2.6vw, 1.7rem);
  }

  .home-featured-hero__card ul li:nth-child(n + 5) {
    display: none;
  }
}

/* Larga: 3 colunas — imagem | texto | preço+CTA */
@media (min-width: 1100px) {
  .home-featured-hero {
    padding: 2rem 0 2.5rem;
  }

  .home-featured-hero__slider {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0 1rem;
  }

  .home-featured-hero__viewport {
    flex: 1;
  }

  .home-featured-hero__nav,
  .home-featured-hero__nav--prev,
  .home-featured-hero__nav--next {
    grid-area: auto;
    justify-self: auto;
    flex-shrink: 0;
  }

  .home-featured-hero__slide,
  .home-featured-hero__card {
    height: 65vh;
    min-height: 65vh;
    max-height: 65vh;
  }

  .home-featured-hero__bg {
    display: block;
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.03);
    filter: blur(10px);
    opacity: 0.07;
  }

  .home-featured-hero__overlay {
    display: block;
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.94) 50%, rgba(255,255,255,0.88) 100%);
  }

  .home-featured-hero__card {
    display: grid;
    grid-template-areas: "media intro action";
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(11rem, 16rem);
    grid-template-rows: minmax(0, 1fr);
    gap: 1.25rem 1.5rem;
    padding: 1.5rem 1.75rem;
    align-items: stretch;
    overflow: hidden;
  }

  .home-featured-hero__copy {
    display: contents;
    padding: 0;
    background: transparent;
  }

  .home-featured-hero__intro {
    grid-area: intro;
    display: grid;
    padding: 0;
    align-self: center;
    align-content: center;
    gap: 0.65rem;
    overflow: auto;
    min-height: 0;
  }

  .home-featured-hero__media {
    grid-area: media;
    aspect-ratio: auto;
    height: 100%;
    min-height: 0;
    max-height: none;
    background: transparent;
  }

  .home-featured-hero__media img,
  .home-featured-hero__media video,
  .home-featured-hero__media .plan-card__cover-img {
    object-fit: contain;
  }

  .home-featured-hero__action {
    grid-area: action;
    display: grid;
    padding: 0.25rem 0 0;
    align-content: center;
    justify-items: stretch;
    gap: 0.85rem;
  }

  .home-featured-hero__action .plan-card__footer {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
  }

  .home-featured-hero__action .plan-card__cta,
  .home-featured-hero__action .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .home-featured-hero__card h3 {
    font-size: clamp(1.75rem, 2.8vw, 2.35rem);
    -webkit-line-clamp: 4;
  }

  .home-featured-hero__card .plan-card__desc {
    font-size: 1.08rem;
    line-height: 1.55;
    -webkit-line-clamp: 5;
    flex: none;
  }

  .home-featured-hero__card ul {
    font-size: 0.95rem;
  }

  .home-featured-hero__card .price {
    font-size: clamp(1.5rem, 2.2vw, 1.95rem);
  }

  .home-featured-hero__card ul li:nth-child(n + 4) {
    display: list-item;
  }

  .home-featured-hero__card ul li:nth-child(n + 8) {
    display: none;
  }
}

.parallax-band {
  position: relative;
  min-height: 220px;
  overflow: hidden;
}

.parallax-band__lights {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.parallax-band__light {
  position: absolute;
  width: min(85vw, 520px);
  height: min(85vw, 520px);
  border-radius: 50%;
  filter: blur(72px);
  opacity: 0.5;
  will-change: transform;
  background: radial-gradient(
    circle at 35% 40%,
    rgba(120, 175, 255, 0.95) 0%,
    rgba(40, 100, 255, 0.45) 38%,
    rgba(0, 38, 200, 0.12) 62%,
    transparent 72%
  );
}

.parallax-band__light--1 {
  top: -18%;
  left: -8%;
  transform: translate3d(0, 0, 0);
}

.parallax-band__light--2 {
  top: 22%;
  right: -12%;
  width: min(75vw, 440px);
  height: min(75vw, 440px);
  opacity: 0.42;
  background: radial-gradient(
    circle at 50% 50%,
    rgba(180, 210, 255, 0.75) 0%,
    rgba(0, 90, 255, 0.35) 42%,
    transparent 68%
  );
}

.parallax-band__light--3 {
  bottom: -25%;
  left: 28%;
  width: min(90vw, 560px);
  height: min(90vw, 560px);
  opacity: 0.38;
  background: radial-gradient(
    circle at 60% 35%,
    rgba(90, 140, 255, 0.55) 0%,
    rgba(0, 50, 180, 0.25) 50%,
    transparent 70%
  );
}

.parallax-band__layer {
  position: absolute;
  inset: -20%;
  z-index: 1;
  background-image: url("../img/band-collab.svg"),
    radial-gradient(circle at 30% 50%, rgba(var(--brand-rgb), 0.1), transparent 55%),
    radial-gradient(circle at 70% 50%, rgba(241, 245, 249, 0.95), transparent 50%);
  background-size: cover, auto, auto;
  background-position: center, center, center;
  opacity: 0.95;
  will-change: transform;
}

.parallax-band__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.5rem, 4vw, 2.75rem);
  padding: clamp(2.25rem, 5vw, 4rem) 1rem;
}

.parallax-band__text {
  margin: 0;
  text-align: center;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 600;
  color: var(--heading);
  max-width: 28ch;
}

.parallax-band__quotes {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  width: 100%;
  max-width: 1040px;
}

@media (min-width: 768px) {
  .parallax-band__quotes {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.15rem;
  }
}

.parallax-band__quote {
  margin: 0;
  padding: 1.1rem 1.15rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}

.parallax-band__quote-text {
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(248, 250, 255, 0.92);
}

.parallax-band__quote-meta {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.8rem;
  color: rgba(200, 210, 235, 0.88);
}

.parallax-band__quote-author {
  font-style: normal;
  font-weight: 600;
  color: #eef2ff;
}

.parallax-band__quote-role {
  font-size: 0.76rem;
  opacity: 0.85;
}

/* ── Brands carousel ──────────────────────────────────────────────────────── */
.brands-band {
  padding: 3rem 0 2.5rem;
  overflow: hidden;
  background: var(--surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.brands-band__head {
  text-align: center;
  margin-bottom: 2rem;
}

.brands-band__label {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0;
}

/* O carousel usa overflow:hidden e uma mask para efeito de fade nas bordas */
.brands-band__carousel {
  overflow: hidden;
  width: 100%;
  mask-image: linear-gradient(to right, transparent 0%, black 12%, black 88%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 12%, black 88%, transparent 100%);
}

/*
 * Marquee por fila individual: cada item é posicionado absolutamente e movido pelo JS.
 * Quando um item sai pela esquerda é reenfileirado à direita.
 * O JS controla todo o movimento via requestAnimationFrame.
 */
.brands-band__belt {
  position: relative;
  width: 100%;
  height: 78px;
}

.brands-band__item {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 78px;
}

.brands-band__item img {
  height: 100%;
  max-height: 78px;
  max-width: 160px;
  width: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: filter 0.25s ease, opacity 0.25s ease;
}

.brands-band__item img:hover {
  filter: grayscale(0%);
  opacity: 1;
}

@media (max-width: 640px) {
  .brands-band__belt  { height: 117px; }
  .brands-band__item  { height: 117px; }
  .brands-band__item img { max-height: 117px; }
}

@media (prefers-reduced-motion: reduce) {
  /* Marcador lido pelo JS para pausar o carrossel de marcas */
  .brands-band__belt { --reduced-motion: 1; }
}

/* ── Admin: abas unidas ao card ───────────────────────────────────────────── */
.admin-tabs {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.admin-tabs__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.25rem;
  border-bottom: 1px solid var(--border);
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 1;
}

.admin-tabs__tab {
  appearance: none;
  background: transparent;
  border: 1px solid transparent;
  border-bottom: none;
  border-radius: 16px 16px 0 0;
  cursor: pointer;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-muted);
  padding: 0.55rem 1.15rem;
  margin-bottom: -1px;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.admin-tabs__tab:hover {
  color: var(--text);
  background: var(--input-bg, var(--surface-muted));
  border-color: var(--border);
}

.admin-tabs__tab--active {
  background: var(--white);
  border-color: var(--border);
  border-bottom-color: var(--white);
  color: var(--accent);
  font-weight: 600;
}

.admin-tabs__panel {
  display: block;
}

.admin-tabs__panel[hidden] {
  display: none;
}

/* Card imediatamente sob a barra de abas — topo colado às guias */
.admin-tabs__panel > .panel-card:first-child,
.admin-tabs__panel > form.panel-card:first-child,
.admin-tabs__panel > article.panel-card:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  box-shadow: none;
  border-top-color: transparent;
}

.admin-tabs__panel > .panel-card + .panel-card,
.admin-tabs__panel > form.panel-card + .panel-card,
.admin-tabs__panel > .panel-card + form.panel-card {
  margin-top: 1rem;
  border-radius: 20px;
  border-top-color: var(--border);
  box-shadow: var(--shadow);
}

/* Abas dentro de um panel-card (cronograma): coladas no topo do card */
.panel-card > .admin-tabs {
  gap: 0;
}

.panel-card > .admin-tabs > .admin-tabs__bar {
  margin: -1.25rem -1.25rem 1rem;
  padding: 0 0.75rem;
  background: transparent;
}

.panel-card > .admin-tabs > .admin-tabs__bar .admin-tabs__tab--active {
  background: var(--white);
  border-bottom-color: var(--white);
}

.panel-card > .admin-tabs > .admin-tabs__panel {
  min-width: 0;
}

.theme-dark .admin-tabs__tab--active,
.theme-dark .panel-card > .admin-tabs > .admin-tabs__bar .admin-tabs__tab--active {
  background: var(--white);
  border-bottom-color: var(--white);
}

/* ── Admin: brands list ───────────────────────────────────────────────────── */
.site-brands-upload {
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.site-brands-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
}

.site-brands-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  background: var(--surface-muted);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem;
  cursor: grab;
  transition: box-shadow 0.15s, opacity 0.15s;
}

.site-brands-item:active { cursor: grabbing; }
.site-brands-item.is-dragging { opacity: 0.4; }
.site-brands-item.is-dragover { box-shadow: 0 0 0 2px var(--accent); }

.site-brands-item__img {
  height: 48px;
  max-width: 130px;
  object-fit: contain;
  filter: grayscale(60%);
}

.site-brands-item__name {
  font-size: 0.76rem;
  color: var(--text-muted);
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.site-brands-item__actions {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.25rem;
}

/* ── Admin: cases list ────────────────────────────────────────────────────── */
.site-cases-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.site-cases-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--surface-muted);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
}

.site-cases-item__cover {
  width: 64px;
  height: 40px;
  object-fit: cover;
  border-radius: 4px;
  background: var(--border);
  flex-shrink: 0;
}

.site-cases-item__info {
  flex: 1;
  min-width: 0;
}

.site-cases-item__title {
  font-weight: 600;
  font-size: 0.9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-cases-item__meta {
  font-size: 0.76rem;
  color: var(--text-muted);
  margin-top: 0.15rem;
}

.site-cases-item__actions {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}

.admin-panel-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.25rem;
}

/* ── Admin: case edit page ────────────────────────────────────────────────── */
.admin-page-header {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.admin-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: var(--text-muted);
  text-decoration: none;
}

.admin-back-link:hover { color: var(--text); }

.site-case-cover-preview {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

/* ── Seção de contato (formulário) ─────────────────────────────────────────── */
.contact-section {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 3rem 4rem;
  align-items: center;
}
.contact-section__intro { display: flex; flex-direction: column; gap: 1rem; }
.contact-section .contact-strip__img { max-width: 320px; width: 100%; }
.contact-form { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-form .form-group { display: flex; flex-direction: column; gap: .4rem; }
.contact-form .form-group label { font-weight: 500; font-size: .875rem; }
.contact-form input,
.contact-form textarea {
  padding: .65rem .85rem;
  border-radius: var(--radius, 8px);
  border: 1px solid var(--input-border, #ccc);
  background: var(--input-bg, #fff);
  color: var(--text, #111);
  font-size: .95rem;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .15s;
}
.contact-form input:focus,
.contact-form textarea:focus { outline: none; border-color: var(--accent, #0a8f6d); }
.contact-form textarea { resize: vertical; min-height: 140px; }
.contact-form__actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.contact-form__feedback { font-size: .875rem; }
.contact-form__feedback--ok    { color: var(--success, #1a7a4a); }
.contact-form__feedback--error { color: var(--danger, #c0392b); }
@media (max-width: 800px) {
  .contact-section { grid-template-columns: 1fr; }
  .contact-form__grid { grid-template-columns: 1fr; }
}

/* ── Cases section ───────────────────────────────────────────────────────── */
.cases-band {
  /* herda .section + .section--alt */
}

.cases-band__more {
  text-align: center;
  margin-top: 2.5rem;
}

/* Grid de texto (sem cards) */
.cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 2rem;
}

.case-text-item {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  text-decoration: none;
  color: var(--text);
  padding: 1.25rem 0;
  border-top: 2px solid var(--accent, #0a8f6d);
  transition: opacity .15s;
}
.case-text-item:hover { opacity: .8; }
.case-text-item__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.35;
}
.case-text-item__summary {
  font-size: .9rem;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.case-text-item__more {
  font-size: .8rem;
  color: var(--accent, #0a8f6d);
  font-weight: 600;
  margin-top: auto;
}
@media (max-width: 900px) { .cases-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .cases-grid { grid-template-columns: 1fr; } }

.case-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  color: var(--text);
  box-shadow: var(--shadow);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.case-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

.case-card__cover {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--surface-muted);
}

.case-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.case-card__img--placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--border);
}

.case-card__body {
  padding: 1.25rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.case-card__title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.4;
}

.case-card__summary {
  font-size: 0.875rem;
  color: var(--text-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Página Sobre ────────────────────────────────────────────────────────── */
.about-page { max-width: 800px; margin: 0 auto; }
.about-page__title { font-size: 2rem; font-weight: 700; margin-bottom: 1.5rem; }
.about-page__text { font-size: 1rem; line-height: 1.75; color: var(--text); }
.about-page__text p { margin: 0 0 1.25rem; }
.about-page__text h2 { font-size: 1.35rem; font-weight: 700; margin: 2rem 0 .75rem; }
.about-page__text h3 { font-size: 1.1rem;  font-weight: 600; margin: 1.5rem 0 .5rem; }

/* ── Página Trabalhe conosco ─────────────────────────────────────────────── */
.section__head { margin-bottom: 2.5rem; }
.section__head h1 { font-size: 2rem; font-weight: 700; margin-bottom: .5rem; }
.section__head p  { color: var(--text-muted); font-size: 1rem; }

.jobs-empty { color: var(--text-muted); font-style: italic; }
.jobs-list { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 3rem; }

.job-item {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}
.job-item__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.1rem 1.4rem;
  cursor: pointer;
  user-select: none;
  gap: 1rem;
}
.job-item__header:hover { background: var(--surface-muted, rgba(0,0,0,.03)); }
.job-item__title { font-size: 1rem; font-weight: 600; margin: 0; }
.job-item__dept  { font-size: .8rem; color: var(--text-muted); margin-top: .2rem; display: block; }
.job-item__arrow { font-size: 1.4rem; font-weight: 300; color: var(--text-muted); flex-shrink: 0; }

.job-item__body  { padding: 0 1.4rem 1.4rem; border-top: 1px solid var(--border); }
.job-item__section { margin-top: 1rem; }
.job-item__section h4 { font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); margin: 0 0 .4rem; }
.job-item__text { font-size: .9rem; line-height: 1.65; white-space: pre-line; }

/* Botão candidatura espontânea */
.jobs-spontaneous {
  margin-top: 2rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}
.jobs-spontaneous p { color: var(--text-muted); margin: 0; }

/* ── Modal de candidatura ─────────────────────────────────────────────────── */
.apply-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(3px);
}
.apply-modal-overlay[hidden] { display: none; }

.apply-modal {
  background: var(--white, #fff);
  border-radius: var(--radius, 12px);
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  display: flex;
  flex-direction: column;
}

.apply-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 1.75rem 0;
  gap: 1rem;
}
.apply-modal__title { font-size: 1.15rem; font-weight: 700; margin: 0; }
.apply-modal__close {
  background: none;
  border: none;
  cursor: pointer;
  padding: .35rem;
  border-radius: 6px;
  color: var(--text-muted);
  display: flex;
  flex-shrink: 0;
  transition: background .15s, color .15s;
}
.apply-modal__close:hover { background: var(--surface-muted, rgba(0,0,0,.06)); color: var(--text); }

.apply-modal__form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: 1.25rem 1.75rem 1.75rem;
}
.apply-modal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.apply-modal__form .form-group { display: flex; flex-direction: column; gap: .4rem; }
.apply-modal__form .form-group label { font-weight: 500; font-size: .875rem; }
.apply-modal__form input,
.apply-modal__form textarea {
  padding: .65rem .85rem;
  border-radius: var(--radius, 8px);
  border: 1px solid var(--input-border, #ccc);
  background: var(--input-bg, #fff);
  color: var(--text, #111);
  font-size: .95rem;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .15s;
}
.apply-modal__form input:focus,
.apply-modal__form textarea:focus { outline: none; border-color: var(--accent, #0a8f6d); }
.apply-modal__form textarea { resize: vertical; min-height: 120px; }
.apply-modal__actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }

.apply-modal__success {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 2.5rem 1.75rem;
  text-align: center;
}
.apply-modal__success p { font-size: 1rem; line-height: 1.6; margin: 0; }

@media (max-width: 540px) {
  .apply-modal { border-radius: var(--radius, 12px) var(--radius, 12px) 0 0; margin-top: auto; max-height: 95vh; }
  .apply-modal-overlay { align-items: flex-end; padding: 0; }
  .apply-modal__grid { grid-template-columns: 1fr; }
}

/* ── Callouts "big hero" na página trabalhe conosco ───────────────────────── */
.jobs-callouts-section { padding-block: 3rem; }
.jobs-callouts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.25rem;
}
.jobs-callout {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .75rem;
  padding: 1.75rem 1.5rem;
  background: var(--white, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-decoration: none;
  color: var(--text);
  box-shadow: var(--shadow);
  transition: box-shadow .18s, transform .18s, border-color .18s;
  position: relative;
}
.jobs-callout:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,.1);
  transform: translateY(-3px);
  border-color: var(--accent, #0a8f6d);
}
.jobs-callout__icon { color: var(--accent, #0a8f6d); display: flex; }
.jobs-callout__text { font-weight: 600; font-size: .95rem; line-height: 1.35; flex: 1; }
.jobs-callout__arrow {
  font-size: 1.1rem;
  color: var(--accent, #0a8f6d);
  opacity: 0;
  transition: opacity .18s, transform .18s;
  align-self: flex-end;
}
.jobs-callout:hover .jobs-callout__arrow { opacity: 1; transform: translateX(4px); }

/* Dark mode adaptation */
.theme-dark .jobs-callout { background: var(--surface); }
.theme-dark .apply-modal  { background: var(--surface); }

/* ── Case detail page ────────────────────────────────────────────────────── */
.case-detail__cover-wrap {
  margin-bottom: 2rem;
  border-radius: var(--radius);
  overflow: hidden;
}

.case-detail__cover {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  display: block;
}

.case-detail__body {
  max-width: 760px;
}

.case-detail__title {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.case-detail__summary {
  font-size: 1.1rem;
  color: var(--text-muted);
  margin-bottom: 1.5rem;
}

.case-detail__text p {
  margin-bottom: 1rem;
  line-height: 1.8;
}

/* ── Legal pages (Termos / Privacidade) ─────────────────────────────────── */
.legal-page {
  max-width: 800px;
}

.legal-page__title {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 2rem;
}

.legal-page__content p {
  margin-bottom: 1rem;
  line-height: 1.8;
}

.legal-page__content h2 {
  font-size: 1.2rem;
  font-weight: 600;
  margin: 1.5rem 0 0.5rem;
}

/* ── Site footer ─────────────────────────────────────────────────────────── */
.site-footer {
  background: #ffffff;
  color: #3d3d3d;
  border-top: 1px solid #e8eaf0;
  margin-top: auto;
  margin-bottom: 0;
  padding: 0;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  padding: 4rem 0 3rem;
}

@media (max-width: 900px) {
  .site-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    padding: 3rem 0 2rem;
  }
  .site-footer__col--brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .site-footer__grid {
    grid-template-columns: 1fr;
  }
}

.site-footer__col--brand {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.site-footer__brand-link {
  display: inline-block;
  width: fit-content;
}

.site-footer__logo {
  display: block;
  height: 32px;
  width: auto;
  opacity: 1;
}

/* Rodapé branco: logo colorido do tema claro */
.site-footer .site-footer__logo--light { display: block !important; }
.site-footer .site-footer__logo--dark { display: none !important; }

.site-footer__about {
  font-size: 0.85rem;
  line-height: 1.7;
  color: #5c5c5c;
  margin: 0;
  max-width: 320px;
}

.site-footer__social {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.25rem;
}

.site-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(var(--brand-rgb), 0.08);
  color: var(--brand, #2411dc);
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.site-footer__social-link:hover {
  background: var(--brand, #2411dc);
  color: #fff;
}

.site-footer__col-title {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #1a1a1a;
  margin: 0 0 1rem;
}

.site-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.site-footer__links a {
  color: #3d3d3d;
  text-decoration: none;
  font-size: 0.88rem;
  transition: color 0.15s;
}

.site-footer__links a:hover {
  color: var(--brand, #2411dc);
}

.site-footer__bottom {
  border-top: none;
  padding: 1.25rem 0;
  margin: 0;
  background: #0a0a0a;
}

.site-footer__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.site-footer__copy {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.82);
  margin: 0;
  text-align: center;
}

.theme-light .site-footer,
.theme-dark .site-footer {
  background: #ffffff;
  color: #3d3d3d;
}

.contact-strip {
  text-align: center;
  padding: 3rem 1rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.contact-strip__img {
  display: block;
  width: min(100%, 560px);
  height: auto;
  margin: 0 auto 1.5rem;
  border-radius: var(--radius);
}

.site-footer {
  font-size: 0.88rem;
}

/* Forms auth + client — mobile first */
.panel {
  width: 100%;
  max-width: min(100%, 26rem);
  margin: clamp(4.5rem, 12vw, 5.5rem) auto clamp(2rem, 6vw, 3rem);
  padding: clamp(1.25rem, 5vw, 2rem);
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

@media (min-width: 768px) {
  .panel {
    max-width: 28rem;
    padding: 2rem;
  }
}

.panel--wide {
  max-width: min(100%, 60rem);
}

.form-group {
  margin-bottom: var(--field-gap);
}

.form-group label {
  display: block;
  font-size: clamp(0.9rem, 2.8vw, 0.95rem);
  font-weight: 500;
  margin-bottom: 0.45rem;
  color: var(--text-muted);
}

.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select {
  width: 100%;
  box-sizing: border-box;
  min-height: var(--touch-target);
  height: var(--touch-target);
  padding: var(--field-py) var(--field-px);
  border-radius: var(--field-radius);
  border: 1px solid var(--border);
  font-family: inherit;
  font-size: var(--field-font);
  line-height: 1.35;
}

.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
  background: var(--white);
  color: var(--heading);
}

.form-group select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: var(--white);
  color: var(--heading);
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right var(--field-px) center;
  background-size: 0.65rem auto;
  padding-right: calc(var(--field-px) * 2 + 0.85rem);
}

.form-group textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: clamp(8rem, 28vh, 14rem);
  resize: vertical;
  padding: var(--field-py) var(--field-px);
  border-radius: var(--field-radius);
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--heading);
  font-family: inherit;
  font-size: var(--field-font);
  line-height: 1.35;
}

.form-group input[type="checkbox"],
.form-group input[type="radio"] {
  min-height: auto;
  width: auto;
  min-width: 1.35rem;
  min-height: 1.35rem;
  margin-top: 0.2rem;
  accent-color: var(--brand);
}

.alert {
  padding: clamp(0.85rem, 3vw, 1rem) clamp(1rem, 4vw, 1.25rem);
  border-radius: var(--field-radius);
  margin-bottom: var(--field-gap);
  font-size: clamp(0.95rem, 2.8vw, 1rem);
  line-height: 1.45;
}

.alert--ok {
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.35);
  color: #166534;
}

.alert--err {
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #b91c1c;
}

/* Client layout */
.client-shell {
  display: grid;
  min-height: 100vh;
  grid-template-columns: 240px 1fr;
}

@media (max-width: 820px) {
  .client-shell {
    grid-template-columns: 1fr;
  }
}

.client-nav {
  background: var(--white);
  border-right: 1px solid var(--border);
  padding: 1.25rem 1rem;
}

.client-nav a {
  display: flex;
  align-items: center;
  min-height: var(--touch-target);
  padding: 0.65rem 0.85rem;
  border-radius: var(--field-radius);
  color: var(--text-muted);
  margin-bottom: 0.25rem;
  font-size: 1rem;
}

.client-nav a:hover,
.client-nav a.is-active {
  background: var(--brand-soft);
  color: var(--brand);
}

.client-main {
  padding: 1.5rem clamp(1rem, 3vw, 2rem) 3rem;
}

.client-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.badge-saldo {
  font-size: 0.9rem;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: var(--brand-soft);
  border: 1px solid rgba(var(--brand-rgb), 0.14);
  color: var(--heading);
}

.feed-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.feed-card {
  padding: 1.1rem 1.25rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--border);
}

.feed-card__meta {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}

.feed-card h3 {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  color: var(--heading);
}

.feed-card p {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  color: var(--text-muted);
}

.status-pill {
  display: inline-block;
  font-size: 0.75rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-weight: 600;
}

.status-pill--action,
.status-pill--danger {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}

.status-pill--passive,
.status-pill--info,
.status-pill--warn,
.status-pill--neutral {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}

.status-pill--done,
.status-pill--ok {
  background: rgba(34, 197, 94, 0.15);
  color: #166534;
}

.status-pill--pendente {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}

.status-pill--aprovado {
  background: rgba(34, 197, 94, 0.15);
  color: #166534;
}

.status-pill--rejeitado {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}

.feed-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.messages {
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0.75rem;
  margin-bottom: 0.75rem;
  background: var(--navy-deep);
}

.msg {
  margin-bottom: 0.65rem;
  padding: 0.5rem 0.65rem;
  border-radius: 10px;
  font-size: 0.9rem;
}

.msg--cliente {
  background: var(--brand-soft);
  margin-left: 1.5rem;
}

.msg--equipe {
  background: var(--navy-mid);
  margin-right: 1.5rem;
}

.calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: clamp(0.35rem, 2vw, 0.5rem);
  margin-top: 1rem;
}

.cal-head {
  font-size: clamp(0.7rem, 2.5vw, 0.8rem);
  text-align: center;
  color: var(--text-muted);
  padding: 0.35rem 0.15rem;
}

.cal-day {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: var(--field-radius);
  font-size: clamp(0.95rem, 3.5vw, 1.05rem);
  font-weight: 500;
  border: 1px solid transparent;
  cursor: default;
  color: var(--text-muted);
  min-height: 2.75rem;
}

.cal-day--muted {
  opacity: 0.35;
}

.cal-day--pickable {
  cursor: pointer;
  background: var(--brand-soft);
  color: var(--heading);
}

.cal-day--pickable:hover {
  border-color: var(--brand);
}

.cal-day--selected {
  border-color: var(--brand);
  background: rgba(var(--brand-rgb), 0.12);
}

.time-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

.time-slot {
  min-height: var(--touch-target);
  padding: 0.65rem 1.1rem;
  border-radius: var(--field-radius);
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--heading);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
}

.time-slot:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.time-slot.is-on {
  border-color: var(--ok);
  color: var(--ok);
}

.invoice-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(0.95rem, 2.8vw, 1rem);
}

.invoice-table th,
.invoice-table td {
  padding: clamp(0.75rem, 2.5vw, 0.9rem) clamp(0.5rem, 2vw, 0.75rem);
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}

.invoice-table th {
  color: var(--text-muted);
  font-weight: 600;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

@media (min-width: 768px) {
  .invoice-table th {
    font-size: 0.85rem;
  }
}

.stack-gap {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 900px) {
  .stack-gap--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

.plan-pick {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.plan-pick label {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: clamp(0.9rem, 3vw, 1.1rem) clamp(1rem, 3vw, 1.15rem);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  cursor: pointer;
  background: var(--navy-deep);
  min-height: var(--touch-target);
}

.plan-pick input {
  margin-top: 0.25rem;
}

.plan-pick strong {
  color: var(--heading);
}

/* Cadastro / login — layout + cartões de plano */
.cadastro-page {
  padding-bottom: 3rem;
}

.cadastro-layout {
  display: grid;
  gap: 2rem;
  align-items: start;
  margin-top: 5rem;
}

@media (min-width: 960px) {
  .cadastro-layout {
    grid-template-columns: minmax(280px, 1fr) minmax(360px, 520px);
    max-width: 1040px;
    margin-inline: auto;
    margin-top: 5.5rem;
  }
}

.cadastro-visual {
  text-align: center;
}

.cadastro-visual--compact {
  display: none;
}

@media (min-width: 960px) {
  .cadastro-visual--compact {
    display: block;
  }
}

.cadastro-visual__img {
  width: 100%;
  max-width: 420px;
  height: auto;
  border-radius: var(--radius);
  border: 1px solid rgba(var(--brand-rgb), 0.18);
}

.cadastro-visual__caption {
  margin: 1rem auto 0;
  max-width: 36ch;
  font-size: 0.88rem;
  color: var(--text-muted);
}

.panel--cadastro {
  max-width: 560px;
  width: 100%;
  margin: 0 auto;
}

@media (min-width: 960px) {
  .panel--cadastro {
    margin: 0;
  }
}

.plan-pick--cards {
  gap: 1rem;
}

.plan-pick--cards .plan-pick__card {
  position: relative;
  display: block;
  padding: 0;
  border: 1px solid var(--border);
  background: var(--white);
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.plan-pick--cards .plan-pick__card:has(input:checked) {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(var(--brand-rgb), 0.12);
}

.plan-pick--cards .plan-pick__card input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.plan-pick__body {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1rem;
  padding: clamp(1rem, 3vw, 1.15rem) clamp(1rem, 3vw, 1.2rem);
  align-items: start;
}

@media (max-width: 520px) {
  .plan-pick__body {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .plan-pick__visual {
    margin-inline: auto;
  }
}

.plan-pick__visual img {
  display: block;
  width: 120px;
  height: auto;
  border-radius: 10px;
  border: 1px solid rgba(65, 105, 225, 0.35);
}

.plan-pick__title {
  display: block;
  font-size: clamp(1.05rem, 3vw, 1.15rem);
  margin-bottom: 0.25rem;
}

.plan-pick__price {
  display: block;
  color: var(--royal-bright);
  font-weight: 700;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}

.plan-pick__desc {
  display: block;
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.35;
  margin-bottom: 0.35rem;
}

.plan-pick__meta {
  display: block;
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-bottom: 0.5rem;
}

.plan-pick__bullets {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.4;
}

.plan-pick__bullets li {
  margin-bottom: 0.2rem;
}

/* Admin: app shell (menu ícones + voltar ao hub) */
.admin-app {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--white);
}

/** Modo claro: fundo da área de trabalho mais escuro que sidebar, topo e `.panel-card` (hierarquia em camadas). */
body.theme-light .admin-app {
  background: #e6eaf2;
  background-image: radial-gradient(
      840px 360px at 10% -4%,
      rgba(var(--brand-rgb), 0.05),
      transparent
    ),
    radial-gradient(620px 300px at 96% 0%, rgba(var(--brand-rgb), 0.03), transparent);
}
body.theme-light .admin-sidebar {
  background: #ffffff;
  border-right-color: rgba(26, 26, 26, 0.07);
}
body.theme-light .admin-sidebar.is-open {
  background: #ffffff;
}
body.theme-light .admin-app__bar {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 6px 10px 1px rgb(0 0 0 / 0.2);
}
body.theme-light .admin-dock {
  background: rgba(255, 255, 255, 0.98);
}
body.theme-light .panel-card,
body.theme-light .dashboard-card {
  background: #ffffff;
  box-shadow: 0 8px 28px rgba(26, 26, 26, 0.07);
}
body.theme-light .admin-settings-accordion {
  background: #ffffff;
}
body.theme-light .admin-user-menu {
  background: #ffffff;
}

.admin-app__body {
  flex: 1;
  width: 100%;
  /* Grid em vez de flex: o `<main>` herdava encolhimento estranho na coluna útil (flex + min-width:auto). */
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.admin-sidebar {
  display: none;
  width: 260px;
  border-right: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(var(--brand-rgb), 0.035) 0%, rgba(255, 255, 255, 0.98) 48%, #fff 100%);
  padding: 1rem 0.85rem;
  position: sticky;
  top: 0;
  align-self: start;
  height: 100vh;
}

.admin-sidebar.is-open {
  display: block;
  position: fixed;
  z-index: 55;
  top: 64px;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: calc(100dvh - 64px);
  overflow: auto;
  background: #ffffff;
  box-shadow: none;
}

.admin-sidebar__brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.25rem 0.5rem 0.5rem;
  margin-bottom: 0.25rem;
  flex-shrink: 0;
}

.admin-sidebar__brand img {
  display: block;
  height: auto;
  width: auto;
  max-height: 38px;
}

.admin-sidebar__nav {
  display: grid;
  align-content: start;
  gap: 0.05rem;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
}
.admin-sidebar__nav::-webkit-scrollbar {
  width: 4px;
}
.admin-sidebar__nav::-webkit-scrollbar-track {
  background: transparent;
}
.admin-sidebar__nav::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
  border-radius: 4px;
}

.admin-sidebar__link {
  display: grid;
  grid-template-columns: 18px 1fr;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.65rem;
  border-radius: 10px;
  color: var(--text);
  border: 1px solid transparent;
  background: transparent;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.admin-sidebar__icon svg {
  width: 18px;
  height: 18px;
  color: var(--text-muted);
}

.admin-sidebar__label {
  font-weight: 600;
  font-size: 0.85rem;
}

.admin-sidebar__link:hover {
  background: rgba(var(--brand-rgb), 0.05);
  border-color: rgba(var(--brand-rgb), 0.16);
}

.admin-sidebar__link.is-active {
  background: rgba(var(--brand-rgb), 0.1);
  border-color: rgba(var(--brand-rgb), 0.22);
}

.admin-sidebar__link.is-active .admin-sidebar__icon svg {
  color: var(--brand);
}

.admin-menu-toggle {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-direction: column;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 12px;
  background: #fff;
  color: var(--heading);
  cursor: pointer;
}

.admin-menu-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.admin-menu-toggle.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.admin-menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.admin-menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.admin-menu-toggle.is-back {
  font-size: 0;
  gap: 0;
}

.admin-menu-toggle.is-back span {
  display: none;
}

.admin-menu-toggle.is-back::before {
  content: "‹";
  font-size: 2rem;
  line-height: 1;
}

.admin-dock {
  position: fixed;
  inset: auto 0 0;
  z-index: 45;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.35rem;
  padding: 0.55rem 0.55rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid var(--border);
  backdrop-filter: blur(10px);
}

.admin-dock__item {
  display: grid;
  justify-items: center;
  gap: 0.15rem;
  padding: 0.4rem 0.2rem;
  border-radius: 14px;
  color: var(--text-muted);
  border: 1px solid transparent;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.admin-dock__icon svg {
  width: 20px;
  height: 20px;
}

.admin-dock__label {
  font-size: 0.72rem;
  font-weight: 600;
}

.admin-dock__item.is-active {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
  border-color: rgba(var(--brand-rgb), 0.2);
}

@media (min-width: 768px) {
  .admin-app__body {
    grid-template-columns: 260px minmax(0, 1fr);
  }

  .admin-sidebar {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .admin-sidebar.is-open {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: sticky;
    width: 260px;
    height: 100vh;
    box-shadow: none;
  }
  .admin-dock {
    display: none;
  }
  .admin-menu-toggle {
    display: none;
  }
}

.admin-app__bar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: var(--touch-target);
  padding: 0.65rem clamp(0.75rem, 3vw, 1.25rem);
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
}

.admin-app__desktop-brand,
.admin-app__mobile-brand,
.admin-profile-toggle {
  display: none;
}

.admin-app__bar--hub {
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  padding: clamp(1rem, 4vw, 1.35rem) clamp(1rem, 4vw, 1.5rem) 1rem;
}

.admin-app__hub-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.admin-app__hub-brand img {
  display: block;
  height: auto;
  max-height: 44px;
  width: auto;
}

.admin-app__bar-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
  margin-left: auto;
}

.admin-profile-toggle {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 999px;
  background: #fff;
  color: var(--heading);
  cursor: pointer;
}

.admin-profile-toggle svg {
  width: 22px;
  height: 22px;
}

.admin-app__identity {
  display: none;
  text-align: right;
  line-height: 1.15;
}

.admin-app__identity strong {
  display: block;
  color: var(--heading);
  font-size: .95rem;
}

.admin-app__identity span {
  display: block;
  color: var(--text-muted);
  font-size: .78rem;
}

.admin-user-menu {
  display: none;
  position: absolute;
  right: .75rem;
  top: calc(100% + .45rem);
  min-width: 230px;
  padding: .45rem;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow);
}

.admin-user-menu.is-open {
  display: grid;
}

.admin-user-menu a {
  padding: .75rem .85rem;
  border-radius: 12px;
  color: var(--text);
  font-weight: 600;
}

.admin-user-menu button[data-theme-toggle] {
  display: block;
  width: 100%;
  margin: 0;
  padding: .75rem .85rem;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.admin-user-menu a:hover,
.admin-user-menu button[data-theme-toggle]:hover {
  background: var(--brand-soft);
  color: var(--brand);
}

.admin-app__fab {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--brand);
  color: #fff;
  font-size: 1.65rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.admin-app__fab:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 24px rgba(var(--brand-rgb), 0.35);
  color: #fff;
}

.admin-app__icon-btn {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  color: var(--text-muted);
  background: var(--navy-deep);
  border: 1px solid var(--border);
  transition: background 0.2s ease, color 0.2s ease;
}

.admin-app__icon-btn:hover {
  background: var(--navy);
  color: var(--heading);
}

.admin-app__icon-btn--danger:hover {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
  border-color: rgba(239, 68, 68, 0.35);
}

.admin-app__hub-meta {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-muted);
  line-height: 1.45;
}

.admin-app__hub-label {
  display: block;
  font-weight: 600;
  color: var(--heading);
  font-size: 0.95rem;
}

.admin-app__hub-email {
  display: block;
  word-break: break-all;
}

.admin-app__back {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: var(--touch-target);
  height: var(--touch-target);
  margin: -0.25rem;
  margin-inline: -0.15rem -0.25rem;
  border-radius: 12px;
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
  transition: background 0.2s ease, color 0.2s ease;
}

.admin-app__back:hover {
  background: rgba(var(--brand-rgb), 0.14);
  color: var(--accent);
}

.admin-app__title {
  flex: 1;
  margin: 0;
  font-size: clamp(1.05rem, 3.5vw, 1.2rem);
  font-weight: 700;
  color: var(--heading);
  line-height: 1.25;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-right: 0.35rem;
}

.admin-app__main {
  min-width: 0;
  padding: clamp(1rem, 3vw, 1.5rem) clamp(1rem, 4vw, 1.5rem) 2.5rem;
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
}

@media (max-width: 767px) {
  .admin-app__bar {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    bottom: auto;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    height: 64px;
    min-height: 64px;
    padding: 0.5rem 0.75rem;
  }
  .admin-app__mobile-brand {
    display: flex;
    grid-column: 2;
    justify-self: center;
    align-items: center;
  }
  .admin-app__mobile-brand img {
    display: block;
    max-height: 34px;
    width: auto;
  }
  .admin-app__title,
  .admin-app__bar-actions .admin-app__fab,
  .admin-app__bar-actions .admin-app__icon-btn {
    display: none;
  }
  .client-app .client-cart-toggle,
  .client-app .client-chat-toggle {
    display: grid;
  }
  .admin-app__bar-actions {
    grid-column: 3;
    margin-left: 0;
    justify-self: end;
    min-width: 44px;
    min-height: 44px;
  }
  .admin-profile-toggle {
    display: grid;
  }
  .admin-profile-toggle.is-hidden,
  .admin-menu-toggle.is-hidden {
    display: none;
    pointer-events: none;
  }
  .admin-user-menu {
    position: fixed;
    z-index: 56;
    top: 64px;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: calc(100dvh - 64px);
    overflow: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #ffffff;
    padding: 1rem;
    align-content: start;
  }
  .admin-user-menu a,
  .admin-user-menu button[data-theme-toggle] {
    min-height: 56px;
    display: flex;
    align-items: center;
    font-size: 1.05rem;
  }
  .admin-app__back {
    grid-column: 1;
    display: none;
  }
  .admin-app__back.is-visible {
    display: grid;
  }
  .admin-menu-toggle {
    grid-column: 1;
  }
  .admin-sidebar__brand {
    display: none;
  }
  .admin-sidebar.is-open .admin-sidebar__nav {
    padding: 0.5rem 0.5rem 1rem;
  }
  .admin-sidebar.is-open .admin-sidebar__group {
    margin: 0.6rem 0.65rem 0.05rem;
  }
  .admin-app__main {
    padding-top: calc(64px + 1rem);
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
  }
}

@media (min-width: 768px) {
  .admin-app {
    padding-top: 72px;
  }
  .admin-app__bar {
    position: fixed;
    inset: 0 0 auto;
    min-height: 72px;
    padding: .75rem 1.25rem;
  }
  .admin-app__desktop-brand {
    display: flex;
    align-items: center;
  }
  .admin-app__desktop-brand img {
    display: block;
    max-height: 38px;
    width: auto;
  }
  .admin-app__mobile-brand,
  .admin-app__back,
  .admin-app__title,
  .admin-app__fab {
    display: none;
  }
  .client-app .client-cart-toggle,
  .client-app .client-chat-toggle {
    display: grid;
  }
  .admin-app__icon-btn {
    display: none;
  }
  .admin-app__identity,
  .admin-profile-toggle {
    display: grid;
  }
  .admin-app__bar-actions {
    position: relative;
  }
  .admin-sidebar {
    top: 72px;
    height: calc(100vh - 72px);
  }
  .admin-sidebar__brand {
    display: none;
  }
  .admin-app__main {
    max-width: 1040px;
    margin-inline: 0;
  }
  .client-app .admin-app__main {
    max-width: none;
    min-width: 0;
  }

  @media (min-width: 1100px) {
    .client-app .admin-app__body {
      grid-template-columns: minmax(220px, 16vw) minmax(0, 1fr) minmax(260px, 18vw);
      column-gap: clamp(1rem, 2.5vw, 2rem);
      min-height: calc(100vh - 72px);
      align-items: stretch;
    }
    .client-app .admin-sidebar {
      margin-right: 0;
      width: auto;
      min-width: 0;
    }
    .client-app .admin-app__main {
      padding-right: 0;
      padding-left: clamp(0.75rem, 1.5vw, 1.25rem);
    }
    .client-app .client-app__chat-rail {
      margin-left: 0;
    }
  }

  .admin-app__body .admin-app__main {
    padding-left: clamp(1rem, 3vw, 1.75rem);
    padding-right: clamp(1rem, 3vw, 1.75rem);
  }
}

.admin-screen-title {
  margin: 0 0 1rem;
  font-size: clamp(1.22rem, 2.65vw, 1.48rem);
  line-height: 1.25;
  color: var(--heading);
}

.admin-screen-title strong {
  font-weight: 700;
}

/** Cabeçalho: breadcrumb à esquerda (com seta) e título centralizado na mesma linha. */
.admin-page-header-breadcrumb {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 2.35rem;
  margin: 0 0 1rem;
}
.admin-page-header-breadcrumb .admin-screen-title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  text-align: center;
  width: max-content;
  max-width: min(520px, calc(100% - 8rem));
  pointer-events: none;
}
.admin-page-breadcrumb {
  position: relative;
  z-index: 1;
  margin: 0;
  flex: 0 0 auto;
  max-width: 45%;
  font-size: 0.875rem;
  line-height: 1.35;
  color: var(--muted, #64748b);
}
.admin-page-breadcrumb a {
  color: inherit;
  text-decoration: none;
}
.admin-page-breadcrumb a:hover {
  color: var(--primary, #2563eb);
  text-decoration: underline;
}

/** Espaçamento vertical entre panel-cards empilhados em qualquer tela admin. */
.admin-page > .panel-card + .panel-card,
.admin-page > form.panel-card + .panel-card,
.admin-page > .panel-card + form.panel-card {
  margin-top: 1.25rem;
}

.admin-page__intro {
  margin: 0 0 1.25rem;
  color: var(--text-muted);
  font-size: clamp(0.95rem, 2.8vw, 1rem);
  line-height: 1.5;
  max-width: 70ch;
}

.admin-page__client-name {
  margin: 0 0 0.75rem;
  font-size: clamp(1.25rem, 4vw, 1.5rem);
  font-weight: 700;
  color: var(--heading);
  line-height: 1.2;
}

/* Agenda administrativa: calendário (mês / semana / dia) */
.admin-agenda-scroll {
  max-width: 100%;
  margin-bottom: 1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.admin-agenda-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.75rem;
}

.admin-agenda-toolbar__views {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.admin-agenda-toolbar__nav {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
  flex: 1 1 14rem;
  min-width: 0;
}

.admin-agenda-toolbar__period {
  margin: 0;
  text-align: center;
  font-size: clamp(0.88rem, 2.8vw, 1.15rem);
  font-weight: 600;
  color: var(--heading);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/** Alinhado ao destaque visual do dia corrente (células / cabeçalho): fundo branco e contorno verde. */
.admin-agenda-toolbar .admin-agenda-today-btn {
  background: #ffffff;
  color: var(--heading);
  border: 2px solid #22c55e;
  box-shadow: none;
  font-weight: 600;
}

.admin-agenda-toolbar .admin-agenda-today-btn:hover {
  transform: translateY(-1px);
  background: rgba(34, 197, 94, 0.12);
  border-color: #16a34a;
  color: var(--heading);
  box-shadow: 0 4px 16px rgba(22, 163, 74, 0.2);
}

.admin-agenda-toolbar .admin-agenda-today-btn:focus-visible {
  outline: 2px solid #22c55e;
  outline-offset: 2px;
}

/* Toolbar do cronograma do cliente: lado direito com filtro de empresa + botão Hoje */
.client-cronograma-toolbar__right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.client-cronograma-group-filter {
  display: flex;
  align-items: center;
}

.client-cronograma-group-select {
  font-size: 0.85rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  max-width: 220px;
}

/* Selector "Faturar para" no carrinho */
.client-carrinho-billing-wrap {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e5e7eb;
}

.client-carrinho-billing-title {
  font-size: 0.9rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  color: var(--heading);
}

.client-carrinho-billing-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.client-carrinho-billing-option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  cursor: pointer;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  transition: background 0.15s;
}

.client-carrinho-billing-option:hover {
  background: rgba(var(--brand-rgb), 0.06);
}

.client-carrinho-billing-option input[type="radio"] {
  accent-color: rgb(var(--brand-rgb));
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

.client-carrinho-billing-add {
  margin-top: 0.75rem;
}

body.theme-dark .client-carrinho-billing-wrap {
  border-top-color: rgba(255, 255, 255, 0.1);
}

.client-cronograma-confirm-summary {
  padding: 0.65rem 0.9rem;
  background: color-mix(in srgb, var(--accent, #3b82f6) 7%, transparent);
  border-left: 3px solid var(--accent, #3b82f6);
  border-radius: 0 6px 6px 0;
  line-height: 1.6;
  margin-bottom: 0.25rem;
}
.client-cronograma-confirm-period {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent, #3b82f6);
  letter-spacing: 0.01em;
}

.client-cronograma-billing-info {
  font-size: 0.8125rem;
  color: var(--muted);
  margin: 0;
}
.form-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading);
  margin-bottom: 0.1rem;
}

/* ── Checkbox de termos no carrinho ────────────────────────────────────── */
.client-carrinho-terms-wrap {
  padding: 1rem 0 0.75rem;
  border-top: 1px solid var(--border);
}

.client-carrinho-terms-label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1rem;
  font-weight: 500;
  color: var(--text, #0f172a);
  cursor: pointer;
  line-height: 1.4;
}

.client-carrinho-terms-label input[type="checkbox"] {
  flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
  accent-color: var(--brand, #0026ff);
  cursor: pointer;
}

.client-carrinho-terms-link {
  background: none;
  border: none;
  padding: 0;
  color: var(--brand, #0026ff);
  font-size: inherit;
  font-family: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.client-carrinho-terms-link:hover {
  opacity: 0.8;
}

/* Modal de conteúdo legal */
.modal-dialog--legal {
  max-width: min(680px, 96vw);
  max-height: min(80vh, 820px);
}

.modal-dialog--legal .modal-dialog__inner {
  max-height: min(80vh, 820px);
}

.modal-dialog--legal .modal-dialog__body {
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
}

.modal-dialog__close--lg {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 6px;
  color: var(--text-secondary, #475569);
  transition: background 0.15s ease, color 0.15s ease;
}

.modal-dialog__close--lg:hover {
  background: var(--surface-alt, rgba(0,0,0,0.08));
  color: var(--heading, #0f172a);
}

.theme-dark .modal-dialog__close--lg:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.client-carrinho-legal-body {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--text-primary);
}

.client-carrinho-legal-body p {
  margin-bottom: 0.85rem;
}

.client-carrinho-legal-body h1,
.client-carrinho-legal-body h2,
.client-carrinho-legal-body h3 {
  font-weight: 700;
  margin: 1.25rem 0 0.5rem;
  color: var(--heading);
}

.client-carrinho-legal-body ul,
.client-carrinho-legal-body ol {
  padding-left: 1.4rem;
  margin-bottom: 0.85rem;
}

body.theme-dark .client-carrinho-terms-wrap {
  border-top-color: rgba(255, 255, 255, 0.1);
}

.admin-agenda-legend {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.1rem;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.admin-agenda-legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.admin-agenda-legend-swatch {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 4px;
  border: 1px solid rgba(26, 26, 26, 0.12);
}

.admin-agenda-legend-swatch--unavail,
.admin-agenda-legend-swatch--blocked {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
}

.admin-agenda-legend-swatch--avail {
  background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border-color: rgba(22, 163, 74, 0.35);
}

/* Cronograma cliente: disponível em azul (não verde) */
.client-cronograma-page .admin-agenda-legend-swatch--avail {
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
  border-color: rgba(37, 99, 235, 0.38);
}

.client-cronograma-page .admin-agenda-cell--avail {
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
  border: 1px solid rgba(37, 99, 235, 0.38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.client-cronograma-page .admin-agenda-cell--avail:hover {
  background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
  border-color: rgba(37, 99, 235, 0.58);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.22);
}

.client-cronograma-page .admin-agenda-cell--avail:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 1px;
}

/* Cronograma cliente: indisponível com listras, sem relevo de borda nem hover */
.client-cronograma-page .admin-agenda-cell--blocked,
.client-cronograma-page .admin-agenda-cell--unavail,
.client-cronograma-page .admin-agenda-cell--type-blocked {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border: 1px solid #b4bac4;
  box-shadow: none;
  opacity: 1;
  transition: none;
  filter: none;
}

.client-cronograma-page .admin-agenda-cell--blocked:hover,
.client-cronograma-page .admin-agenda-cell--unavail:hover,
.client-cronograma-page .admin-agenda-cell--type-blocked:hover,
.client-cronograma-page .admin-agenda-cell--blocked:focus,
.client-cronograma-page .admin-agenda-cell--unavail:focus,
.client-cronograma-page .admin-agenda-cell--type-blocked:focus,
.client-cronograma-page .admin-agenda-cell--blocked:focus-visible,
.client-cronograma-page .admin-agenda-cell--unavail:focus-visible,
.client-cronograma-page .admin-agenda-cell--type-blocked:focus-visible {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border-color: #b4bac4;
  box-shadow: none;
  opacity: 1;
  filter: none;
  outline: none;
}

.client-cronograma-page .admin-agenda-legend-swatch--blocked {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border-color: #b4bac4;
  box-shadow: none;
}

/* Cronograma admin: disponível usa cor do tipo (inline), não verde genérico */
.admin-cronograma-page .admin-agenda-cell--avail {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  box-shadow: none;
}

.admin-cronograma-page .admin-agenda-cell--avail:hover {
  background: #e2e8f0;
  border-color: #94a3b8;
  box-shadow: none;
}

/* Admin (cronograma + agenda): indisponível com listras, sem relevo de borda nem hover */
.admin-cronograma-page .admin-agenda-cell--blocked:not(.admin-agenda-cell--paint-open),
.admin-cronograma-page .admin-agenda-cell--unavail,
.admin-cronograma-page .admin-agenda-cell--type-blocked,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--blocked,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--unavail,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--type-blocked {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border: 1px solid #b4bac4;
  box-shadow: none;
  opacity: 1;
  transition: none;
  filter: none;
}

.admin-cronograma-page .admin-agenda-cell--blocked:not(.admin-agenda-cell--paint-open):hover,
.admin-cronograma-page .admin-agenda-cell--unavail:hover,
.admin-cronograma-page .admin-agenda-cell--type-blocked:hover,
.admin-cronograma-page .admin-agenda-cell--blocked:not(.admin-agenda-cell--paint-open):focus-visible,
.admin-cronograma-page .admin-agenda-cell--unavail:focus-visible,
.admin-cronograma-page .admin-agenda-cell--type-blocked:focus-visible,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--blocked:hover,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--unavail:hover,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--type-blocked:hover,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--blocked:focus-visible,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--unavail:focus-visible,
.admin-page[data-admin-view="agenda"] .admin-agenda-cell--type-blocked:focus-visible {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border-color: #b4bac4;
  box-shadow: none;
  opacity: 1;
  filter: none;
  outline: none;
}

.admin-cronograma-page .admin-agenda-legend-swatch--blocked,
.admin-page[data-admin-view="agenda"] .admin-agenda-legend-swatch--blocked {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border-color: #b4bac4;
  box-shadow: none;
}

.admin-agenda-legend-swatch--booked {
  background: #c7daff;
}

.admin-agenda-legend-swatch--cancel {
  background: #ffedd5;
}

.admin-agenda-legend-swatch--urgent {
  background: #fecaca;
}

.admin-agenda-sheet {
  margin-top: 0.25rem;
  --agenda-days: 1;
}

.admin-agenda-sheet-head,
.admin-agenda-slot-row {
  display: grid;
  grid-template-columns: 5rem repeat(var(--agenda-days, 1), minmax(0, 1fr));
  gap: 3px;
  align-items: stretch;
}

.admin-agenda-corner {
  min-height: 2.65rem;
}

.admin-agenda-day-hdr {
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  padding: 0.35rem 0.2rem;
  font-size: 0.76rem;
  color: var(--text-muted);
  background: rgba(var(--brand-rgb), 0.04);
  border-radius: 10px;
}

.admin-agenda-day-hdr span {
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-weight: 600;
  color: var(--heading);
}

.admin-agenda-day-hdr em {
  font-style: normal;
  font-weight: 500;
}

.admin-agenda-day-hdr--today {
  box-shadow: inset 0 -3px 0 0 #16a34a;
}

/*
 * Split dinâmico: a célula hora a hora só vira grade multi-coluna
 * quando há 2+ tipos no mesmo horário (--agenda-split).
 */
.admin-agenda-day-col--split {
  display: grid;
  grid-template-columns: repeat(var(--agenda-split, 2), minmax(0, 1fr));
  gap: 2px;
  min-width: 0;
  min-height: 0;
}
.admin-agenda-day-col--split .admin-agenda-cell {
  min-width: 0;
}

/* Cliente: barras laterais quando a célula tem vários tipos liberados */
.admin-agenda-cell--multi-type {
  position: relative;
  overflow: hidden;
}
.admin-agenda-cell__type-bars {
  position: absolute;
  inset: 0;
  display: flex;
  pointer-events: none;
  z-index: 0;
}
.admin-agenda-cell__type-bar {
  flex: 1 1 0;
  min-width: 0;
  opacity: 0.55;
}
.admin-agenda-cell--multi-type.admin-agenda-cell--avail {
  background: transparent;
}

.admin-agenda-month-day.admin-agenda-is-today {
  border-color: #22c55e;
  box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.5);
}

.admin-agenda-month-day.admin-agenda-is-today:hover {
  border-color: #22c55e;
  box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.5);
}

/* ── Tira semanal mobile (estilo iOS Calendar) ──────────────────────────── */
.cronograma-week-strip {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
  margin-top: 0.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
  padding-top: 0.5rem;
}

.cronograma-week-strip__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 4px 0;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 10px;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.12s;
}

.cronograma-week-strip__day:active {
  background: rgba(var(--brand-rgb, 0 38 255), 0.06);
}

.cronograma-week-strip__abbr {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted, #6b7280);
  line-height: 1;
}

.cronograma-week-strip__num {
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--heading, #0f172a);
  line-height: 1;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

/* Dia de hoje — número com borda verde */
.cronograma-week-strip__day.is-today .cronograma-week-strip__num {
  color: #16a34a;
  font-weight: 700;
}

/* Dia selecionado — círculo sólido escuro (como iOS) */
.cronograma-week-strip__day.is-selected .cronograma-week-strip__num {
  background: var(--heading, #0f172a);
  color: #fff;
  font-weight: 700;
}

/* Quando hoje == selecionado, usa cor da marca */
.cronograma-week-strip__day.is-selected.is-today .cronograma-week-strip__num {
  background: #16a34a;
  color: #fff;
}

.theme-dark .cronograma-week-strip {
  border-top-color: rgba(255, 255, 255, 0.1);
}

.theme-dark .cronograma-week-strip__abbr {
  color: rgba(255, 255, 255, 0.45);
}

.theme-dark .cronograma-week-strip__num {
  color: rgba(255, 255, 255, 0.85);
}

.theme-dark .cronograma-week-strip__day.is-today .cronograma-week-strip__num {
  color: #4ade80;
}

.theme-dark .cronograma-week-strip__day.is-selected .cronograma-week-strip__num {
  background: rgba(255, 255, 255, 0.9);
  color: #0f172a;
}

.theme-dark .cronograma-week-strip__day.is-selected.is-today .cronograma-week-strip__num {
  background: #16a34a;
  color: #fff;
}

.admin-agenda-time-body {
  display: grid;
  gap: 4px;
  margin-top: 4px;
}

.admin-agenda-time-lbl {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 0.35rem;
  font-size: 0.72rem;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.admin-agenda-cell {
  min-height: 30px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 0;
}

.admin-agenda-cell:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
}

/* ── Mobile: grid diário estilo iOS Calendar ────────────────────────────── */
@media (max-width: 767px) {
  /* Tira semanal ocupa toda a largura sem scroll */
  .client-cronograma-page .admin-agenda-scroll {
    overflow-x: visible;
  }

  /* Cada linha de slot é mais alta para dedos */
  .client-cronograma-page .admin-agenda-cell {
    min-height: 40px;
    border-radius: 6px;
  }

  /* Slot-row: gutter menor para parecer mais contínuo */
  .client-cronograma-page .admin-agenda-slot-row {
    gap: 2px;
  }

  .client-cronograma-page .admin-agenda-time-body {
    gap: 0;
  }

  /* Label de hora: fonte maior e estilo iOS */
  .client-cronograma-page .admin-agenda-time-lbl {
    font-size: 1.43rem;
    font-weight: 500;
    color: var(--text-muted, #9ca3af);
    padding-right: 0.5rem;
    align-items: flex-start;
    padding-top: 3px;
  }

  /* Toolbar diária mobile: esconde tudo menos o título do mês */
  .client-cronograma-toolbar [data-cronograma-prev],
  .client-cronograma-toolbar [data-cronograma-next],
  .client-cronograma-toolbar [data-cronograma-today],
  .client-cronograma-toolbar__right {
    display: none;
  }

  /* Nav ocupa a linha toda e o título centraliza */
  .client-cronograma-toolbar .admin-agenda-toolbar__nav {
    width: 100%;
    /* Substitui o grid 3-colunas por coluna única: só o título */
    grid-template-columns: 1fr;
  }

  /* Cabeçalho de dia: mais compacto (single-day mode) */
  .client-cronograma-page .admin-agenda-day-hdr {
    font-size: 1.4rem;
    padding: 0.2rem 0.15rem;
  }

  /* Coluna de tempo: ajustada para fonte maior no mobile */
  .client-cronograma-page .admin-agenda-sheet-head,
  .client-cronograma-page .admin-agenda-slot-row {
    grid-template-columns: 5.5rem repeat(var(--agenda-days, 1), minmax(0, 1fr));
  }

  /* Linha horizontal entre linhas de slot — estilo iOS com divisores finos */
  .client-cronograma-page .admin-agenda-slot-row {
    border-bottom: 1px solid var(--border, #f1f5f9);
  }

  .theme-dark .client-cronograma-page .admin-agenda-slot-row {
    border-bottom-color: rgba(255, 255, 255, 0.06);
  }

  /* Legenda compacta no mobile */
  .client-cronograma-page .admin-agenda-legend {
    flex-wrap: wrap;
    gap: 0.4rem 1rem;
    font-size: 0.78rem;
    margin-bottom: 0.5rem;
  }

}

/* Desktop: visão semanal — hora maior, alinhada à esquerda, grade em largura total */
@media (min-width: 768px) {
  .client-cronograma-page .admin-agenda-scroll {
    width: 100%;
    overflow-x: visible;
  }

  .client-cronograma-page [data-cronograma-schedule-root],
  .client-cronograma-page .admin-agenda-sheet.client-cronograma-sheet {
    width: 100%;
  }

  .client-cronograma-page .admin-agenda-sheet-head,
  .client-cronograma-page .admin-agenda-slot-row {
    width: 100%;
    grid-template-columns: 4.5rem repeat(var(--agenda-days, 7), minmax(0, 1fr));
    gap: 4px;
  }

  .client-cronograma-page .admin-agenda-time-lbl {
    font-size: 1.12rem;
    font-weight: 500;
    justify-content: flex-end;
    align-items: flex-start;
    padding-left: 0;
    padding-right: 0.35rem;
    text-align: right;
  }

  .client-cronograma-page .admin-agenda-corner {
    padding: 0;
  }
}

/* Admin cronograma — visão semanal: hora e cabeçalho de dia como no painel do cliente */
@media (max-width: 767px) {
  .admin-cronograma-page .admin-agenda-slot-row {
    gap: 2px;
    border-bottom: 1px solid var(--border, #f1f5f9);
  }

  .admin-cronograma-page .admin-agenda-cell {
    min-height: 40px;
    border-radius: 6px;
  }

  .admin-cronograma-page .admin-agenda-time-body {
    gap: 0;
  }

  .admin-cronograma-page .admin-agenda-time-lbl {
    font-size: 1.43rem;
    font-weight: 500;
    color: var(--text-muted, #9ca3af);
    padding-right: 0.5rem;
    align-items: flex-start;
    padding-top: 3px;
  }

  .admin-cronograma-page .admin-agenda-sheet-head,
  .admin-cronograma-page .admin-agenda-slot-row {
    grid-template-columns: 5.5rem repeat(var(--agenda-days, 1), minmax(0, 1fr));
  }

  .admin-cronograma-page .admin-agenda-day-hdr {
    padding: 0.2rem 0.15rem;
  }

  .admin-cronograma-page .admin-agenda-day-hdr span {
    font-size: 0.72rem;
  }

  .admin-cronograma-page .admin-agenda-day-hdr em {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.1;
  }

  .theme-dark .admin-cronograma-page .admin-agenda-slot-row {
    border-bottom-color: rgba(255, 255, 255, 0.06);
  }
}

@media (min-width: 768px) {
  .admin-cronograma-page .admin-agenda-scroll {
    width: 100%;
    overflow-x: visible;
  }

  .admin-cronograma-page .admin-agenda-sheet-head,
  .admin-cronograma-page .admin-agenda-slot-row {
    width: 100%;
    grid-template-columns: 4.5rem repeat(var(--agenda-days, 7), minmax(0, 1fr));
    gap: 4px;
  }

  .admin-cronograma-page .admin-agenda-time-lbl {
    font-size: 1.12rem;
    font-weight: 500;
    justify-content: flex-end;
    align-items: flex-start;
    padding-left: 0;
    padding-right: 0.35rem;
    text-align: right;
  }

  .admin-cronograma-page .admin-agenda-day-hdr {
    padding: 0.45rem 0.25rem;
  }

  .admin-cronograma-page .admin-agenda-day-hdr span {
    font-size: 0.78rem;
  }

  .admin-cronograma-page .admin-agenda-day-hdr em {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.1;
  }

  .admin-cronograma-page .admin-agenda-corner {
    min-height: 3rem;
    padding: 0;
  }
}

.admin-agenda-cell--blocked,
.admin-agenda-cell--unavail,
.admin-agenda-cell--type-blocked {
  background: repeating-linear-gradient(
    135deg,
    #b8bec9 0px,
    #b8bec9 2px,
    #a8aeb8 2px,
    #a8aeb8 7px
  );
  border: 1px solid rgba(100, 108, 120, 0.45);
  cursor: not-allowed;
  opacity: 0.94;
}

.admin-agenda-cell--blocked:hover,
.admin-agenda-cell--unavail:hover,
.admin-agenda-cell--type-blocked:hover {
  opacity: 0.88;
}

.admin-agenda-cell--avail {
  background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border: 1px solid rgba(22, 163, 74, 0.38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-agenda-cell--avail:hover {
  background: linear-gradient(180deg, #d1fae5 0%, #a7f3d0 100%);
  border-color: rgba(22, 163, 74, 0.58);
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.22);
}

.admin-agenda-cell--avail:focus-visible {
  outline: 2px solid #16a34a;
  outline-offset: 1px;
}

.admin-agenda-cell--book {
  background: linear-gradient(180deg, rgba(59, 130, 246, 0.32), rgba(59, 130, 246, 0.2));
}

.admin-agenda-cell--pending {
  background: linear-gradient(180deg, rgba(59, 130, 246, 0.32), rgba(59, 130, 246, 0.2));
}

.admin-agenda-cell--cancel {
  background: linear-gradient(180deg, rgba(234, 88, 12, 0.32), rgba(253, 186, 116, 0.6));
}

.admin-agenda-cell--urgent {
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.5), rgba(248, 113, 113, 0.45));
}

/* Célula com tipo de agendamento marcado pelo admin — cor e opacidade geridas via inline style */
.admin-agenda-cell--typed {
  border-radius: 6px;
}
.admin-agenda-cell--typed:hover {
  filter: brightness(1.1);
}

/* Paleta Agendas / Horários no cronograma admin */
.admin-cronograma-type-palette-card {
  margin-bottom: 0;
}
.admin-cronograma-palette-tabs .admin-tabs__panel {
  padding-top: 0.65rem;
}
.admin-cronograma-horarios-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem 0.75rem;
  margin: 0 0 0.55rem;
}
.admin-cronograma-horarios-hint {
  margin: 0;
  font-size: 0.88rem;
  flex: 1 1 12rem;
}
.admin-cronograma-horarios-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.admin-cronograma-view-tabs .admin-tabs__panel[data-admin-cronograma-panel="agenda"] {
  padding-top: 0;
}

/*
 * Guias da Agenda (admin + cliente): seletor segmentado.
 * Substitui o estilo “aba de pasta” só nestes contextos.
 */
.admin-cronograma-palette-tabs > .admin-tabs__bar,
.admin-cronograma-view-tabs > .admin-tabs__bar,
.client-cronograma-palette-tabs > .admin-tabs__bar,
.client-cronograma-view-tabs > .admin-tabs__bar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.3rem;
  margin: 0 0 0.9rem;
  padding: 0.3rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--brand-soft, #eeecfc) 55%, var(--white, #fff));
  position: relative;
  z-index: 1;
}

.panel-card > .admin-cronograma-palette-tabs > .admin-tabs__bar,
.panel-card > .admin-cronograma-view-tabs > .admin-tabs__bar,
.panel-card > .client-cronograma-palette-tabs > .admin-tabs__bar,
.panel-card > .client-cronograma-view-tabs > .admin-tabs__bar {
  margin: 0 0 0.9rem;
  padding: 0.3rem;
  background: color-mix(in srgb, var(--brand-soft, #eeecfc) 55%, var(--white, #fff));
}

.admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab,
.admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab,
.client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab,
.client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.45rem;
  margin: 0;
  padding: 0.5rem 0.7rem;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: var(--text-muted, #64748b);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab:hover,
.admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab:hover,
.client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab:hover,
.client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab:hover {
  color: var(--heading, #1a1a1a);
  background: color-mix(in srgb, var(--white, #fff) 70%, transparent);
  border-color: transparent;
}

.admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.panel-card > .admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.panel-card > .admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.panel-card > .client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.panel-card > .client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active {
  background: var(--white, #fff);
  border-color: color-mix(in srgb, var(--brand, #2411dc) 22%, var(--border));
  border-bottom-color: color-mix(in srgb, var(--brand, #2411dc) 22%, var(--border));
  color: var(--brand, #2411dc);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 12px rgba(var(--brand-rgb, 36, 17, 220), 0.1);
}

.theme-dark .admin-cronograma-palette-tabs > .admin-tabs__bar,
.theme-dark .admin-cronograma-view-tabs > .admin-tabs__bar,
.theme-dark .client-cronograma-palette-tabs > .admin-tabs__bar,
.theme-dark .client-cronograma-view-tabs > .admin-tabs__bar,
.theme-dark .panel-card > .admin-cronograma-palette-tabs > .admin-tabs__bar,
.theme-dark .panel-card > .admin-cronograma-view-tabs > .admin-tabs__bar,
.theme-dark .panel-card > .client-cronograma-palette-tabs > .admin-tabs__bar,
.theme-dark .panel-card > .client-cronograma-view-tabs > .admin-tabs__bar {
  background: color-mix(in srgb, var(--brand-soft, #172554) 55%, var(--panel, #1e2430));
  border-color: var(--border, #263247);
}

.theme-dark .admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .panel-card > .admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .panel-card > .admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .panel-card > .client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab--active,
.theme-dark .panel-card > .client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab--active {
  background: var(--panel, #1e2430);
  border-color: color-mix(in srgb, var(--brand, #3b82f6) 35%, var(--border, #263247));
  border-bottom-color: color-mix(in srgb, var(--brand, #3b82f6) 35%, var(--border, #263247));
  color: #93c5fd;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

@media (max-width: 520px) {
  .admin-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab,
  .admin-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab,
  .client-cronograma-palette-tabs > .admin-tabs__bar .admin-tabs__tab,
  .client-cronograma-view-tabs > .admin-tabs__bar .admin-tabs__tab {
    min-height: 2.6rem;
    padding: 0.45rem 0.4rem;
    font-size: 0.78rem;
    white-space: normal;
  }
}
.admin-crono-agenda-list-cell {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.admin-crono-agenda-list-cell__primary {
  font-weight: 600;
  line-height: 1.3;
}
.admin-crono-agenda-list-cell__secondary {
  font-size: 0.84rem;
  line-height: 1.25;
}
.admin-cronograma-page [data-admin-cronograma-bookings-list] .front-table td:first-child,
.client-cronograma-page [data-cronograma-bookings-list] .front-table td:first-child {
  min-width: 9rem;
}
.admin-cronograma-type-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.admin-cronograma-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  border: 2px solid transparent;
  background: #f0f2f5;
  font-size: 0.84rem;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.admin-cronograma-type-pill:hover {
  border-color: var(--type-color, #3b82f6);
}
.admin-cronograma-type-pill.is-active {
  background: color-mix(in srgb, var(--type-color, #3b82f6) 14%, #fff);
  border-color: var(--type-color, #3b82f6);
  color: var(--type-color, #3b82f6);
}
.admin-cronograma-type-pill__swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.admin-cronograma-type-clear-btn {
  margin-top: 0.6rem;
}

/* Modo admin: liberar horários (Agendas) ou marcar crédito (Horários) */
.admin-cronograma-page.is-slot-painting .admin-cronograma-type-palette-card,
.admin-cronograma-page.is-credit-booking .admin-cronograma-type-palette-card {
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--paint-type-color, #3b82f6) 38%, transparent);
}
.admin-cronograma-page.is-credit-booking .admin-agenda-cal-wrap {
  cursor: crosshair;
}
.admin-cronograma-page.is-credit-booking .admin-cronograma-horario-chip.is-selected {
  box-shadow: 0 6px 18px color-mix(in srgb, var(--chip-color, #3b82f6) 45%, transparent);
  transform: translateY(-1px);
}
.admin-cronograma-page [data-admin-credit-placed-preview],
.admin-cronograma-page [data-admin-credit-hover-preview] {
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 6px;
  padding: 0.2rem 0.35rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-cronograma-paint-banner {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.35rem 0 0.65rem;
  padding: 0.55rem 0.75rem;
  border-radius: calc(var(--radius) - 2px);
  background: color-mix(in srgb, var(--paint-type-color, #3b82f6) 10%, #fff);
  border: 1px solid color-mix(in srgb, var(--paint-type-color, #3b82f6) 35%, #d1d5db);
  font-size: 0.84rem;
}

.admin-cronograma-paint-banner__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

.admin-cronograma-page.is-slot-painting .admin-agenda-cell--blocked.admin-agenda-cell--paint-open {
  cursor: crosshair;
  background: #e5e7eb;
  background-image: none;
  border: 2px dashed #9ca3af;
  opacity: 1;
}

.admin-cronograma-page.is-slot-painting .admin-agenda-cell--blocked.admin-agenda-cell--paint-open:hover {
  background: #e5e7eb;
  border-color: #9ca3af;
  box-shadow: none;
  opacity: 1;
}

.admin-cronograma-page.is-slot-painting .admin-agenda-cell--paint-select {
  box-shadow: inset 0 0 0 2px var(--paint-type-color, #3b82f6);
  outline: 1px dashed var(--paint-type-color, #3b82f6);
  outline-offset: -3px;
}

.admin-cronograma-page.is-slot-painting .admin-agenda-cell--avail.admin-agenda-cell--paint-replace {
  cursor: crosshair;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--paint-type-color, #3b82f6) 45%, transparent);
}

.admin-cronograma-page.is-slot-painting .admin-agenda-cell--avail.admin-agenda-cell--paint-replace:hover,
.admin-cronograma-page.is-slot-painting .admin-agenda-cell--typed.admin-agenda-cell--paint-replace:hover {
  box-shadow: inset 0 0 0 2px var(--paint-type-color, #3b82f6);
}

.admin-cronograma-page.is-slot-painting .admin-agenda-cell--paint-remove {
  cursor: pointer;
  outline: 2px solid var(--paint-type-color, #3b82f6);
  outline-offset: -2px;
}

.theme-dark .admin-cronograma-paint-banner {
  background: color-mix(in srgb, var(--paint-type-color, #3b82f6) 16%, #1e293b);
  border-color: color-mix(in srgb, var(--paint-type-color, #3b82f6) 40%, #475569);
  color: #e2e8f0;
}

.theme-dark .admin-cronograma-page.is-slot-painting .admin-agenda-cell--blocked.admin-agenda-cell--paint-open {
  background: #374151;
  border-color: #6b7280;
}

.theme-dark .client-cronograma-page .admin-agenda-cell--avail {
  background: linear-gradient(180deg, rgba(59, 130, 246, 0.22) 0%, rgba(37, 99, 235, 0.14) 100%);
  border-color: rgba(96, 165, 250, 0.38);
}

.theme-dark .client-cronograma-page .admin-agenda-cell--avail:hover {
  background: linear-gradient(180deg, rgba(59, 130, 246, 0.32) 0%, rgba(37, 99, 235, 0.22) 100%);
  border-color: rgba(96, 165, 250, 0.55);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18);
}

.theme-dark .client-cronograma-page .admin-agenda-cell--blocked,
.theme-dark .client-cronograma-page .admin-agenda-cell--unavail,
.theme-dark .client-cronograma-page .admin-agenda-cell--type-blocked {
  background: repeating-linear-gradient(
    135deg,
    #334155 0px,
    #334155 2px,
    #1e293b 2px,
    #1e293b 7px
  );
  border-color: #4b5563;
  box-shadow: none;
  opacity: 1;
}

.theme-dark .client-cronograma-page .admin-agenda-cell--blocked:hover,
.theme-dark .client-cronograma-page .admin-agenda-cell--unavail:hover,
.theme-dark .client-cronograma-page .admin-agenda-cell--type-blocked:hover,
.theme-dark .client-cronograma-page .admin-agenda-cell--blocked:focus-visible,
.theme-dark .client-cronograma-page .admin-agenda-cell--unavail:focus-visible,
.theme-dark .client-cronograma-page .admin-agenda-cell--type-blocked:focus-visible {
  background: repeating-linear-gradient(
    135deg,
    #334155 0px,
    #334155 2px,
    #1e293b 2px,
    #1e293b 7px
  );
  border-color: #4b5563;
  box-shadow: none;
  opacity: 1;
  outline: none;
}

.theme-dark .admin-cronograma-page .admin-agenda-cell--avail {
  background: #1e293b;
  border-color: #475569;
}

.theme-dark .admin-cronograma-page .admin-agenda-cell--blocked:not(.admin-agenda-cell--paint-open),
.theme-dark .admin-cronograma-page .admin-agenda-cell--unavail,
.theme-dark .admin-cronograma-page .admin-agenda-cell--type-blocked,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--blocked,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--unavail,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--type-blocked {
  background: repeating-linear-gradient(
    135deg,
    #334155 0px,
    #334155 2px,
    #1e293b 2px,
    #1e293b 7px
  );
  border-color: #4b5563;
  box-shadow: none;
  opacity: 1;
}

.theme-dark .admin-cronograma-page .admin-agenda-cell--blocked:not(.admin-agenda-cell--paint-open):hover,
.theme-dark .admin-cronograma-page .admin-agenda-cell--unavail:hover,
.theme-dark .admin-cronograma-page .admin-agenda-cell--type-blocked:hover,
.theme-dark .admin-cronograma-page .admin-agenda-cell--blocked:not(.admin-agenda-cell--paint-open):focus-visible,
.theme-dark .admin-cronograma-page .admin-agenda-cell--unavail:focus-visible,
.theme-dark .admin-cronograma-page .admin-agenda-cell--type-blocked:focus-visible,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--blocked:hover,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--unavail:hover,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--type-blocked:hover,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--blocked:focus-visible,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--unavail:focus-visible,
.theme-dark .admin-page[data-admin-view="agenda"] .admin-agenda-cell--type-blocked:focus-visible {
  background: repeating-linear-gradient(
    135deg,
    #334155 0px,
    #334155 2px,
    #1e293b 2px,
    #1e293b 7px
  );
  border-color: #4b5563;
  box-shadow: none;
  opacity: 1;
  outline: none;
}

.admin-agenda-foot {
  margin-top: 0.75rem !important;
}

.admin-agenda-month-shell {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 0.55rem;
  margin-top: 0.75rem;
}

.admin-agenda-month-head {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  margin-bottom: 4px;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-muted);
}

.admin-agenda-month-grid {
  display: grid;
  gap: 6px;
}

.admin-agenda-month-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.admin-agenda-month-out {
  min-height: 3.2rem;
  border: none;
  border-radius: 12px;
  background: transparent;
  visibility: hidden;
}

.admin-agenda-month-day {
  min-height: 3.35rem;
  border-radius: 12px;
  border: 1px solid transparent;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: transform 0.14s ease, border-color 0.14s ease;
}

.admin-agenda-month-day strong {
  font-size: 1.05rem;
  font-weight: 700;
}

.admin-agenda-month-day:focus-visible {
  outline: 2px solid var(--brand);
}

.admin-agenda-month-day:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--brand-rgb), 0.22);
}

.admin-modal.admin-modal--agenda-wide .admin-modal__panel {
  max-width: min(620px, 96vw);
}
.admin-modal.admin-modal--wide .admin-modal__panel {
  max-width: min(560px, 96vw);
}
.admin-comments-thread {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.6rem;
  background: rgba(148, 163, 184, 0.08);
}
.admin-comment-bubble {
  margin: 0.45rem 0;
  padding: 0.5rem 0.65rem;
  border-radius: 10px;
  font-size: 0.92rem;
  line-height: 1.4;
}
.admin-comment-bubble--admin {
  margin-left: 1.75rem;
  background: rgba(var(--brand-rgb), 0.12);
}
.admin-comment-bubble--user {
  margin-right: 1.75rem;
  background: rgba(100, 116, 139, 0.15);
}
.admin-post-preview-click {
  cursor: pointer;
  border: none;
  background: rgba(100, 116, 139, 0.12);
  border-radius: 8px;
  padding: 0.25rem;
  max-width: 100%;
}
.admin-post-preview-click:hover {
  opacity: 0.92;
}

.admin-agenda-products-fieldset {
  margin: 0;
  padding: 0;
  border: none;
}

.admin-agenda-products-fieldset legend {
  font-weight: 700;
  margin-bottom: 0.35rem;
}

.admin-agenda-products-hint {
  margin-bottom: 0.5rem !important;
}

.admin-agenda-products-checkboxes {
  display: grid;
  gap: 0.35rem;
  max-height: 240px;
  overflow: auto;
  padding: 0.35rem 0;
}

.admin-agenda-product-line--all {
  font-weight: 600;
  margin-bottom: 0.35rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--border);
}

.admin-agenda-product-line {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  font-weight: 500;
  cursor: pointer;
}

.admin-agenda-product-line span {
  flex: 1;
  min-width: 0;
  line-height: 1.35;
}

.theme-dark .admin-agenda-month-shell {
  background: rgba(15, 23, 42, 0.65);
  border-color: rgba(148, 163, 184, 0.22);
}

/** Grade semana/dia: cabeçalhos e horas mais luminosos; células com separação mais clara das estados (evita fusão com o fundo do admin). */
.theme-dark .admin-agenda-day-hdr {
  background: rgba(51, 65, 85, 0.45);
  border: 1px solid rgba(148, 163, 184, 0.28);
  color: #cbd5e1;
}

.theme-dark .admin-agenda-day-hdr span {
  color: #f8fafc;
}

.theme-dark .admin-agenda-day-hdr em {
  color: #e2e8f0;
  font-weight: 600;
}

.theme-dark .admin-agenda-time-lbl {
  color: #cbd5e1;
  font-weight: 600;
}

.theme-dark .admin-agenda-month-head {
  color: #cbd5e1;
}

.theme-dark .admin-agenda-month-day {
  color: #f8fafc;
}

.theme-dark .admin-agenda-month-day strong {
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.theme-dark .admin-agenda-cell--avail {
  background: linear-gradient(180deg, rgba(34, 197, 94, 0.24) 0%, rgba(22, 163, 74, 0.14) 100%);
  border: 1px solid rgba(74, 222, 128, 0.38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.theme-dark .admin-agenda-cell--avail:hover {
  background: linear-gradient(180deg, rgba(34, 197, 94, 0.34) 0%, rgba(22, 163, 74, 0.22) 100%);
  border-color: rgba(74, 222, 128, 0.55);
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.18);
}

.theme-dark .admin-agenda-cell--blocked,
.theme-dark .admin-agenda-cell--unavail,
.theme-dark .admin-agenda-cell--type-blocked {
  background: repeating-linear-gradient(
    135deg,
    #334155 0px,
    #334155 2px,
    #1e293b 2px,
    #1e293b 7px
  );
  border: 1px solid rgba(71, 85, 105, 0.55);
}

.theme-dark .admin-agenda-cell--book {
  background: linear-gradient(180deg, rgba(147, 197, 253, 0.5) 0%, rgba(59, 130, 246, 0.42) 100%);
  border: 1px solid rgba(147, 197, 253, 0.45);
}

.theme-dark .admin-agenda-cell--cancel {
  background: linear-gradient(180deg, rgba(253, 186, 116, 0.55) 0%, rgba(234, 88, 12, 0.4) 100%);
  border: 1px solid rgba(251, 146, 60, 0.4);
}

.theme-dark .admin-agenda-cell--urgent {
  background: linear-gradient(180deg, rgba(252, 165, 165, 0.55) 0%, rgba(220, 38, 38, 0.48) 100%);
  border: 1px solid rgba(254, 202, 202, 0.45);
}

.theme-dark .admin-agenda-legend {
  color: #cbd5e1;
}

.theme-dark .admin-agenda-toolbar__period {
  color: #f1f5f9;
}

.theme-dark .admin-agenda-legend-swatch {
  border-color: rgba(148, 163, 184, 0.35);
}

.theme-dark .admin-agenda-legend-swatch--avail {
  background: linear-gradient(180deg, rgba(34, 197, 94, 0.35) 0%, rgba(22, 163, 74, 0.22) 100%);
  border-color: rgba(74, 222, 128, 0.35);
}

.theme-dark .admin-agenda-legend-swatch--unavail,
.theme-dark .admin-agenda-legend-swatch--blocked {
  background: repeating-linear-gradient(
    135deg,
    #334155 0px,
    #334155 2px,
    #1e293b 2px,
    #1e293b 7px
  );
}

.theme-dark .admin-agenda-legend-swatch--booked {
  background: rgba(59, 130, 246, 0.55);
}

.theme-dark .admin-agenda-legend-swatch--cancel {
  background: rgba(234, 88, 12, 0.5);
}

.theme-dark .admin-agenda-legend-swatch--urgent {
  background: rgba(239, 68, 68, 0.55);
}

.theme-dark .admin-agenda-day-hdr--today {
  box-shadow: inset 0 -3px 0 0 #4ade80;
}

.theme-dark .admin-agenda-month-day.admin-agenda-is-today {
  border-color: #4ade80;
  box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.55);
}

.theme-dark .admin-agenda-month-day.admin-agenda-is-today:hover {
  border-color: #4ade80;
  box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.55);
}

.theme-dark .admin-agenda-toolbar .admin-agenda-today-btn {
  background: #ffffff;
  color: #0f172a;
  border-color: #4ade80;
}

.theme-dark .admin-agenda-toolbar .admin-agenda-today-btn:hover {
  background: rgba(74, 222, 128, 0.2);
  border-color: #4ade80;
  color: #0f172a;
  box-shadow: 0 4px 16px rgba(74, 222, 128, 0.25);
}

.theme-dark .admin-agenda-toolbar .admin-agenda-today-btn:focus-visible {
  outline-color: #4ade80;
}

/* Lista + modal de usuários (painel admin) */
/* ── Tela de edição de produto/serviço (/admin/produtos-servicos/{id}) ── */
.admin-product-edit__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}

.admin-product-edit__header .admin-screen-title {
  flex: 1 1 12rem;
  margin: 0;
}

.admin-product-edit__header-actions {
  display: flex;
  gap: 0.75rem;
}

.admin-product-edit__body {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.admin-product-edit__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  padding-top: 0.5rem;
}

/* Itens / bullets */
.product-items-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.product-item-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.product-item-input {
  flex: 1;
}

/* Galeria de mídia */
.product-media-cover-wrap {
  margin-bottom: 0.5rem;
}

.product-media-cover-label {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-muted);
}

.product-media-upload-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  position: relative;
}

.product-media-upload-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

.product-media-upload-status {
  font-size: 0.88rem;
  color: var(--text-muted);
}

.product-media-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.85rem;
}

.product-media-empty {
  grid-column: 1 / -1;
  color: var(--text-muted);
  font-size: 0.9rem;
  margin: 0;
  padding: 0.75rem 0;
}

.product-media-item {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  transition: border-color 0.2s;
}

.product-media-item--cover {
  border-color: var(--brand);
  border-width: 2px;
  box-shadow: 0 0 0 3px rgba(0, 38, 255, 0.14);
}

.product-media-item__thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--navy-soft, #f0f2f5);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.product-media-item__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-media-item__video-icon {
  font-size: 2rem;
  color: var(--text-muted);
}

.product-media-item__badge {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  background: var(--brand, #0026ff);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.15rem 0.5rem;
  border-radius: 20px;
  pointer-events: none;
  box-shadow: 0 1px 4px rgba(0,0,0,0.18);
}

.product-media-item__type {
  font-size: 0.78rem;
  color: var(--text-muted);
  padding: 0.35rem 0.6rem 0;
}

.product-media-item__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.45rem 0.6rem 0.6rem;
  margin-top: auto;
}

.product-media-item__actions .btn {
  font-size: 0.78rem;
  padding: 0.2rem 0.55rem;
}

.admin-users-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 1rem;
}
.admin-users-header .admin-screen-title {
  margin: 0;
  flex: 1 1 14rem;
}
.admin-catalog-page__title-row {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex: 1 1 14rem;
  min-width: 0;
}
.admin-catalog-page__title-row .admin-screen-title {
  flex: 0 1 auto;
}
.admin-coverage-page__title-wrap {
  display: grid;
  gap: 0.35rem;
  flex: 1 1 14rem;
  min-width: 0;
}
.admin-coverage-page__title-wrap .admin-screen-title {
  flex: none;
}
.admin-users-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
/* Filtros: mesmo padrão visual de .form-grid (labels + campos) dos outros formulários admin */
.admin-users-filter.panel-card {
  margin-bottom: 1rem;
}
.form-grid.admin-users-filter-grid {
  grid-template-columns: minmax(0, 2fr) minmax(11rem, 1fr) auto;
  align-items: end;
  gap: 1rem;
}
.admin-users-filter__actions {
  display: flex;
  align-items: flex-end;
}
@media (max-width: 720px) {
  .form-grid.admin-users-filter-grid {
    grid-template-columns: 1fr;
  }
  .admin-users-filter__actions {
    justify-content: stretch;
  }
  .admin-users-filter__actions .btn {
    width: 100%;
  }
}
.catalog-modal-fieldset {
  margin: 0;
  padding: 0;
  border: none;
}
.catalog-modal-fieldset legend {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--heading);
  margin: 0 0 0.5rem;
  padding: 0;
}

.admin-block-title {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--heading);
  margin: 0.35rem 0 0.45rem;
}

.catalog-img-upload small {
  display: block;
  margin: 0.25rem 0 0.35rem;
  line-height: 1.35;
}
.catalog-img-upload input[type="file"] {
  margin: 0.35rem 0;
  max-width: 100%;
}
.catalog-img-preview-wrap {
  margin-top: 0.5rem;
}
.catalog-img-preview {
  display: block;
  max-width: 140px;
  max-height: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: calc(var(--radius) - 4px);
  border: 1px solid var(--border);
  background: var(--surface-elevated, rgba(127, 127, 127, 0.08));
}
.catalog-img-preview[hidden] {
  display: none !important;
}

/* Catálogo admin: várias linhas «área activa → preço» quando «preço por região» está ligado */
.catalog-inline-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 600;
  color: var(--heading);
}

.admin-pricing-fields {
  margin-bottom: 0.25rem;
}

.catalog-regional-block {
  margin-top: 0.75rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius, 12px) - 2px);
  background: var(--surface-elevated, rgba(127, 127, 127, 0.04));
}

.catalog-regional-block__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.65rem;
}

.catalog-regional-block__title-row {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.catalog-regional-block__head .admin-block-title {
  margin: 0;
}

.catalog-regional-block__title-row .admin-icon-btn {
  width: 1.85rem;
  height: 1.85rem;
  min-width: 1.85rem;
  padding: 0;
  flex: 0 0 auto;
}

.catalog-regional-block__title-row .admin-icon-svg {
  width: 16px;
  height: 16px;
}

.catalog-regional-block__hint {
  margin: 0;
  font-size: 0.85rem;
}

.catalog-regional-rows {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0;
}

.catalog-regiao-head,
.catalog-regiao-row {
  display: grid;
  grid-template-columns: minmax(10rem, 1.4fr) minmax(6.5rem, 0.7fr) minmax(6.5rem, 0.7fr) auto;
  gap: 0.55rem 0.65rem;
  align-items: end;
}

.catalog-regiao-head {
  padding: 0 0.15rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-muted, #64748b);
}

.catalog-regiao-row {
  padding: 0.65rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius, 12px) - 4px);
  background: var(--white, #fff);
}

.catalog-regiao-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  margin: 0;
}

.catalog-regiao-field__label {
  display: none;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-muted, #64748b);
}

.catalog-regiao-field .catalog-regiao-area,
.catalog-regiao-field .catalog-regiao-preco,
.catalog-regiao-field .catalog-regiao-preco-desconto {
  width: 100%;
  min-width: 0;
}

.catalog-regiao-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  justify-content: flex-end;
  padding-bottom: 0.1rem;
}

.catalog-regiao-row .admin-horario-btn,
.catalog-regiao-row .admin-icon-btn {
  flex: 0 0 auto;
}

@media (max-width: 720px) {
  .catalog-regiao-head {
    display: none;
  }

  .catalog-regiao-row {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  .catalog-regiao-field--area {
    grid-column: 1 / -1;
  }

  .catalog-regiao-field__label {
    display: block;
  }

  .catalog-regiao-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-bottom: 0;
  }
}

/* Catálogo: coluna apenas setas (↑↓), sem número visível (`sort_order` persiste pela API ao mover) */

.admin-catalog-order {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.admin-catalog-sort {
  display: inline-flex;
  flex-direction: column;
  gap: 1px;
  vertical-align: middle;
}
.admin-catalog-sort .admin-icon-btn {
  padding: 0.12rem 0.22rem;
  line-height: 0;
}
.admin-catalog-sort .admin-icon-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* ── Drag-and-drop de ordenação ── */
.admin-drag-handle {
  cursor: grab;
  color: var(--text-muted);
  touch-action: none;
}
.admin-drag-handle:active {
  cursor: grabbing;
}

tr.drag-row--dragging {
  opacity: 0.4;
}

tr.drag-row--over td {
  background: rgba(var(--brand-rgb), 0.07);
  box-shadow: inset 0 0 0 2px rgba(var(--brand-rgb), 0.35);
}

/* Linha de tabela admin: editar/excluir só ícones */
.admin-actions-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.admin-table-actions {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}

.admin-table-row-link {
  cursor: pointer;
  transition: background 0.12s;
}
.admin-table-row-link:hover td {
  background: var(--row-hover, rgba(0, 0, 0, 0.03));
}
.theme-dark .admin-table-row-link:hover td {
  background: rgba(255, 255, 255, 0.04);
}

/* Admin fatura detalhe — meta (pedido/NF), feedback e links de NF abaixo da fatura */
.admin-fatura-meta {
  max-width: 210mm;
  margin: 0.5rem auto 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1.25rem;
  font-size: 0.9rem;
}
.admin-fatura-meta[hidden] {
  display: none !important;
}
.admin-fatura-feedback {
  display: block;
  max-width: 210mm;
  margin: 0.5rem auto 0;
  text-align: center;
}
.admin-fatura-nf-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  max-width: 210mm;
  margin: 0.75rem auto 0;
}
.admin-fatura-order-ref {
  max-width: 210mm;
  margin: 0.75rem auto 0;
  font-size: 0.9rem;
}
@media print {
  .admin-fatura-page .admin-page__intro-wrap,
  .admin-fatura-actions,
  .admin-fatura-feedback {
    display: none !important;
  }
}

/* Modal «Conteúdo do pacote»: picker + botão antes da tabela de produtos ligados */
.admin-pkg-cont-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem;
  margin: 0.35rem 0 1rem;
}
.admin-pkg-cont-toolbar .pkg-cont-picker {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: min(22rem, 100%);
}
.admin-pkg-cont-toolbar select {
  min-height: 2.35rem;
}
.admin-modal .admin-pkg-cont-empty-msg:not([hidden]) {
  margin: 0 0 0.65rem;
}
.admin-modal .admin-pkg-cont-table td:first-child {
  width: auto;
}

.admin-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--field-radius, 10px);
  background: var(--white, #fff);
  color: var(--heading);
  cursor: pointer;
  text-decoration: none;
  font: inherit;
  line-height: 1;
}
a.admin-icon-btn {
  text-decoration: none;
  color: var(--heading);
}
.admin-icon-btn:hover {
  border-color: var(--brand);
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.07);
}
.admin-icon-btn--danger {
  color: #b91c1c;
}
.admin-icon-btn--danger:hover {
  border-color: #dc2626;
  color: #991b1b;
  background: #fee2e2;
}
.admin-icon-svg {
  display: block;
  flex-shrink: 0;
  pointer-events: none;
}

.admin-users-panel h2 {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  color: var(--heading);
}
.admin-table-clip {
  max-width: 14rem;
}
.admin-table-clip__text {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-users-panel.table-wrap {
  overflow-x: auto;
  max-width: 100%;
}
.admin-users-panel .admin-users-contact-cell {
  max-width: min(12rem, 28vw);
}
.admin-users-panel .front-table {
  table-layout: fixed;
  width: 100%;
  min-width: 640px;
}
.admin-users-panel .front-table th,
.admin-users-panel .front-table td {
  padding: 0.45rem 0.5rem;
  vertical-align: middle;
}
.admin-users-panel .front-table th:first-child,
.admin-users-panel .front-table td:first-child {
  width: 2.5rem;
  padding-left: 0.35rem;
  padding-right: 0.15rem;
}
.admin-users-panel .front-table th:nth-child(2),
.admin-users-panel .front-table td:nth-child(2) {
  width: auto;
  min-width: 0;
}
.admin-users-panel .front-table th:nth-child(3),
.admin-users-panel .front-table td:nth-child(3) {
  width: 14%;
  max-width: 11rem;
}
.admin-users-panel .front-table th:nth-child(4),
.admin-users-panel .front-table td:nth-child(4) {
  width: 4rem;
}
/* Situação: cabe “Não confirmado” sem invadir Ações */
.admin-users-panel .front-table th:nth-child(5),
.admin-users-panel .front-table td:nth-child(5) {
  width: 8.75rem;
  white-space: nowrap;
  overflow: hidden;
}
.admin-users-panel .front-table td:nth-child(5) .status-pill {
  max-width: 100%;
  box-sizing: border-box;
}
/* 4 ícones compactos cabem na célula, sem ultrapassar a margem */
.admin-users-panel .front-table th:nth-child(6),
.admin-users-panel .front-table td:nth-child(6),
.admin-users-panel .front-table .admin-table-actions {
  width: 9.5rem;
  padding-left: 0.25rem;
  padding-right: 0.35rem;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
}
.admin-users-panel .admin-actions-inline {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.2rem;
  flex-wrap: nowrap;
  max-width: 100%;
}
.admin-users-panel .admin-actions-inline .admin-icon-btn {
  width: 2.05rem;
  height: 2.05rem;
  flex: 0 0 2.05rem;
}
.admin-user-thumb {
  width: 2.25rem;
  vertical-align: middle;
  padding: 0;
}
.admin-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--brand-soft, #eef2ff);
  color: var(--brand, #2563eb);
  font-size: 0.7rem;
  font-weight: 700;
  overflow: hidden;
}
.admin-user-avatar--img {
  padding: 0;
  border: none;
  background: transparent;
}
.admin-user-avatar--img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.admin-modal {
  border: none;
  padding: 0;
  max-width: min(96vw, 52rem);
  width: 100%;
  background: transparent;
}
.admin-modal::backdrop {
  background: rgba(15, 23, 42, 0.45);
}
.admin-share-link-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.admin-share-link-input {
  flex: 1;
  min-width: 0;
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--white);
  color: var(--heading);
  font-size: 0.9rem;
  font-family: monospace;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-share-subtitle {
  margin: 0;
  font-size: 0.88rem;
}

.admin-share-section-label {
  margin: 0.75rem 0 0.25rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted, #888);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-share-section-label:first-of-type {
  margin-top: 0;
}

.admin-share-optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.8rem;
}

.admin-share-coupon-select {
  width: 100%;
}

/* ── Campo de cupom no carrinho do cliente ── */
.client-carrinho-coupon-wrap {
  margin-bottom: 1rem;
  border-top: 1px solid var(--border, #e5e7eb);
  padding-top: 0.85rem;
}
.client-carrinho-coupon-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.client-carrinho-coupon-row .form-control {
  flex: 1;
  min-width: 0;
  text-transform: uppercase;
}
.client-carrinho-coupon-msg {
  margin-top: 0.35rem;
  font-size: 0.88rem;
}
.client-carrinho-coupon-msg--ok {
  color: var(--color-ok, #16a34a);
}
.client-carrinho-coupon-input--ok {
  border-color: var(--color-ok, #16a34a) !important;
  background: rgba(22, 163, 74, 0.04);
  color: var(--color-ok, #16a34a);
}
.client-compras-cart-item__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .25rem;
}
.client-carrinho-item-preco-oferta {
  color: var(--brand, #2563eb);
  font-weight: 600;
}
.client-compras-msg--error {
  color: var(--color-danger, #dc2626);
}
.client-carrinho-coupon-badge {
  display: inline-block;
  background: rgba(22, 163, 74, 0.12);
  color: var(--color-ok, #16a34a);
  border-radius: 4px;
  padding: 0 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
}

/* ── Tela de cupons (lista) ── */
.admin-cupons-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.admin-cupons-list-header h2 {
  margin: 0;
}

/* ── Tela de edição de cupom ── */
.admin-cupom-edit-card {
  max-width: 640px;
}
.admin-page__title {
  margin: 0.25rem 0 0;
  font-size: 1.4rem;
}
.admin-cupons-code-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.admin-cupons-code-input {
  flex: 1;
  min-width: 0;
  text-transform: uppercase;
}
.admin-cupons-type-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin-top: 0.3rem;
}
.admin-cupons-type-option {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  font-size: 0.95rem;
}
.admin-cupons-limits-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1rem;
}
.admin-cupons-check-row {
  margin-top: 0.1rem;
}
.admin-cupons-check-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.95rem;
}
.admin-cupons-items-wrap {
  background: var(--bg-surface, var(--bg));
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  padding: 0.75rem;
  margin-bottom: 0.5rem;
}
.admin-cupons-items-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1rem;
}
.admin-cupons-items-list {
  max-height: 180px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin-top: 0.35rem;
}
.admin-cupons-item-check {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  font-size: 0.9rem;
}
.admin-cupons-form-actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
}

.admin-modal__panel {
  background: var(--white, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius, 16px);
  padding: clamp(1rem, 3vw, 1.35rem);
  box-shadow: var(--shadow, 0 12px 40px rgba(15, 23, 42, 0.12));
  max-height: min(90vh, 720px);
  overflow: auto;
}
.admin-modal__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.admin-modal__top h2 {
  margin: 0;
  font-size: 1.15rem;
  color: var(--heading);
}
.admin-modal__close {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--border);
  border-radius: var(--field-radius, 10px);
  background: var(--white, #fff);
  color: var(--text-muted);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.admin-modal__close:hover {
  color: var(--heading);
  border-color: var(--text-muted);
}
.admin-modal__cols {
  margin-top: 0.35rem;
}
.admin-modal__cols--triple {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 720px) {
  .admin-modal__cols--triple {
    grid-template-columns: 1fr;
  }
}
.admin-modal__passwd {
  margin-top: 0.75rem;
  padding-top: 0.35rem;
  border-top: 1px solid var(--border);
}
.admin-modal__passwd summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--heading);
}

/* Pré-visualização somente leitura (URL/upload de foto virá depois no painel) */
.admin-modal__photo-block {
  display: grid;
  gap: 0.35rem;
}
.admin-modal__photo-block > span {
  font-weight: 600;
  color: var(--heading);
}
.admin-modal__photo-frame {
  display: grid;
  place-items: center;
  min-height: 7rem;
  padding: 0.75rem;
  border-radius: var(--field-radius, 10px);
  border: 1px solid var(--field-border, #8b96a8);
  background: rgba(var(--brand-rgb), 0.04);
}
.admin-modal__photo-placeholder {
  margin: 0;
  text-align: center;
}
.admin-modal__photo-img:not([hidden]) {
  border-radius: 999px;
  object-fit: cover;
  aspect-ratio: 1;
  border: 1px solid var(--border);
  background: var(--white);
}

/* Linha de countdown OTP: "Expira em MM:SS" + botão Reenviar */
.client-otp-timer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.85rem;
  padding: 0.4rem 0;
}

.client-otp-timer-row strong {
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.admin-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border);
}
.admin-modal__actions--split {
  justify-content: space-between;
  align-items: center;
}
.admin-modal__actions-primary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.field-stack .admin-modal__actions ~ [data-admin-message] {
  display: flex;
  margin-top: 0.75rem;
}

.form-feedback,
[data-admin-message]:not([hidden]),
[data-user-profile-message]:not([hidden]),
[data-auth-message]:not(:empty),
[data-signup-message]:not(:empty),
[data-profile-crop-message]:not([hidden]),
[data-profile-otp-message]:not([hidden]),
[data-security-password-message]:not([hidden]),
[data-security-otp-message]:not([hidden]),
[data-security-devices-message]:not([hidden]),
[data-install-message]:not([hidden]),
.install-shell__msg:not([hidden]) {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin-top: 0.65rem;
  font-size: 0.9rem;
  line-height: 1.45;
}

.form-feedback.is-error,
[data-admin-message].is-error,
[data-user-profile-message].is-error,
[data-auth-message].is-error,
[data-signup-message].is-error,
[data-profile-crop-message].is-error,
[data-profile-otp-message].is-error,
[data-security-password-message].is-error,
[data-security-otp-message].is-error,
[data-security-devices-message].is-error,
[data-install-message].is-error,
.install-shell__msg.is-error {
  color: #b91c1c;
}

.form-feedback.is-success,
[data-admin-message].is-success,
[data-user-profile-message].is-success,
[data-auth-message].is-success,
[data-signup-message].is-success,
[data-profile-crop-message].is-success,
[data-profile-otp-message].is-success,
[data-security-password-message].is-success,
[data-security-otp-message].is-success,
[data-security-devices-message].is-success,
[data-install-message].is-success,
.install-shell__msg.is-success {
  color: #15803d;
}

.form-feedback.is-info,
[data-admin-message].is-info,
[data-user-profile-message].is-info,
[data-install-message].is-info,
.install-shell__msg.is-info {
  color: var(--muted, #64748b);
}

.form-feedback.is-error::before,
[data-admin-message].is-error::before,
[data-user-profile-message].is-error::before,
[data-auth-message].is-error::before,
[data-signup-message].is-error::before,
[data-profile-crop-message].is-error::before,
[data-profile-otp-message].is-error::before,
[data-security-password-message].is-error::before,
[data-security-otp-message].is-error::before,
[data-security-devices-message].is-error::before,
[data-install-message].is-error::before,
.install-shell__msg.is-error::before {
  content: "✕";
  flex-shrink: 0;
  font-weight: 700;
  line-height: 1.2;
}

.form-feedback.is-success::before,
[data-admin-message].is-success::before,
[data-user-profile-message].is-success::before,
[data-auth-message].is-success::before,
[data-signup-message].is-success::before,
[data-profile-crop-message].is-success::before,
[data-profile-otp-message].is-success::before,
[data-security-password-message].is-success::before,
[data-security-otp-message].is-success::before,
[data-security-devices-message].is-success::before,
[data-install-message].is-success::before,
.install-shell__msg.is-success::before {
  content: "✓";
  flex-shrink: 0;
  font-weight: 700;
  line-height: 1.2;
}

/* Confirm/alert/prompt: caixa compacta centrada no ecrã (não herdar width:100% do admin-modal) */
.form-alert-modal,
.form-confirm-modal,
.form-prompt-modal {
  width: fit-content;
  max-width: min(96vw, 440px);
  margin: auto;
}

/*
 * Painel sempre legível: na home as variáveis --heading/--text ficam claras
 * (fundo escuro), mas o dialog é branco — forçamos contraste local.
 */
.form-alert-modal .admin-modal__panel,
.form-confirm-modal .admin-modal__panel,
.form-prompt-modal .admin-modal__panel {
  --heading: #1a1a1a;
  --text: #3d3d3d;
  --text-muted: #5c5c5c;
  --border: #e8eaf0;
  --white: #ffffff;
  background: #ffffff;
  color: #3d3d3d;
  border-color: #e8eaf0;
}

.form-alert-modal .admin-modal__top h2,
.form-confirm-modal .admin-modal__top h2,
.form-prompt-modal .admin-modal__top h2 {
  color: #1a1a1a;
}

.form-alert-modal .admin-modal__close,
.form-confirm-modal .admin-modal__close,
.form-prompt-modal .admin-modal__close {
  background: #ffffff;
  color: #1a1a1a;
  border-color: #e8eaf0;
}

.form-alert-modal .btn.btn--ghost,
.form-confirm-modal .btn.btn--ghost,
.form-prompt-modal .btn.btn--ghost {
  color: #1a1d24;
  border-color: rgba(var(--brand-rgb), 0.42);
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.12);
}

.form-alert-modal .btn.btn--ghost:hover,
.form-confirm-modal .btn.btn--ghost:hover,
.form-prompt-modal .btn.btn--ghost:hover {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
  border-color: rgba(var(--brand-rgb), 0.5);
}

.form-alert-modal__body {
  margin: 0;
  color: #3d3d3d;
  white-space: pre-wrap;
}

.form-alert-modal .admin-modal__panel {
  max-width: min(420px, 96vw);
  width: min(420px, 96vw);
}

.form-confirm-modal__body,
.form-prompt-modal__body {
  margin: 0;
  line-height: 1.45;
  color: #3d3d3d;
  white-space: pre-wrap;
}

.form-confirm-modal .admin-modal__panel,
.form-prompt-modal .admin-modal__panel {
  max-width: min(440px, 96vw);
  width: min(440px, 96vw);
}

.form-confirm-modal .admin-modal__actions,
.form-prompt-modal .admin-modal__actions {
  justify-content: flex-end;
}

body.theme-dark .form-alert-modal .admin-modal__panel,
body.theme-dark .form-confirm-modal .admin-modal__panel,
body.theme-dark .form-prompt-modal .admin-modal__panel {
  --heading: #f8fafc;
  --text: #dbe4f0;
  --text-muted: #9fb0c6;
  --border: #334155;
  --white: #0f172a;
  background: #0f172a;
  color: #dbe4f0;
  border-color: #334155;
}

body.theme-dark .form-alert-modal .admin-modal__top h2,
body.theme-dark .form-confirm-modal .admin-modal__top h2,
body.theme-dark .form-prompt-modal .admin-modal__top h2,
body.theme-dark .form-alert-modal__body,
body.theme-dark .form-confirm-modal__body,
body.theme-dark .form-prompt-modal__body {
  color: #f8fafc;
}

body.theme-dark .form-alert-modal .admin-modal__close,
body.theme-dark .form-confirm-modal .admin-modal__close,
body.theme-dark .form-prompt-modal .admin-modal__close {
  background: #111827;
  color: #f8fafc;
  border-color: #334155;
}

body.theme-dark .form-alert-modal .btn.btn--ghost,
body.theme-dark .form-confirm-modal .btn.btn--ghost,
body.theme-dark .form-prompt-modal .btn.btn--ghost {
  color: #f4f4f5;
  border-color: rgba(var(--brand-rgb), 0.55);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: none;
}

.form-prompt-modal__field {
  display: block;
  margin: 0;
}

.form-prompt-modal__field input {
  width: 100%;
}

.admin-hub__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.85rem, 3vw, 1.1rem);
  padding: 0.25rem 0 1rem;
}

@media (min-width: 420px) {
  .admin-hub__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 720px) {
  .admin-hub__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: 720px;
    margin-inline: auto;
  }
}

.admin-hub__tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 7.5rem;
  padding: 1rem 0.65rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--heading);
  font-weight: 600;
  font-size: 0.9rem;
  text-align: center;
  line-height: 1.25;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.admin-hub__tile:hover {
  border-color: rgba(var(--brand-rgb), 0.35);
  box-shadow: 0 10px 32px rgba(var(--brand-rgb), 0.1);
  transform: translateY(-2px);
}

.admin-hub__tile--muted {
  color: var(--text-muted);
}

.admin-hub__tile--muted:hover {
  border-color: var(--border);
  box-shadow: var(--shadow);
}

.admin-hub__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(var(--brand-rgb), 0.1);
  display: grid;
  place-items: center;
  color: var(--brand);
}

.admin-hub__icon svg {
  display: block;
}

.admin-hub__icon--muted {
  background: var(--navy);
  color: var(--text-muted);
}

.admin-hub__label {
  display: block;
  padding: 0 0.25rem;
}

.admin-hub__list {
  display: none;
  max-width: 820px;
  margin-inline: auto;
  padding: 0.25rem 0 1rem;
}

.admin-hub__row {
  display: grid;
  grid-template-columns: 52px 1fr;
  align-items: center;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--heading);
  margin-bottom: 0.75rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.admin-hub__row:hover {
  border-color: rgba(var(--brand-rgb), 0.35);
  box-shadow: 0 10px 32px rgba(var(--brand-rgb), 0.08);
  transform: translateY(-1px);
}

.admin-hub__row-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(var(--brand-rgb), 0.1);
  display: grid;
  place-items: center;
  color: var(--brand);
}

.admin-hub__row-icon svg {
  width: 26px;
  height: 26px;
}

.admin-hub__row-main strong {
  display: block;
  font-size: 1.05rem;
  line-height: 1.2;
}

.admin-hub__row-main span {
  display: block;
  margin-top: 0.25rem;
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.35;
  max-width: 70ch;
}

@media (min-width: 768px) {
  .admin-hub__grid {
    display: none;
  }
  .admin-hub__list {
    display: block;
  }
}

.admin-accordion {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 0.65rem;
  background: var(--white);
  overflow: hidden;
}

.admin-accordion__summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 1rem;
  padding: 1rem 1.15rem;
  list-style: none;
  color: var(--heading);
}

.admin-accordion__summary::-webkit-details-marker {
  display: none;
}

.admin-accordion__summary::after {
  content: "";
  float: right;
  width: 0.5rem;
  height: 0.5rem;
  margin-top: 0.35rem;
  border-right: 2px solid var(--text-muted);
  border-bottom: 2px solid var(--text-muted);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}

.admin-accordion[open] .admin-accordion__summary::after {
  transform: rotate(-135deg);
  margin-top: 0.55rem;
}

.admin-accordion__body {
  padding: 0 1.15rem 1.15rem;
  border-top: 1px solid var(--border);
}

.admin-accordion-form .admin-accordion:first-of-type .admin-accordion__body {
  border-top: 0;
}

.invoice-table--clickable .admin-row-link {
  cursor: pointer;
  transition: background 0.15s ease;
}

.invoice-table--clickable .admin-row-link:hover,
.invoice-table--clickable .admin-row-link:focus {
  background: var(--brand-soft);
  outline: none;
}

/* Checkbox / radio como primeiro filho do label (listas, cadastro, agenda) */
label:has(> input[type="checkbox"]),
label:has(> input[type="radio"]) {
  align-items: center;
  gap: 0.65rem;
  min-height: var(--touch-target);
}

/* ——— Home: fundo preto com luzes azuis (sem verde) ——— */
body.page-home {
  background-color: #050508;
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -20%, rgba(var(--brand-rgb), 0.42), transparent 55%),
    radial-gradient(900px 480px at 100% 15%, rgba(36, 17, 220, 0.22), transparent 60%),
    radial-gradient(700px 420px at 0% 70%, rgba(20, 40, 120, 0.18), transparent 55%),
    linear-gradient(180deg, #0a0a12 0%, #050508 45%, #07070c 78%, #0a0a14 100%);
  color: #e4e4e7;
  --heading: #fafafa;
  --text: #e4e4e7;
  --text-muted: #a1a1aa;
  --border: #27272a;
  --navy-deep: #050508;
  --navy: #0c0c14;
  --navy-mid: #14141e;
  --shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
}

html:has(body.page-home:not(.page-home--nav-top)) {
  scroll-padding-bottom: 6.5rem;
  scroll-padding-top: 0;
}

html:has(body.page-home--nav-top) {
  scroll-padding-top: 4.75rem;
  scroll-padding-bottom: 1.5rem;
}

body.page-home main {
  flex: 1 0 auto;
  padding-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px));
}

body.page-home .site-footer {
  flex-shrink: 0;
}

body.page-home--nav-top main {
  padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
}

body.page-home--nav-top #hero-signup,
body.page-home--nav-top #servicos,
body.page-home--nav-top #cobertura,
body.page-home--nav-top #planos,
body.page-home--nav-top #contato {
  scroll-margin-top: 4.5rem;
}

body.page-home .hero {
  min-height: min(100vh, 1080px);
  padding: clamp(2.25rem, 7vw, 3.5rem) 0 clamp(4rem, 12vw, 6rem);
  perspective: 1200px;
}

body.page-home .hero__bg {
  background:
    radial-gradient(ellipse 70% 55% at 70% 20%, rgba(var(--brand-rgb), 0.28), transparent 70%),
    radial-gradient(ellipse 50% 45% at 15% 80%, rgba(20, 40, 140, 0.2), transparent 65%);
}

/* Luzes animadas: somente azul sobre preto (pulso + movimento) */
body.page-home .hero__orb {
  pointer-events: none;
  filter: blur(90px);
  will-change: transform, opacity, background-color;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

body.page-home .hero__content,
body.page-home .hero__stage,
body.page-home .home-signup {
  position: relative;
  z-index: 5;
  pointer-events: auto;
}

body.page-home .hero__orb--1 {
  width: min(520px, 70vw);
  height: min(520px, 70vw);
  top: 6%;
  right: -12%;
  background: rgba(var(--brand-rgb), 0.55);
  opacity: 0.5;
  animation: homeOrbPulseBlue 14s ease-in-out infinite alternate,
    homeOrbDriftA 22s ease-in-out infinite alternate;
}

body.page-home .hero__orb--2 {
  width: min(420px, 60vw);
  height: min(420px, 60vw);
  bottom: 0;
  left: -10%;
  background: rgba(40, 80, 200, 0.4);
  opacity: 0.42;
  animation: homeOrbPulseBlueDeep 16s ease-in-out infinite alternate,
    homeOrbDriftB 26s ease-in-out infinite alternate;
  animation-delay: -3s, -5s;
}

body.page-home .hero__orb--3 {
  width: min(360px, 50vw);
  height: min(360px, 50vw);
  top: 42%;
  left: 38%;
  background: rgba(var(--brand-rgb), 0.4);
  opacity: 0.32;
  animation: homeOrbPulseBlue 18s ease-in-out infinite alternate,
    homeOrbDriftC 20s ease-in-out infinite alternate;
  animation-delay: -7s, -2s;
}

body.page-home .hero__aurora {
  position: absolute;
  inset: -20% -10%;
  pointer-events: none;
  filter: blur(60px);
  opacity: 0.35;
  mix-blend-mode: screen;
  will-change: transform, opacity, background;
}

body.page-home .hero__aurora--1 {
  background: radial-gradient(ellipse 55% 40% at 30% 40%, rgba(var(--brand-rgb), 0.55), transparent 70%);
  animation: homeAuroraSweepBlue 24s ease-in-out infinite alternate;
}

body.page-home .hero__aurora--2 {
  background: radial-gradient(ellipse 50% 35% at 75% 55%, rgba(50, 90, 220, 0.38), transparent 68%);
  animation: homeAuroraSweepBlueRev 28s ease-in-out infinite alternate;
  animation-delay: -8s;
}

@keyframes homeOrbPulseBlue {
  0% {
    background-color: rgba(36, 17, 220, 0.5);
    opacity: 0.32;
  }
  50% {
    background-color: rgba(70, 110, 255, 0.55);
    opacity: 0.58;
  }
  100% {
    background-color: rgba(24, 40, 180, 0.48);
    opacity: 0.38;
  }
}

@keyframes homeOrbPulseBlueDeep {
  0% {
    background-color: rgba(20, 50, 160, 0.42);
    opacity: 0.34;
  }
  50% {
    background-color: rgba(36, 17, 220, 0.52);
    opacity: 0.55;
  }
  100% {
    background-color: rgba(30, 70, 190, 0.4);
    opacity: 0.4;
  }
}

@keyframes homeOrbDriftA {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(-12%, 10%, 0) scale(1.12); }
  100% { transform: translate3d(8%, -8%, 0) scale(0.96); }
}

@keyframes homeOrbDriftB {
  0% { transform: translate3d(0, 0, 0) scale(1.05); }
  50% { transform: translate3d(14%, -12%, 0) scale(0.92); }
  100% { transform: translate3d(-8%, 8%, 0) scale(1.1); }
}

@keyframes homeOrbDriftC {
  0% { transform: translate3d(-6%, 4%, 0) scale(0.95); }
  50% { transform: translate3d(10%, -10%, 0) scale(1.15); }
  100% { transform: translate3d(-4%, 12%, 0) scale(1); }
}

@keyframes homeAuroraSweepBlue {
  0% {
    transform: translate3d(-6%, 4%, 0) scale(1);
    opacity: 0.2;
    background: radial-gradient(ellipse 55% 40% at 28% 38%, rgba(36, 17, 220, 0.55), transparent 70%);
  }
  50% {
    transform: translate3d(8%, -6%, 0) scale(1.08);
    opacity: 0.38;
    background: radial-gradient(ellipse 55% 40% at 45% 50%, rgba(60, 100, 240, 0.48), transparent 70%);
  }
  100% {
    transform: translate3d(4%, 6%, 0) scale(1.02);
    opacity: 0.26;
    background: radial-gradient(ellipse 55% 40% at 35% 42%, rgba(24, 40, 180, 0.5), transparent 70%);
  }
}

@keyframes homeAuroraSweepBlueRev {
  0% {
    transform: translate3d(6%, -4%, 0) scale(1.05);
    opacity: 0.18;
    background: radial-gradient(ellipse 50% 35% at 78% 58%, rgba(50, 90, 220, 0.4), transparent 68%);
  }
  50% {
    transform: translate3d(-10%, 8%, 0) scale(0.95);
    opacity: 0.36;
    background: radial-gradient(ellipse 50% 35% at 60% 40%, rgba(36, 17, 220, 0.48), transparent 68%);
  }
  100% {
    transform: translate3d(4%, -2%, 0) scale(1.08);
    opacity: 0.24;
    background: radial-gradient(ellipse 50% 35% at 72% 52%, rgba(40, 80, 200, 0.36), transparent 68%);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-home .hero__orb,
  body.page-home .hero__aurora {
    animation: none !important;
  }
}

body.page-home .hero__grid {
  background-image: linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  opacity: 0.4;
  mask-image: radial-gradient(ellipse 75% 65% at 50% 35%, black 15%, transparent 78%);
}

/* Curtidas / corações: sobem de baixo do viewport, acima de tudo (z-index alto) */
.scroll-float-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 20000;
  overflow: hidden;
}

.scroll-float-particle {
  position: fixed;
  top: 0;
  left: 0;
  width: clamp(20px, 4.8vw, 34px);
  height: clamp(20px, 4.8vw, 34px);
  animation: scrollFloatRise var(--dur, 3.2s) cubic-bezier(0.08, 0.72, 0.22, 1) forwards;
  animation-delay: var(--delay, 0s);
  color: #fb7185;
  filter: drop-shadow(0 5px 16px rgba(0, 0, 0, 0.5));
  will-change: transform, opacity;
}

.scroll-float-particle--like {
  color: #fb7185;
}

/* ── Badge de curtidas nos cards (overlay no canto do card) ── */
/* Contexto de posicionamento nos cards */
.plan-card, .service-tile { position: relative; }

.card-like-badge {
  position: absolute; top: .5rem; right: .5rem;
  display: inline-flex; align-items: center; gap: .28rem;
  background: rgba(0,0,0,.52); backdrop-filter: blur(6px);
  border-radius: 2rem; padding: .22rem .55rem;
  color: #fff; font-size: .75rem; font-weight: 600;
  pointer-events: none;
  z-index: 3;
}
.card-like-badge svg { width: 13px; height: 13px; flex-shrink: 0; color: #fb7185; }
/* Anima o badge quando o contador é atualizado */
.card-like-badge--pop { animation: likeHeartPop .35s ease; }
@keyframes likeHeartPop {
  0%   { transform: scale(1); }
  45%  { transform: scale(1.45); }
  100% { transform: scale(1); }
}
/* Badge na página de detalhe (serviço/pacote) — canto direito do título */
.svc-page-info__title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.svc-page-info__title-row h1 { margin: 0; flex: 1; min-width: 0; }
.service-detail-like-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  color: #fb7185; font-size: .9rem; font-weight: 600;
  white-space: nowrap; flex-shrink: 0; padding-top: .25rem;
}
.service-detail-like-badge svg { width: 16px; height: 16px; flex-shrink: 0; }

.scroll-float-particle svg {
  display: block;
  width: 100%;
  height: 100%;
}

@keyframes scrollFloatRise {
  0% {
    transform: translate3d(-50%, 108vh, 0) scale(var(--scale, 1)) rotate(-14deg);
    opacity: 0;
  }
  10% {
    opacity: 0.94;
  }
  88% {
    opacity: 0.72;
  }
  100% {
    transform: translate3d(calc(-50% + var(--drift, 0px)), -22vh, 0) scale(calc(var(--scale, 1) * 1.06)) rotate(12deg);
    opacity: 0;
  }
}

body.page-home .hero__stage {
  min-height: 0;
  margin-top: 0.75rem;
}

body.page-home .home-signup {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
  padding: 1.25rem 1.2rem 1.35rem;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid #e8eaf0;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.06);
}

@media (min-width: 900px) {
  body.page-home .home-signup {
    margin-inline: 0;
    max-width: 440px;
  }
}

body.page-home .home-signup__title {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: #1a1a1a;
}

body.page-home .home-signup__lead {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #5c5c5c;
}

/* Especificidade acima de .form-group input:not(...) no card branco */
body.page-home .home-signup .form-group.home-signup__field label {
  color: #5c5c5c;
}

body.page-home .home-signup .form-group.home-signup__field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.page-home .home-signup .form-group.home-signup__field select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 10px;
  border: 1px solid #e8eaf0;
  background-color: #ffffff;
  color: #1a1a1a;
  padding: 0.65rem 0.75rem;
  font-size: 1rem;
  line-height: 1.35;
  min-height: var(--touch-target);
  height: var(--touch-target);
}

body.page-home .home-signup .form-group.home-signup__field select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #ffffff;
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 0.65rem auto;
  padding-right: 2.25rem;
}

body.page-home .home-signup .form-group.home-signup__field textarea {
  width: 100%;
  border-radius: 10px;
  border: 1px solid #e8eaf0;
  background-color: #ffffff;
  color: #1a1a1a;
  padding: 0.65rem 0.75rem;
  font-size: 1rem;
  line-height: 1.35;
}

body.page-home .home-signup .form-group.home-signup__field input::placeholder,
body.page-home .home-signup .form-group.home-signup__field textarea::placeholder {
  color: #71717a;
}

body.page-home .home-signup .form-group.home-signup__field input:focus,
body.page-home .home-signup .form-group.home-signup__field select:focus,
body.page-home .home-signup .form-group.home-signup__field textarea:focus {
  outline: 2px solid rgba(var(--brand-rgb), 0.45);
  outline-offset: 1px;
  border-color: rgba(var(--brand-rgb), 0.45);
}

body.page-home .home-signup .form-group.home-signup__field input:-webkit-autofill,
body.page-home .home-signup .form-group.home-signup__field input:-webkit-autofill:hover,
body.page-home .home-signup .form-group.home-signup__field input:-webkit-autofill:focus {
  -webkit-text-fill-color: #1a1a1a;
  caret-color: #1a1a1a;
  box-shadow: 0 0 0 1000px #ffffff inset;
  border: 1px solid #e8eaf0;
  transition: background-color 99999s ease-out;
}

/* Botão ghost dentro do card branco (Entrar): mesmo critério do menu no topo */
body.page-home .home-signup .btn.btn--ghost {
  color: #1a1d24;
  border-color: rgba(var(--brand-rgb), 0.42);
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.12);
}

body.page-home .home-signup .btn.btn--ghost:hover {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
  border-color: rgba(var(--brand-rgb), 0.5);
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.22);
}

body.page-home .home-signup__submit-wrap {
  display: flex;
  justify-content: center;
  margin-top: 0.25rem;
}

body.page-home .home-signup__submit-wrap--inline {
  margin-top: 0.5rem;
}

body.page-home .home-signup__submit {
  margin-top: 0;
}

body.page-home .home-signup__alt {
  margin-top: 1rem;
  text-align: center;
  font-size: 0.92rem;
  color: #5c5c5c;
}

body.page-home .home-signup__or {
  display: block;
  margin-bottom: 0.45rem;
}

.home-signup__webauthn {
  margin-top: 0.65rem;
}
.home-signup__foot {
  margin-top: 1rem;
  font-size: 0.86rem;
  text-align: center;
  color: #5c5c5c;
}

.home-signup__foot.is-error {
  color: #b00020;
}

.home-signup__field--stack {
  display: grid;
  gap: 0.75rem;
}

.cadastro-page {
  min-height: 100vh;
  padding: 2rem 0;
  background: #070708;
  color: #ffffff;
  overflow: hidden;
}

.cadastro-page__wrap {
  display: grid;
  gap: 1.25rem;
  align-items: center;
  justify-items: center;
  min-height: calc(100vh - 4rem);
}

.cadastro-page__brand {
  display: inline-flex;
}

.cadastro-card {
  width: min(100%, 720px);
  padding: 1.15rem;
  border: 1px solid #e1e5ee;
  border-radius: 20px;
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34), 0 2px 10px rgba(0, 0, 0, 0.08);
}

.cadastro-card .home-signup__title {
  margin: 0 0 1rem;
  color: #15151a;
  font-size: clamp(1.35rem, 6vw, 1.85rem);
  line-height: 1.08;
  text-align: center;
}

.cadastro-form__grid {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: 1fr;
}

.cadastro-card .form-group {
  margin-bottom: 0;
}

.cadastro-card .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.cadastro-card .form-group select {
  box-sizing: border-box;
  width: 100%;
  min-height: 3rem;
  height: 3rem;
  border: 1px solid #c7ceda;
  border-radius: 12px;
  background-color: #f3f6fb;
  background-image: none;
  color: #15151a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  font-size: 1rem;
  line-height: 1.35;
  padding: 0.65rem 0.75rem;
}

.cadastro-card .form-group select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #f3f6fb;
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 0.65rem auto;
  padding: 0.65rem 2.25rem 0.65rem 0.75rem;
}

.cadastro-card .form-group textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 3rem;
  border: 1px solid #c7ceda;
  border-radius: 12px;
  background: #f3f6fb;
  color: #15151a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  font-size: 1rem;
  line-height: 1.35;
  padding: 0.75rem;
}

.cadastro-card .form-group input::placeholder,
.cadastro-card .form-group textarea::placeholder {
  color: #606a78;
  opacity: 1;
}

.cadastro-card .form-group input:focus,
.cadastro-card .form-group textarea:focus {
  outline: 2px solid rgba(var(--brand-rgb), 0.35);
  outline-offset: 1px;
  border-color: rgba(var(--brand-rgb), 0.6);
  background: #ffffff;
}

.cadastro-card .form-group select:focus {
  outline: 2px solid rgba(var(--brand-rgb), 0.35);
  outline-offset: 1px;
  border-color: rgba(var(--brand-rgb), 0.6);
  background-color: #ffffff;
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 0.65rem auto;
}

.cadastro-form__wide {
  grid-column: 1 / -1;
}

.cadastro-form__submit {
  margin-top: 0.9rem;
}

/* ── Wheel picker de data de nascimento ── */

/* Trigger: input readonly que parece um campo normal mas abre o picker */
.birth-picker-trigger {
  cursor: pointer;
}

/* Modal */
.birth-picker-modal {
  border: none;
  border-radius: 18px;
  padding: 0;
  width: min(94vw, 360px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
  background: #fff;
  color: #15151a;
}

.birth-picker-modal::backdrop {
  background: rgba(0, 0, 0, 0.5);
}

.birth-picker-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.birth-picker-header {
  text-align: center;
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid #e2e8f0;
}

.birth-picker-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #15151a;
}

.birth-picker-body {
  display: flex;
  gap: 0;
  padding: 0.75rem 0.75rem 0;
}

.birth-picker-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  padding: 0 0.25rem;
}

.birth-picker-col-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6b7280;
}

/* Contêiner do drum com máscara de fade nas bordas */
.birth-picker-drum-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 10px;
  background: #f3f6fb;
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    #000 22%,
    #000 78%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    #000 22%,
    #000 78%,
    transparent 100%
  );
}

/* Drum scrollável com scroll-snap */
.birth-picker-drum {
  height: 220px;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  /*
   * scroll-padding-top = 2 × ITEM_H (88px).
   * Com scroll-snap-align: start, item i centra-se ao scrollTop = i × 44px.
   * Os espaçadores JS (birth-drum-spacer × 2 topo e × 2 fundo) permitem
   * que o 1.º e o último item cheguem ao centro visível sem offset.
   */
  scroll-padding-top: 88px;
}

.birth-picker-drum::-webkit-scrollbar {
  display: none;
}

/* Item individual do drum */
.birth-drum-item {
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  scroll-snap-align: start;
  font-size: 1.1rem;
  font-weight: 500;
  color: #15151a;
  user-select: none;
  cursor: default;
}

/* Espaçador sem snap (adicionado via JS, 2 no topo e 2 no fundo) */
.birth-drum-spacer {
  height: 44px;
  scroll-snap-align: none;
  flex-shrink: 0;
}

/* Banda de destaque no centro (item selecionado) */
.birth-picker-highlight {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 6px;
  right: 6px;
  height: 44px;
  border-radius: 8px;
  background: rgba(var(--brand-rgb), 0.09);
  border: 1.5px solid rgba(var(--brand-rgb), 0.22);
  pointer-events: none;
}


.birth-picker-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid #e2e8f0;
  margin-top: 0.75rem;
}

/* Dark mode */
body.theme-dark .birth-picker-modal {
  background: #1c1c2e;
  color: var(--heading);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}

body.theme-dark .birth-picker-header,
body.theme-dark .birth-picker-actions {
  border-color: rgba(255, 255, 255, 0.1);
}

body.theme-dark .birth-picker-title {
  color: var(--heading);
}

body.theme-dark .birth-picker-drum-wrap {
  background: #2a2a3e;
}

body.theme-dark .birth-drum-item {
  color: var(--heading);
}


@media (min-width: 720px) {
  .cadastro-page {
    padding: 4rem 0;
  }

  .cadastro-card {
    padding: 1.5rem;
  }

  .cadastro-form__grid {
    gap: 0.9rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body.page-home .home-signup__foot a {
  color: var(--brand);
  font-weight: 600;
}

body.page-home .home-signup__foot a:hover {
  text-decoration: underline;
}

body.page-home .hero__intro {
  text-align: center;
}

@media (min-width: 900px) {
  body.page-home .hero__intro {
    text-align: left;
  }
}

body.page-home .hero__brand {
  display: inline-block;
  margin: 0 auto 1.35rem;
  line-height: 0;
}

@media (min-width: 900px) {
  body.page-home .hero__brand {
    margin-left: 0;
    margin-right: 0;
  }
}

body.page-home .hero__brand img {
  display: block;
  width: min(88vw, 380px);
  height: auto;
  max-height: none;
  margin-inline: auto;
  image-rendering: auto;
}

@media (min-width: 900px) {
  body.page-home .hero__brand img {
    width: min(100%, 400px);
    margin-inline: 0;
  }
}

body.page-home .hero__title {
  font-size: clamp(2.45rem, 6.5vw, 3.85rem);
  margin-top: 0;
}

body.page-home .hero__lead {
  font-size: clamp(1.0625rem, 2.8vw, 1.22rem);
  max-width: 42ch;
  margin-inline: auto;
  color: #c4c4cc;
}

@media (min-width: 900px) {
  body.page-home .hero__lead {
    margin-inline: 0;
  }
}

body.page-home .hero__cta {
  justify-content: center;
}

@media (min-width: 900px) {
  body.page-home .hero__cta {
    justify-content: flex-start;
  }
}

body.page-home .btn--ghost {
  border-color: rgba(var(--brand-rgb), 0.55);
  color: #f4f4f5;
  background: rgba(255, 255, 255, 0.04);
}

body.page-home .btn--ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(var(--brand-rgb), 0.75);
}

body.page-home .section--alt {
  background: linear-gradient(180deg, transparent, rgba(var(--brand-rgb), 0.07), transparent);
}

body.page-home .parallax-band {
  background: radial-gradient(ellipse 130% 100% at 50% 120%, #05060c 0%, #0c0f18 38%, #12182a 100%);
  isolation: isolate;
  min-height: min(72vh, 640px);
}

body.page-home .parallax-band__light {
  opacity: 0.55;
  mix-blend-mode: screen;
}

body.page-home .parallax-band__light--2 {
  opacity: 0.48;
}

body.page-home .parallax-band__light--3 {
  opacity: 0.42;
}

body.page-home .parallax-band__layer {
  background-image:
    linear-gradient(180deg, rgba(0, 38, 255, 0.14) 0%, transparent 48%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.4) 0%, transparent 16%, transparent 84%, rgba(0, 0, 0, 0.4) 100%),
    url("../img/band-collab.svg"),
    radial-gradient(ellipse 80% 62% at 50% 45%, rgba(var(--brand-rgb), 0.22), transparent 66%),
    linear-gradient(168deg, #060810 0%, #101624 36%, #0a0e18 72%, #030408 100%);
  background-size: auto, auto, 115% auto, auto, auto;
  background-position: center, center, center 40%, center, center;
  background-repeat: no-repeat;
  opacity: 1;
  filter: saturate(1.08) brightness(0.92);
}

body.page-home .parallax-band__text {
  color: #f8f8fc;
  font-size: clamp(1.65rem, 4.2vw, 2.85rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.02em;
  max-width: min(22em, 96vw);
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.75), 0 0 48px rgba(80, 130, 255, 0.25);
  padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1.15rem, 3vw, 1.75rem);
  border-radius: 18px;
  background: linear-gradient(165deg, rgba(0, 0, 0, 0.5) 0%, rgba(18, 22, 38, 0.62) 100%);
  border: 1px solid rgba(120, 160, 255, 0.18);
  box-shadow:
    0 28px 56px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 0 80px rgba(0, 60, 200, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

body.page-home .parallax-band__quote {
  background: linear-gradient(155deg, rgba(8, 12, 24, 0.72) 0%, rgba(16, 22, 40, 0.78) 100%);
  border: 1px solid rgba(100, 140, 255, 0.16);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow:
    0 16px 40px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Cards de catálogo: tipografia legível sobre fundo branco em qualquer tema */
body.page-home .plan-card,
body.page-home .service-tile {
  --heading: #1a1a1a;
  --text: #3d3d3d;
  --text-muted: #5c5c5c;
  --white: #ffffff;
  --border: #e8eaf0;
  --surface: #ffffff;
  --surface-muted: #fafafa;
}

body.page-home:not(.theme-dark) .contact-strip {
  --heading: #1a1a1a;
  --text: #3d3d3d;
  --text-muted: #5c5c5c;
}

body.page-home .plan-card h3 {
  font-size: 1.4rem;
}

body.page-home .plan-card ul {
  font-size: 0.98rem;
}

.contact-strip__title {
  margin-top: 0;
  color: var(--heading);
}

.contact-strip__lead {
  color: var(--text-muted);
  max-width: 50ch;
  margin: 0 auto 1.25rem;
  font-size: clamp(0.95rem, 2.5vw, 1.02rem);
  line-height: 1.55;
}

.site-footer--home {
  padding: 0;
  margin-bottom: 0;
  border-top-color: #e8eaf0;
  color: #3d3d3d;
  background: #ffffff;
}

.site-footer--home .site-footer__bottom {
  padding: 1.25rem 0 calc(1.25rem + env(safe-area-inset-bottom, 0px));
  margin: 0;
  background: #0a0a0a;
}

/* Espaço do menu flutuante fica no conteúdo, não abaixo do copyright */
body.page-home .site-footer {
  padding-bottom: 0;
  margin-bottom: 0;
}

.site-footer--home .site-footer__copy {
  color: rgba(255, 255, 255, 0.82);
}

/* Home: menu inferior → topo com logo claro */
.site-home-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  top: auto;
  z-index: 100;
  display: flex;
  justify-content: center;
  padding: 0.5rem clamp(0.5rem, 3vw, 1rem) calc(0.55rem + env(safe-area-inset-bottom, 0px));
  pointer-events: none;
  transition:
    padding 0.35s ease,
    bottom 0.35s ease,
    top 0.35s ease,
    background 0.3s ease,
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

.site-home-nav:not(.is-top) {
  background: linear-gradient(0deg, rgba(10, 10, 12, 0.94) 0%, rgba(10, 10, 12, 0.55) 45%, transparent 100%);
}

.site-home-nav.is-top {
  bottom: auto;
  top: 0;
  padding: 0.35rem clamp(0.75rem, 3vw, 1.25rem) calc(0.45rem + env(safe-area-inset-top, 0px));
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid #e4e7ef;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

.site-home-nav__inner {
  pointer-events: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.2rem 0.45rem;
  max-width: min(100%, 44rem);
  width: auto;
  padding: 0.35rem 0.5rem;
  background: transparent;
  border-radius: 0;
  border: none;
  box-shadow: none;
  transition:
    max-width 0.35s ease,
    width 0.35s ease,
    padding 0.35s ease,
    justify-content 0.35s ease;
}

.site-home-nav.is-top .site-home-nav__inner {
  max-width: min(1120px, 94vw);
  width: 100%;
  justify-content: space-between;
  padding: 0.25rem 0.35rem;
}

.site-home-nav:not(.is-top) .site-home-nav__link {
  color: rgba(244, 244, 245, 0.92);
}

.site-home-nav:not(.is-top) .site-home-nav__link:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.1);
}

.site-home-nav:not(.is-top) .site-home-nav .btn--ghost {
  color: #f4f4f5;
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.06);
}

.site-home-nav:not(.is-top) .site-home-nav .btn--ghost:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.5);
}

.site-home-nav:not(.is-top) .site-home-nav .btn:not(.btn--ghost) {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.site-home-nav:not(.is-top) .site-home-nav__btn--cadastro-top {
  display: none;
}

.site-home-nav__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  line-height: 0;
  max-width: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border: 0;
  pointer-events: none;
  transition:
    opacity 0.3s ease,
    max-width 0.35s ease,
    max-height 0.35s ease,
    margin 0.35s ease;
}

.site-home-nav.is-top .site-home-nav__logo {
  max-width: 280px;
  max-height: 60px;
  opacity: 1;
  margin-right: 0.65rem;
  pointer-events: auto;
}

.site-home-nav__logo:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
  border-radius: 8px;
}

.site-home-nav__logo img {
  display: block;
  height: 34px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
}

.site-home-nav.is-top .site-home-nav__logo img {
  height: clamp(40px, 5vw, 50px);
  max-width: min(240px, 52vw);
}

.site-home-nav__cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.2rem 0.35rem;
}

.site-home-nav.is-top .site-home-nav__cluster {
  justify-content: flex-end;
  flex: 1;
  min-width: 0;
}

.site-home-nav .btn--ghost {
  border-color: rgba(var(--brand-rgb), 0.38);
  color: #1a1a1a;
  background: transparent;
}

.site-home-nav .btn--ghost:hover {
  background: rgba(var(--brand-rgb), 0.06);
  border-color: rgba(var(--brand-rgb), 0.55);
}

/* Menu no topo (fundo branco): logo maior + botões legíveis (sobrescreve body.page-home .btn--ghost) */
body.page-home .site-home-nav.is-top .btn--ghost {
  color: #1a1d24;
  border-color: rgba(var(--brand-rgb), 0.42);
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.12);
}

body.page-home .site-home-nav.is-top .btn--ghost:hover {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
  border-color: rgba(var(--brand-rgb), 0.5);
  box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), 0.22);
}

body.page-home .site-home-nav.is-top .btn:not(.btn--ghost) {
  background: linear-gradient(135deg, var(--royal), var(--accent));
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 4px 16px rgba(var(--brand-rgb), 0.28);
}

body.page-home .site-home-nav.is-top .btn:not(.btn--ghost):hover {
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(var(--brand-rgb), 0.38);
}

.site-home-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  font-size: clamp(0.95rem, 2.8vw, 1.02rem);
  font-weight: 600;
  color: #3d3d3d;
  transition: color 0.2s ease, background 0.2s ease;
}

.site-home-nav__link:hover {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
}

.site-home-nav__btn.btn--sm {
  min-height: 44px;
  font-size: 0.9375rem;
}

@media (max-width: 639px) {
  .site-home-nav {
    pointer-events: none;
  }

  .site-home-nav__inner,
  .site-home-nav.is-top .site-home-nav__inner,
  .site-home-nav:not(.is-top) .site-home-nav__inner {
    position: relative;
    width: min(100%, 22rem);
    max-width: min(100%, 22rem);
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.35rem 0.45rem;
  }

  .site-home-nav__toggle.public-menu-fab {
    color: #ffffff;
  }

  .site-home-nav.is-top .site-home-nav__toggle.public-menu-fab {
    color: #ffffff;
    background: rgba(12, 14, 22, 0.94);
    border: none;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.28);
  }

  .site-home-nav__cluster {
    position: absolute;
    left: 0.45rem;
    right: 0.45rem;
    bottom: calc(100% + 0.55rem);
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 18px;
    background: rgba(8, 10, 18, 0.96);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.36);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .site-home-nav.is-top .site-home-nav__cluster {
    top: calc(100% + 0.55rem);
    bottom: auto;
    background: #ffffff;
    border-color: #e1e5ee;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
  }

  .site-home-nav__cluster.is-open {
    display: flex;
  }

  .site-home-nav__link--text,
  .site-home-nav__link,
  .site-home-nav__btn.btn--sm,
  .site-home-nav.is-top .site-home-nav__btn--wide {
    display: inline-flex;
    width: 100%;
    min-height: 42px;
    justify-content: center;
    font-size: 0.95rem;
  }

  .site-home-nav:not(.is-top) .site-home-nav__btn--cadastro-top {
    display: inline-flex;
  }
}

@media (min-width: 768px) {
  .site-home-nav__btn.btn--sm {
    font-size: 0.95rem;
  }
}

/* ── Dark mode: site-home-nav (home) ── */
body.theme-dark .site-home-nav.is-top {
  background: rgba(7, 11, 22, 0.97);
  border-bottom-color: var(--border);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
}
body.theme-dark .site-home-nav__link {
  color: var(--text);
}
body.theme-dark .site-home-nav.is-top .site-home-nav__link:hover {
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.1);
}
body.page-home.theme-dark .site-home-nav.is-top .btn--ghost {
  color: var(--heading);
  border-color: rgba(var(--brand-rgb), 0.42);
  background: rgba(var(--brand-rgb), 0.08);
  box-shadow: none;
}
body.page-home.theme-dark .site-home-nav.is-top .btn--ghost:hover {
  background: rgba(var(--brand-rgb), 0.15);
  border-color: rgba(var(--brand-rgb), 0.6);
}
@media (max-width: 639px) {
  body.theme-dark .site-home-nav.is-top .site-home-nav__cluster {
    background: #0d1627;
    border-color: var(--border);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55);
  }
}


/* ===== Frontend estático atual (templates HTML + index.php compositor) ===== */
body.front-static { min-height: 100vh; }
.template-shell-note { font-size: .82rem; color: var(--text-muted); }
.logo-text-fallback { display:inline-flex; align-items:center; gap:.55rem; font-weight:800; letter-spacing:-.03em; }
.logo-text-fallback::before { content:"D"; display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:linear-gradient(135deg,var(--royal),var(--accent)); color:#fff; }
.home-signup--static .home-signup__actions { display:grid; gap:.75rem; margin-top:1rem; }
.home-signup--static .btn { width:100%; }
.dashboard-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin:1rem 0 1.25rem; }
.dashboard-card { background:#fff; border:1px solid var(--border); border-radius:20px; padding:1.1rem; box-shadow:var(--shadow); }
.dashboard-card span { display:block; color:var(--text-muted); font-size:.86rem; }
.dashboard-card strong { display:block; color:var(--heading); font-size:clamp(1rem,2vw,1.35rem); margin-top:.25rem; }
.dashboard-card small.dashboard-card__sub { display:block; color:var(--text-muted); font-size:.78rem; margin-top:.2rem; }
.dashboard-card--alert { border-color: var(--brand); }
.dashboard-card--alert strong { color: var(--brand); }
a.dashboard-card--link { text-decoration: none; cursor: pointer; transition: box-shadow .15s, transform .15s; display: block; }
a.dashboard-card--link:hover { box-shadow: 0 4px 16px rgba(0,0,0,.12); transform: translateY(-2px); }
.panel-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:1rem; align-items:start; }
.panel-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }

/* ── Widget de créditos disponíveis (visão geral) ────────────────────────── */

.overview-credit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.overview-credit-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.overview-credit-row:first-child {
  padding-top: 0;
}

.overview-credit-info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.overview-credit-label {
  font-weight: 600;
  color: var(--heading);
  font-size: 0.95rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.overview-credit-meta {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* ── Widgets do dashboard ──────────────────────────────────────────────────── */
/* ── Dashboard grid ──────────────────────────────────────────────────────
 * Linha-base: 150px. 2 pequenos (150+gap+150 = 316px) == 1 wide (span 2 rows).
 * 3 pequenos (482px) == 1 tall (span 3 rows).
 * grid-auto-flow: dense preenche lacunas automaticamente.
 * --wgrid-row é lido pelo JS de resize para calcular o snap.
 * ─────────────────────────────────────────────────────────────────────── */
.admin-widgets-grid {
  --wgrid-row: 150px;
  --wgrid-gap: 1rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: var(--wgrid-row);
  grid-auto-flow: row dense;
  gap: var(--wgrid-gap);
  margin: 1rem 0;
  align-items: stretch;
}
@media (max-width: 1100px) {
  .admin-widgets-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .admin-widgets-grid { grid-template-columns: repeat(2, 1fr); }
}
/* Mobile: um card por linha (ignora spans salvos no layout) */
@media (max-width: 767px) {
  .admin-widgets-grid { grid-template-columns: 1fr; }
  .admin-widgets-grid > .admin-widget {
    grid-column-start: auto;
    grid-column-end: span 1 !important;
  }
}

/* wide: ocupa 2 colunas × 2 linhas por padrão.
 * Usa grid-column-end (não shorthand) para que o inline style do resize
 * sobrescreva corretamente sem conflito com grid-column-start. */
.admin-widget--wide {
  grid-column-end: span 2;
  grid-row-end: span 2;
}
@media (max-width: 767px) {
  .admin-widget--wide { grid-column-end: span 1; }
}

.admin-widget--full-width {
  grid-column: 1 / -1;
}

/* Handles de redimensionamento — aparecem ao hover, não conflitam com drag */
.admin-widget__resize-bottom,
.admin-widget__resize-right {
  position: absolute;
  z-index: 3;
  opacity: 0;
  transition: opacity .15s;
  display: flex; align-items: center; justify-content: center;
}
.admin-widget:hover .admin-widget__resize-bottom,
.admin-widget:hover .admin-widget__resize-right { opacity: 1; }

/* ── Handle inferior (altura) ── */
.admin-widget__resize-bottom {
  bottom: 4px;
  left: 25%; right: 25%;
  height: 14px;
  cursor: ns-resize;
}
.admin-widget__resize-bottom::after {
  content: "";
  display: block;
  width: 36px; height: 4px;
  background: var(--border, #cbd5e1);
  border-radius: 2px;
  transition: background .15s;
}
.admin-widget:hover .admin-widget__resize-bottom::after { background: var(--brand, #4f6ef7); }

/* ── Handle direito (largura) ── */
.admin-widget__resize-right {
  right: 4px;
  top: 25%; bottom: 25%;
  width: 14px;
  cursor: ew-resize;
}
.admin-widget__resize-right::after {
  content: "";
  display: block;
  height: 36px; width: 4px;
  background: var(--border, #cbd5e1);
  border-radius: 2px;
  transition: background .15s;
}
.admin-widget:hover .admin-widget__resize-right::after { background: var(--brand, #4f6ef7); }

/* ── Indicador de tamanho durante resize ── */
.admin-widget--resizing {
  outline: 2px dashed var(--brand, #4f6ef7);
  outline-offset: 2px;
}
.admin-widget__resize-hint {
  position: absolute;
  top: 6px; right: 8px;
  font-size: .62rem; font-weight: 700;
  color: var(--brand, #4f6ef7);
  background: #fff;
  border-radius: 4px;
  padding: 1px 5px;
  pointer-events: none;
  z-index: 4;
}

/* ── Calendário de agenda no dashboard admin ── */
/* ── Calendário admin — ocupa toda a altura do widget ────────────────── */
.admin-cal-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: .2rem;
  padding: 0;
}
.admin-cal-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-shrink: 0;
  padding-bottom: .15rem;
}
.admin-cal-month-label { font-weight: 600; font-size: .82rem; }
.admin-cal-legend {
  display: flex; gap: .5rem; flex-wrap: wrap;
  flex-shrink: 0;
  font-size: .66rem;
  padding-bottom: .15rem;
  border-bottom: 1px solid var(--border);
}
.admin-cal-legend__item { display: inline-flex; align-items: center; gap: .2rem; }
.admin-cal-legend__item::before {
  content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
}
.admin-cal-legend__item--booked::before  { background: var(--accent, #4f6ef7); }
.admin-cal-legend__item--avail::before   { background: #22c55e; }
.admin-cal-legend__item--empty::before   { background: var(--border); border: 1px solid var(--text-muted); }
/* Grid cresce para preencher o espaço restante */
.admin-cal-grid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: 1fr;
  gap: 2px;
  align-content: stretch;
}
.admin-cal-loading { grid-column: 1/-1; text-align: center; color: var(--text-muted); padding: .4rem; font-size: .78rem; }

/* Widget: razão horas pendentes x disponíveis (por tipo) */
.bhr-widget { display: flex; flex-direction: column; gap: .4rem; }
.bhr-widget__title {
  font-size: .7rem; font-weight: 600; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .04em; margin: 0;
}
.bhr-widget__legend {
  font-size: .68rem; color: var(--text-muted); margin: 0;
}
.bhr-type-row { display: flex; flex-direction: column; gap: .18rem; }
.bhr-type-row__header {
  display: flex; justify-content: space-between; align-items: baseline; gap: .4rem;
}
.bhr-type-row__label {
  display: flex; align-items: center; gap: .35rem;
  font-size: .73rem; font-weight: 600; min-width: 0; max-width: 50%;
}
.bhr-type-row__label-text {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
.bhr-type-row__vals { font-size: .72rem; white-space: nowrap; }
.bhr-val--credits { color: #f59e0b; font-weight: 700; }
.bhr-val--slots   { color: #22c55e; font-weight: 700; }
.bhr-val--sep     { color: var(--text-muted); }
.bhr-widget__bar-wrap {
  height: 5px; background: #e2e8f0; border-radius: 3px; overflow: hidden;
}
.bhr-widget__bar-fill { height: 100%; border-radius: 3px; transition: width .4s ease; }

/* Widget de créditos pendentes */
.admin-credits-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.admin-credits-list li {
  display: flex; align-items: center; gap: .4rem;
  font-size: .8rem; padding: .2rem .25rem; border-radius: 4px;
}
.admin-credits-list li:hover { background: var(--navy-soft, #f0f4f8); }
.admin-credits-total-badge {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--accent, #4f6ef7); color: #fff;
  border-radius: 2rem; padding: .1rem .5rem;
  font-size: .72rem; font-weight: 700; margin-left: .4rem;
}

/* Células do calendário admin legado (.admin-cal-grid) — não aplicar ao grid cronograma */
[data-admin-cal] .admin-cal-grid .cal-head {
  font-size: .65rem;
  padding: .1rem .04rem;
  text-align: center;
  color: var(--text-muted);
  background: transparent;
}
[data-admin-cal] .admin-cal-grid .cal-day {
  aspect-ratio: unset;
  height: 100%;
  min-height: 1.4rem;
  font-size: .72rem;
  padding: .1rem .04rem;
  border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
}
[data-admin-cal] .admin-cal-grid .cal-day--muted {
  background: transparent;
}

/* Dias vazios clicáveis — cores adaptadas ao tema */
a.cal-day--empty-link {
  text-decoration: none;
  color: var(--text-muted);
  background: transparent;
  border: 1px dashed var(--border);
}
a.cal-day--empty-link:hover {
  background: var(--navy-soft, #f0f4f8);
  color: var(--text);
  border-color: var(--text-muted);
}
body.theme-dark a.cal-day--empty-link {
  background: rgba(255,255,255,.04);
  border-color: var(--border);
}
body.theme-dark a.cal-day--empty-link:hover {
  background: rgba(255,255,255,.09);
}

/* Dia disponível */
[data-admin-cal] a.cal-day--pickable {
  background: rgba(34, 197, 94, .15);
  color: #16a34a;
  border: 1px solid rgba(34, 197, 94, .35);
  text-decoration: none;
}
[data-admin-cal] a.cal-day--pickable:hover {
  background: rgba(34, 197, 94, .28);
}
body.theme-dark [data-admin-cal] a.cal-day--pickable {
  background: rgba(34, 197, 94, .18);
  color: #4ade80;
  border-color: rgba(34, 197, 94, .4);
}

/* Dia agendado */
[data-admin-cal] a.cal-day--booked {
  background: rgba(var(--accent-rgb, 79, 110, 247), .15);
  color: var(--accent, #4f6ef7);
  border: 1px solid rgba(var(--accent-rgb, 79, 110, 247), .35);
  text-decoration: none;
  font-weight: 600;
}
[data-admin-cal] a.cal-day--booked:hover {
  background: rgba(var(--accent-rgb, 79, 110, 247), .28);
}
body.theme-dark [data-admin-cal] a.cal-day--booked {
  background: rgba(79, 110, 247, .22);
}

/* Hoje */
[data-admin-cal] .cal-day--today {
  box-shadow: inset 0 0 0 2px var(--brand);
  font-weight: 700;
}

/* Botões de dia no calendário mensal do cronograma admin (mesmo visual dos links do widget) */
[data-admin-cal] button.cal-day {
  cursor: pointer;
  font-family: inherit;
  width: 100%;
  border: none;
  text-decoration: none;
}
[data-admin-cal] button.cal-day--empty-link {
  color: var(--text-muted);
  background: transparent;
  border: 1px dashed var(--border);
}
[data-admin-cal] button.cal-day--empty-link:hover {
  background: var(--navy-soft, #f0f4f8);
  color: var(--text);
  border-color: var(--text-muted);
}
body.theme-dark [data-admin-cal] button.cal-day--empty-link {
  background: rgba(255,255,255,.04);
  border-color: var(--border);
}
body.theme-dark [data-admin-cal] button.cal-day--empty-link:hover {
  background: rgba(255,255,255,.09);
}
[data-admin-cal] button.cal-day--pickable {
  background: rgba(34, 197, 94, .15);
  color: #16a34a;
  border: 1px solid rgba(34, 197, 94, .35);
}
[data-admin-cal] button.cal-day--pickable:hover {
  background: rgba(34, 197, 94, .28);
}
body.theme-dark [data-admin-cal] button.cal-day--pickable {
  background: rgba(34, 197, 94, .18);
  color: #4ade80;
  border-color: rgba(34, 197, 94, .4);
}
[data-admin-cal] button.cal-day--booked {
  background: rgba(var(--accent-rgb, 79, 110, 247), .15);
  color: var(--accent, #4f6ef7);
  border: 1px solid rgba(var(--accent-rgb, 79, 110, 247), .35);
  font-weight: 600;
}
[data-admin-cal] button.cal-day--booked:hover {
  background: rgba(var(--accent-rgb, 79, 110, 247), .28);
}
body.theme-dark [data-admin-cal] button.cal-day--booked {
  background: rgba(79, 110, 247, .22);
}

/* Calendário mensal admin — cronograma + widget da visão geral (estilo cliente) */
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-view {
  padding: 0;
  margin-top: 0.5rem;
}
[data-admin-cal] .admin-cronograma-month-view {
  margin-top: 0;
}
[data-admin-cal] .admin-cal-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.admin-cal-widget-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(7rem, 22cqw, 11rem);
  gap: clamp(0.4rem, 1.2cqw, 0.65rem);
  flex: 1;
  min-height: 0;
  align-items: stretch;
}
[data-admin-cal] .admin-dashboard-crono-month {
  flex: unset;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  margin-top: 0;
  padding: 0;
}
[data-admin-cal] .admin-dashboard-crono-month .calendar.admin-cronograma-month-grid,
[data-admin-cal] .admin-cronograma-month-grid {
  flex: 1;
  min-height: 0;
  width: 100%;
  height: 100%;
  margin-top: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  /* 1 linha de cabeçalho + até 6 semanas — altura distribuída igualmente */
  grid-template-rows: auto repeat(6, minmax(0, 1fr));
  gap: 1rem 0.25rem;
  align-content: stretch;
  overflow: hidden;
}
[data-admin-cal] .admin-dashboard-crono-month .calendar.admin-cronograma-month-grid .cal-day,
[data-admin-cal] .admin-dashboard-crono-month .calendar.admin-cronograma-month-grid button.cal-day,
[data-admin-cal] .admin-dashboard-crono-month .calendar.admin-cronograma-month-grid a.cal-day {
  height: 100%;
  min-height: 0;
  max-height: 100%;
  aspect-ratio: unset;
}
[data-admin-cal] .admin-cronograma-month-view .cronograma-month-day__num {
  line-height: 1;
  font-weight: 600;
}
[data-admin-cal] .admin-cronograma-month-view .cronograma-month-day__dots {
  line-height: 0;
}
[data-admin-cal] .admin-cronograma-month-view .cronograma-month-day__dot {
  width: clamp(0.32rem, 2.2cqw, 0.5rem);
  height: clamp(0.32rem, 2.2cqw, 0.5rem);
}
.admin-cal-widget-types {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  border-left: 1px solid var(--border, #e5e7eb);
  padding-left: 0.55rem;
}
.admin-cal-widget-types__title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-muted);
  line-height: 1.2;
}
.admin-cal-widget-types__list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  overflow-y: auto;
  min-height: 0;
  flex: 1;
}
.admin-cal-widget-types__empty {
  font-size: 0.72rem;
  margin: 0;
}
.admin-cal-widget-type-cell {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  padding: 0.42rem 0.5rem;
  border-radius: 8px;
  border: 2px solid transparent;
  background: #f0f2f5;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.admin-cal-widget-type-cell:hover {
  border-color: var(--type-color, #3b82f6);
}
.admin-cal-widget-type-cell.is-active {
  background: color-mix(in srgb, var(--type-color, #3b82f6) 14%, #fff);
  border-color: var(--type-color, #3b82f6);
  color: var(--type-color, #3b82f6);
}
.admin-cal-widget-type-cell__swatch {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  flex-shrink: 0;
}
.admin-cal-widget-type-cell__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.theme-dark .admin-cal-widget-types {
  border-left-color: rgba(255, 255, 255, 0.08);
}
body.theme-dark .admin-cal-widget-type-cell {
  background: rgba(255, 255, 255, 0.06);
}
body.theme-dark .admin-cal-widget-type-cell.is-active {
  background: color-mix(in srgb, var(--type-color, #3b82f6) 22%, #1f2937);
}
@media (max-width: 480px) {
  .admin-cal-widget-body {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr) auto;
  }
  .admin-cal-widget-types {
    border-left: none;
    border-top: 1px solid var(--border, #e5e7eb);
    padding-left: 0;
    padding-top: 0.45rem;
  }
  .admin-cal-widget-types__list {
    flex-direction: row;
    flex-wrap: wrap;
    overflow-y: visible;
  }
  .admin-cal-widget-type-cell {
    width: auto;
    max-width: 100%;
  }
}
.admin-cronograma-page .admin-cronograma-month-view .calendar {
  gap: 0.25rem;
  margin-top: 0.5rem;
  overflow: hidden;
}
.admin-cronograma-page .admin-cronograma-month-view .cal-day {
  aspect-ratio: unset;
  min-height: 2.5rem;
  font-size: clamp(0.75rem, 3vw, 0.9rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  padding: 0.15rem 0.1rem;
  text-decoration: none;
}
.admin-cronograma-page .admin-cronograma-month-view .cal-head {
  font-size: clamp(0.6rem, 2.5vw, 0.78rem);
}
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--blocked,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--blocked,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--booked.cal-day--blocked,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--booked.cal-day--blocked {
  background-color: var(--white, #fff);
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0,
    transparent 5px,
    rgba(148, 156, 169, 0.55) 5px,
    rgba(148, 156, 169, 0.55) 6px
  );
  border: 1px solid #b4bac4;
  box-shadow: none;
  opacity: 1;
  cursor: pointer;
  color: var(--heading);
}
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--blocked:active,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--blocked:active,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--booked.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--booked.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--booked.cal-day--blocked:active,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--booked.cal-day--blocked:active {
  filter: none;
  border-color: #9ca3af;
}
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today.cal-day--blocked:active,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today.cal-day--blocked:active,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today.cal-day--booked.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today.cal-day--booked.cal-day--blocked:hover,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today.cal-day--booked.cal-day--blocked:active,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today.cal-day--booked.cal-day--blocked:active {
  border-color: #16a34a !important;
}
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--blocked,
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--blocked,
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--booked.cal-day--blocked,
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--booked.cal-day--blocked {
  background-color: var(--surface, #1f2937);
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0,
    transparent 5px,
    rgba(156, 163, 175, 0.45) 5px,
    rgba(156, 163, 175, 0.45) 6px
  );
  border-color: #6b7280;
}
/* Hoje: destaque verde (visão mensal admin + widget) */
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today {
  border-color: #16a34a !important;
  box-shadow: inset 0 0 0 2px #16a34a;
}
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today .cronograma-month-day__num,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today .cronograma-month-day__num {
  color: #16a34a !important;
  font-weight: 700;
}
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today,
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today {
  border-color: #4ade80 !important;
  box-shadow: inset 0 0 0 2px #4ade80;
}
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid button.cal-day--today .cronograma-month-day__num,
body.theme-dark :is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid a.cal-day--today .cronograma-month-day__num {
  color: #4ade80 !important;
}
/* Spotlight: dias bloqueados permanecem clicáveis */
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid.cronograma-month-grid--spotlight button.cal-day--blocked,
:is(.admin-cronograma-page, [data-admin-cal]) .admin-cronograma-month-grid.cronograma-month-grid--spotlight a.cal-day--blocked {
  opacity: 1;
  pointer-events: auto;
}
@media (min-width: 768px) {
  .admin-cronograma-page .admin-cronograma-month-view .calendar {
    gap: 0.35rem;
    max-width: 52rem;
    margin-left: auto;
    margin-right: auto;
  }
  .admin-cronograma-page .admin-cronograma-month-view .cal-day {
    min-height: 4rem;
    font-size: 1rem;
    padding: 0.35rem 0.2rem;
    gap: 0.2rem;
  }
  .admin-cronograma-page .admin-cronograma-month-view .cal-head {
    font-size: 0.9rem;
    padding: 0.35rem 0.15rem;
  }
  .admin-cronograma-page .admin-cronograma-month-view .cronograma-month-day__num {
    font-size: 1.15rem;
    font-weight: 600;
  }
  .admin-cronograma-page .admin-cronograma-month-view .cronograma-month-day__dot {
    width: 0.58rem;
    height: 0.58rem;
  }
}
.admin-agenda-toolbar__period--clickable {
  cursor: pointer;
}
.admin-agenda-toolbar__period--clickable:hover {
  color: var(--brand, #2563eb);
}

/* Legenda — cor "disponível" adaptada ao tema */
.admin-cal-legend__item--avail::before {
  background: #22c55e;
}
body.theme-dark .admin-cal-legend__item--avail::before {
  background: #4ade80;
}

/* Estilos compartilhados por widgets de créditos */
.admin-cal-side__count--badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.4rem; height: 1.4rem; border-radius: 2rem;
  background: var(--accent, #4f6ef7); color: #fff;
  font-size: .67rem; font-weight: 700; flex-shrink: 0; padding: 0 .3rem;
}
.admin-cal-side__entity-icon { font-size: .72rem; flex-shrink: 0; }

.admin-widget {
  position: relative;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 1.25rem 1.6rem 1.6rem 2.2rem;
  box-shadow: var(--shadow);
  cursor: default;
  transition: box-shadow .15s, opacity .15s;
  display: flex;
  flex-direction: column;
  /* Container para que filhos usem cqw/cqh relativos ao widget */
  container-type: size;
  container-name: aw;
}
.admin-widget__content {
  flex: 1;
  min-height: 0;
  overflow: auto;
  min-width: 0;
}
/* Calendário não rola — ele cresce para preencher o widget */
.admin-widget__content:has(.admin-cal-wrap) {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* ── Escala proporcional de conteúdo via container queries ────────────────
 * cqw = 1% da largura do widget   cqh = 1% da altura do widget
 * clamp(mín, valor-ideal, máx) garante legibilidade mesmo em widgets pequenos.
 * ─────────────────────────────────────────────────────────────────────── */

/* Stat (número grande + label) */
@container aw (width >= 1px) {
  .admin-widget__stat-value {
    font-size: clamp(1.2rem, 6.5cqw, 3rem);
    line-height: 1.05;
  }
  .admin-widget__stat-label {
    font-size: clamp(.68rem, 1.8cqw, .95rem);
  }
}

/* Títulos e listas */
@container aw (width >= 1px) {
  .admin-widget__list-title { font-size: clamp(.78rem, 2.1cqw, 1.05rem); }
  .admin-widget__list li    { font-size: clamp(.76rem, 1.9cqw, .95rem); }
  .admin-widget__empty      { font-size: clamp(.76rem, 1.8cqw, .9rem);  }
}

/* Tabelas internas */
@container aw (width >= 1px) {
  .admin-widget__content .front-table td,
  .admin-widget__content .front-table th {
    font-size: clamp(.66rem, 1.7cqw, .88rem);
    padding: clamp(.15rem, .4cqh, .35rem) clamp(.2rem, .7cqw, .5rem);
  }
}

/* Calendário (widget dashboard — estilo cronograma, escala pelo tamanho 3×3) */
@container aw (width >= 1px) {
  [data-admin-cal] .admin-cronograma-month-grid .cal-head {
    font-size: clamp(0.5rem, 2.8cqw, 0.72rem);
  }
  [data-admin-cal] .admin-cronograma-month-grid .cal-day {
    font-size: clamp(0.52rem, 2.5cqw, 0.78rem);
  }
  [data-admin-cal] .admin-cronograma-month-grid .cronograma-month-day__num {
    font-size: clamp(0.58rem, min(4.5cqw, 12cqh), 0.92rem);
  }
  .admin-cal-month-label { font-size: clamp(.74rem, 2cqw, .92rem); }
  [data-admin-cal] .admin-cal-widget-types__title {
    font-size: clamp(0.62rem, 2cqw, 0.72rem);
  }
  [data-admin-cal] .admin-cal-widget-type-cell {
    font-size: clamp(0.62rem, 2.2cqw, 0.74rem);
    padding: clamp(0.28rem, 1.2cqh, 0.42rem) clamp(0.35rem, 1.5cqw, 0.5rem);
  }
}
@container aw (width >= 1px) {
  :is(.admin-cronograma-page) .admin-cronograma-month-view .cal-head {
    font-size: clamp(.52rem, 1.5cqw, .78rem);
  }
  :is(.admin-cronograma-page) .admin-cronograma-month-view .cal-day {
    font-size: clamp(.56rem, 1.6cqw, .85rem);
  }
  :is(.admin-cronograma-page) .admin-cronograma-month-view .cronograma-month-day__num {
    font-size: clamp(.62rem, 1.8cqw, 1rem);
  }
}

/* Widget BHR (agendamentos / hora livre) */
@container aw (width >= 1px) {
  .bhr-widget__title      { font-size: clamp(.62rem, 1.6cqw, .82rem); }
  .bhr-type-row__label    { font-size: clamp(.66rem, 1.9cqw, .9rem);  }
  .bhr-type-row__vals     { font-size: clamp(.6rem,  1.7cqw, .82rem); }
  .bhr-widget__bar-wrap   { height: clamp(4px, .6cqh, 7px); }
}

/* Credits pending */
@container aw (width >= 1px) {
  .admin-credits-list li  { font-size: clamp(.74rem, 1.9cqw, .92rem); }
}

/* Quando o widget está muito largo: aumenta padding e espaçamento */
@container aw (width >= 500px) {
  .admin-widget__list li  { gap: clamp(.45rem, 1cqw, .8rem); }
  .admin-widget__bars li  { gap: clamp(.4rem,  .8cqw, .7rem); }
}

/* Quando muito estreito: compacta para caber */
@container aw (width < 220px) {
  .admin-widget__stat-value { font-size: 1rem; }
  .admin-widget__stat-label { font-size: .62rem; }
  .admin-widget__drag-handle { display: none; }
}
.admin-widget__content .front-table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}
.admin-widget__content .front-table td,
.admin-widget__content .front-table th {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 0;
}
.admin-widget__drag-handle {
  position: absolute;
  top: 50%;
  left: .6rem;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: var(--text-muted);
  opacity: .35;
  cursor: grab;
  user-select: none;
  line-height: 1;
  transition: opacity .15s;
}
.admin-widget:hover .admin-widget__drag-handle { opacity: .75; }
/* Widget sendo arrastado: semi-transparente, borda tracejada, elevado */
.admin-widget--dragging {
  opacity: .2 !important;
  box-shadow: none;
  border-style: dashed;
  border-color: var(--brand);
  z-index: 10;
}
/* Não animar o próprio widget arrastado (a animação FLIP cuida dos outros) */
.admin-widget--dragging, .admin-widget--dragging * { transition: none !important; }
/* drag-over mantido para uso eventual */
.admin-widget--drag-over { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand); }
/* Stat (valor único) */
.admin-widget__stat { display: flex; flex-direction: column; gap: .3rem; }
.admin-widget__stat-label { color: var(--text-muted); font-size: .84rem; }
.admin-widget__stat-body {
  display: flex; align-items: center; gap: .85rem; flex-wrap: wrap; min-width: 0;
}
.admin-widget__stat-value { color: var(--heading); font-size: clamp(1.55rem,3vw,2.2rem); font-weight: 700; line-height: 1.1; flex-shrink: 0; }
.admin-widget__stat-breakdown {
  display: flex; flex-direction: column; gap: .18rem;
  flex: 1; min-width: 0;
}
.admin-widget__stat-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: .65rem;
  font-size: .74rem; min-width: 7.5rem;
}
.admin-widget__stat-row-label { color: var(--text-muted); }
.admin-widget__stat-row-value { color: var(--heading); font-weight: 700; font-size: .92rem; }
.admin-widget__stat-row--warn .admin-widget__stat-row-value { color: #d97706; }
.admin-widget__stat-row--green .admin-widget__stat-row-value { color: #16a34a; }
.admin-widget__stat--green .admin-widget__stat-value { color: #16a34a; }
.admin-widget__stat--blue  .admin-widget__stat-value { color: #2563eb; }
.admin-widget__stat--red   .admin-widget__stat-value { color: #dc2626; }
.admin-widget__stat--warn  .admin-widget__stat-value { color: #d97706; }
/* Listas */
.admin-widget__list-title { font-weight: 700; font-size: .92rem; color: var(--heading); margin: 0 0 .65rem; }
.admin-widget__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.admin-widget__list li { font-size: .88rem; display: flex; align-items: center; gap: .45rem; }
.admin-widget__online-dot { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; flex-shrink: 0; }
.admin-widget__empty { color: var(--text-muted); font-size: .88rem; margin: 0; }
/* Barras (top-products) */
.admin-widget__bars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.admin-widget__bars li { display: grid; grid-template-columns: minmax(0,1fr) 120px 2.5rem; align-items: center; gap: .5rem; font-size: .85rem; }
.admin-widget__bar-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-widget__bar-track { background: var(--border); border-radius: 99px; height: 8px; overflow: hidden; }
.admin-widget__bar-fill { height: 100%; background: var(--brand); border-radius: 99px; transition: width .4s; }
.admin-widget__bar-qty { text-align: right; color: var(--text-muted); }
.panel-card { background:#fff; border:1px solid var(--border); border-radius:20px; padding:1.25rem; box-shadow:var(--shadow); }
.panel-card h2, .panel-card h3 { margin:0 0 .75rem; color:var(--heading); font-weight:700; }
.panel-card h2 { font-size:clamp(1.22rem,2.65vw,1.48rem); line-height:1.25; }
.panel-card__header-row { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.panel-list { list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.panel-list li { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--border); }
.panel-list li:last-child { border-bottom:0; }
.panel-list span { color:var(--text-muted); }
.table-wrap { overflow-x:auto; }
.front-table { width:100%; border-collapse:collapse; min-width:620px; }
.front-table th, .front-table td { padding:.85rem; border-bottom:1px solid var(--border); text-align:left; }
.front-table th { color:var(--heading); font-size:.86rem; }
.client-conta-page .client-conta-balances-table {
  table-layout: fixed;
  min-width: 520px;
}
.client-conta-page .client-conta-balances-table th:nth-child(1),
.client-conta-page .client-conta-balances-table td:nth-child(1) { width: 46%; }
.client-conta-page .client-conta-balances-table th:nth-child(2),
.client-conta-page .client-conta-balances-table td:nth-child(2) { width: 34%; }
.client-conta-page .client-conta-balances-table th:nth-child(3),
.client-conta-page .client-conta-balances-table td:nth-child(3) { width: 20%; white-space: nowrap; }
.client-conta-page .client-conta-balances-table .client-conta-section-row td {
  padding-top: 1.1rem;
  padding-bottom: .35rem;
  border-bottom: 0;
  color: var(--text-muted);
  font-size: .86rem;
}
.client-conta-page .client-conta-balances-table .client-conta-section-row:first-child td {
  padding-top: .35rem;
}
.status-pill { display:inline-flex; align-items:center; width:max-content; border-radius:999px; padding:.25rem .6rem; background:rgba(59, 130, 246, 0.12); color:#1d4ed8; font-weight:700; font-size:.78rem; }
.status-pill--action,
.status-pill--danger { background:rgba(239, 68, 68, 0.12); color:#b91c1c; }
.status-pill--passive,
.status-pill--info,
.status-pill--warn,
.status-pill--neutral { background:rgba(59, 130, 246, 0.12); color:#1d4ed8; }
.status-pill--done,
.status-pill--ok { background:#dcfce7; color:#166534; }
.chart-bars { display:flex; align-items:end; gap:.7rem; min-height:220px; padding:1rem 0 .25rem; }
.chart-bars span { flex:1; min-width:28px; border-radius:999px 999px 8px 8px; background:linear-gradient(180deg,var(--royal),var(--accent)); box-shadow:0 14px 28px rgba(var(--brand-rgb),.18); }
.chart-line { min-height:220px; border-radius:18px; background:linear-gradient(180deg,rgba(var(--brand-rgb),.08),transparent), repeating-linear-gradient(to right, transparent 0 12%, rgba(var(--brand-rgb),.08) 12% calc(12% + 1px)), repeating-linear-gradient(to bottom, transparent 0 24%, rgba(var(--brand-rgb),.08) 24% calc(24% + 1px)); position:relative; overflow:hidden; }
.chart-line::after { content:""; position:absolute; inset:35% 7% 22%; border-radius:50%; border-top:5px solid var(--brand); transform:skew(-18deg); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.form-grid label, .field-stack label { display:grid; gap:.35rem; font-weight:600; color:var(--heading); }
.form-grid input, .field-stack input,
.form-grid textarea, .field-stack textarea {
  width:100%;
  border:1px solid var(--field-border,#8b96a8);
  border-radius:var(--field-radius);
  padding:var(--field-py) var(--field-px);
  font:inherit;
  background:#fff;
}
/* Campo e-mail composto: parte local + @domínio (um único “input”) */
.hosting-email-compose {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: var(--touch-target);
  border: 1px solid var(--field-border, #8b96a8);
  border-radius: var(--field-radius);
  background: #fff;
  overflow: hidden;
  box-sizing: border-box;
}
.hosting-email-compose:focus-within {
  outline: 2px solid rgba(var(--brand-rgb, 36, 17, 220), 0.35);
  outline-offset: 1px;
  border-color: var(--brand, #2411dc);
}
.field-stack .hosting-email-compose input[name="email"],
.hosting-email-compose input[name="email"] {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  height: auto;
  min-height: var(--touch-target);
}
.field-stack .hosting-email-compose input[name="email"]:focus,
.hosting-email-compose input[name="email"]:focus {
  outline: none;
}
.hosting-email-compose__suffix {
  flex: 0 1 auto;
  display: inline-flex;
  align-items: center;
  max-width: 55%;
  padding: 0 var(--field-px);
  border-left: 1px solid var(--field-border, #8b96a8);
  background: var(--brand-soft, #f1f3f7);
  color: var(--text-muted, #64748b);
  font-weight: 600;
  font-size: 0.95em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  user-select: none;
}
.theme-dark .hosting-email-compose {
  background: var(--panel, #1e2430);
  border-color: var(--border, #334155);
}
.theme-dark .hosting-email-compose__suffix {
  background: rgba(255, 255, 255, 0.06);
  border-left-color: var(--border, #334155);
  color: var(--text-muted, #94a3b8);
}
.form-grid input, .field-stack input,
.form-grid select, .field-stack select {
  box-sizing:border-box;
  min-height: var(--touch-target);
  height: var(--touch-target);
  line-height: 1.35;
}
.form-grid textarea, .field-stack textarea { min-height:130px; resize:vertical; }
.form-grid select, .field-stack select {
  width:100%;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-color:#fff;
  color:var(--heading);
  border:1px solid var(--field-border,#8b96a8);
  border-radius:var(--field-radius);
  padding-left:var(--field-px);
  padding-top:var(--field-py);
  padding-bottom:var(--field-py);
  font:inherit;
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right var(--field-px) center;
  padding-right: calc(var(--field-px) * 2 + 0.85rem);
  background-size: 0.65rem auto;
}
.form-grid .full { grid-column:1/-1; }
.field-stack { display:grid; gap:1rem; }
.admin-muted { color: var(--text-muted); margin: 0 0 .75rem; }
.admin-direct-link-row { display: flex; flex-direction: column; gap: .4rem; padding: .75rem; background: var(--surface-2, #f8fafc); border-radius: 8px; border: 1px dashed var(--border, #e2e8f0); }
.admin-direct-link-copy { display: flex; gap: .5rem; align-items: center; }
.admin-direct-link-input { flex: 1; min-width: 0; font-size: .82rem; font-family: 'Courier New', monospace; background: var(--surface-1, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 6px; padding: .35rem .6rem; color: var(--text-2); }

/* ── Slider duplo de período de exibição do cronograma ── */
.field-stack__group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.field-stack__label {
  font-weight: 500;
  font-size: 0.9rem;
}
.scheduling-period-wrap {
  margin-top: 0.5rem;
  user-select: none;
  -webkit-user-select: none;
}

/* Badges de horário selecionado */
.scheduling-period-values {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.scheduling-period-badge {
  background: var(--primary, #3b82f6);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.22rem 0.6rem;
  border-radius: 5px;
  min-width: 3.8rem;
  text-align: center;
}
.scheduling-period-arrow {
  color: var(--text-muted, #9ca3af);
}

/* Trilho */
.scheduling-period-track {
  position: relative;
  height: 6px;
  background: var(--border-color, #d1d5db);
  border-radius: 3px;
  margin: 10px 0 0;      /* espaço vertical para os handles saírem do trilho */
}
.scheduling-period-fill {
  position: absolute;
  top: 0;
  height: 100%;
  background: var(--primary, #3b82f6);
  border-radius: 3px;
  pointer-events: none;
}

/* Handles draggáveis */
.scheduling-period-thumb {
  position: absolute;
  top: 50%;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--primary, #3b82f6);
  border: 2px solid #fff;
  box-shadow: 0 1px 5px rgba(0,0,0,0.3);
  transform: translate(-50%, -50%);
  cursor: ew-resize;
  z-index: 2;
  transition: transform 0.08s, box-shadow 0.08s;
  touch-action: none;
}
.scheduling-period-thumb:hover,
.scheduling-period-thumb:focus {
  transform: translate(-50%, -50%) scale(1.18);
  box-shadow: 0 0 0 4px rgba(59,130,246,0.25), 0 1px 5px rgba(0,0,0,0.3);
  outline: none;
}
.scheduling-period-thumb:active {
  transform: translate(-50%, -50%) scale(1.25);
}

/* Marcações horárias */
.scheduling-period-ticks {
  position: relative;
  height: 1.6rem;
  margin-top: 6px;
}
.scheduling-period-tick {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}
.scheduling-period-tick::before {
  content: "";
  display: block;
  width: 1px;
  height: 4px;
  background: var(--border-color, #d1d5db);
}
.scheduling-period-tick--major::before {
  height: 7px;
  background: var(--text-muted, #9ca3af);
}
.scheduling-period-tick span {
  font-size: 0.62rem;
  color: var(--text-muted, #9ca3af);
  margin-top: 2px;
  white-space: nowrap;
}
.admin-settings-accordion {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--border-strong, #c8d0dc);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}
.admin-settings-accordion + .admin-settings-accordion { margin-top: .75rem; }
.admin-settings-accordion summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: var(--touch-target);
  padding: .85rem 1rem;
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  color: var(--heading);
  background: #f4f7fb;
  border: 1px solid transparent;
}
.admin-settings-accordion__title {
  flex: 1 1 auto;
  min-width: 0;
}
.admin-settings-accordion__header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  margin-right: 0.35rem;
}
.admin-module-switch {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: var(--heading);
}
.admin-module-switch:disabled {
  opacity: 0.55;
  cursor: wait;
}
.admin-settings-accordion--module > summary {
  cursor: default;
}
.admin-settings-accordion--module > summary::after {
  display: none;
}
.admin-module-switch__track {
  position: relative;
  width: 2.75rem;
  height: 1.5rem;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background 0.2s ease;
  flex-shrink: 0;
}
.admin-module-switch.is-on .admin-module-switch__track {
  background: var(--brand);
}
.admin-module-switch__thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.18);
  transition: transform 0.2s ease;
}
.admin-module-switch.is-on .admin-module-switch__thumb {
  transform: translateX(1.25rem);
}
@media (max-width: 520px) {
  .admin-settings-accordion summary {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .admin-settings-accordion__header-actions {
    width: 100%;
    justify-content: flex-end;
    margin-right: 0;
    padding-top: 0.15rem;
  }
}
.admin-settings-accordion summary::-webkit-details-marker { display: none; }
.admin-settings-accordion summary::after {
  content: "";
  width: .55rem;
  height: .55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
}
.admin-settings-accordion[open] {
  border-color: var(--brand);
  box-shadow: 0 0 0 1px rgba(51, 86, 255, .08);
}
.admin-settings-accordion[open] summary {
  border-bottom-color: var(--border);
  background: #eef3ff;
}
.admin-settings-accordion[open] summary::after { transform: rotate(-135deg); }
.admin-settings-accordion__body { padding: 1rem; }
.admin-settings-accordion__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.25rem;
}
.admin-settings-accordion__actions [data-admin-module-message] {
  flex: 1 1 100%;
  margin: 0;
}
.admin-settings-accordion__body > label { min-width: 0; }
.admin-settings-accordion__body input,
.admin-settings-accordion__body select,
.admin-settings-accordion__body textarea { min-width: 0; }

/* Webhook Asaas no módulo de integrações */
.admin-asaas-webhook-fieldset {
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin-top: 1rem;
}
.admin-asaas-webhook-fieldset legend {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0 0.4rem;
  color: var(--text-muted, #64748b);
}
.admin-asaas-webhook-fieldset .admin-asaas-webhook-actions {
  justify-content: flex-start;
  margin-top: 0.5rem;
}
.admin-asaas-webhook-fieldset [data-asaas-webhook-message] {
  display: block;
  margin-top: 0.5rem;
}

/* Seção de tipos de notificação WhatsApp */
.admin-wa-notifications-fieldset {
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin-top: 1rem;
}
.admin-wa-notifications-fieldset legend {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0 0.4rem;
  color: var(--text-muted, #64748b);
}
.admin-wa-notifications-fieldset [data-wa-templates-hint] {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
}

/* Grupo de notificações por destinatário (cliente / admin) */
.admin-wa-notif-group {
  margin-top: 0.75rem;
}
.admin-wa-notif-group + .admin-wa-notif-group {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, #e2e8f0);
}
.admin-wa-notif-group__title {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted, #64748b);
  margin: 0 0 0.5rem;
}

/* Linha de notificação: select + painel de mapeamento */
.wa-notif-row {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border, #e2e8f0);
  margin-bottom: 0.5rem;
}
.wa-notif-row:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

/* Painel de mapeamento de variáveis */
.wa-notif-mapping-panel {
  margin-top: 0.5rem;
  border-left: 3px solid var(--brand, #0026ff);
  padding-left: 1rem;
  animation: wa-panel-in 0.18s ease;
}
@keyframes wa-panel-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.wa-notif-mapping-panel__inner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* Preview do texto do template */
.wa-notif-template-preview {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.wa-notif-template-preview__label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted, #64748b);
}
.wa-notif-template-preview__text {
  background: var(--surface-alt, #f1f5f9);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px;
  padding: 0.55rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text, #0f172a);
  white-space: pre-wrap;
  word-break: break-word;
}
.theme-dark .wa-notif-template-preview__text {
  background: rgba(255,255,255,0.06);
  color: #e2e8f0;
}
.wa-notif-placeholder-highlight {
  color: var(--brand, #0026ff);
  font-weight: 600;
}
.theme-dark .wa-notif-placeholder-highlight {
  color: #7da4ff;
}

/* Variáveis disponíveis (chips) */
.wa-notif-vars-section {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.wa-notif-vars-label {
  font-size: 0.78rem;
  color: var(--text-secondary, #475569);
}
.wa-notif-var-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.wa-notif-var-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: var(--brand, #0026ff);
  color: #fff;
  font-size: 0.78rem;
  font-family: monospace;
  font-weight: 500;
  cursor: grab;
  user-select: none;
  transition: opacity 0.15s, transform 0.12s;
}
.wa-notif-var-chip:hover {
  opacity: 0.85;
  transform: scale(1.04);
}
.wa-notif-var-chip.is-dragging {
  opacity: 0.45;
}

/* Linhas de mapeamento {{N}} = [campo] */
.wa-notif-map-rows {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.wa-notif-map-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.wa-notif-map-placeholder {
  font-family: monospace;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--brand, #0026ff);
  min-width: 2.5rem;
  text-align: right;
  flex-shrink: 0;
}
.theme-dark .wa-notif-map-placeholder {
  color: #7da4ff;
}
.wa-notif-map-equals {
  color: var(--text-muted, #64748b);
  font-size: 0.9rem;
  flex-shrink: 0;
}
.wa-notif-map-val-select {
  flex: 1 1 160px;
  min-width: 0;
  max-width: 260px;
}
.wa-notif-map-val-select.drag-over {
  outline: 2px dashed var(--brand, #0026ff);
  outline-offset: 2px;
}
.wa-notif-map-custom-input {
  flex: 1 1 140px;
  min-width: 0;
  max-width: 220px;
  font-size: 0.875rem;
}

/* Ações e feedback do painel de mapeamento */
.wa-notif-map-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.wa-notif-map-msg {
  font-size: 0.82rem;
}

@media (max-width: 767px) {
  .admin-settings-accordion,
  .admin-settings-accordion summary,
  .admin-settings-accordion__body {
    width: 100%;
    max-width: 100%;
  }
}
.theme-dark .admin-app,
.theme-dark .panel-card,
.theme-dark .dashboard-card,
.theme-dark .admin-widget,
.theme-dark .admin-sidebar.is-open,
.theme-dark .admin-sidebar,
.theme-dark .admin-app__bar,
.theme-dark .admin-user-menu,
.theme-dark .front-table,
.theme-dark .admin-settings-accordion,
.theme-dark .admin-modal__panel {
  background: var(--white);
  color: var(--text);
}
.theme-dark .admin-sidebar__nav {
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}
.theme-dark .admin-sidebar__nav::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
}
.theme-dark .admin-modal__panel {
  border-color: var(--border);
}
.theme-dark .admin-modal__close {
  background: #111827;
  color: var(--heading);
  border-color: #334155;
}
.theme-dark .admin-modal__photo-frame {
  border-color: #334155;
  background: rgba(15, 23, 42, 0.45);
}
.theme-dark .admin-icon-btn {
  background: #111827;
  color: var(--heading);
  border-color: #334155;
}
.theme-dark .admin-icon-btn:hover {
  background: #172554;
  color: var(--brand);
  border-color: rgba(var(--brand-rgb), 0.65);
}
.theme-dark .admin-icon-btn--danger {
  color: #fca5a5;
}
.theme-dark .admin-icon-btn--danger:hover {
  background: rgba(127, 29, 29, 0.45);
  border-color: #f87171;
  color: #fecaca;
}
.theme-dark .admin-sidebar {
  background: linear-gradient(180deg, rgba(var(--brand-rgb), 0.16) 0%, #0f172a 48%, #0b1120 100%);
}
.theme-dark .admin-sidebar.is-open,
.theme-dark .admin-app__bar,
.theme-dark .admin-user-menu {
  background: rgba(15, 23, 42, .96);
}
.theme-dark .panel-card,
.theme-dark .dashboard-card,
.theme-dark .admin-settings-accordion {
  border-color: var(--border);
}
.theme-dark .form-grid input,
.theme-dark .form-grid textarea,
.theme-dark .field-stack input,
.theme-dark .field-stack textarea,
.theme-dark .admin-actions input {
  background: #0b1120;
  color: var(--text);
  border-color: #334155;
}
.theme-dark .form-grid select,
.theme-dark .field-stack select,
.theme-dark .admin-actions select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #0b1120;
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right var(--field-px) center;
  background-size: 0.65rem auto;
  padding-right: calc(var(--field-px) * 2 + 0.85rem);
  color: var(--text);
  border-color: #334155;
}
.theme-dark .admin-menu-toggle,
.theme-dark .admin-profile-toggle,
.theme-dark .admin-app__icon-btn,
.theme-dark .admin-app__back {
  background: #111827;
  color: var(--heading);
  border-color: #334155;
}
.theme-dark .admin-settings-accordion summary {
  background: #111827;
}
.theme-dark .admin-module-switch__track {
  background: #475569;
}
.theme-dark .admin-module-switch.is-on .admin-module-switch__track {
  background: var(--brand);
}
.theme-dark .admin-settings-accordion[open] summary {
  background: #172554;
}
.theme-dark .front-table th,
.theme-dark .front-table td {
  border-color: var(--border);
}

/* ── Tabela de parcelas/sessões (admin-installments-table) — modo escuro ── */
.theme-dark .admin-installments-table thead th {
  background: var(--surface-muted);
  color: var(--text-muted);
  border-color: var(--border);
}
.theme-dark .admin-installments-table tbody td {
  border-color: var(--border);
  color: var(--text);
}
.theme-dark .admin-installments-table tfoot td {
  border-color: var(--border);
  color: var(--text);
}
.theme-dark .admin-installments-table tfoot td:first-child,
.theme-dark .admin-installments-table tfoot td:nth-child(2) {
  color: var(--text-muted);
}

/* ── Blocos de plano de pagamento — modo escuro ── */
.theme-dark .admin-payment-plan-block {
  border-color: var(--border);
}
.theme-dark .admin-payment-plan-header {
  background: var(--surface-muted);
  border-color: var(--border);
}
.theme-dark .admin-payment-plan-label {
  color: var(--text);
}
.theme-dark .admin-payment-plan-total {
  background: rgba(var(--brand-rgb), 0.15);
  border-color: rgba(var(--brand-rgb), 0.35);
  color: #93c5fd;
}

/* ── Campo de contra-proposta — modo escuro ── */
.theme-dark .client-pedido-notes-field textarea {
  background: var(--navy);
  color: var(--text);
  border-color: var(--navy-light);
}
.theme-dark .client-pedido-notes-field textarea::placeholder {
  color: var(--text-muted);
}

/* ── Tabela de itens do pedido — modo escuro ── */
.theme-dark .client-pedido-page .client-pedido-detail__items .client-compras-items-table tbody tr:nth-child(even),
.theme-dark .admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table tbody tr:nth-child(even) {
  background: rgba(255, 255, 255, 0.03);
}

.admin-actions { display:flex; gap:.75rem; align-items:end; flex-wrap:wrap; margin-bottom:1rem; }
.admin-actions input,
.admin-actions select {
  box-sizing: border-box;
  min-height: var(--touch-target);
  height: var(--touch-target);
  border: 1px solid var(--field-border,#8b96a8);
  border-radius: var(--field-radius);
  padding: var(--field-py) var(--field-px);
  font: inherit;
  line-height: 1.35;
}
.admin-actions input {
  flex: 1 1 260px;
  background:#fff;
  color: var(--heading);
}
.admin-actions select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #fff;
  color: var(--heading);
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right var(--field-px) center;
  background-size: 0.65rem auto;
  padding-right: calc(var(--field-px) * 2 + 0.85rem);
}
.admin-sidebar__group { margin:.9rem .75rem .25rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; }
.admin-sidebar__group-toggle {
  display: grid;
  grid-template-columns: 18px 1fr 16px;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  padding: 0.45rem 0.65rem;
  margin: 0.6rem 0 0.05rem;
  background: transparent;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-family: inherit;
  text-align: left;
}
.admin-sidebar__group-toggle:hover {
  color: var(--text);
  background: rgba(0, 0, 0, 0.04);
}
.admin-sidebar__toggle-arrow {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.admin-sidebar__group-toggle[aria-expanded="true"] .admin-sidebar__toggle-arrow {
  transform: rotate(180deg);
}
.admin-sidebar__submenu {
  display: grid;
  gap: 0.1rem;
}
.admin-sidebar__submenu[hidden] {
  display: none;
}
.admin-sidebar__submenu .admin-sidebar__link {
  padding-left: 2rem;
}
.admin-sidebar__group-toggle .admin-sidebar__icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.file-drop { display:grid; place-items:center; min-height:180px; border:2px dashed rgba(var(--brand-rgb),.35); border-radius:20px; background:#f8faff; color:var(--text-muted); text-align:center; padding:1rem; }
.chat-box { display:grid; gap:.75rem; max-height:420px; overflow:auto; padding-right:.25rem; }
.chat-msg { max-width:82%; padding:.85rem 1rem; border-radius:18px; background:#f0f2f7; }
.chat-msg--me { justify-self:end; background:var(--brand); color:#fff; }
.backup-card { display:grid; gap:.65rem; }
.backup-card code { display:block; padding:.75rem; border-radius:12px; background:#0a0e27; color:#fff; overflow:auto; }
.admin-sidebar__link.is-active, .client-nav a.is-active { background:var(--brand-soft); color:var(--brand); }
.site-home-nav__logo img, .hero__brand img, .brand img, .admin-sidebar__brand img, .admin-app__hub-brand img, .admin-app__desktop-brand img, .admin-app__mobile-brand img, .client-app__desktop-brand img, .client-app__mobile-brand img, .client-nav img { object-fit:contain; }
.public-login { min-height:100vh; display:grid; align-items:center; padding:6rem 0 3rem; }
.public-login__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); gap:2rem; align-items:center; }
.public-login__panel { background:#fff; border:1px solid var(--border); border-radius:24px; padding:clamp(1.25rem,4vw,2rem); box-shadow:var(--shadow); }
@media (max-width: 980px) { .dashboard-grid, .panel-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); } .panel-grid, .public-login__grid { grid-template-columns:1fr; } .form-grid { grid-template-columns:1fr; } .admin-widget--wide { grid-column: span 1; } .admin-widget--full-width { grid-column: 1/-1; } }
@media (max-width: 640px) { .dashboard-grid, .panel-grid--three { grid-template-columns:1fr; } .chart-bars { min-height:160px; } }

.chart-bar--45{height:45%}.chart-bar--52{height:52%}.chart-bar--60{height:60%}.chart-bar--65{height:65%}.chart-bar--70{height:70%}.chart-bar--72{height:72%}.chart-bar--78{height:78%}.chart-bar--80{height:80%}.chart-bar--88{height:88%}
.client-nav__logo{margin-bottom:1.25rem}.client-nav__user{font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.client-nav__plan{opacity:.85}.chat-form{margin-top:1rem}

/* Ajustes das telas copiadas da referência antiga para HTML estático. */
.admin-client-section { margin-bottom: 2rem; }
.admin-client-section h2,
.stack-gap h2,
.client-top h1 { color: var(--heading); }
.admin-client-section h2,
.stack-gap h2 { font-size: 1.1rem; margin: 0 0 1rem; }
.admin-client-form { max-width: 40rem; }
.admin-muted,
.client-muted { color: var(--text-muted); font-size: .9rem; }
.client-lead { max-width: 60ch; }
.client-list { padding-left: 1.2rem; }

/* Perfil do cliente */
.user-profile-form {
  max-width: 44rem;
}
.user-profile-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 720px) {
  .user-profile-grid {
    grid-template-columns: 1fr;
  }
}
.user-profile-photo-block {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.user-profile-photo-block > span {
  font-weight: 600;
  color: var(--heading);
}
.user-profile-photo-frame {
  position: relative;
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--border);
  background: var(--white, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
}
.user-profile-photo-edit {
  position: absolute;
  right: 0.15rem;
  bottom: 0.15rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  background: var(--white, #fff);
  z-index: 2;
}
.user-profile-photo-edit[hidden] {
  display: none !important;
}
.user-profile-crop-stage {
  position: relative;
  width: min(280px, 100%);
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--border);
  touch-action: none;
  cursor: grab;
}
.user-profile-crop-stage:active {
  cursor: grabbing;
}
.user-profile-crop-canvas {
  display: block;
  width: 100%;
  height: auto;
}
.user-profile-crop-zoom {
  display: grid;
  gap: 0.35rem;
  max-width: 280px;
  margin: 0 auto;
}
.user-profile-photo-modal .admin-modal__panel {
  max-width: min(420px, 96vw);
}
.user-profile-photo-choice-modal .admin-modal__panel {
  max-width: min(380px, 96vw);
}
.user-profile-photo-choice-actions {
  display: grid;
  gap: 0.55rem;
}
.user-profile-photo-img:not([hidden]) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.user-profile-photo-placeholder {
  margin: 0;
  padding: 0.5rem;
  text-align: center;
  font-size: 0.82rem;
}
.user-profile-readonly {
  font-size: 0.88rem;
}
.user-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.user-profile-readonly-banner {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(254, 243, 199, 0.35);
  max-width: 44rem;
}
.user-profile-readonly-banner[hidden] {
  display: none !important;
}
.admin-page .user-profile-form {
  max-width: none;
}
.admin-page .user-profile-top h1 {
  font-size: 1.35rem;
  margin: 0 0 0.35rem;
}
.calendar-nav { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: 1rem; }
.calendar-nav strong { color: var(--heading); }
.feed-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .75rem; }
.dashboard-grid--admin-copy { margin-top: 1.5rem; }
.invoice-table a { color: var(--brand); font-weight: 700; }

.plan-card__desc { margin: 0 0 1rem; font-size: .9rem; color: var(--text-muted); }
.plan-card__period { font-size: .95rem; font-weight: 500; color: var(--text-muted); }

/* Home: verificação de cobertura */
.home-coverage-card {
  max-width: 42rem;
  padding: 1.25rem 1.5rem;
  border-radius: var(--radius, 12px);
  border: 1px solid var(--border);
  background: var(--surface-elevated, rgba(127, 127, 127, 0.06));
}
.home-coverage-status {
  margin: 0 0 1rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.home-coverage-status--error {
  color: var(--danger, #b91c1c);
}

/* Gestores em modal (cobertura / slots) */
.admin-modal.admin-modal--manager {
  max-width: min(96vw, 52rem);
  width: 100%;
  border: none;
  padding: 0;
  background: transparent;
}
.admin-modal.admin-modal--manager .admin-modal__panel {
  max-width: min(96vw, 52rem);
  max-height: min(92vh, 900px);
  overflow: auto;
  width: 100%;
}
.admin-manager-modal__toolbar {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}
.admin-manager-modal__body {
  min-height: 8rem;
}
.admin-manager-modal__section-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--heading);
}
.admin-modal--manager .admin-tabs {
  margin-top: 0.25rem;
}
.admin-modal--manager .admin-tabs__panel > .admin-manager-modal__section {
  padding-top: 1rem;
}

/* Admin: área de cobertura — mapa dentro do modal (Google Maps) */
.admin-modal.admin-modal--coverage {
  max-width: min(96vw, 56rem);
}
.admin-modal.admin-modal--coverage .admin-modal__panel {
  max-height: min(94vh, 880px);
}
.admin-coverage-map {
  width: 100%;
  min-height: 320px;
  height: clamp(260px, 42vh, 480px);
  border-radius: calc(var(--radius, 12px) - 4px);
  border: 1px solid var(--border);
  background: var(--surface-elevated, rgba(127, 127, 127, 0.08));
}
.admin-coverage-geocode-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.admin-coverage-geocode-row input[type="text"] {
  flex: 1;
  min-width: 12rem;
}
.admin-coverage-actions {
  margin-top: 0.5rem;
}

.admin-coverage-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.admin-coverage-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius, 12px) - 2px);
  background: var(--white, #fff);
}

.admin-coverage-card.is-inactive {
  opacity: 0.78;
  background: var(--surface-elevated, rgba(127, 127, 127, 0.04));
}

.admin-coverage-card__main {
  min-width: 0;
  flex: 1 1 auto;
}

.admin-coverage-card__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin-bottom: 0.25rem;
}

.admin-coverage-card__title-row strong {
  font-size: 1rem;
  color: var(--heading, #0f172a);
}

.admin-coverage-card__desc {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--text, #334155);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.admin-coverage-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  font-size: 0.8rem;
  color: var(--text-muted, #64748b);
}

.admin-coverage-card__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}

@media (max-width: 560px) {
  .admin-coverage-card {
    flex-direction: column;
  }

  .admin-coverage-card__actions {
    align-self: flex-end;
  }
}

/* ---- Notificações (toasts + sino) — não usar para mensagens de formulário ---- */
.client-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--white);
}

.dizpare-notify-root {
  position: relative;
  display: flex;
  align-items: center;
}

.dizpare-notify {
  position: relative;
}

.admin-mode-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0.35rem 0.65rem 0.35rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: var(--field-radius, 10px);
  background: var(--white, #fff);
  color: var(--heading, #0f172a);
  cursor: pointer;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.admin-mode-toggle[hidden],
.admin-sidebar__nav[hidden],
.admin-sidebar__nav[data-panel-nav][hidden] {
  display: none !important;
}
body.admin-static .client-cart-toggle {
  display: none !important;
}
.admin-mode-toggle:hover {
  border-color: var(--brand, #2563eb);
  color: var(--brand, #2563eb);
}
.admin-mode-toggle__track {
  position: relative;
  display: inline-flex;
  width: 2.1rem;
  height: 1.2rem;
  flex: 0 0 auto;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background 0.15s ease;
}
.admin-mode-toggle__thumb {
  position: absolute;
  top: 0.12rem;
  left: 0.12rem;
  width: 0.96rem;
  height: 0.96rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
  transition: transform 0.15s ease;
}
.admin-mode-toggle.is-on {
  border-color: color-mix(in srgb, var(--brand, #2563eb) 45%, var(--border));
  background: color-mix(in srgb, var(--brand, #2563eb) 8%, #fff);
}
.admin-mode-toggle.is-on .admin-mode-toggle__track {
  background: var(--brand, #2563eb);
}
.admin-mode-toggle.is-on .admin-mode-toggle__thumb {
  transform: translateX(0.9rem);
}
.admin-mode-toggle__label {
  max-width: 9.5rem;
}
.theme-dark .admin-mode-toggle {
  background: var(--panel, #1e2430);
  border-color: var(--border, #334155);
  color: var(--heading, #e2e8f0);
}
.theme-dark .admin-mode-toggle.is-on {
  background: color-mix(in srgb, var(--brand, #3b82f6) 18%, transparent);
}
.theme-dark .admin-mode-toggle__track {
  background: #475569;
}

/* No mobile o toggle fica no topo do menu lateral (não na barra) */
.admin-sidebar__mode-wrap {
  display: none;
}

@media (max-width: 900px) {
  .admin-app__bar .admin-mode-toggle__label {
    display: none;
  }
  .admin-app__bar .admin-mode-toggle {
    width: 44px;
    min-width: 44px;
    padding: 0;
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .admin-app__bar .admin-mode-toggle {
    display: none !important;
  }
  .admin-sidebar__mode-wrap {
    display: block;
    flex-shrink: 0;
    padding: 0.35rem 0.5rem 0.65rem;
    margin-bottom: 0.15rem;
    border-bottom: 1px solid var(--border);
  }
  .admin-sidebar__mode-wrap .admin-mode-toggle {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 0.45rem 0.75rem 0.45rem 0.55rem;
    justify-content: flex-start;
    gap: 0.55rem;
  }
  .admin-sidebar__mode-wrap .admin-mode-toggle__label {
    display: inline;
    max-width: none;
  }
}

.dizpare-notify-toggle {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--field-radius, 10px);
  background: var(--white, #fff);
  color: var(--heading, #0f172a);
  cursor: pointer;
}

.dizpare-notify-toggle:hover {
  border-color: var(--brand, #2563eb);
  color: var(--brand, #2563eb);
}

.dizpare-notify-toggle__badge {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.2rem;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
}

.dizpare-notify-toggle__badge[hidden] {
  display: none !important;
}

.dizpare-notify-panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  z-index: 1200;
  width: min(92vw, 22rem);
  max-height: min(70vh, 28rem);
  display: none;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: var(--radius, 12px);
  background: var(--white, #fff);
  box-shadow: var(--shadow, 0 12px 40px rgba(15, 23, 42, 0.14));
  overflow: hidden;
}

.dizpare-notify.is-open .dizpare-notify-panel {
  display: flex;
}

.dizpare-notify-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid var(--border);
}

.dizpare-notify-panel__head h2 {
  margin: 0;
  font-size: 0.95rem;
}

.dizpare-notify-panel__actions {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.dizpare-notify-panel__btn {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.72rem;
  padding: 0.2rem 0.55rem;
  cursor: pointer;
}

.dizpare-notify-panel__btn:hover {
  color: var(--heading);
  border-color: var(--text-muted);
}

.dizpare-notify-panel__btn--danger:hover {
  color: #b91c1c;
  border-color: rgba(239, 68, 68, 0.45);
}

.dizpare-notify-panel__list {
  overflow: auto;
  padding: 0.35rem;
}

.dizpare-notify-empty {
  margin: 0.85rem;
  color: var(--text-muted);
  font-size: 0.88rem;
}

.dizpare-notify-item {
  padding: 0.75rem 0.85rem 0.75rem 0.7rem;
  border-radius: calc(var(--radius, 12px) - 4px);
  border: 1px solid var(--border);
  border-left-width: 5px;
  cursor: pointer;
  background: var(--white, #fff);
}

.dizpare-notify-item:hover {
  filter: brightness(0.98);
}

.dizpare-notify-item.is-unread {
  box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.12);
}

.dizpare-notify-item__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.dizpare-notify-item__head strong {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.dizpare-notify-item__head time {
  font-size: 0.72rem;
  color: var(--text-muted);
  white-space: nowrap;
  font-weight: 500;
}

.dizpare-notify-item__text {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.45;
}

.dizpare-notify-item--success {
  border-left-color: #16a34a;
  border-color: #86efac;
  background: #f0fdf4;
}

.dizpare-notify-item--success .dizpare-notify-item__head strong,
.dizpare-notify-item--success .dizpare-notify-item__text {
  color: #15803d;
}

.dizpare-notify-item--error {
  border-left-color: #dc2626;
  border-color: #fca5a5;
  background: #fef2f2;
}

.dizpare-notify-item--error .dizpare-notify-item__head strong,
.dizpare-notify-item--error .dizpare-notify-item__text {
  color: #b91c1c;
}

.dizpare-notify-item--warn {
  border-left-color: #d97706;
  border-color: #fcd34d;
  background: #fffbeb;
}

.dizpare-notify-item--warn .dizpare-notify-item__head strong,
.dizpare-notify-item--warn .dizpare-notify-item__text {
  color: #b45309;
}

.dizpare-notify-item--info {
  border-left-color: #2563eb;
  border-color: #93c5fd;
  background: #eff6ff;
}

.dizpare-notify-item--info .dizpare-notify-item__head strong,
.dizpare-notify-item--info .dizpare-notify-item__text {
  color: #1d4ed8;
}

.dizpare-toast-host {
  position: fixed;
  top: calc(env(safe-area-inset-top, 0px) + 0.85rem);
  right: calc(env(safe-area-inset-right, 0px) + 0.85rem);
  z-index: 10050;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: min(92vw, 26rem);
  pointer-events: none;
}

.dizpare-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.95rem 1rem 0.95rem 0.85rem;
  border-radius: var(--radius, 12px);
  border: 1px solid var(--border);
  border-left-width: 5px;
  background: var(--white, #fff);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.2);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.dizpare-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.dizpare-toast.is-leaving {
  opacity: 0;
  transform: translateY(-8px);
}

.dizpare-toast--success {
  border-left-color: #16a34a;
  border-color: #86efac;
  background: linear-gradient(105deg, #dcfce7 0%, #f0fdf4 28%, #f0fdf4 100%);
}

.dizpare-toast--success .dizpare-toast__title {
  color: #15803d;
}

.dizpare-toast--success .dizpare-toast__text {
  color: #166534;
}

.dizpare-toast--error {
  border-left-color: #dc2626;
  border-color: #fca5a5;
  background: linear-gradient(105deg, #fee2e2 0%, #fef2f2 28%, #fef2f2 100%);
}

.dizpare-toast--error .dizpare-toast__title {
  color: #b91c1c;
}

.dizpare-toast--error .dizpare-toast__text {
  color: #991b1b;
}

.dizpare-toast--warn {
  border-left-color: #d97706;
  border-color: #fcd34d;
  background: linear-gradient(105deg, #fef3c7 0%, #fffbeb 28%, #fffbeb 100%);
}

.dizpare-toast--warn .dizpare-toast__title {
  color: #b45309;
}

.dizpare-toast--warn .dizpare-toast__text {
  color: #92400e;
}

.dizpare-toast--info {
  border-left-color: #2563eb;
  border-color: #93c5fd;
  background: linear-gradient(105deg, #dbeafe 0%, #eff6ff 28%, #eff6ff 100%);
}

.dizpare-toast--info .dizpare-toast__title {
  color: #1d4ed8;
}

.dizpare-toast--info .dizpare-toast__text {
  color: #1e40af;
}

.dizpare-toast__body {
  flex: 1;
  min-width: 0;
}

.dizpare-toast__title {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
  letter-spacing: 0.01em;
}

.dizpare-toast__text {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.45;
}

.dizpare-toast__close {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  color: var(--text-muted);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.dizpare-toast__close:hover {
  background: rgba(15, 23, 42, 0.12);
  color: var(--heading);
}

.theme-dark .dizpare-notify-panel,
.theme-dark .dizpare-notify-toggle {
  background: var(--surface, #111827);
  color: var(--heading, #f8fafc);
}

.theme-dark .dizpare-toast {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

.theme-dark .dizpare-toast--success {
  border-color: #166534;
  border-left-color: #4ade80;
  background: linear-gradient(105deg, rgba(34, 197, 94, 0.28) 0%, rgba(34, 197, 94, 0.14) 100%);
}

.theme-dark .dizpare-toast--success .dizpare-toast__title {
  color: #86efac;
}

.theme-dark .dizpare-toast--success .dizpare-toast__text {
  color: #bbf7d0;
}

.theme-dark .dizpare-toast--error {
  border-color: #991b1b;
  border-left-color: #f87171;
  background: linear-gradient(105deg, rgba(239, 68, 68, 0.28) 0%, rgba(239, 68, 68, 0.14) 100%);
}

.theme-dark .dizpare-toast--error .dizpare-toast__title {
  color: #fca5a5;
}

.theme-dark .dizpare-toast--error .dizpare-toast__text {
  color: #fecaca;
}

.theme-dark .dizpare-toast--warn {
  border-color: #92400e;
  border-left-color: #fbbf24;
  background: linear-gradient(105deg, rgba(245, 158, 11, 0.28) 0%, rgba(245, 158, 11, 0.14) 100%);
}

.theme-dark .dizpare-toast--warn .dizpare-toast__title {
  color: #fcd34d;
}

.theme-dark .dizpare-toast--warn .dizpare-toast__text {
  color: #fde68a;
}

.theme-dark .dizpare-toast--info {
  border-color: #1e40af;
  border-left-color: #60a5fa;
  background: linear-gradient(105deg, rgba(37, 99, 235, 0.28) 0%, rgba(37, 99, 235, 0.14) 100%);
}

.theme-dark .dizpare-toast--info .dizpare-toast__title {
  color: #93c5fd;
}

.theme-dark .dizpare-toast--info .dizpare-toast__text {
  color: #bfdbfe;
}

.theme-dark .dizpare-notify-item--success {
  border-color: #166534;
  border-left-color: #4ade80;
  background: rgba(34, 197, 94, 0.12);
}

.theme-dark .dizpare-notify-item--success .dizpare-notify-item__head strong,
.theme-dark .dizpare-notify-item--success .dizpare-notify-item__text {
  color: #bbf7d0;
}

.theme-dark .dizpare-notify-item--error {
  border-color: #991b1b;
  border-left-color: #f87171;
  background: rgba(239, 68, 68, 0.12);
}

.theme-dark .dizpare-notify-item--error .dizpare-notify-item__head strong,
.theme-dark .dizpare-notify-item--error .dizpare-notify-item__text {
  color: #fecaca;
}

.theme-dark .dizpare-notify-item--warn {
  border-color: #92400e;
  border-left-color: #fbbf24;
  background: rgba(245, 158, 11, 0.12);
}

.theme-dark .dizpare-notify-item--warn .dizpare-notify-item__head strong,
.theme-dark .dizpare-notify-item--warn .dizpare-notify-item__text {
  color: #fde68a;
}

.theme-dark .dizpare-notify-item--info {
  border-color: #1e40af;
  border-left-color: #60a5fa;
  background: rgba(37, 99, 235, 0.12);
}

.theme-dark .dizpare-notify-item--info .dizpare-notify-item__head strong,
.theme-dark .dizpare-notify-item--info .dizpare-notify-item__text {
  color: #bfdbfe;
}

@media (max-width: 640px) {
  .dizpare-toast-host {
    left: 0.75rem;
    right: 0.75rem;
    width: auto;
  }
}

/* Segurança e privacidade (conta) */
.user-security-page {
  max-width: 52rem;
}
.user-security-top h1 {
  margin: 0 0 1rem;
  font-size: 1.35rem;
}
.user-security-section {
  margin-bottom: 1rem;
}
.user-security-section__title {
  margin: 0 0 0.65rem;
  font-size: 1.05rem;
}
.user-security-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.35rem;
}
.user-security-section__head .user-security-section__title {
  margin: 0;
}
.user-security-actions {
  margin-top: 0.35rem;
}
.user-security-devices {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.user-security-device {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius, 12px) - 2px);
  background: var(--white, #fff);
}
.user-security-device.is-current {
  border-color: rgba(37, 99, 235, 0.45);
  background: rgba(37, 99, 235, 0.04);
}
.user-security-device.is-revoked {
  opacity: 0.72;
}
.user-security-device__main {
  flex: 1;
  min-width: 0;
}
.user-security-device__main p {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
}
.user-security-device__badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  background: var(--brand-soft, #eef2ff);
  color: var(--brand, #2563eb);
  vertical-align: middle;
}
.user-security-device__badge--muted {
  background: rgba(127, 127, 127, 0.12);
  color: var(--text-muted);
}
.user-security-otp-modal .admin-modal__panel {
  max-width: 24rem;
}
[data-security-otp-message] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
}

/* Painel cliente — conteúdo (shell reutiliza `.admin-app`) */
.client-grupos-panel {
  display: grid;
  gap: 1rem;
}
/* ── Visão Geral do cliente — novo grid T2 ────────────────────────────────── */
.client-overview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}
/* Calendário ocupa a largura total */
.client-overview-calendar {
  grid-column: 1 / -1;
}
/* Cards de resumo (visão geral do cliente): desktop até 6; tablet 2; mobile 1 */
.client-overview-cards,
.client-overview-cards.dashboard-grid,
[data-overview-cards] {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .85rem;
  align-content: start;
}
@media (max-width: 1100px) {
  .client-overview-cards,
  .client-overview-cards.dashboard-grid,
  [data-overview-cards] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .client-overview-cards,
  .client-overview-cards.dashboard-grid,
  [data-overview-cards] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .client-overview-cards,
  .client-overview-cards.dashboard-grid,
  [data-overview-cards] {
    grid-template-columns: 1fr;
  }
}
[data-overview-pending-orders],
[data-overview-pending-quotes],
[data-overview-available],
[data-overview-bookings],
[data-overview-pending-quote-orders],
.client-overview-bookings {
  grid-column: 1 / -1;
}
/* Calendário overview: reutiliza `.cronograma-month-view` (ver cronograma) */
.client-overview-calendar {
  max-height: none;
  overflow: hidden;
}
/* Header + grid alinhados na mesma largura (evita setas nas bordas e calendário estreito no centro) */
.client-overview-calendar__inner {
  width: 100%;
  max-width: 52rem;
  margin: 0 auto;
}
.client-overview-calendar .cronograma-month-view__header {
  width: 100%;
  margin-bottom: 0.75rem;
}
.client-overview-calendar .calendar,
.client-overview-calendar .cronograma-month-grid {
  width: 100%;
  max-width: none;
  margin: 0;
  gap: 0.3rem;
}
.client-overview-calendar__footer {
  margin: 0.85rem 0 0;
}
@media (max-width: 767px) {
  .client-overview-calendar.panel-card {
    padding: 1rem 0.85rem;
  }
  .client-overview-calendar .calendar,
  .client-overview-calendar .cronograma-month-grid {
    gap: 0.2rem;
  }
  .client-overview-calendar .cal-day {
    min-height: 2.35rem;
    padding: 0.12rem 0.05rem;
  }
  .client-overview-calendar .cal-head {
    font-size: 0.68rem;
    padding: 0.2rem 0;
  }
}
/* Calendário expandido genérico (legado; cronograma-month-view sobrescreve) */
.calendar--expanded .cal-day {
  min-height: 3.25rem;
  font-size: 1rem;
}
.calendar--expanded .cal-head {
  font-size: .8rem;
}
/* Listas da visão geral: scroll horizontal quando necessário */
[data-overview-pending-quote-orders],
[data-overview-pending-orders],
[data-overview-pending-quotes],
[data-overview-bookings],
[data-overview-available] {
  overflow: hidden;
}
[data-overview-pending-quote-orders-list],
[data-overview-pending-orders-list],
[data-overview-pending-quotes-list],
[data-overview-bookings-list],
[data-overview-available-list] {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
[data-overview-pending-quote-orders-list] .front-table,
[data-overview-pending-orders-list] .front-table,
[data-overview-pending-quotes-list] .front-table,
[data-overview-available-list] .front-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
/* Tabela de agendamentos: colunas proporcionais para o Status não ficar espremido */
[data-overview-bookings-list] .front-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
[data-overview-bookings-list] .front-table th:nth-child(1),
[data-overview-bookings-list] .front-table td:nth-child(1) { width: 32%; }
[data-overview-bookings-list] .front-table th:nth-child(2),
[data-overview-bookings-list] .front-table td:nth-child(2) { width: 22%; }
[data-overview-bookings-list] .front-table th:nth-child(3),
[data-overview-bookings-list] .front-table td:nth-child(3) { width: 46%; }
[data-overview-pending-quote-orders-list] .front-table td,
[data-overview-pending-orders-list] .front-table td,
[data-overview-pending-quotes-list] .front-table td,
[data-overview-bookings-list] .front-table td,
[data-overview-available-list] .front-table td,
[data-overview-pending-quote-orders-list] .front-table th,
[data-overview-pending-orders-list] .front-table th,
[data-overview-pending-quotes-list] .front-table th,
[data-overview-bookings-list] .front-table th,
[data-overview-available-list] .front-table th {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* A coluna de Status (última coluna) não deve truncar com ellipsis —
   o badge precisa ser legível no mobile */
[data-overview-bookings-list] .front-table td:last-child,
[data-overview-bookings-list] .front-table th:last-child {
  overflow: visible;
  white-space: normal;
  text-overflow: clip;
  word-break: break-word;
}
/* Padding compacto em telas estreitas para as tabelas do painel do cliente */
@media (max-width: 540px) {
  [data-overview-bookings-list] .front-table td,
  [data-overview-bookings-list] .front-table th,
  .client-pedido-bookings-table td,
  .client-pedido-bookings-table th {
    padding: .5rem .55rem;
    font-size: .82rem;
  }
}

/* Legado — mantido para compatibilidade com outras views que usem .client-overview */
.client-overview {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}
.client-overview__cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.85rem;
}
.client-stat-card {
  padding: 1rem 1.1rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--border);
}
.client-stat-card__label {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}
.client-stat-card__value {
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--heading);
}
.client-stat-card__hint {
  font-size: 0.8rem;
  margin-top: 0.35rem;
}
.client-stat-card__hint a {
  color: var(--brand);
}
.client-overview__rail {
  padding: 1rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--border);
}
.client-overview__rail h2 {
  font-size: 1rem;
  margin: 0 0 0.75rem;
}
.client-posts-feed {
  max-width: none;
  margin: 1rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.client-post-card.panel-card {
  overflow: hidden;
  padding: 0;
}
.client-post-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem 0;
}
.client-post-card__author {
  font-weight: 600;
  font-size: 0.92rem;
}
.client-post-card__date {
  font-size: 0.78rem;
  color: var(--text-muted);
}
.client-post-card__media img,
.client-post-card__media video {
  display: block;
  width: 100%;
  max-height: 480px;
  object-fit: contain;
  background: #0a0e27;
}
.client-post-card__body {
  padding: 0.75rem 1rem;
}
.client-post-card__status {
  display: inline-block;
  font-size: 0.75rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  margin-bottom: 0.5rem;
}
.client-post-card__status--pendente,
.client-post-card__status--aguardando_aprovacao {
  background: rgba(234, 179, 8, 0.15);
  color: #a16207;
}
.client-post-card__status--aprovado,
.client-post-card__status--concluido {
  background: rgba(34, 197, 94, 0.12);
  color: #15803d;
}
.client-post-card__status--postado {
  background: rgba(var(--brand-rgb), 0.12);
  color: var(--brand);
}
.client-post-card__status--na_fila,
.client-post-card__status--planejamento,
.client-post-card__status--producao,
.client-post-card__status--edicao {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}
.client-cronograma-section-title {
  margin: 0 0 1rem;
  font-size: 1.05rem;
}
.client-cronograma-table .client-cronograma-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.client-cronograma-status {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
}
.client-cronograma-status--action,
.client-cronograma-status--aguardando_aprovacao,
.client-cronograma-status--pendente {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}
.client-cronograma-status--passive,
.client-cronograma-status--na_fila,
.client-cronograma-status--planejamento,
.client-cronograma-status--producao,
.client-cronograma-status--edicao {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}
.client-cronograma-status--done,
.client-cronograma-status--concluido,
.client-cronograma-status--aprovado,
.client-cronograma-status--postado {
  background: rgba(34, 197, 94, 0.14);
  color: #15803d;
}
.client-post-card__comment-form {
  display: flex;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border);
}
.client-post-card__comment-form input {
  flex: 1;
  min-width: 0;
}
.client-post-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.5rem 1rem 0.85rem;
  border-top: 1px solid var(--border);
}
.client-post-card__comments {
  padding: 0 1rem 0.85rem;
  border-top: 1px solid var(--border);
}
.client-post-card__comments[hidden] {
  display: none;
}
.client-post-comment {
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.88rem;
}
.client-post-comment:last-child {
  border-bottom: none;
}
.client-post-comment__meta {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-bottom: 0.2rem;
}
.client-cart-toggle {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 999px;
  background: var(--white);
  color: var(--heading);
  cursor: pointer;
  flex-shrink: 0;
  text-decoration: none;
}
.client-cart-toggle svg {
  width: 22px;
  height: 22px;
}
.client-cart-toggle:hover {
  border-color: rgba(var(--brand-rgb), 0.45);
  color: var(--brand);
}
.client-cart-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  pointer-events: none;
}
.client-chat-toggle {
  position: relative;
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 999px;
  background: var(--white);
  color: var(--heading);
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
}
.client-chat-toggle svg {
  width: 22px;
  height: 22px;
}
.client-chat-toggle:hover {
  border-color: rgba(var(--brand-rgb), 0.45);
  color: var(--brand);
}
.client-chat-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: #e11d48;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  pointer-events: none;
}
body.client-chat-open {
  overflow: hidden;
}
body.client-cart-open {
  overflow: hidden;
}
.client-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 300;
  pointer-events: none;
}
.client-cart-drawer.is-open {
  pointer-events: auto;
}
.client-cart-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.client-cart-drawer.is-open .client-cart-drawer__backdrop {
  opacity: 1;
}
.client-cart-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(420px, 100%);
  height: 100%;
  background: var(--white);
  border-left: 1px solid var(--border);
  box-shadow: -8px 0 32px rgba(15, 23, 42, 0.12);
  transform: translateX(100%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
}
.client-cart-drawer.is-open .client-cart-drawer__panel {
  transform: translateX(0);
}
.client-cart-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--border);
}
.client-cart-drawer__head h2 {
  margin: 0;
  font-size: 1.05rem;
}
.client-cart-drawer__list {
  flex: 1;
  overflow-y: auto;
  margin: 0;
  padding: 1rem 1.1rem;
}
.client-cart-drawer__foot {
  padding: 1rem 1.1rem;
  border-top: 1px solid var(--border);
  background: var(--surface-muted, #fafafa);
}
.client-comprar-page {
  display: grid;
  gap: 1.5rem;
}
.client-comprar-packages-hero {
  min-width: 0;
  margin-inline: clamp(-0.5rem, -1.5vw, 0);
}
.client-comprar-packages-hero__slider {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.client-comprar-packages-hero__viewport {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  border-radius: calc(var(--radius) + 2px);
  container-type: inline-size;
}
.client-comprar-packages-hero__viewport::-webkit-scrollbar {
  display: none;
}
.client-comprar-packages-hero__track {
  display: flex;
  width: max-content;
}
.client-comprar-packages-hero__slide {
  flex: 0 0 100cqw;
  width: 100cqw;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.client-comprar-package-hero {
  position: relative;
  min-height: clamp(320px, 42vh, 460px);
  display: grid;
  align-items: stretch;
  overflow: hidden;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid rgba(var(--brand-rgb), 0.18);
  background: linear-gradient(135deg, rgba(var(--brand-rgb), 0.12) 0%, rgba(var(--brand-rgb), 0.04) 55%, #fff 100%);
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.2s;
}
.client-comprar-package-hero:hover {
  border-color: rgba(var(--brand-rgb), 0.35);
}
.client-comprar-package-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
  filter: blur(2px);
  opacity: 0.35;
}
.client-comprar-package-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.88) 42%, rgba(255, 255, 255, 0.55) 100%);
}
body.theme-dark .client-comprar-package-hero {
  background: linear-gradient(135deg, rgba(var(--brand-rgb), 0.22) 0%, rgba(var(--brand-rgb), 0.10) 55%, #0f172a 100%);
}
body.theme-dark .client-comprar-package-hero__overlay {
  background: linear-gradient(115deg, rgba(15, 23, 42, 0.97) 0%, rgba(15, 23, 42, 0.90) 42%, rgba(15, 23, 42, 0.55) 100%);
}
.client-comprar-package-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1.25rem;
  align-items: center;
  padding: clamp(1.25rem, 3vw, 2rem);
  min-height: inherit;
}
@media (min-width: 768px) {
  .client-comprar-package-hero__inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(1rem, 3vw, 2rem);
  }
}
.client-comprar-package-hero__copy {
  display: grid;
  gap: 0.75rem;
  align-content: center;
  min-width: 0;
}
.client-comprar-package-hero__eyebrow {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand);
}
.client-comprar-package-hero__copy h2 {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1.15;
  color: var(--heading);
}
.client-comprar-package-hero__lead {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-muted);
  max-width: 42ch;
}
.client-comprar-package-hero__list {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.25rem;
  font-size: 0.88rem;
  color: var(--heading);
}
.client-comprar-package-hero__price {
  margin: 0.15rem 0 0;
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  font-weight: 700;
  color: var(--brand);
}
.client-comprar-package-hero__media {
  display: none;
  min-width: 0;
}
@media (min-width: 768px) {
  .client-comprar-package-hero__media {
    display: block;
  }
}
.client-comprar-package-hero__media img {
  width: 100%;
  max-height: 280px;
  object-fit: cover;
  border-radius: calc(var(--radius) - 2px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}
.client-comprar-packages-hero__nav {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--brand-rgb), 0.25);
  border-radius: 999px;
  background: var(--white);
  color: var(--heading);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  transition: border-color 0.15s, color 0.15s;
}
.client-comprar-packages-hero__nav:hover:not(:disabled) {
  border-color: rgba(var(--brand-rgb), 0.45);
  color: var(--brand);
}
.client-comprar-packages-hero__nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.client-comprar-packages-hero__dots {
  display: flex;
  justify-content: center;
  gap: 0.45rem;
  margin-top: 0.75rem;
}
.client-comprar-packages-hero__dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(var(--brand-rgb), 0.22);
  cursor: pointer;
}
.client-comprar-packages-hero__dot.is-active {
  width: 22px;
  background: var(--brand);
}
.client-comprar-section-title {
  margin: 0;
  font-size: 1.05rem;
  color: var(--heading);
}
.client-comprar-services {
  min-width: 0;
}
.client-carrinho-layout {
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.75rem);
  align-items: start;
}
@media (min-width: 960px) {
  .client-carrinho-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 22rem);
  }
  .client-carrinho-summary {
    position: sticky;
    top: calc(72px + clamp(0.75rem, 2vw, 1.25rem));
  }
}
.client-carrinho-section-title {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
  color: var(--heading);
}
.client-carrinho-items {
  min-width: 0;
}
.client-carrinho-summary__lines {
  margin: 0 0 1rem;
  display: grid;
  gap: 0.55rem;
}
.client-carrinho-summary__line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.92rem;
}
.client-carrinho-summary__line dt {
  margin: 0;
  color: var(--text-muted);
  font-weight: 500;
}
.client-carrinho-summary__line dd {
  margin: 0;
  font-weight: 600;
  color: var(--heading);
  text-align: right;
}
.client-carrinho-summary__line--total {
  padding-top: 0.55rem;
  border-top: 1px solid var(--border);
  font-size: 1rem;
}
.client-carrinho-summary__line--total dd {
  color: var(--brand);
}
.client-carrinho-summary__note {
  margin: 0 0 0.85rem;
  font-size: 0.82rem;
}
.client-carrinho-summary__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

.client-invoice-pay-methods__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0;
}

.client-invoice-pay-body {
  margin-top: 0.75rem;
}

/* Bloco de código copiável (PIX / boleto) */
.pay-copy-block {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin: .5rem 0 .75rem;
  cursor: pointer;
  transition: border-color .15s;
}
.pay-copy-block:hover {
  border-color: var(--accent);
}
.pay-copy-block__label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--text-muted);
  padding: .35rem .75rem;
  background: var(--input-bg);
  border-bottom: 1px solid var(--border);
  margin: 0;
  user-select: none;
}
.pay-copy-block__row {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .75rem;
}
.pay-copy-block__code {
  flex: 1;
  font-family: monospace;
  font-size: .78rem;
  word-break: break-all;
  color: var(--text);
  user-select: all;
}
.pay-copy-block__btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem .65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card-bg);
  color: var(--accent);
  font-size: .78rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s, color .12s;
}
.pay-copy-block:hover .pay-copy-block__btn,
.pay-copy-block__btn:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.client-fatura-pay-hint {
  font-size: .82rem;
  color: var(--text-muted);
  background: var(--input-bg);
  border-left: 3px solid var(--accent);
  padding: .5rem .75rem;
  border-radius: 0 var(--radius) var(--radius) 0;
  margin-bottom: .75rem;
}

.client-invoice-card-form {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
}
.client-comprar-store {
  display: grid;
  gap: 1.5rem;
}
.client-comprar-services-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.client-comprar-services__item {
  min-width: 0;
  height: 100%;
}
@media (max-width: 1200px) {
  .client-comprar-services-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .client-comprar-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .client-comprar-services-grid {
    grid-template-columns: 1fr;
  }
}

/* Grid de pacotes normais (não-destaque) — 3 colunas */
.client-comprar-packages-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.client-comprar-packages__item {
  min-width: 0;
  height: 100%;
}
@media (max-width: 900px) {
  .client-comprar-packages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .client-comprar-packages-grid {
    grid-template-columns: 1fr;
  }
}

/* Eyebrow de categoria nos cards de pacote */
.client-compras-card__eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--brand);
}
.client-compras-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  min-height: 100%;
  text-decoration: none;
  color: inherit;
}
.client-compras-card--catalog {
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.client-compras-card--catalog:hover {
  border-color: rgba(var(--brand-rgb), 0.28);
  box-shadow: 0 8px 24px rgba(var(--brand-rgb), 0.1);
  transform: translateY(-2px);
}
body.theme-dark .client-compras-card--catalog {
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.3);
}
body.theme-dark .client-compras-card--catalog:hover {
  box-shadow: 0 8px 24px rgba(var(--brand-rgb), 0.18);
}
.client-compras-card--slide {
  min-height: 100%;
}
.client-compras-card__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--surface-muted, #f4f4f5);
}
.client-compras-card__img--placeholder {
  aspect-ratio: 4 / 3;
  width: 100%;
  flex-shrink: 0;
  background: var(--surface-muted, #eef0f4);
  display: flex;
  align-items: center;
  justify-content: center;
}

.client-compras-card__img--placeholder::before {
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  opacity: 0.35;
  background-color: var(--text-muted, #9ca3af);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}
.client-compras-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.85rem;
  flex: 1;
}
.client-compras-card__body h4 {
  margin: 0;
  font-size: 0.98rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* Descrição ocupa o espaço restante e ancora o preço no rodapé */
.client-compras-card__body > .admin-muted {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  flex: 1;
  margin: 0;
}
.client-compras-card__bullets {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.82rem;
  color: var(--text-muted);
  overflow: hidden;
  max-height: 4.2rem;
}
.client-compras-card__price {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border);
  font-weight: 600;
  color: var(--brand);
  font-size: 0.92rem;
}

/* ── Variação Destaque nos cards do catálogo (painel e site) ── */
.client-compras-card--featured {
  border-color: rgba(var(--brand-rgb), 0.4);
  box-shadow: 0 0 0 2px rgba(var(--brand-rgb), 0.1);
}

/* Badge "Destaque" — reutilizado em service-tile, plan-card e client-compras-card */
.catalog-featured-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.55rem;
  margin-bottom: 0.3rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: rgba(var(--brand-rgb), 0.1);
  color: var(--brand);
  border: 1px solid rgba(var(--brand-rgb), 0.3);
  border-radius: 999px;
  line-height: 1.4;
}

/* Variante para hero de pacote (fundo escuro — inverte para branco) */
.catalog-featured-badge--hero {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
  margin-bottom: 0.5rem;
}

.client-comprar-package-hero--featured {
  border-color: rgba(var(--brand-rgb), 0.5);
  box-shadow: 0 0 0 3px rgba(var(--brand-rgb), 0.12);
}

.client-compras-cart-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}
.client-compras-cart-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 2px);
  background: var(--surface-muted, #fafafa);
}
.client-compras-cart-item__info {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.client-compras-cart-item__info strong {
  font-size: 0.9rem;
}
.client-compras-cart-item__qty {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}
.client-compras-cart-item__qty span {
  min-width: 1.25rem;
  text-align: center;
  font-size: 0.9rem;
}
.client-compras-cart-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.client-compras-cart-actions .btn {
  flex: 1 1 auto;
}
.client-compras-cart-actions .btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}
.client-compras-msg--error {
  color: var(--danger, #c0392b);
}
.client-compras-table .admin-table-actions {
  width: 1%;
  white-space: nowrap;
}
.client-compras-badge-empresa {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.4;
  background: rgba(168, 85, 247, 0.12);
  color: #7c3aed;
  vertical-align: middle;
  margin-left: 0.3rem;
}
.client-compras-status {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
}
.client-compras-status--action,
.client-compras-status--wait {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}
.client-compras-status--passive,
.client-compras-status--sent {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}
.client-compras-status--done {
  background: rgba(34, 197, 94, 0.15);
  color: #166534;
}
.client-compras-items-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}
.client-compras-items-list li {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 2px);
}
.client-compras-items-table-wrap {
  margin: 0;
}
.client-compras-items-table {
  width: 100%;
  font-size: 0.88rem;
}
.client-compras-items-table th,
.client-compras-items-table td {
  padding: 0.55rem 0.65rem;
  vertical-align: top;
}
.client-compras-items-table th {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
  background: var(--surface-muted, #fafafa);
}
.client-compras-items-table tbody tr:nth-child(even) {
  background: rgba(0, 0, 0, 0.02);
}
.client-compras-items-table td:nth-child(2),
.client-compras-items-table th:nth-child(2) {
  width: 4rem;
  text-align: center;
  white-space: nowrap;
}
.client-compras-items-table td:nth-child(3),
.client-compras-items-table th:nth-child(3) {
  width: 8rem;
  text-align: right;
  white-space: nowrap;
}
.client-compras-pix-code {
  width: 100%;
  font-family: ui-monospace, monospace;
  font-size: 0.82rem;
}
.client-compras-pix-qr {
  max-width: 220px;
  height: auto;
  display: block;
}
.client-compras-accordion {
  display: grid;
  gap: 0.65rem;
}
.client-compras-accordion__head {
  display: none;
  grid-template-columns: 1fr 0.55fr 1fr auto;
  gap: 0.75rem;
  padding: 0 1.15rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
}
.client-compras-accordion--orders .client-compras-accordion__head {
  grid-template-columns: 1fr 0.45fr 0.75fr 1fr auto;
}
.client-compras-accordion__item {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
}
.client-compras-accordion__summary {
  cursor: pointer;
  list-style: none;
  padding: 0.85rem 1.15rem;
  font-weight: 500;
  color: var(--heading);
}
.client-compras-accordion__summary::-webkit-details-marker {
  display: none;
}
.client-compras-accordion__row {
  display: grid;
  grid-template-columns: 1fr 0.55fr 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding-right: 1.35rem;
  position: relative;
}
.client-compras-accordion--orders .client-compras-accordion__row {
  grid-template-columns: 1fr 0.45fr 0.75fr 1fr auto;
}
.client-compras-accordion__summary::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 0.5rem;
  height: 0.5rem;
  margin-top: -0.25rem;
  border-right: 2px solid var(--text-muted);
  border-bottom: 2px solid var(--text-muted);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.client-compras-accordion__item[open] .client-compras-accordion__summary::after {
  transform: rotate(-135deg);
  margin-top: -0.1rem;
}
.client-compras-accordion__cell {
  min-width: 0;
  font-size: 0.9rem;
}
.client-compras-accordion__actions {
  justify-self: end;
}
.client-compras-accordion__body {
  padding: 0 1.15rem 1.15rem;
  border-top: 1px solid var(--border);
  display: grid;
  gap: 1rem;
}
.client-compras-accordion__meta {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
}
.client-compras-accordion__notes {
  display: grid;
  gap: 0.65rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px dashed var(--border);
}
.client-compras-accordion__notes label {
  display: grid;
  gap: 0.35rem;
}
.client-compras-accordion__notes label span {
  font-size: 0.88rem;
  font-weight: 600;
}
.client-compras-accordion__notes-field {
  display: grid;
  gap: 0.35rem;
}
.client-compras-accordion__notes-status {
  margin: 0;
  min-height: 1.25rem;
  font-size: 0.82rem;
}
.client-compras-accordion__items {
  padding-top: 0.15rem;
}
.client-quote-payment-plans {
  display: grid;
  gap: 0.75rem;
}
.client-quote-payment-plans__heading {
  margin: 0;
  font-size: 0.92rem;
}
.client-quote-payment-plan {
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 2px);
  background: var(--surface-muted, #fafafa);
  padding: 0.85rem 1rem;
}
.client-quote-payment-plan__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.client-quote-payment-plan__body {
  flex: 1;
  min-width: 0;
}
.client-quote-payment-plan__title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--heading);
}
.client-quote-payment-plan__installments {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  color: var(--text);
  display: grid;
  gap: 0.2rem;
}
.client-quote-payment-plan__total {
  margin: 0.45rem 0 0;
  font-size: 0.84rem;
}
.client-quote-payment-plan__approve {
  flex-shrink: 0;
  align-self: center;
}
@media (max-width: 560px) {
  .client-quote-payment-plan__row {
    flex-direction: column;
    align-items: stretch;
  }
  .client-quote-payment-plan__approve {
    width: 100%;
  }
}
.client-pedido-page {
  display: grid;
  gap: 1rem;
}
.client-pedido-detail-card {
  display: grid;
  gap: 1.25rem;
}
.client-pedido-proposals-card {
  display: grid;
  gap: 1rem;
}
.client-pedido-proposals-card[hidden] {
  display: none !important;
}
.client-pedido-proposals-card .admin-block-title {
  margin: 0;
}
.client-pedido-proposals {
  display: grid;
  gap: 0.75rem;
}
.client-pedido-invoices-card {
  display: grid;
  gap: 1rem;
}
.client-pedido-invoices-card[hidden] {
  display: none !important;
}
.client-pedido-invoices-card .admin-block-title {
  margin: 0;
}
.client-pedido-invoices-table td {
  vertical-align: middle;
}
.client-pedido-invoices {
  display: grid;
  gap: 0.75rem;
}
/* ── Card de agendamentos do pedido ── */
.client-pedido-bookings-card {
  display: grid;
  gap: 1rem;
}
.client-pedido-bookings-card[hidden] {
  display: none !important;
}
.client-pedido-bookings-card .admin-block-title {
  margin: 0;
}
.client-pedido-bookings {
  display: grid;
  gap: 0.75rem;
}
.client-pedido-bookings-table {
  /* Cancela o min-width: 620px herdado de .front-table; o .table-wrap já faz scroll se necessário */
  min-width: 0;
}
.client-pedido-bookings-table td {
  vertical-align: middle;
}
.client-pedido-bookings-table td:last-child {
  text-align: right;
  white-space: nowrap;
}
.client-pedido-booking-dot {
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  margin-right: 0.4rem;
  vertical-align: middle;
  flex-shrink: 0;
}
.client-pedido-booking-date {
  display: block;        /* data/hora na linha abaixo do badge de status */
  font-size: 0.82rem;
  opacity: 0.7;
  margin-left: 0;
  margin-top: 0.15rem;
  white-space: nowrap;
}
/* Em telas muito estreitas, ocultar a coluna Duração (menos crítica) */
@media (max-width: 520px) {
  .client-pedido-bookings-table th:nth-child(2),
  .client-pedido-bookings-table td:nth-child(2) {
    display: none;
  }
}
.client-compras-status--neutral {
  background: color-mix(in srgb, var(--text, #111) 8%, transparent);
  color: var(--text, #111);
}
.client-fatura-page {
  display: grid;
  gap: 1rem;
}
.client-fatura-view {
  display: grid;
  gap: 1.25rem;
}
.client-fatura-sheet-wrap {
  overflow-x: auto;
  padding: 0.25rem 0;
}
.client-fatura-sheet {
  width: 100%;
  max-width: 210mm;
  min-height: 297mm;
  margin: 0 auto;
  padding: 16mm 14mm;
  background: #fff;
  color: #111;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.08);
}
.client-fatura-sheet__logo {
  display: block;
  max-height: 48px;
  max-width: 200px;
  width: auto;
  margin-bottom: 0.6rem;
  object-fit: contain;
}
.client-fatura-sheet__header h1 {
  margin: 0 0 0.25rem;
  font-size: 1.35rem;
  line-height: 1.2;
  color: inherit;
}
.client-fatura-sheet__subtitle {
  margin: 0;
  color: #555;
  font-size: 0.88rem;
}
.client-fatura-sheet__parties {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin: 1.25rem 0 1.5rem;
}
.client-fatura-sheet__party-title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #666;
}
.client-fatura-sheet__party p {
  margin: 0.15rem 0;
  font-size: 0.9rem;
  line-height: 1.45;
}
.client-fatura-sheet__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}
.client-fatura-sheet__meta dt {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  color: #666;
}
.client-fatura-sheet__meta dd {
  margin: 0.2rem 0 0;
  font-weight: 600;
}
.client-fatura-sheet__table-wrap {
  overflow-x: auto;
}
.client-fatura-sheet__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}
.client-fatura-sheet__table th,
.client-fatura-sheet__table td {
  border: 1px solid #ddd;
  padding: 0.55rem 0.6rem;
  text-align: left;
  vertical-align: top;
}
.client-fatura-sheet__table th {
  background: #f5f5f5;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.client-fatura-sheet__num {
  text-align: right;
  white-space: nowrap;
}
.client-fatura-sheet__totals-row td {
  font-weight: 700;
  background: #fafafa;
}
.client-fatura-sheet__total-due td {
  font-weight: 700;
  font-size: 1rem;
  background: #eef2ff;
}
.client-fatura-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: center;
  max-width: 210mm;
  margin: 0 auto;
}
.client-fatura-actions[hidden] {
  display: none !important;
}
@media (max-width: 720px) {
  .client-fatura-sheet__parties {
    grid-template-columns: 1fr;
  }
  .client-fatura-sheet__meta {
    grid-template-columns: 1fr;
  }
  .client-fatura-sheet {
    min-height: auto;
    padding: 1.25rem 1rem;
  }
}
@media print {
  .client-fatura-page .admin-page__intro-wrap,
  .client-fatura-actions,
  .admin-sidebar,
  .admin-topbar {
    display: none !important;
  }
  .client-fatura-sheet-wrap {
    overflow: visible;
    padding: 0;
  }
  .client-fatura-sheet {
    max-width: none;
    min-height: auto;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
  }
}
.theme-dark .client-fatura-sheet {
  background: #fff;
  color: #111;
}
.client-pedido-detail__summary {
  display: grid;
  gap: 0.35rem;
  padding-bottom: 0.5rem;
}
.client-pedido-detail__summary p {
  margin: 0;
}
.client-pedido-detail__coupon {
  margin-top: 0.85rem;
  padding: 0.75rem 1rem;
  border-left: 3px solid var(--accent, #3b82f6);
  background: color-mix(in srgb, var(--accent, #3b82f6) 8%, transparent);
  border-radius: 0 6px 6px 0;
}
.client-pedido-detail__coupon .admin-block-title {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.client-pedido-coupon-code {
  font-size: 1rem;
  font-family: monospace;
  letter-spacing: 0.05em;
}
.client-pedido-coupon-price {
  color: var(--accent, #3b82f6);
  font-weight: 600;
}
.client-pedido-detail__notes {
  padding-top: 0.85rem;
}
.client-pedido-detail__items {
  padding-top: 0.15rem;
}
.client-pedido-detail__items .client-compras-items-table-wrap {
  margin: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table,
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table {
  min-width: 0;
  width: 100%;
  font-size: 0.88rem;
  border-collapse: collapse;
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table th,
.client-pedido-page .client-pedido-detail__items .client-compras-items-table td,
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table th,
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table td {
  padding: 0.55rem 0.65rem;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
  text-align: left;
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table th,
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table th {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
  background: var(--surface-muted, #fafafa);
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table td:nth-child(2),
.client-pedido-page .client-pedido-detail__items .client-compras-items-table th:nth-child(2),
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table td:nth-child(2),
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table th:nth-child(2) {
  width: 4rem;
  text-align: center;
  white-space: nowrap;
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table td:nth-child(3),
.client-pedido-page .client-pedido-detail__items .client-compras-items-table th:nth-child(3),
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table td:nth-child(3),
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table th:nth-child(3) {
  width: 8rem;
  text-align: right;
  white-space: nowrap;
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table tbody tr:nth-child(even),
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table tbody tr:nth-child(even) {
  background: rgba(0, 0, 0, 0.02);
}
.client-pedido-page .client-pedido-detail__items .client-compras-items-table tbody tr:last-child td,
.admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table tbody tr:last-child td {
  border-bottom: none;
}
.client-pedido-detail__includes {
  padding-top: 0.85rem;
}
.client-pedido-detail__total-row {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 0.65rem;
  padding-top: 0.65rem;
  margin-top: 0.35rem;
}
.client-pedido-detail__total-label {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--heading);
}
.client-pedido-detail__total-value {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--heading);
  white-space: nowrap;
}
.client-pedido-page .client-compras-items-list li {
  border: none;
  padding: 0.35rem 0;
  border-radius: 0;
}
.client-pedido-detail__meta {
  margin: 0.5rem 0 0;
}
.client-pedido-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 1rem;
}
.client-pedido-cancel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.25rem;
}
.admin-pedido-page-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.admin-pedido-page-header__text {
  flex: 1;
  min-width: 0;
}
.admin-pedido-page-header__actions,
.admin-pedido-page-header [data-admin-order-actions] {
  flex-shrink: 0;
}
.admin-order-create-mode {
  display: grid;
  gap: 0.45rem;
}
.admin-order-create-mode__label {
  font-weight: 600;
  color: var(--heading);
  font-size: 0.92rem;
}
.admin-mode-toggle {
  display: inline-flex;
  border: 1px solid var(--border);
  border-radius: 999px;
  overflow: hidden;
  background: var(--surface-muted, #f4f4f5);
  width: fit-content;
  max-width: 100%;
}
.admin-mode-toggle__btn {
  appearance: none;
  border: none;
  background: transparent;
  color: var(--text-muted, #5c5c5c);
  font: inherit;
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.55rem 1.15rem;
  cursor: pointer;
  min-width: 7.5rem;
  transition: background 0.15s ease, color 0.15s ease;
}
.admin-mode-toggle__btn:hover {
  color: var(--heading);
}
.admin-mode-toggle__btn.is-active {
  background: var(--brand, #0026ff);
  color: #fff;
}
.admin-order-create-grid {
  gap: 0.85rem;
}
.admin-order-create-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
}
.admin-order-create-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: start;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}
.admin-order-create-item:last-child {
  border-bottom: none;
}
.admin-order-create-item__body {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
  width: 100%;
}
.admin-order-create-item__main,
.admin-order-create-item__main--full {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  width: 100%;
}
.admin-order-create-item__main span,
.admin-order-create-item__qty span,
.admin-order-create-item__price span {
  font-size: 0.88rem;
  color: var(--text-muted, #5c5c5c);
}
.admin-order-create-item__main input,
.admin-order-create-item__qty input,
.admin-order-create-item__price input {
  width: 100%;
  box-sizing: border-box;
}
.admin-order-create-item__row {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: end;
}
.admin-order-create-item__row--custom {
  grid-template-columns: 5.5rem minmax(0, 1fr) minmax(8rem, 11rem);
}
.admin-order-create-item__qty,
.admin-order-create-item__price {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
@media (max-width: 640px) {
  .admin-order-create-item__row,
  .admin-order-create-item__row--custom {
    grid-template-columns: 1fr;
  }
}
.admin-order-create-plan-index {
  margin-top: 0.65rem;
}

/* Combobox com busca (cliente / produto / pacote) */
.admin-search-select {
  position: relative;
  width: 100%;
}
.admin-search-select__input {
  box-sizing: border-box;
  width: 100%;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--white, #fff);
  color: var(--heading);
  padding: 0.65rem 0.75rem;
  font-size: 1rem;
  line-height: 1.35;
  min-height: var(--touch-target, 44px);
}
.admin-search-select__input:focus {
  outline: 2px solid rgba(var(--brand-rgb, 0, 38, 255), 0.45);
  outline-offset: 1px;
  border-color: rgba(var(--brand-rgb, 0, 38, 255), 0.45);
}
.admin-search-select__list {
  position: absolute;
  z-index: 40;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  margin: 0;
  padding: 0.35rem 0;
  list-style: none;
  max-height: 14rem;
  overflow: auto;
  background: var(--white, #fff);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
}
.admin-search-select__list[hidden] {
  display: none;
}
.admin-search-select__option {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  background: transparent;
  color: var(--heading);
  font: inherit;
  font-size: 0.92rem;
  padding: 0.55rem 0.75rem;
  cursor: pointer;
}
.admin-search-select__option:hover,
.admin-search-select__option.is-active {
  background: rgba(var(--brand-rgb, 0, 38, 255), 0.08);
}
.admin-search-select__empty {
  padding: 0.65rem 0.75rem;
  font-size: 0.88rem;
  color: var(--text-muted, #5c5c5c);
}
.admin-pedido-detail-card {
  display: grid;
  gap: 1.25rem;
}
.admin-pedido-meta {
  display: grid;
  gap: 0.55rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--border);
}
.admin-pedido-meta__row {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: baseline;
}
.admin-pedido-meta__row > span:first-child {
  color: var(--text-muted, #6b7280);
  font-size: 0.82rem;
  font-weight: 600;
}
.admin-pedido-meta__row > strong {
  font-weight: 600;
  color: var(--heading);
}
.admin-pedido-billing {
  display: grid;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface-muted, #f8fafc) 88%, transparent);
}
.admin-pedido-billing.is-recurring {
  border-color: color-mix(in srgb, var(--accent, #2563eb) 35%, var(--border));
  background: color-mix(in srgb, var(--accent, #2563eb) 6%, var(--surface, #fff));
}
.admin-pedido-billing__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.admin-pedido-billing__head .admin-block-title {
  margin: 0;
}
.admin-pedido-billing__hint {
  margin: 0.2rem 0 0;
  font-size: 0.8rem;
}
.admin-pedido-billing__status {
  margin: 0;
  min-height: 1.2em;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted, #6b7280);
  white-space: nowrap;
}
.admin-pedido-billing__status.is-error {
  color: #b91c1c;
}
.admin-pedido-billing__metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}
.admin-pedido-billing__metric {
  display: grid;
  gap: 0.25rem;
  padding: 0.7rem 0.8rem;
  border-radius: 10px;
  background: var(--surface, #fff);
  border: 1px solid var(--border);
}
.admin-pedido-billing__metric span {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-muted, #6b7280);
}
.admin-pedido-billing__metric strong {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--heading);
  line-height: 1.25;
}
.admin-pedido-billing__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
  align-items: start;
}
.admin-pedido-billing__fields label {
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 0.35rem;
  align-content: start;
  font-weight: 600;
  color: var(--heading);
}
.admin-pedido-billing__fields label > span {
  line-height: 1.3;
  min-height: 1.3em;
}
.admin-pedido-billing__fields label > input,
.admin-pedido-billing__fields label > select {
  width: 100%;
  max-width: 100%;
  min-height: 2.5rem;
  height: 2.5rem;
  box-sizing: border-box;
  align-self: start;
}
.admin-pedido-billing__fields label > small {
  font-weight: 500;
  line-height: 1.35;
}
.admin-pedido-billing__toggle {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface, #fff);
  cursor: pointer;
}
.admin-pedido-billing__toggle.is-on {
  border-color: color-mix(in srgb, var(--accent, #2563eb) 40%, var(--border));
}
.admin-pedido-billing__toggle-text {
  display: grid;
  gap: 0.15rem;
}
.admin-pedido-billing__toggle-text strong {
  font-size: 0.95rem;
}
.admin-pedido-billing__toggle-text small {
  font-weight: 500;
  color: var(--text-muted, #6b7280);
}
.admin-pedido-billing__switch {
  position: relative;
  display: inline-flex;
  width: 2.75rem;
  height: 1.55rem;
  flex: 0 0 auto;
}
.admin-pedido-billing__switch input {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
  z-index: 1;
}
.admin-pedido-billing__switch-ui {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background 0.15s ease;
  position: relative;
}
.admin-pedido-billing__switch-ui::after {
  content: "";
  position: absolute;
  top: 0.15rem;
  left: 0.15rem;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
  transition: transform 0.15s ease;
}
.admin-pedido-billing__switch input:checked + .admin-pedido-billing__switch-ui {
  background: var(--accent, #2563eb);
}
.admin-pedido-billing__switch input:checked + .admin-pedido-billing__switch-ui::after {
  transform: translateX(1.15rem);
}
.admin-pedido-billing__due-head {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 1.3em;
}
.admin-pedido-billing__due-head > span {
  line-height: 1.3;
}
.admin-pedido-billing__gen-due {
  width: 1.75rem;
  height: 1.75rem;
  min-width: 1.75rem;
  padding: 0;
  flex: 0 0 auto;
}
.admin-pedido-billing__gen-due .admin-icon-svg {
  width: 16px;
  height: 16px;
}
.admin-pedido-billing__due.is-disabled input {
  opacity: 0.65;
  cursor: not-allowed;
}
.admin-pedido-billing__due.is-disabled .admin-pedido-billing__gen-due {
  opacity: 0.5;
  pointer-events: none;
}
.admin-pedido-billing__readonly {
  display: grid;
  gap: 0.35rem;
}
.admin-pedido-billing__readonly p {
  margin: 0;
}
.theme-dark .admin-pedido-billing {
  background: color-mix(in srgb, #0f172a 55%, transparent);
}
.theme-dark .admin-pedido-billing.is-recurring {
  background: color-mix(in srgb, var(--accent, #3b82f6) 12%, transparent);
}
.theme-dark .admin-pedido-billing__metric,
.theme-dark .admin-pedido-billing__toggle {
  background: color-mix(in srgb, #111827 80%, transparent);
}
@media (max-width: 720px) {
  .admin-pedido-meta__row {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
  .admin-pedido-billing__metrics,
  .admin-pedido-billing__fields {
    grid-template-columns: 1fr;
  }
}
.admin-pedido-invoices-card {
  margin-top: 0.5rem;
}
.admin-pedido-propose-form.is-collapsed,
.admin-pedido-propose-form[hidden] {
  display: none !important;
}
.admin-page-actions {
  padding-top: 0.5rem;
}
.client-compras-accordion__meta-full {
  display: none;
}
@media (min-width: 641px) {
  .client-compras-accordion__head {
    display: grid;
  }
}
@media (max-width: 640px) {
  .client-compras-accordion__row,
  .client-compras-accordion--orders .client-compras-accordion__row {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "date status"
      "meta actions";
    gap: 0.45rem 0.75rem;
  }
  .client-compras-accordion--orders .client-compras-accordion__cell--value {
    display: none;
  }
  .client-compras-accordion--orders .client-compras-accordion__meta-short {
    display: none;
  }
  .client-compras-accordion--orders .client-compras-accordion__meta-full {
    display: inline;
  }
  .client-compras-accordion__cell--date {
    grid-area: date;
  }
  .client-compras-accordion__cell--status {
    grid-area: status;
    justify-self: end;
  }
  .client-compras-accordion__cell--meta {
    grid-area: meta;
    font-size: 0.84rem;
    color: var(--text-muted);
  }
  .client-compras-accordion__cell--actions {
    grid-area: actions;
    justify-self: end;
    align-self: center;
  }
}
.client-app__chat-rail {
  display: none;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  gap: 0.75rem;
  padding: 1rem 1.05rem 1.1rem;
  margin: 0;
  border-radius: 0;
  border-left: 1px solid var(--border);
}
.client-app__chat-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}
.client-app__chat-head h2 {
  margin: 0;
  font-size: 1rem;
}
.client-app__chat-head p {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
}
.client-app__chat-close {
  display: none;
  width: 34px;
  height: 34px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--white);
  color: var(--heading);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.client-app__chat-users {
  display: grid;
  gap: 0.55rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 2px);
  background: var(--surface-muted, #fafafa);
}
.client-app__chat-users-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
  max-height: 160px;
  overflow-y: auto;
}
.client-app__chat-user-btn {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid transparent;
  border-radius: calc(var(--radius) - 2px);
  background: var(--white);
  color: var(--heading);
  font: inherit;
  font-size: 0.84rem;
  text-align: left;
  cursor: pointer;
}
.client-app__chat-user-btn:hover,
.client-app__chat-user-btn.is-selected {
  border-color: rgba(var(--brand-rgb), 0.35);
  background: rgba(var(--brand-rgb), 0.08);
}
.client-app__chat-user-label {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}
.client-app__chat-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface-muted, #eef2f7);
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
  flex-shrink: 0;
  overflow: hidden;
}
.client-app__chat-user-avatar--img {
  padding: 0;
  background: transparent;
}
.client-app__chat-user-avatar--online {
  border: 2px solid #22c55e;
}
.client-app__chat-user-avatar--img.client-app__chat-user-avatar--online {
  border: 2px solid #22c55e;
}
.client-app__chat-user-avatar--img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.client-app__chat-users [data-client-chat-select-all].is-active {
  border-color: rgba(var(--brand-rgb), 0.35);
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.08);
}
.client-app__chat-msg--private {
  border: 1px solid rgba(var(--brand-rgb), 0.18);
}
.client-app__chat-msg--private.client-app__chat-msg--me {
  background: rgba(var(--brand-rgb), 0.16);
}
.client-app__chat-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
  margin: 0;
}
.client-app__chat-form input {
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  height: 40px;
  min-height: 40px;
  padding: 0 0.85rem;
  border: 1px solid var(--field-border, var(--border));
  border-radius: var(--field-radius);
  background: var(--white);
  color: var(--heading);
  font: inherit;
  font-size: 0.9375rem;
  line-height: 1.35;
}
.client-app__chat-form input::placeholder {
  color: var(--text-muted);
  opacity: 1;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.client-app__chat-send {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .15s, transform .1s;
}
.client-app__chat-send:hover {
  filter: brightness(1.05);
}
.client-app__chat-send:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
/* Ícone de aceno: visível só quando o campo está vazio (--wave ativo) */
.client-app__chat-send-wave {
  font-size: 1.15rem;
  line-height: 1;
  display: none;
}
.client-app__chat-send-arrow {
  display: block;
}
.client-app__chat-send--wave {
  background: var(--navy-mid, #e2e6ef);
  color: var(--text, #3d3d3d);
}
.client-app__chat-send--wave .client-app__chat-send-wave {
  display: block;
}
.client-app__chat-send--wave .client-app__chat-send-arrow {
  display: none;
}
.client-app__chat-send--wave:hover {
  animation: chat-wave .5s ease;
}
@keyframes chat-wave {
  0%   { transform: rotate(0deg); }
  20%  { transform: rotate(-20deg); }
  50%  { transform: rotate(20deg); }
  80%  { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
body.theme-dark .client-app__chat-send--wave {
  background: var(--navy-light, #253149);
  color: var(--text, #dbe4f0);
}
.client-app__chat-messages {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: grid;
  gap: 0.55rem;
  align-content: start;
  padding-right: 0.15rem;
}
.client-app__chat-msg {
  position: relative;
  max-width: 92%;
  padding: 0.65rem 0.8rem 1.05rem;
  border-radius: 14px;
  background: var(--surface-muted, #f0f2f7);
  font-size: 0.88rem;
  line-height: 1.4;
  display: grid;
  gap: 0.12rem;
}
.client-app__chat-msg--me {
  justify-self: end;
  background: rgba(var(--brand-rgb), 0.12);
}
.client-app__chat-msg__head {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-muted);
  line-height: 1.35;
}
.client-app__chat-msg__author {
  display: inline;
}
.client-app__chat-msg__to {
  font-size: 0.68rem;
  color: var(--text-muted);
  line-height: 1.35;
}
.client-app__chat-msg__body {
  display: block;
  padding-right: 1.1rem;
  word-break: break-word;
}
.client-app__chat-msg__timer {
  position: absolute;
  right: 0.5rem;
  bottom: 0.42rem;
  display: grid;
  place-items: center;
  width: 14px;
  height: 14px;
  color: var(--text-muted);
}
.client-app__chat-msg__timer-ring {
  display: block;
}
.client-app__chat-msg__timer-track {
  stroke: currentColor;
  opacity: 0.22;
}
.client-app__chat-msg__timer-progress {
  stroke: currentColor;
  opacity: 0.62;
  transition: stroke-dashoffset 0.2s linear;
}
.client-app__chat-msg__lock {
  flex-shrink: 0;
  opacity: 0.85;
}
@media (max-width: 1099px) {
  .client-app__chat-rail {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 70;
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    gap: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: var(--white);
    overflow: hidden;
  }
  body.client-chat-open .client-app__chat-rail {
    display: flex;
  }
  .client-app__chat-head {
    flex-shrink: 0;
    padding: max(0.75rem, env(safe-area-inset-top)) 1rem 0.75rem;
    border-bottom: 1px solid var(--border);
    background: var(--white);
  }
  .client-app__chat-users {
    flex-shrink: 0;
    margin: 0 1rem;
  }
  .client-app__chat-messages {
    flex: 1;
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 0.75rem 1rem;
  }
  .client-app__chat-form {
    flex-shrink: 0;
    margin: 0;
    padding: 0.75rem 1rem max(0.85rem, env(safe-area-inset-bottom));
    border-top: 1px solid var(--border);
    background: var(--white);
  }
  .client-app__chat-close {
    display: grid;
    place-items: center;
  }
}
@media (min-width: 1100px) {
  .client-app__chat-rail {
    display: flex;
    align-self: stretch;
    height: calc(100vh - 72px);
    max-height: none;
    position: sticky;
    top: 72px;
    min-width: 0;
  }
  .client-chat-toggle {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .client-app .admin-app__bar {
    grid-template-columns: 48px minmax(0, 1fr) auto;
  }
  .client-app .admin-app__bar-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: auto;
    width: auto;
  }

  /* Painel de notificações: posição fixa abaixo do header em mobile */
  .dizpare-notify-panel {
    position: fixed;
    top: 64px;
    right: 0;
    left: 0;
    width: 100%;
    max-height: calc(80dvh - 64px);
    border-radius: 0 0 var(--radius, 12px) var(--radius, 12px);
    border-top: 0;
    border-left: 0;
    border-right: 0;
  }

  .dizpare-notify-panel__list {
    max-height: calc(80dvh - 64px - 56px);
  }
}
.client-grupos-select {
  margin-bottom: 1rem;
  max-width: 28rem;
}
.client-grupos-select label {
  display: grid;
  gap: 0.35rem;
  font-size: 0.9rem;
}
.client-grupos-select select {
  width: 100%;
}
.client-grupos-panel {
  display: grid;
  gap: 1.25rem;
}
.client-grupos-section {
  padding: 1rem 1.1rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid var(--border);
}
.client-grupos-section h2 {
  font-size: 1rem;
  margin: 0 0 0.75rem;
}
.client-grupos-pending-details {
  display: grid;
  gap: 0.65rem;
  margin: 0.75rem 0 0;
}
.client-grupos-pending-details dt {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted, #666);
}
.client-grupos-pending-details dd {
  margin: 0.15rem 0 0;
  font-weight: 500;
}
.client-material-card {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border);
}
.client-material-card:last-child {
  border-bottom: none;
}
@media (min-width: 900px) {
  .client-overview {
    grid-template-columns: minmax(0, 1fr) 300px;
  }
  .client-overview__rail {
    position: sticky;
    top: 4.5rem;
  }
}
@media (max-width: 899px) {
  .client-overview__rail {
    order: 2;
  }
}

.admin-groups-layout {
  display: grid;
  gap: 1.25rem;
}

.client-grupos-page .client-grupos-select {
  max-width: 28rem;
}

.client-grupos-page,
.client-grupos-page .client-grupos-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.client-grupos-invites {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.client-grupos-invites[hidden] {
  display: none !important;
}
.client-grupos-invite-row {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 2px);
  background: var(--surface-muted, #fafafa);
}
.client-grupos-invite-row p {
  margin: 0;
}
.client-grupos-invite-row p + p {
  margin-top: 0.35rem;
}

.client-grupos-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 0.35rem;
}
.client-grupos-header .admin-screen-title {
  margin: 0;
}
.client-grupos-header .btn.is-disabled {
  opacity: 0.55;
  pointer-events: none;
  cursor: not-allowed;
}
.client-grupos-vincular-page {
  display: grid;
  gap: 1rem;
  min-width: 0;
}
.client-grupos-vincular-card[hidden],
.client-grupos-vincular-pending[hidden] {
  display: none !important;
}

/* CNPJ input com indicador de status inline */
.input-with-status {
  position: relative;
  display: flex;
  align-items: center;
}
.input-with-status input {
  padding-right: 2.4rem;
  width: 100%;
}
.input-status-icon {
  position: absolute;
  right: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.1rem;
  height: 1.1rem;
  pointer-events: none;
  flex-shrink: 0;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}
.input-status-icon--loading::after {
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  border: 2px solid var(--border);
  border-top-color: var(--primary, #1a6ff4);
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}
.input-status-icon--ok::after {
  content: "✓";
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--success, #22a05c);
  line-height: 1;
}
.input-status-icon--error::after {
  content: "✕";
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--danger, #d32f2f);
  line-height: 1;
}

.client-grupos-vincular-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.35rem;
}
.client-grupos-list-wrap {
  min-width: 0;
}

/* Lista de empresas — cards (desktop em colunas; mobile em 2 linhas + ações) */
.client-grupos-cards {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.client-grupos-cards__header {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.25fr) auto minmax(7.5rem, auto);
  gap: 0.75rem 1rem;
  align-items: center;
  padding: 0 0 0.65rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--heading);
}
.client-grupos-card {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.25fr) auto minmax(7.5rem, auto);
  gap: 0.75rem 1rem;
  align-items: center;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border);
  min-width: 0;
}
.client-grupos-card:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.client-grupos-card__name {
  min-width: 0;
  font-weight: 600;
  line-height: 1.35;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.client-grupos-card__name strong {
  font-weight: 600;
}
.client-grupos-card__cnpj {
  font-size: 0.9rem;
  color: var(--text-muted);
  white-space: nowrap;
}
.client-grupos-card__status {
  justify-self: start;
}
.client-grupos-card__actions {
  justify-self: start;
}
.client-grupos-card__actions:empty {
  display: none;
}
.client-grupos-card__note {
  grid-column: 1 / -1;
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
}

/* Listas compactas no mobile (pedidos, faturas, empresas) */
.client-faturas-table__mobile-meta {
  display: none;
}

@media (max-width: 720px) {
  .client-pedidos-page,
  .client-faturas-page,
  .client-grupos-page,
  .client-pedido-page {
    overflow-x: clip;
    min-width: 0;
  }

  .client-pedidos-page .panel-card,
  .client-faturas-page .panel-card,
  .client-grupos-page .client-grupos-list-wrap,
  .client-pedido-page .panel-card {
    padding: 0.85rem 0.9rem;
    min-width: 0;
    max-width: 100%;
  }

  .client-pedidos-page .table-wrap,
  .client-faturas-page .table-wrap,
  .client-grupos-page .table-wrap,
  .client-pedido-page .table-wrap {
    overflow-x: visible;
    max-width: 100%;
  }

  /* —— Pedidos (lista): ocultar itens/valor; 2 linhas —— */
  .client-compras-orders-table {
    min-width: 0;
    width: 100%;
  }

  .client-compras-orders-table thead {
    display: none;
  }

  .client-compras-orders-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "order status"
      "date date";
    gap: 0.3rem 0.65rem;
    margin-bottom: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
  }

  .client-compras-orders-table tbody tr:last-child {
    margin-bottom: 0;
  }

  .client-compras-orders-table td {
    display: block;
    padding: 0;
    border-bottom: none;
  }

  .client-compras-orders-table td::before {
    display: none;
  }

  .client-compras-orders-table td:nth-child(1) {
    grid-area: order;
    font-weight: 600;
  }

  .client-compras-orders-table td:nth-child(2) {
    grid-area: date;
    font-size: 0.84rem;
    color: var(--text-muted);
  }

  .client-compras-orders-table td:nth-child(3),
  .client-compras-orders-table td:nth-child(4) {
    display: none;
  }

  .client-compras-orders-table td:nth-child(5) {
    grid-area: status;
    justify-self: end;
    align-self: start;
  }

  /* —— Faturas (lista): 2 linhas —— */
  .client-faturas-table {
    min-width: 0;
    width: 100%;
  }

  .client-faturas-table thead {
    display: none;
  }

  .client-faturas-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "num status"
      "desc desc";
    gap: 0.3rem 0.65rem;
    margin-bottom: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
  }

  .client-faturas-table tbody tr:last-child {
    margin-bottom: 0;
  }

  .client-faturas-table td {
    display: block;
    padding: 0;
    border-bottom: none;
  }

  .client-faturas-table td::before {
    display: none;
  }

  .client-faturas-table td:nth-child(1) {
    grid-area: num;
    font-weight: 600;
  }

  .client-faturas-table td:nth-child(2) {
    grid-area: desc;
    font-size: 0.84rem;
    color: var(--text-muted);
    min-width: 0;
  }

  .client-faturas-table__desc-text {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .client-faturas-table__mobile-meta {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.82rem;
    color: var(--text-muted);
  }

  .client-faturas-table td:nth-child(3),
  .client-faturas-table td:nth-child(4),
  .client-faturas-table td:nth-child(5) {
    display: none;
  }

  .client-faturas-table td:nth-child(6) {
    grid-area: status;
    justify-self: end;
    align-self: start;
  }

  /* —— Empresas (lista): cards compactos —— */
  .client-grupos-page .client-grupos-list-wrap {
    padding: 0.65rem 0.75rem;
  }

  .client-grupos-cards__header {
    display: none;
  }

  .client-grupos-cards {
    gap: 0.65rem;
  }

  .client-grupos-card {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name status"
      "cnpj cnpj"
      "actions actions"
      "note note";
    gap: 0.35rem 0.65rem;
    align-items: start;
    padding: 0.85rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
  }

  .client-grupos-card__name {
    grid-area: name;
    padding-right: 0.25rem;
  }

  .client-grupos-card__cnpj {
    grid-area: cnpj;
    font-size: 0.84rem;
    white-space: normal;
  }

  .client-grupos-card__status {
    grid-area: status;
    justify-self: end;
    align-self: start;
    flex-shrink: 0;
  }

  .client-grupos-card__actions {
    grid-area: actions;
    justify-self: stretch;
    padding-top: 0.55rem;
    margin-top: 0.15rem;
    border-top: 1px solid var(--border);
  }

  .client-grupos-card__actions:not(:empty) .admin-actions-inline {
    justify-content: flex-start;
  }

  .client-grupos-card__note {
    grid-area: note;
    margin-top: 0.1rem;
  }

  /* —— Pedido (detalhe): caber na largura —— */
  .client-pedido-page .client-pedido-detail__items .client-compras-items-table th,
  .client-pedido-page .client-pedido-detail__items .client-compras-items-table td,
  .admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table th,
  .admin-pedido-detail-card .client-pedido-detail__items .client-compras-items-table td {
    padding: 0.45rem 0.5rem;
    font-size: 0.84rem;
  }

  .client-pedido-detail__summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem 0.75rem;
  }

  .client-pedido-page .client-compras-pix-code {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .client-pedido-actions,
  .client-pedido-cancel {
    flex-direction: column;
    align-items: stretch;
  }

  .client-pedido-actions .btn,
  .client-pedido-cancel .btn {
    width: 100%;
    min-height: var(--touch-target, 44px);
  }

  .client-pedido-page .client-quote-payment-plan__approve {
    width: 100%;
  }

  /* —— Faturas do pedido: layout card —— */
  .client-pedido-invoices-table {
    min-width: 0;
    width: 100%;
  }

  .client-pedido-invoices-table thead {
    display: none;
  }

  .client-pedido-invoices-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "num status"
      "desc desc"
      "vcto valor";
    gap: 0.2rem 0.65rem;
    margin-bottom: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
  }

  .client-pedido-invoices-table tbody tr:last-child {
    margin-bottom: 0;
  }

  .client-pedido-invoices-table td {
    display: block;
    padding: 0;
    border-bottom: none;
    white-space: normal;
  }

  .client-pedido-invoices-table td:nth-child(1) {
    grid-area: num;
    font-weight: 600;
  }

  .client-pedido-invoices-table td:nth-child(2) {
    grid-area: desc;
    font-size: 0.84rem;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .client-pedido-invoices-table td:nth-child(3) {
    grid-area: vcto;
    font-size: 0.82rem;
    color: var(--text-muted);
  }

  .client-pedido-invoices-table td:nth-child(4) {
    grid-area: valor;
    font-weight: 600;
    font-size: 0.9rem;
    text-align: right;
    align-self: center;
  }

  .client-pedido-invoices-table td:nth-child(5) {
    grid-area: status;
    justify-self: end;
    align-self: start;
  }

  /* —— Ajuda (tickets): page + tabela card —— */
  .client-ajuda-page {
    overflow-x: clip;
    min-width: 0;
  }

  .client-ajuda-page .panel-card {
    padding: 0.85rem 0.9rem;
    min-width: 0;
    max-width: 100%;
  }

  .client-ajuda-tickets-table {
    min-width: 0;
    width: 100%;
  }

  .client-ajuda-tickets-table thead {
    display: none;
  }

  .client-ajuda-tickets-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "subject status"
      "priority updated";
    gap: 0.25rem 0.65rem;
    margin-bottom: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
    cursor: pointer;
  }

  .client-ajuda-tickets-table tbody tr:last-child {
    margin-bottom: 0;
  }

  .client-ajuda-tickets-table td {
    display: block;
    padding: 0;
    border-bottom: none;
  }

  .client-ajuda-tickets-table td:nth-child(1) {
    grid-area: subject;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
  }

  .client-ajuda-tickets-table td:nth-child(2) {
    grid-area: status;
    justify-self: end;
    align-self: start;
  }

  .client-ajuda-tickets-table td:nth-child(3) {
    grid-area: priority;
    font-size: 0.82rem;
  }

  .client-ajuda-tickets-table td:nth-child(4) {
    display: none;
  }

  .client-ajuda-tickets-table td:nth-child(5) {
    grid-area: updated;
    font-size: 0.82rem;
    color: var(--text-muted);
    justify-self: end;
    text-align: right;
  }
}
.client-grupos-members-invite {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.client-grupos-members-invite[hidden] {
  display: none !important;
}
.client-grupos-membros-page .panel-card + .panel-card {
  margin-top: 1.25rem;
}
.client-grupos-members-invite-card[hidden] {
  display: none !important;
}
.client-grupos-members-table td,
.client-grupos-members-table th {
  vertical-align: top;
}

.client-grupos-material-card:last-child {
  margin-bottom: 0;
}

@media (max-width: 720px) {
  .client-grupos-page {
    overflow-x: clip;
  }

  .client-grupos-header {
    flex-direction: column;
    align-items: stretch;
  }

  .client-grupos-header .btn {
    width: 100%;
    min-height: var(--touch-target, 44px);
  }

  .client-grupos-vincular-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .client-grupos-vincular-actions .btn {
    width: 100%;
    min-height: var(--touch-target, 44px);
  }

  .client-grupos-page .client-grupos-select {
    max-width: none;
    margin-bottom: 0.75rem;
  }

  .client-grupos-page .client-grupos-section,
  .client-grupos-page .client-grupos-select.panel-card,
  .client-grupos-page .client-grupos-list-wrap {
    padding: 0.85rem 0.9rem;
    max-width: 100%;
    min-width: 0;
  }

  .client-grupos-page .client-grupos-section h2 {
    font-size: 0.95rem;
  }

  .client-grupos-page .client-grupos-form-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem;
  }

  .client-grupos-page .client-grupos-form-grid label,
  .client-grupos-page .field-stack label {
    min-width: 0;
  }

  .client-grupos-page .client-grupos-form-grid input,
  .client-grupos-page .client-grupos-form-grid select,
  .client-grupos-page .field-stack input,
  .client-grupos-page .field-stack select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .client-grupos-page [data-grupos-link-form] .btn,
  .client-grupos-page [data-grupos-invite-form] .btn {
    width: 100%;
    min-height: var(--touch-target, 44px);
  }

  .client-grupos-page input[type="file"] {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .client-grupos-page .client-post-card__comment-form {
    flex-direction: column;
    align-items: stretch;
  }

  .client-grupos-page .client-post-card__comment-form .btn {
    width: 100%;
    min-height: var(--touch-target, 44px);
  }

  .client-grupos-page .client-grupos-pending-details dd {
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .admin-groups-page {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  .admin-groups-page .admin-page__intro {
    font-size: 0.92rem;
  }

  .admin-groups-page .panel-card {
    padding: 0.85rem 0.9rem;
    max-width: 100%;
    min-width: 0;
  }

  .admin-groups-page .table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .admin-groups-page .admin-groups-table.front-table,
  .admin-groups-page .admin-groups-table {
    min-width: 0;
    width: 100%;
    table-layout: fixed;
  }

  .admin-groups-page .admin-groups-table thead {
    display: none;
  }

  .admin-groups-page .admin-groups-table tbody tr {
    display: block;
    margin-bottom: 0.75rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
  }

  .admin-groups-page .admin-groups-table tbody tr:last-child {
    margin-bottom: 0;
  }

  .admin-groups-page .admin-groups-table td {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.15rem;
    align-items: start;
    padding: 0.45rem 0;
    border-bottom: none;
    font-size: 0.9rem;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .admin-groups-page .admin-groups-table td::before {
    content: attr(data-label);
    font-weight: 600;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted);
  }

  .admin-groups-page .admin-groups-table td.admin-groups-table__actions {
    gap: 0.5rem;
    padding-top: 0.65rem;
    margin-top: 0.35rem;
    border-top: 1px solid var(--border);
    white-space: normal;
  }

  .admin-groups-page .admin-groups-table td.admin-groups-table__actions::before {
    margin-bottom: 0.15rem;
  }

  .admin-groups-page .admin-groups-table td.admin-groups-table__actions .admin-groups-actions-cell,
  .admin-groups-page .admin-groups-table td.admin-groups-table__actions .admin-actions-inline {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .admin-groups-page .admin-groups-table td.admin-groups-table__actions .admin-icon-btn {
    width: 2.5rem;
    height: 2.5rem;
  }
}

/* Layout de ações inline na tabela de empresas — uma linha, ícones centrados */
.admin-groups-page .admin-groups-table th:last-child,
.admin-groups-page .admin-groups-table td.admin-groups-table__actions {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}

.admin-groups-actions-cell,
.admin-groups-page .admin-groups-table .admin-actions-inline {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
  vertical-align: middle;
}

/* Indicador de documento enviado no ícone de documentos */
.admin-icon-btn--marked {
  position: relative;
}
.admin-icon-btn--marked::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #16a34a;
  border: 1px solid var(--white, #fff);
  pointer-events: none;
}

/* Modal de documentos da empresa */
.admin-grupos-doc-current {
  margin-bottom: 1rem;
  padding: 0.6rem 0.85rem;
  background: var(--bg-alt, #f7f7f8);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 0.9rem;
}
.admin-grupos-doc-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-weight: 500;
}
.admin-grupos-doc-toggle input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  cursor: pointer;
}
.admin-groups-doc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.25rem;
}

.admin-support-layout {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 900px) {
  .admin-support-layout {
    grid-template-columns: minmax(220px, 28%) minmax(0, 1fr);
    align-items: start;
  }
}

.admin-support-thread-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  width: 100%;
  margin-bottom: 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  text-align: left;
  cursor: pointer;
}

.admin-support-thread-btn:hover {
  border-color: var(--accent, #2563eb);
}

.admin-support-messages {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-height: 420px;
  overflow: auto;
  margin: 1rem 0;
  padding: 0.5rem 0;
}

.admin-support-msg {
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius);
  background: var(--surface-alt, rgba(0, 0, 0, 0.04));
}

.admin-support-msg--team {
  background: rgba(37, 99, 235, 0.08);
  margin-left: 1.5rem;
}

.admin-support-msg__meta {
  font-size: 0.75rem;
  color: var(--muted);
  margin-bottom: 0.25rem;
}

.admin-log-line {
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.82rem;
}

/* Barra de guias + botão Limpar (Logs) */
.admin-logs-tabs-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--border);
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
}
.admin-logs-tabs-bar .admin-tabs__bar {
  border-bottom: none;
  flex: 1 1 auto;
  min-width: 0;
}
.admin-logs-tabs-bar .btn {
  margin-bottom: 0.35rem;
  flex: 0 0 auto;
}
/* Modal genérico admin */
.admin-dialog {
  border: none;
  border-radius: var(--radius-lg, .75rem);
  box-shadow: 0 8px 40px rgba(0,0,0,.28);
  padding: 0;
  max-width: 420px;
  width: 92%;
  background: var(--white, #fff);
  color: var(--text, #0f172a);
  color-scheme: light;
}
.admin-dialog::backdrop {
  background: rgba(15,23,42,.5);
  backdrop-filter: blur(3px);
}
.admin-dialog__inner {
  padding: 1.75rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.admin-dialog__title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0;
}
.admin-dialog__desc {
  font-size: .88rem;
  color: var(--text-muted);
  margin: 0;
}
.admin-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
  margin-top: .25rem;
}

/* Opções de limpeza de log */
.admin-logs-clear-options {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.admin-logs-clear-option {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  cursor: pointer;
  font-size: .9rem;
}
.admin-logs-clear-option input[type="radio"] {
  margin-top: .2rem;
  flex-shrink: 0;
  accent-color: var(--accent);
}
.admin-logs-clear-option small {
  display: block;
  color: var(--text-muted);
  font-size: .78rem;
}
.admin-logs-clear-option__danger {
  color: #b91c1c;
  font-weight: 600;
}

/* Card unificado de logs — colado às abas */
.logs-panel-card {
  padding: 0;
  overflow: hidden;
}
.logs-panel-card [data-admin-activity-list],
.logs-panel-card [data-admin-logs-list] {
  padding: 1rem 1.25rem;
}
.logs-panel-card .admin-muted[data-admin-logs-path] {
  padding: .75rem 1.25rem 0;
}

/* Barra de filtros inline */
.logs-filter-bar {
  display: flex;
  align-items: flex-end;
  gap: .75rem;
  flex-wrap: wrap;
  padding: 1rem 1.25rem;
}
.logs-filter-bar label {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  font-size: .82rem;
  color: var(--text-muted);
}
.logs-filter-bar label input {
  padding: .38rem .6rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--input-bg);
  color: var(--text);
  font-size: .85rem;
}
.logs-filter-bar__search {
  flex: 1 1 200px;
}
.logs-filter-bar .btn {
  align-self: flex-end;
  white-space: nowrap;
}

/* Divisor entre filtro e lista */
.logs-divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0;
}

/* Tabela de logs */
[data-admin-logs-panel] table {
  width: 100%;
  border-collapse: collapse;
  font-size: .85rem;
}
[data-admin-logs-panel] th {
  text-align: left;
  padding: .5rem .75rem;
  background: var(--input-bg);
  border-bottom: 1px solid var(--border);
  font-size: .78rem;
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}
[data-admin-logs-panel] td {
  vertical-align: top;
  padding: .55rem .75rem;
  border-bottom: 1px solid var(--border);
}
[data-admin-logs-panel] tr:last-child td {
  border-bottom: none;
}

.btn--danger {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}

.btn--danger:hover {
  background: #991b1b;
  border-color: #991b1b;
}

/* Hospedagem admin: cancelamento/finalizado em destaque vermelho */
.admin-hosting-row--terminated td {
  color: #b91c1c;
  background: rgba(185, 28, 28, 0.08);
}
.admin-hosting-row--terminated td a {
  color: #991b1b;
}
.theme-dark .admin-hosting-row--terminated td {
  color: #fca5a5;
  background: rgba(185, 28, 28, 0.18);
}
.theme-dark .admin-hosting-row--terminated td a {
  color: #fecaca;
}
.admin-hosting-detail--terminated {
  border-color: #b91c1c;
  box-shadow: inset 3px 0 0 #b91c1c;
}

/* Identidade visual: logos + cores (claro/escuro) */
.brand-section-title {
  margin: 1.25rem 0 0.65rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--heading);
}
.brand-theme-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 0.35rem;
}
@media (max-width: 860px) {
  .brand-theme-columns {
    grid-template-columns: 1fr;
  }
}
.brand-theme-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.9rem 1rem 1rem;
  background: var(--surface-muted, rgba(148, 163, 184, 0.06));
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.brand-theme-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.brand-theme-card__head h3 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
}
.brand-theme-card__badge {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
}
.brand-theme-card--dark {
  background: #0f172a;
  border-color: #263247;
  color: #dbe4f0;
}
.brand-theme-card--dark .brand-theme-card__head h3,
.brand-theme-card--dark .brand-asset-tile__label,
.brand-theme-card--dark .brand-color-grid span {
  color: #f8fafc;
}
.brand-theme-card--dark .admin-muted,
.brand-theme-card--dark .brand-theme-card__badge {
  color: #9fb0c6;
  border-color: #334155;
}
.brand-asset-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1rem;
  width: 100%;
  max-width: 100%;
}
.brand-asset-row > .brand-asset-tile {
  flex: 1 1 220px;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.brand-asset-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.85rem;
  border: 1px dashed var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.35);
  overflow: hidden;
  position: relative;
}
.brand-theme-card--dark .brand-asset-tile {
  background: rgba(255, 255, 255, 0.03);
  border-color: #334155;
}
.brand-asset-tile__label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--heading);
}
.brand-asset-tile__preview {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 72px;
  max-height: 96px;
  padding: 0.5rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  overflow: hidden;
  box-sizing: border-box;
}
.brand-asset-tile__preview[hidden] {
  display: none !important;
}
.brand-asset-tile__preview--dark {
  background: #111827;
  border-color: #334155;
}
.brand-asset-tile__preview--icon {
  width: 72px;
  max-width: 100%;
  min-height: 72px;
  max-height: 72px;
}
.brand-asset-tile__preview--og {
  min-height: 96px;
  max-height: 110px;
}
.brand-asset-tile__preview img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 56px;
  object-fit: contain;
}
.brand-asset-tile__preview--icon img {
  max-width: 40px;
  max-height: 40px;
}
.brand-asset-tile__preview--og img {
  max-height: 88px;
}
.field-stack .brand-asset-tile label.brand-asset-tile__btn,
.brand-asset-tile__btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  margin: 0;
  cursor: pointer;
  grid-template-columns: none;
  gap: 0;
}
.brand-asset-tile input[type="file"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
  opacity: 0 !important;
}
.brand-asset-tile__status {
  display: block;
  font-size: 0.78rem;
  min-height: 1.1em;
  max-width: 100%;
  word-break: break-word;
}
.brand-asset-tile__hint {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.35;
  max-width: 100%;
}
.brand-color-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem 0.65rem;
}
.brand-color-grid label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin: 0;
  font-size: 0.75rem;
}
.brand-color-grid span {
  color: var(--text-muted);
  font-weight: 500;
}
.brand-color-grid input[type="color"] {
  width: 100%;
  height: 2.25rem;
  padding: 0.15rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
}
.brand-theme-card--dark .brand-color-grid input[type="color"] {
  border-color: #334155;
}

/* Modal excluir hospedagem — opção destrutiva recolhida / baixa proeminência */
.hosting-delete-advanced {
  margin: 0.15rem 0 0;
  border: none;
  padding: 0;
}
.hosting-delete-advanced__summary {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-muted, #6b7280);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.hosting-delete-advanced__summary::-webkit-details-marker {
  display: none;
}
.hosting-delete-advanced__summary::before {
  content: "+";
  font-size: 0.85em;
  line-height: 1;
  opacity: 0.75;
}
.hosting-delete-advanced[open] > .hosting-delete-advanced__summary::before {
  content: "−";
}
.hosting-delete-advanced__body {
  margin-top: 0.45rem;
  padding: 0.5rem 0.65rem;
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 8px;
  background: rgba(148, 163, 184, 0.06);
}
.hosting-delete-advanced__opt {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--text-muted, #6b7280);
  cursor: pointer;
  font-weight: 400;
}
.hosting-delete-advanced__opt input {
  margin: 0.15rem 0 0;
  width: 0.85rem;
  height: 0.85rem;
  flex-shrink: 0;
  accent-color: #b91c1c;
}
.hosting-delete-advanced__warn {
  margin: 0.4rem 0 0;
  font-size: 0.75rem;
  line-height: 1.35;
  color: #b91c1c;
}

/* ---- Cliente: Sites e E-mails ---- */
.client-hosting-page {
  min-width: 0;
}
.client-hosting-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem 1rem;
  margin-bottom: 1rem;
}
.client-hosting-header__text {
  min-width: 0;
  flex: 1 1 16rem;
}
.client-hosting-header .admin-screen-title {
  margin: 0;
}
.client-hosting-header .admin-page__intro {
  margin: 0.35rem 0 0;
}
.client-hosting-back {
  font-weight: 600;
  text-decoration: none;
}
.client-hosting-back:hover {
  text-decoration: underline;
}
.client-hosting-back-sep {
  margin: 0 0.35rem;
  color: var(--text-muted, #64748b);
}
.client-hosting-email-domain {
  margin: 0.45rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--heading, #0f172a);
  word-break: break-word;
}
.client-hosting-stack,
.client-hosting-services {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}
.client-hosting-section {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}
.client-hosting-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}
.client-hosting-section__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--heading, #0f172a);
}
.client-hosting-panel {
  min-width: 0;
}
.client-hosting-service {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin: 0;
}
.client-hosting-service.is-terminated {
  opacity: 0.78;
}
.client-hosting-service.is-suspended {
  border-color: color-mix(in srgb, #f59e0b 45%, var(--border));
}
.client-hosting-service__top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem 0.85rem;
}
.client-hosting-service__identity {
  min-width: 0;
  flex: 1 1 12rem;
}
.client-hosting-service__domain {
  margin: 0;
  font-size: clamp(1.05rem, 2.2vw, 1.28rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--heading, #0f172a);
  word-break: break-word;
  overflow-wrap: anywhere;
}
.client-hosting-service__user {
  margin: 0.3rem 0 0;
  font-size: 0.88rem;
  color: var(--text-muted, #64748b);
}
.client-hosting-service__user code {
  font-size: 0.9em;
}
.client-hosting-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.65rem 1rem;
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: calc(var(--radius, 12px) - 2px);
  background: color-mix(in srgb, var(--brand-soft, #f1f3f7) 70%, transparent);
  border: 1px solid var(--border);
}
.client-hosting-meta > div {
  min-width: 0;
}
.client-hosting-meta dt {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted, #64748b);
}
.client-hosting-meta dd {
  margin: 0.2rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--heading, #0f172a);
  word-break: break-word;
}
.client-hosting-meta__amount dd {
  font-size: 1.05rem;
}
.client-hosting-note {
  margin: 0;
  padding: 0.55rem 0.75rem;
  border-radius: calc(var(--radius, 12px) - 4px);
  background: color-mix(in srgb, #3b82f6 10%, transparent);
  color: var(--text, #334155);
  font-size: 0.9rem;
  line-height: 1.4;
}
.client-hosting-note--warn {
  background: color-mix(in srgb, #f59e0b 14%, transparent);
  color: #92400e;
}
.client-hosting-service__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.client-hosting-empty {
  display: grid;
  gap: 0.45rem;
  justify-items: start;
  padding: 0.35rem 0;
}
.client-hosting-empty__title {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--heading, #0f172a);
}
.client-hosting-empty__text {
  margin: 0 0 0.35rem;
  color: var(--text-muted, #64748b);
  line-height: 1.45;
  max-width: 36rem;
}
.client-hosting-mail-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.client-hosting-mail-list__header {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.9fr) auto;
  gap: 0.75rem 1rem;
  align-items: center;
  padding: 0 0 0.65rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--heading, #0f172a);
}
.client-hosting-mail-card {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.9fr) auto;
  gap: 0.75rem 1rem;
  align-items: center;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border);
  min-width: 0;
}
.client-hosting-mail-card.is-send-only {
  background: color-mix(in srgb, var(--primary, #2411dc) 4%, transparent);
  margin: 0 -0.35rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
  border-radius: 0.45rem;
}
.client-hosting-mail-card__badge {
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  vertical-align: middle;
  color: var(--primary, #2411dc);
  background: color-mix(in srgb, var(--primary, #2411dc) 12%, transparent);
}
.client-hosting-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  padding: 0;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.45rem;
  background: transparent;
  color: var(--muted, #64748b);
  cursor: pointer;
  flex-shrink: 0;
  transition: color 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}
.client-hosting-icon-btn svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}
.client-hosting-icon-btn:hover {
  color: var(--primary, #2411dc);
  border-color: color-mix(in srgb, var(--primary, #2411dc) 40%, var(--border, #ddd));
  background: color-mix(in srgb, var(--primary, #2411dc) 8%, transparent);
}
.client-hosting-icon-btn--send.is-on {
  color: #fff;
  border-color: var(--primary, #2411dc);
  background: var(--primary, #2411dc);
}
.client-hosting-icon-btn--send.is-on:hover {
  color: #fff;
  background: color-mix(in srgb, var(--primary, #2411dc) 88%, #000);
}
.client-hosting-icon-btn:disabled {
  opacity: 0.55;
  cursor: wait;
}
.client-hosting-mail-card__actions .btn[disabled],
.client-hosting-mail-card__actions .btn[aria-disabled="true"] {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
.client-hosting-settings-line {
  margin: 0;
}
.client-hosting-settings-line code {
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.86rem;
}
.client-hosting-mail-card:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.client-hosting-mail-card__email {
  min-width: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.client-hosting-mail-card__email strong {
  font-weight: 600;
  color: var(--heading, #0f172a);
}
.client-hosting-mail-card__site,
.client-hosting-mail-card__access {
  min-width: 0;
  font-size: 0.92rem;
  color: var(--text-muted, #64748b);
  word-break: break-word;
}
.client-hosting-mail-card__actions {
  justify-self: end;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.client-hosting-cancel-warn {
  gap: 0.45rem;
}
.client-hosting-cancel-warn p {
  margin: 0;
  line-height: 1.45;
}
.client-hosting-invite-hint {
  margin: 0;
}
.theme-dark .client-hosting-meta {
  background: color-mix(in srgb, #111827 72%, transparent);
}
.theme-dark .client-hosting-note {
  background: color-mix(in srgb, #3b82f6 16%, transparent);
}
.theme-dark .client-hosting-note--warn {
  background: color-mix(in srgb, #f59e0b 18%, transparent);
  color: #fbbf24;
}
.theme-dark .client-hosting-service.is-suspended {
  border-color: color-mix(in srgb, #f59e0b 40%, var(--border));
}

@media (max-width: 720px) {
  .client-hosting-page {
    overflow-x: clip;
  }
  .client-hosting-page .panel-card {
    padding: 0.9rem;
  }
  .client-hosting-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.7rem 0.75rem;
  }
  .client-hosting-mail-list__header {
    display: none;
  }
  .client-hosting-mail-card {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 0.9rem 0;
  }
  .client-hosting-mail-card__actions .admin-actions-inline,
  .client-hosting-mail-card__actions {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
  }
  .client-hosting-service__actions {
    width: 100%;
  }
  .client-hosting-service__actions .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}

.user-profile-username-block {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-alt, rgba(0, 0, 0, 0.02));
}

.user-profile-username-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* Cronograma cliente — cronograma unificado */
.client-cronograma-view-tabs .admin-tabs__panel[data-cronograma-panel="agenda"] {
  padding-top: 0;
}
.client-cronograma-palette-card,
.client-cronograma-schedule-card {
  margin-bottom: 1rem;
  /* Impede overflow horizontal no mobile (evita sábado "saindo" do card) */
  overflow: hidden;
  min-width: 0;
}

.client-cronograma-palette-hint {
  margin: 0 0 0.75rem;
}

.client-cronograma-palette-tabs .admin-tabs__panel,
.client-cronograma-view-tabs .admin-tabs__panel {
  padding-top: 0.15rem;
}

.client-cronograma-palette-meus-head {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 0.55rem;
}

.client-cronograma-horario-palette {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.client-cronograma-session-palette {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.client-cronograma-horario-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid color-mix(in srgb, var(--chip-color, var(--brand)) 35%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--chip-color, var(--brand)) 10%, transparent);
  color: var(--heading);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: grab;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.client-cronograma-horario-chip--personal {
  padding-right: 0.35rem;
}

.client-cronograma-horario-chip__label {
  min-width: 0;
}

.client-cronograma-horario-chip__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  margin-left: 0.15rem;
  border-radius: 999px;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
  color: inherit;
  opacity: 0.55;
  cursor: pointer;
  user-select: none;
}

.client-cronograma-horario-chip__remove:hover,
.client-cronograma-horario-chip__remove:focus-visible {
  opacity: 1;
  background: color-mix(in srgb, currentColor 16%, transparent);
  outline: none;
}

.client-cronograma-horario-chip.is-selected .client-cronograma-horario-chip__remove {
  color: #fff;
  opacity: 0.85;
}

.client-cronograma-horario-chip:hover {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--chip-color, var(--brand)) 35%, transparent);
}

.client-cronograma-horario-chip.is-selected {
  background: var(--chip-color, var(--brand));
  color: #fff;
  border-color: var(--chip-color, var(--brand));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--chip-color, var(--brand)) 30%, transparent);
  cursor: pointer;
}

.client-cronograma-horario-chip.is-dragging {
  opacity: 0.65;
  cursor: grabbing;
}

.client-cronograma-reschedule-hint {
  margin: 0.75rem 0 0;
  color: #b45309;
  font-weight: 500;
}

.client-cronograma-page .admin-agenda-scroll {
  min-height: 420px;
}

.client-cronograma-legend {
  margin-top: 0.35rem;
  margin-bottom: 0.5rem;
}

.client-cronograma-time-body {
  position: relative;
}

.client-cronograma-bookings-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}

/* Linha do horário atual (verde) — usada no cronograma de cliente e admin */
.cronograma-now-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #16a34a;
  z-index: 10;
  pointer-events: none;
}

.cronograma-now-line::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #16a34a;
}

.client-cronograma-booking-block {
  position: absolute;
  pointer-events: auto;
  border: none;
  border-radius: 6px;
  padding: 0.2rem 0.4rem;
  text-align: left;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
  cursor: pointer;
  overflow: hidden;
  /* cor de fundo definida via inline style pelo JS usando booking_type_colors */
  opacity: 0.92;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.22);
}

.client-cronograma-booking-block:not(.client-cronograma-booking-block--preview):hover {
  opacity: 1;
  filter: brightness(1.1);
}

.client-cronograma-booking-block span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Agendamentos de outros usuários — visíveis mas sem interação */
.client-cronograma-booking-block--other {
  opacity: 0.2;
  pointer-events: none;
  cursor: default;
  border-radius: 4px;
  padding: 0;
}

/* Preview flutuante no desktop — acompanha o mouse; visual igual ao bloco de agendamento */
.client-cronograma-hover-preview {
  pointer-events: none;
  z-index: 5;
  opacity: 0.78;
  cursor: default;
}

.client-cronograma-hover-preview.is-invalid {
  opacity: 0.45;
  filter: grayscale(0.35) saturate(0.7);
}

@media (max-width: 767px) {
  .client-cronograma-hover-preview {
    display: none !important;
  }
}

/* Preview posicionado (após clique): idêntico ao bloco confirmado, pulsando */
.client-cronograma-booking-block--preview {
  z-index: 6;
  animation: cronograma-placed-preview-pulse 1.1s ease-in-out infinite;
}

@keyframes cronograma-placed-preview-pulse {
  0%, 100% {
    opacity: 1;
    transform: scaleX(1);
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
  }
  50% {
    opacity: 0.78;
    transform: scaleX(0.98);
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.25);
  }
}

/* ── Calendário mensal no cronograma ─────────────────────────────────────── */

.cronograma-month-view {
  padding: 0;
}

/* Header: ‹ mês centralizado › */
.cronograma-month-view__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.cronograma-month-view__title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: clamp(1.05rem, 2.8vw, 1.35rem);
  font-weight: 700;
  color: var(--heading);
  margin: 0;
  text-align: center;
  text-transform: capitalize;
  line-height: 1.25;
}

.cronograma-month-view__nav-btn {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 2.5rem;
  height: 2.5rem;
  min-width: 2.5rem;
  min-height: 2.5rem;
  padding: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  background: var(--white, #fff);
  color: var(--heading);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.cronograma-month-view__nav-btn svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
}
.cronograma-month-view__nav-btn:hover {
  border-color: rgba(var(--brand-rgb), 0.45);
  color: var(--brand);
  background: rgba(var(--brand-rgb), 0.06);
}
.cronograma-month-view__nav-btn:active {
  transform: scale(0.96);
}
@media (max-width: 767px) {
  .cronograma-month-view__header {
    gap: 0.5rem;
    margin-bottom: 0.65rem;
  }
  .cronograma-month-view__nav-btn {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
}

/*
 * Corrige o overflow do grid dentro do card no mobile.
 *
 * O problema: `.calendar--expanded .cal-day` herda `aspect-ratio: 1` e `min-height: 3.25rem`.
 * Em 7 colunas numa tela pequena, cada coluna tem ~41px mas a célula tenta ter 52×52px (quadrado),
 * ultrapassando a borda do card (o "sábado" fica de fora).
 *
 * A solução é idêntica à usada pelo calendário da visão geral
 * ([data-client-overview] .cal-day): remover aspect-ratio e usar min-height menor.
 */
.cronograma-month-view .calendar {
  gap: 0.25rem;       /* gap menor = mais espaço para as colunas */
  margin-top: 0.5rem;
  overflow: hidden;   /* garante que nada escapa do container */
}

.cronograma-month-view .cal-day {
  aspect-ratio: unset;
  min-height: 2.5rem;
  font-size: clamp(0.75rem, 3vw, 0.9rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  padding: 0.15rem 0.1rem;
}

.cronograma-month-view .cal-head {
  font-size: clamp(0.6rem, 2.5vw, 0.78rem);
}

.cronograma-month-day__num {
  line-height: 1.1;
}

.cronograma-month-day__dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.18rem;
  max-width: 100%;
}

.cronograma-month-day__dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Botões / links de dia */
.cronograma-month-grid button.cal-day,
.cronograma-month-grid a.cal-day {
  background: #fff;
  border: 1px solid transparent;
  width: 100%;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
}
.cronograma-month-grid a.cal-day {
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
}

/* Hoje: número em azul (marca) */
.cronograma-month-view .cal-day--today .cronograma-month-day__num {
  color: var(--brand, #2563eb);
  font-weight: 700;
}

.cronograma-month-view .cal-day--today {
  border-color: var(--brand, #2563eb) !important;
}

/* Disponível: azul da legenda do cronograma */
.cronograma-month-grid button.cal-day--avail {
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
  border: 1px solid rgba(37, 99, 235, 0.38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  color: var(--heading);
}

.cronograma-month-grid button.cal-day--avail:hover,
.cronograma-month-grid button.cal-day--avail:active {
  background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
}

/* Agendamento marcado: borda + bolinhas (sem preenchimento sólido) */
.cronograma-month-grid button.cal-day--booked,
.cronograma-month-grid a.cal-day--booked,
.cronograma-month-grid div.cal-day--booked {
  background: #fff;
  border: 1px solid var(--border, #d1d5db);
  color: var(--heading);
}

.cronograma-month-grid button.cal-day--booked:hover,
.cronograma-month-grid button.cal-day--booked:active,
.cronograma-month-grid a.cal-day--booked:hover,
.cronograma-month-grid a.cal-day--booked:active {
  border-color: var(--text-muted, #9ca3af);
}

/* Dia com agendamento marcado E disponível: fundo azul prevalece, bolinhas aparecem sobre ele */
.cronograma-month-grid button.cal-day--booked.cal-day--avail,
.cronograma-month-grid a.cal-day--booked.cal-day--avail {
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
  border-color: rgba(37, 99, 235, 0.38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.cronograma-month-grid button.cal-day--booked.cal-day--avail:hover,
.cronograma-month-grid button.cal-day--booked.cal-day--avail:active,
.cronograma-month-grid a.cal-day--booked.cal-day--avail:hover,
.cronograma-month-grid a.cal-day--booked.cal-day--avail:active {
  background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
}

/* ── Spotlight overlay: chip selecionado esmaece dias irrelevantes ─────────── */

.cronograma-month-grid--spotlight .cal-day--muted {
  opacity: 0.18;
  pointer-events: none;
}

.cronograma-month-grid--spotlight .cal-day--muted.cal-day--today {
  opacity: 0.35;
}

.cronograma-month-grid--spotlight .cal-day--muted.cal-day--today .cronograma-month-day__num {
  color: var(--brand, #2563eb);
}

/*
 * Desktop: células altas — DEVE ficar depois das regras base acima,
 * senão min-height: 2.5rem do mobile sobrescreve tudo.
 */
@media (min-width: 768px) {
  .cronograma-month-view .calendar.calendar--expanded,
  .cronograma-month-view .cronograma-month-grid {
    gap: 0.35rem;
    max-width: 52rem;
    margin-left: auto;
    margin-right: auto;
  }

  .cronograma-month-view .calendar.calendar--expanded .cal-day,
  .cronograma-month-view .cronograma-month-grid .cal-day,
  .cronograma-month-view .cronograma-month-grid button.cal-day,
  .cronograma-month-view .cronograma-month-grid a.cal-day {
    aspect-ratio: auto;
    height: auto;
    /* Mais alto que mobile (2.5rem), mas abaixo da largura da coluna → retângulo horizontal */
    min-height: 4rem;
    font-size: 1rem;
    padding: 0.35rem 0.2rem;
    gap: 0.2rem;
  }

  .cronograma-month-view .calendar.calendar--expanded .cal-head,
  .cronograma-month-view .cronograma-month-grid .cal-head {
    font-size: 0.9rem;
    padding: 0.35rem 0.15rem;
  }

  .cronograma-month-view .cronograma-month-day__num {
    font-size: 1.15rem;
    font-weight: 600;
  }

  .cronograma-month-view .cronograma-month-day__dot {
    width: 0.58rem;
    height: 0.58rem;
  }
}

/*
 * Visão geral do cliente (desktop): calendário mais compacto verticalmente.
 * Fica DEPOIS do bloco desktop do cronograma (min-height: 4rem), senão perde.
 */
@media (min-width: 768px) {
  .client-overview-calendar.panel-card {
    padding: 1.1rem 1.25rem 1rem;
  }
  .client-overview-calendar .cronograma-month-view__header {
    margin-bottom: 0.55rem;
  }
  .client-overview-calendar .calendar,
  .client-overview-calendar .cronograma-month-grid,
  .client-overview-calendar .calendar.calendar--expanded {
    gap: 0.28rem;
    margin-top: 0;
    max-width: none;
  }
  .client-overview-calendar .calendar.calendar--expanded .cal-head,
  .client-overview-calendar .cronograma-month-grid .cal-head {
    font-size: 0.78rem;
    padding: 0.15rem 0.1rem 0.35rem;
  }
  .client-overview-calendar .calendar.calendar--expanded .cal-day,
  .client-overview-calendar .cronograma-month-grid .cal-day,
  .client-overview-calendar .cronograma-month-grid button.cal-day,
  .client-overview-calendar .cronograma-month-grid a.cal-day {
    min-height: 2.65rem;
    padding: 0.2rem 0.1rem;
    gap: 0.1rem;
    font-size: 0.9rem;
  }
  .client-overview-calendar .cronograma-month-day__num {
    font-size: 0.95rem;
    font-weight: 600;
  }
  .client-overview-calendar .cronograma-month-day__dot {
    width: 0.4rem;
    height: 0.4rem;
  }
  .client-overview-calendar__footer {
    margin-top: 0.65rem;
  }
}

/*
 * Widget visão geral — calendário dentro de .cronograma-month-view.
 * Deve ficar DEPOIS das regras globais acima, que sobrescreviam row-gap e min-height.
 */
[data-admin-cal] .cronograma-month-view .calendar.admin-cronograma-month-grid {
  gap: 1rem 0.25rem;
  max-width: none;
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  height: 100%;
  grid-template-rows: auto repeat(6, minmax(0, 1fr));
  align-content: stretch;
  overflow: hidden;
}

@media (min-width: 768px) {
  [data-admin-cal] .cronograma-month-view .calendar.admin-cronograma-month-grid,
  [data-admin-cal] .cronograma-month-view .admin-cronograma-month-grid {
    gap: 1rem 0.25rem;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  [data-admin-cal] .cronograma-month-view .calendar.admin-cronograma-month-grid .cal-day,
  [data-admin-cal] .cronograma-month-view .calendar.admin-cronograma-month-grid button.cal-day,
  [data-admin-cal] .cronograma-month-view .calendar.admin-cronograma-month-grid a.cal-day {
    min-height: 0;
    height: 100%;
    aspect-ratio: unset;
    padding: clamp(0.04rem, 0.25cqh, 0.12rem) clamp(0.03rem, 0.15cqw, 0.08rem);
  }

  [data-admin-cal] .cronograma-month-view .calendar.admin-cronograma-month-grid .cal-head {
    padding: clamp(0.05rem, 0.35cqh, 0.2rem) 0.05rem;
    font-size: clamp(0.5rem, 2.8cqw, 0.72rem);
  }
}

[data-admin-cal] .admin-cronograma-month-view .cal-head {
  align-self: stretch;
  padding: clamp(0.05rem, 0.35cqh, 0.2rem) 0.05rem;
  line-height: 1.1;
  background: transparent;
}
[data-admin-cal] .admin-cronograma-month-view .cal-day,
[data-admin-cal] .admin-cronograma-month-view button.cal-day,
[data-admin-cal] .admin-cronograma-month-view a.cal-day {
  width: 100%;
  padding: clamp(0.04rem, 0.25cqh, 0.12rem) clamp(0.03rem, 0.15cqw, 0.08rem);
  gap: clamp(0.02rem, 0.2cqh, 0.08rem);
  overflow: hidden;
  box-sizing: border-box;
}

/* ── Ghost de drag (chip seguindo o dedo) ────────────────────────────────── */

.cronograma-drag-ghost {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  transform: translate(-50%, -120%);
  background: var(--chip-color, #3b82f6);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
  white-space: nowrap;
  opacity: 0.92;
  transition: transform 0.05s;
}

/* Célula sob o dedo durante o drag */
.admin-agenda-cell.cronograma-drag-hover {
  outline: 2px solid rgba(59, 130, 246, 0.8);
  outline-offset: -2px;
  background: rgba(59, 130, 246, 0.18) !important;
}

/* ── Toolbar mobile: sem prev/next, só nome do mês + "Hoje" ─────────────── */

@media (max-width: 767px) {
  /* Esconde as setas de nav — o calendário mensal substitui */
  .client-cronograma-page [data-cronograma-prev],
  .client-cronograma-page [data-cronograma-next] {
    display: none;
  }

  /* Título mês/ano na visão diária: mesma aparência da visão mensal */
  .client-cronograma-page .admin-agenda-toolbar__period {
    text-align: center !important;
    text-transform: capitalize;
    font-size: 1.4rem !important;
    font-weight: 700;
    color: var(--heading);
    flex: 1;
  }

  /* Reduz margem inferior da toolbar no mobile */
  .client-cronograma-page .admin-agenda-toolbar {
    margin-bottom: 0.4rem;
  }

  /* Esconde o botão "Hoje" no mobile */
  .client-cronograma-page .admin-agenda-today-btn {
    display: none;
  }
}


/* Booking blocks no cronograma do administrador */
.admin-cronograma-booking-block {
  position: absolute;
  pointer-events: auto;
  border: none;
  border-radius: 5px;
  padding: 0.15rem 0.35rem;
  text-align: left;
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  cursor: grab;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  /* cor de fundo definida via inline style pelo JS */
  opacity: 1;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25), 0 1px 3px rgba(15, 23, 42, 0.2);
  z-index: 3;
  touch-action: none;
  user-select: none;
}

.admin-cronograma-booking-block--confirmado {
  border: 3px solid rgba(0, 0, 0, 0.65) !important;
}

.admin-cronograma-booking-block:hover {
  filter: brightness(1.1);
}

.admin-cronograma-booking-block.is-dragging {
  cursor: grabbing;
  opacity: 0.55;
  pointer-events: none;
  z-index: 6;
}

.admin-cronograma-booking-block.is-busy {
  opacity: 0.7;
  pointer-events: none;
}

.admin-cronograma-page .admin-agenda-cell.admin-agenda-cell--drop-valid {
  background: color-mix(in srgb, var(--accent, #3b82f6) 38%, #fff) !important;
  outline: 2px solid var(--accent, #3b82f6);
  outline-offset: -1px;
}

.admin-cronograma-page .admin-agenda-cell.admin-agenda-cell--drop-invalid {
  background: rgba(239, 68, 68, 0.4) !important;
  outline: 2px solid #dc2626;
  outline-offset: -1px;
}

.admin-cronograma-booking-block span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}

/* Miniatura dentro do bloco de agendamento */
.admin-booking-block-thumb {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 3px;
  object-fit: cover;
  display: block;
}

.admin-booking-block-thumb--video {
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  border-radius: 3px;
  width: 22px;
  height: 22px;
}

/* Pulse: agendamento com atividade recente (comentário, mídia, avaliação) */
@keyframes cronograma-block-pulse {
  0%, 100% { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25), 0 0 0 0 rgba(255,255,255,0.6); }
  50% { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25), 0 0 0 5px rgba(255,255,255,0); }
}

.admin-cronograma-booking-block--pulse {
  animation: cronograma-block-pulse 1.6s ease-in-out infinite;
}

.client-cronograma-page .admin-agenda-cell.client-cronograma-cell--drop-valid {
  background: color-mix(in srgb, var(--drop-chip-color, #3b82f6) 42%, #fff) !important;
  outline: 2px solid var(--drop-chip-color, #3b82f6);
  outline-offset: -1px;
}

.client-cronograma-page .admin-agenda-cell.client-cronograma-cell--drop-invalid {
  background: rgba(239, 68, 68, 0.45) !important;
  outline: 2px solid #dc2626;
  outline-offset: -1px;
}

.client-cronograma-legend-swatch--mine {
  background: linear-gradient(180deg, rgba(59, 130, 246, 0.92), rgba(37, 99, 235, 0.88));
}

.client-cronograma-legend-swatch--drop-valid {
  background: color-mix(in srgb, #3b82f6 42%, #fff);
  border: 1px solid #3b82f6;
}

.client-cronograma-legend-swatch--drop-invalid {
  background: rgba(239, 68, 68, 0.45);
  border: 1px solid #dc2626;
}

.client-cronograma-detail-actions {
  flex-wrap: wrap;
  gap: 0.5rem;
}

.theme-dark .client-cronograma-horario-chip {
  background: rgba(var(--brand-rgb), 0.15);
  border-color: rgba(var(--brand-rgb), 0.45);
}

.theme-dark .client-cronograma-reschedule-hint {
  color: #fbbf24;
}

/* Editor de horários (admin) */
.admin-horario-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.admin-horario-type-wrap {
  display: flex;
  align-items: center;
  flex: 1 1 9rem;
  min-width: 0;
}

.admin-horario-type-trigger {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 2.5rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 0.35rem;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.admin-horario-type-trigger .admin-horario-type-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-booking-type-picker-modal {
  width: min(94vw, 320px);
}

.admin-booking-type-picker-hint {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
}

.admin-booking-type-picker-body .birth-picker-col {
  flex: 1;
  width: 100%;
}

.admin-booking-type-drum-item {
  gap: 0.5rem;
  font-size: 0.95rem;
  cursor: pointer;
}

.admin-booking-type-drum-empty {
  padding: 1rem;
  text-align: center;
}

body.theme-dark .admin-horario-type-trigger {
  background: var(--surface-2, #1e293b);
  border-color: var(--border, #334155);
  color: var(--text, #e2e8f0);
}

.admin-horario-duration {
  flex: 0 1 7.5rem;
  min-width: 5.5rem;
}

.admin-horario-btn {
  flex: 0 0 auto;
  min-width: 2.25rem;
  padding-inline: 0.5rem;
  font-weight: 700;
  line-height: 1.2;
}

.admin-horario-row .admin-icon-btn,
.catalog-regiao-row .admin-icon-btn,
.admin-payment-plan-row .admin-icon-btn,
.admin-installment-row .admin-icon-btn {
  min-width: 2.25rem;
  padding: 0.35rem;
  pointer-events: auto;
  cursor: pointer;
}

/* ── Proposta de pagamento (novo formato com tabela) ── */
/* Header da página de pedido — título à esquerda, botão cancelar à direita */
.client-pedido-page-header {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1rem;
  min-height: 2.35rem;
  margin-bottom: 0.5rem;
}
.client-pedido-page-header .admin-page-header-breadcrumb {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0;
}
.client-pedido-page-header [data-pedido-cancel] {
  position: relative;
  z-index: 2;
}
.client-pedido-page-header [data-pedido-cancel][hidden] { display: none; }

/* Contra-Proposta do cliente no admin */
.admin-pedido-contraproposta {
  margin-top: 1rem;
  padding: 0.625rem 0.875rem;
  border: 1px solid var(--red-200, #fecaca);
  border-left: 3px solid var(--red-500, #ef4444);
  border-radius: 4px;
  background: var(--red-50, #fef2f2);
}
.admin-pedido-contraproposta-label {
  display: block;
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--red-600, #dc2626);
  margin-bottom: 0.25rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-pedido-contraproposta-text {
  margin: 0;
  color: var(--gray-800, #1f2937);
  line-height: 1.5;
  white-space: pre-wrap;
}

/* Bloco de observações importantes (nota do admin) */
.client-pedido-obs-importantes {
  padding: 0.625rem 0.875rem;
  background: var(--yellow-50, #fefce8);
  border-left: 3px solid var(--yellow-400, #facc15);
  border-radius: 4px;
  margin-bottom: 0.875rem;
  font-size: 0.9rem;
  line-height: 1.5;
}

/* Campo de contra-proposta — estilo de formulário */
.client-pedido-notes-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--navy-mid, #e2e6ef);
  border-radius: var(--radius-md, 8px);
  background: var(--navy-deep, #f7f8fb);
}
.client-pedido-notes-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--navy-light, #c8cfde);
  border-radius: var(--radius-sm, 5px);
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  background: #fff;
  resize: vertical;
  font-family: inherit;
}
.client-pedido-notes-field textarea:focus {
  outline: none;
  border-color: var(--brand, #0026ff);
  box-shadow: 0 0 0 3px rgba(0, 38, 255, 0.08);
}

/* Label "Contra-Proposta" no campo de notas do pedido */
.client-pedido-contraproposta-label {
  font-weight: 600;
  color: var(--red-600, #dc2626);
}

/* Linha do botão Enviar + feedback */
.client-pedido-notes-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

/* Linha de total no final da tabela de parcelas */
.admin-installments-table tfoot td {
  padding: 0.5rem 0.75rem;
  font-weight: 700;
  font-size: 1rem;
  border-top: 2px solid var(--gray-300, #d1d5db);
  text-align: right;
}
.admin-installments-table tfoot td:first-child,
.admin-installments-table tfoot td:nth-child(2) {
  font-weight: 600;
  color: var(--gray-600, #4b5563);
  text-align: left;
}

.admin-payment-plan-block {
  border: 1px solid var(--gray-200, #e5e7eb);
  border-radius: var(--radius-md, 8px);
  margin-bottom: 1rem;
  overflow: hidden;
}

.admin-payment-plan-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 0.875rem;
  background: var(--gray-50, #f9fafb);
  border-bottom: 1px solid var(--gray-200, #e5e7eb);
}

.admin-payment-plan-header-left {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.admin-payment-plan-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--gray-700, #374151);
  letter-spacing: 0.02em;
}

.admin-payment-plan-total {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--brand, #2563eb);
  background: var(--blue-50, #eff6ff);
  border: 1px solid var(--blue-200, #bfdbfe);
  border-radius: 999px;
  padding: 0.125rem 0.625rem;
}

.admin-payment-plan-header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.admin-installments-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.admin-installments-table thead th {
  padding: 0.4rem 0.75rem;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gray-500, #6b7280);
  background: var(--gray-50, #f9fafb);
  border-bottom: 1px solid var(--gray-200, #e5e7eb);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-installments-table thead th:last-child {
  width: 2.5rem;
}

.admin-installments-table tbody td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--gray-100, #f3f4f6);
  color: var(--gray-800, #1f2937);
}

.admin-installments-table tbody tr:last-child td {
  border-bottom: none;
}

.admin-installments-table tbody td:last-child {
  text-align: center;
  padding: 0.25rem;
}

.admin-table-empty {
  text-align: center;
  color: var(--gray-400, #9ca3af);
  font-style: italic;
  padding: 0.75rem !important;
}

/* ── Label auxiliar em campos do modal (sem <label>) ── */
.admin-modal-field-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--gray-600, #4b5563);
  margin: 0 0 0.4rem;
}

/* ── Pills de tipo de agendamento ── */
.admin-session-type-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.admin-session-type-pill {
  padding: 0.35rem 1rem;
  border-radius: 9999px;
  border: 2px solid var(--pill-color, #6b7280);
  color: var(--pill-color, #6b7280);
  background: transparent;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background 0.15s, color 0.15s, box-shadow 0.15s;
  white-space: nowrap;
}

.admin-session-type-pill:hover {
  background: color-mix(in srgb, var(--pill-color, #6b7280) 12%, transparent);
}

.admin-session-type-pill.is-selected {
  background: var(--pill-color, #6b7280);
  color: #fff;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pill-color, #6b7280) 30%, transparent);
}

/* ── Wrapper do slider de duração ── */
.admin-session-duration-wrap {
  display: flex;
  flex-direction: column;
}

/* ── Slider de duração no modal de agendamento ── */
.admin-range-input {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: var(--gray-200, #e5e7eb);
  outline: none;
  margin-top: 0.5rem;
  cursor: pointer;
}

.admin-range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--brand, #4f46e5);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
}

.admin-range-input::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border: none;
  border-radius: 50%;
  background: var(--brand, #4f46e5);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
}

/* ── Marcações de tempo abaixo do slider ── */
.admin-range-ticks {
  display: flex;
  justify-content: space-between;
  margin-top: 0.3rem;
  padding: 0 2px;
}

.admin-range-ticks span {
  font-size: 0.6875rem;
  color: var(--gray-400, #9ca3af);
  line-height: 1;
  width: 0;
  text-align: center;
  white-space: nowrap;
  overflow: visible;
}

/* ── Linha legada (mantida para retrocompatibilidade) ── */
.admin-installment-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.admin-installment-row .admin-icon-btn {
  flex: 0 0 auto;
}

.admin-installment-number {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border-radius: 50%;
  background: var(--gray-200, #e5e7eb);
  color: var(--gray-600, #4b5563);
  font-size: 0.8125rem;
  font-weight: 600;
  user-select: none;
  line-height: 1;
}

.admin-installment-amount {
  flex: 1 1 8rem;
  min-width: 0;
}

/* ===== Modal dialog (admin-group-members e futuros) ===== */
.modal-dialog {
  padding: 0;
  border: none;
  border-radius: var(--radius-lg, 12px);
  background: var(--white, #fff);
  box-shadow: 0 8px 40px rgba(15, 23, 42, 0.18);
  max-width: min(620px, 96vw);
  width: 100%;
  max-height: 90vh;
  overflow: hidden;
}

.modal-dialog::backdrop {
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
}

.modal-dialog[open] {
  display: flex;
}

.modal-dialog__inner {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: 100%;
  max-height: 90vh;
  flex: 1 1 auto;
  min-width: 0;
}

.modal-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.4rem 0.9rem;
  border-bottom: 1px solid var(--border, rgba(0,0,0,0.1));
  flex-shrink: 0;
}

.modal-dialog__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--heading, #0f172a);
}

.modal-dialog__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--text-muted, #64748b);
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease, color 0.15s ease;
}

.modal-dialog__close:hover {
  background: var(--surface-alt, rgba(0,0,0,0.06));
  color: var(--heading, #0f172a);
}

.modal-dialog__body {
  padding: 1.1rem 1.4rem 1.4rem;
  overflow-y: auto;
  flex: 1 1 auto;
}

.modal-dialog__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.75rem;
  margin-top: 0.25rem;
  border-top: 1px solid var(--border, #e5e7eb);
}

.modal-dialog__subtitle {
  font-size: 0.88rem;
  color: var(--text-muted, #64748b);
  margin: 0 0 1rem;
}

/* ===== Status toggle (ativo / inativo) ===== */
.status-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0;
  cursor: pointer;
  user-select: none;
}

.status-toggle__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.status-toggle__track {
  display: inline-block;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: var(--border, #cbd5e1);
  transition: background 0.2s ease;
  flex-shrink: 0;
}

.status-toggle__thumb {
  position: absolute;
  left: 3px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transition: left 0.2s ease;
  pointer-events: none;
}

.status-toggle[data-checked="true"] .status-toggle__track {
  background: #16a34a;
}

.status-toggle[data-checked="true"] .status-toggle__thumb {
  left: 19px;
}

.status-toggle:focus-within .status-toggle__track {
  outline: 2px solid var(--accent, #2563eb);
  outline-offset: 2px;
}

.status-toggle.is-loading .status-toggle__track {
  opacity: 0.55;
}

.theme-dark .modal-dialog {
  background: var(--surface, #1e293b);
  box-shadow: 0 8px 40px rgba(0,0,0,0.45);
}

.theme-dark .modal-dialog::backdrop {
  background: rgba(0, 0, 0, 0.6);
}

/* ─── Suporte admin + Ajuda cliente — tickets (T6/T7) ───────────────────── */
.admin-suporte-filter-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}
.admin-suporte-filter-row .field-input {
  min-width: 150px;
  font-size: 0.875rem;
  padding: 0.3rem 0.6rem;
}

/* Ações de status e prioridade (lista/detalhe admin) */
.admin-suporte-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--border, #e2e8f0);
  margin-bottom: 0.75rem;
}
.admin-suporte-actions__group {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.admin-suporte-actions__label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted, #64748b);
  min-width: 70px;
}
.btn--active {
  outline: 2px solid currentColor;
  outline-offset: 1px;
  opacity: 1 !important;
}

/* Thread de mensagens */
.admin-suporte-thread {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  max-height: 480px;
  overflow-y: auto;
  padding: 0.25rem 0;
  margin-bottom: 0.75rem;
}
.admin-suporte-reply-form {
  border-top: 1px solid var(--border, #e2e8f0);
  padding-top: 0.6rem;
}

/* Página de detalhe de ticket (admin + cliente) — coluna única */
.admin-suporte-ticket-layout,
.client-ajuda-ticket-layout {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.admin-suporte-ticket-sidebar,
.client-ajuda-ticket-sidebar {
  font-size: 0.875rem;
}

.admin-suporte-ticket-info-dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.75rem;
  margin: 0;
}
.admin-suporte-ticket-info-dl dt {
  font-weight: 600;
  color: var(--text-muted, #64748b);
  white-space: nowrap;
}
.admin-suporte-ticket-info-dl dd {
  margin: 0;
  word-break: break-word;
}

/* ─── Ajuda / tickets (T6) ──────────────────────────────────────────────── */
.admin-page-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.admin-page-header-row .admin-screen-title {
  margin-bottom: 0.15rem;
}

.admin-modal--wide .admin-modal__panel {
  max-width: 640px;
  width: 95vw;
}

/* Thread de mensagens */
.client-ticket-thread {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-height: 380px;
  overflow-y: auto;
  padding: 0.25rem 0;
}
.client-ticket-msg {
  background: var(--surface2, #f1f5f9);
  border-radius: 0.5rem;
  padding: 0.6rem 0.85rem;
  max-width: 90%;
  align-self: flex-start;
}
.client-ticket-msg--admin {
  background: var(--primary-soft, rgba(99,102,241,0.1));
  align-self: flex-end;
  text-align: right;
}
.client-ticket-msg__author {
  font-size: 0.78rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
  color: var(--text-muted, #64748b);
}
.client-ticket-msg__author small {
  font-weight: 400;
  margin-left: 0.35rem;
}
.client-ticket-msg__body {
  margin: 0;
  font-size: 0.9rem;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Meta do ticket no modal de detalhe */
.client-ticket-meta {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border, #e2e8f0);
}
.client-ticket-meta-pills {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

/* Formulário de resposta */
.client-ticket-reply-form {
  padding-top: 0.5rem;
  border-top: 1px solid var(--border, #e2e8f0);
}

/* ── Configurações de Agendamento ───────────────────────────────── */
.admin-page__header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.admin-page__header-row--end {
  justify-content: flex-end;
}
.admin-cronograma-page__title-row {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 0.45rem;
  margin-bottom: 0.85rem;
  width: auto;
  max-width: 100%;
}
.admin-cronograma-page__title-row .admin-screen-title {
  margin: 0;
  flex: 0 1 auto;
}
.admin-cronograma-page__title-row .admin-icon-btn {
  width: 1.85rem;
  height: 1.85rem;
  min-width: 1.85rem;
  padding: 0;
  flex: 0 0 auto;
}
.admin-cronograma-page__title-row .admin-icon-svg {
  width: 16px;
  height: 16px;
}
.admin-slots-page__head {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}
.admin-slots-page__head .admin-screen-title {
  margin: 0;
}

.booking-type-swatch {
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  margin-right: 0.4rem;
  vertical-align: middle;
  border: 1px solid rgba(0,0,0,.12);
  flex-shrink: 0;
}

.booking-type-swatch--lg {
  width: 1.35rem;
  height: 1.35rem;
  margin-right: 0;
  border-width: 2px;
  border-color: rgba(255, 255, 255, 0.65);
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);
}

/* ── Tipos de horário (modal Agendas) ── */
.booking-types-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.booking-types-panel__intro {
  min-width: 0;
}

.booking-types-panel__lead {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
  line-height: 1.4;
}

.booking-types-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .booking-types-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.booking-type-card {
  display: grid;
  grid-template-columns: 4px minmax(0, 1fr);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: calc(var(--radius, 12px) - 2px);
  background: var(--surface, #fff);
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.booking-type-card:hover {
  border-color: rgba(var(--brand-rgb, 36, 17, 220), 0.35);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.booking-type-card--inactive {
  opacity: 0.72;
}

.booking-type-card__accent {
  width: 4px;
  min-height: 100%;
}

.booking-type-card__body {
  display: grid;
  gap: 0.7rem;
  padding: 0.85rem 0.9rem;
}

.booking-type-card__top {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.booking-type-card__titles {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.booking-type-card__name {
  font-size: 0.98rem;
  font-weight: 650;
  color: var(--heading, #1a1a1a);
  line-height: 1.25;
  word-break: break-word;
}

.booking-type-card__slug {
  font-size: 0.78rem;
  color: var(--text-muted, #5c5c5c);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  word-break: break-all;
}

.booking-type-card__top .status-pill {
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.booking-type-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
  font-size: 0.8rem;
  color: var(--text-muted, #5c5c5c);
}

.booking-type-card__meta-item strong {
  color: var(--heading, #1a1a1a);
  font-weight: 600;
}

.booking-type-card__meta-item--color {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.booking-type-card__color-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.12);
}

.booking-type-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding-top: 0.15rem;
  border-top: 1px solid var(--border, #e2e8f0);
}

.booking-types-empty {
  text-align: center;
  padding: 1.75rem 1rem;
  border: 1px dashed var(--border, #e2e8f0);
  border-radius: calc(var(--radius, 12px) - 2px);
  background: var(--surface-muted, #fafafa);
}

.booking-types-empty__title {
  margin: 0 0 0.35rem;
  font-weight: 650;
  color: var(--heading, #1a1a1a);
}

.booking-types-empty .admin-muted {
  margin: 0;
}

.admin-modal--booking-type .admin-modal__panel {
  max-width: min(96vw, 28rem);
}

.booking-type-preview {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 0.95rem;
  border-radius: calc(var(--radius, 12px) - 2px);
  border: 1px solid var(--border, #e2e8f0);
  background: linear-gradient(180deg, var(--surface-muted, #fafafa), var(--surface, #fff));
}

.booking-type-preview__swatch {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
  flex-shrink: 0;
  background: #3b82f6;
}

.booking-type-preview__meta {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.booking-type-preview__meta strong {
  font-size: 0.98rem;
  color: var(--heading, #1a1a1a);
  word-break: break-word;
}

.booking-type-preview__meta .admin-muted {
  font-size: 0.78rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  word-break: break-all;
}

.booking-type-form-row {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

@media (min-width: 480px) {
  .booking-type-form-row {
    grid-template-columns: 1.4fr 0.8fr;
    align-items: end;
  }
}

.booking-type-active-label {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: calc(var(--radius, 12px) - 4px);
  background: var(--surface-muted, #fafafa);
}

.admin-color-field {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.admin-color-field input[type="color"] {
  width: 2.75rem;
  height: 2.25rem;
  padding: 0.15rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 0.35rem;
  cursor: pointer;
  background: none;
  flex-shrink: 0;
}

.admin-color-field input[type="text"] {
  flex: 1;
  min-width: 0;
}

.admin-checkbox-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.admin-required {
  color: var(--danger, #ef4444);
}

/* Imagem anexada no thread */
.client-ticket-msg__img {
  display: block;
  max-width: 100%;
  max-height: 320px;
  width: auto;
  border-radius: 0.4rem;
  margin-top: 0.4rem;
  object-fit: contain;
  cursor: zoom-in;
  border: 1px solid var(--border, #e2e8f0);
}

/* ── Cronograma: header com título + filtro de empresa ── */
.client-cronograma-page-header {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  min-height: 2.35rem;
}

.client-cronograma-page-header .admin-screen-title {
  margin: 0;
}

.client-cronograma-page-header .admin-page-header-breadcrumb {
  position: absolute;
  inset: 0;
  margin: 0;
}

.client-cronograma-page-header > .admin-screen-title[data-cronograma-main-title] {
  position: relative;
  z-index: 1;
}

.client-cronograma-page-header .client-cronograma-group-filter {
  display: flex;
  align-items: center;
  margin-left: auto;
  position: relative;
  z-index: 2;
}

.client-cronograma-group-filter-inner {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 0.375rem;
  background: #fff;
  padding: 0 0.5rem 0 0.6rem;
  color: var(--gray-500, #6b7280);
}

.client-cronograma-vision-icon {
  flex-shrink: 0;
  opacity: 0.55;
}

.client-cronograma-page-header .client-cronograma-group-select {
  font-size: 0.875rem;
  padding: 0.3rem 0;
  border: none;
  background: transparent;
  color: var(--gray-700, #374151);
  cursor: pointer;
  outline: none;
  min-width: 120px;
}

/* ── Cronograma: campo de comentário estilo formulário ── */
.cronograma-comment-form-wrap {
  margin-top: 0.25rem;
}

.cronograma-comment-form label span {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--gray-600, #4b5563);
  margin-bottom: 0.3rem;
}

.cronograma-comment-form textarea {
  width: 100%;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 0.375rem;
  padding: 0.5rem 0.625rem;
  font-size: 0.875rem;
  resize: vertical;
  font-family: inherit;
  color: var(--gray-800, #1f2937);
  background: #fff;
  transition: border-color 0.15s;
}

.cronograma-comment-form textarea:focus {
  outline: none;
  border-color: var(--primary, #3b82f6);
  box-shadow: 0 0 0 2px rgba(59,130,246,.15);
}

.cronograma-comment-form__actions {
  display: flex;
  justify-content: flex-end;
}

/* ── Cronograma: mídia (exibição sem download) ── */
.cronograma-media-wrap {
  position: relative;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #000;
  max-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cronograma-media-wrap img {
  width: 100%;
  max-height: 420px;
  object-fit: contain;
  display: block;
  pointer-events: none;  /* impede arrastar/salvar com botão direito */
  user-select: none;
  -webkit-user-drag: none;
}

.cronograma-media-wrap video {
  width: 100%;
  max-height: 420px;
  display: block;
}

/* Overlay transparente sobre imagem impede download por clique direito */
.cronograma-media-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  cursor: default;
}

/* ── Cronograma: avaliação com estrelas ── */
.cronograma-rating-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.cronograma-rating-label {
  margin: 0;
  font-size: 0.85rem;
  color: var(--gray-600, #4b5563);
  white-space: nowrap;
}

.cronograma-stars {
  display: flex;
  gap: 0.15rem;
}

.cronograma-star {
  background: none;
  border: none;
  padding: 0.1rem;
  cursor: pointer;
  font-size: 1.6rem;
  line-height: 1;
  color: #d1d5db;
  transition: color 0.12s, transform 0.1s;
}

.cronograma-star:hover,
.cronograma-star.is-active {
  color: #f59e0b;
}

.cronograma-star:hover ~ .cronograma-star {
  color: #d1d5db;
}

.cronograma-stars--readonly .cronograma-star {
  cursor: default;
  pointer-events: none;
}

/* ── Upload de mídia (admin) ── */
.cronograma-media-section {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.cronograma-media-upload {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.cronograma-media-upload__label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  cursor: pointer;
}

.cronograma-media-upload__label span {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--gray-600, #4b5563);
}

.cronograma-media-upload__label input[type=file] {
  font-size: 0.85rem;
  color: var(--gray-700, #374151);
}

/* ── Cronograma: telas inline (substitui dialogs) ── */
.cronograma-screen {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cronograma-screen__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid var(--border, #e2e8f0);
}

.cronograma-screen__header h2 {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--gray-900, #111827);
}

.cronograma-screen__header-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.cronograma-screen__icon-btn--confirm {
  color: #15803d;
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.cronograma-screen__icon-btn--confirm:hover {
  color: #166534;
  border-color: #86efac;
  background: #dcfce7;
}
.cronograma-screen__icon-btn--confirm.is-busy {
  opacity: 0.55;
  pointer-events: none;
}

[data-admin-cronograma-booking-confirm].is-busy {
  opacity: 0.55;
  pointer-events: none;
}

.cronograma-booking-status-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
}

.cronograma-screen .field-stack {
  gap: 1rem;
}

/* ── Feed de mensagens / conteúdo (tela de produção) ─────────────────────── */

.prod-feed {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1rem 0;
  max-height: 480px;
  overflow-y: auto;
}

.prod-feed__empty {
  text-align: center;
  padding: 1rem 0;
}

/* Balão de mensagem */
.prod-feed-item {
  display: flex;
}

.prod-feed-item--left {
  justify-content: flex-start;
}

.prod-feed-item--right {
  justify-content: flex-end;
}

.prod-feed-item__bubble {
  max-width: 72%;
  padding: 0.55rem 0.85rem;
  border-radius: 1rem;
  font-size: 0.9rem;
  line-height: 1.45;
  word-break: break-word;
}

.prod-feed-item--left .prod-feed-item__bubble {
  background: var(--bg-input, #f0f0f0);
  border-bottom-left-radius: 0.25rem;
  color: var(--text, #222);
}

.prod-feed-item--right .prod-feed-item__bubble {
  background: var(--accent, #2563eb);
  border-bottom-right-radius: 0.25rem;
  color: #fff;
}

.prod-feed-item--right .prod-feed-item__bubble a {
  color: #cfe4ff;
}

.prod-feed-item--left .prod-feed-item__bubble a {
  color: var(--accent, #2563eb);
}

.prod-feed-item__meta {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  margin-bottom: 0.2rem;
  font-size: 0.75rem;
  opacity: 0.75;
}

.prod-feed-item__author {
  font-weight: 600;
}

.prod-feed-item__date {
  font-size: 0.7rem;
}

.prod-feed-item__body {
  margin: 0;
  white-space: pre-wrap;
}

.prod-feed-item__media {
  margin-top: 0.4rem;
  border-radius: 0.5rem;
  overflow: hidden;
}

.prod-feed-item__media img,
.prod-feed-item__media video {
  display: block;
  max-width: 100%;
  border-radius: 0.5rem;
}

/* ── Área de composição de mensagem (feed-style) ─────────────────────────── */

.prod-feed-compose {
  border-top: 1px solid var(--border-color, #e0e0e0);
  padding-top: 0.75rem;
  margin-top: 0.5rem;
}

.prod-feed-compose__preview {
  margin-bottom: 0.5rem;
}

.prod-feed-compose__preview-inner {
  position: relative;
  display: inline-block;
}

.prod-feed-compose__preview-remove {
  position: absolute;
  top: 0.2rem;
  right: 0.2rem;
  background: rgba(0,0,0,0.55);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 1.4rem;
  height: 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}

.prod-feed-compose__form {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.prod-feed-compose__row {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
}

.prod-feed-compose__textarea {
  flex: 1;
  resize: none;
  border: 1px solid var(--border-color, #d0d0d0);
  border-radius: 0.6rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.9rem;
  line-height: 1.4;
  background: var(--bg-input, #fff);
  color: var(--text, #222);
  min-height: 2.6rem;
  max-height: 120px;
  overflow-y: auto;
}

.prod-feed-compose__textarea:focus {
  outline: none;
  border-color: var(--accent, #2563eb);
  box-shadow: 0 0 0 2px rgba(37,99,235,0.15);
}

.prod-feed-compose__btns {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}

/* Botão de ícone para anexar */
.prod-feed-attach-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  cursor: pointer;
  color: var(--text-muted, #888);
  transition: background 0.15s, color 0.15s;
}

.prod-feed-attach-btn:hover {
  background: var(--bg-input, #f0f0f0);
  color: var(--accent, #2563eb);
}

.prod-feed-compose__send {
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .prod-feed-item__bubble {
    max-width: 88%;
  }
}

/* ── Item de mídia principal da produção (primeiro no feed) ──────────────── */

.prod-feed-item--production {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  margin-bottom: 0.75rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background: var(--bg-input, #f5f5f5);
  border: 1px solid var(--border-color, #e0e0e0);
}

.prod-feed-production__title {
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.6rem 0.9rem 0;
  margin: 0;
  color: var(--text, #222);
}

.prod-feed-item--production .prod-feed-item__media {
  margin: 0.5rem 0 0;
  border-radius: 0;
}

.prod-feed-item--production .prod-feed-item__media img,
.prod-feed-item--production .prod-feed-item__media video {
  display: block;
  width: 100%;
  max-height: 420px;
  object-fit: contain;
  background: #000;
  border-radius: 0;
}

.prod-feed-production__rating {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.5rem 0.9rem 0.6rem;
  font-size: 0.85rem;
}

.prod-feed-production__rating .cronograma-star {
  font-size: 1.1rem;
  color: var(--border-color, #ccc);
}

.prod-feed-production__rating .cronograma-star.is-active {
  color: #f59e0b;
}

/* ── Sentinela de lazy loading ───────────────────────────────────────────── */

.prod-feed-sentinel {
  height: 1px;
  margin: 0;
  padding: 0;
  visibility: hidden;
}

/* ── Feed de produção estilo Facebook (pfb) ──────────────────────────────── */

/* Barra de publicação */
.pfb-upload-bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-color, #e0e0e0);
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.pfb-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background 0.15s, color 0.15s;
}

.pfb-upload-btn--image {
  background: var(--bg-input, #f0f7ff);
  color: #2563eb;
  border-color: #bfdbfe;
}
.pfb-upload-btn--image:hover { background: #dbeafe; }

.pfb-upload-btn--video {
  background: var(--bg-input, #f0fdf4);
  color: #16a34a;
  border-color: #bbf7d0;
}
.pfb-upload-btn--video:hover { background: #dcfce7; }

.pfb-upload-btn--map {
  background: var(--bg-input, #fff7ed);
  color: #ea580c;
  border-color: #fed7aa;
}
.pfb-upload-btn--map:hover { background: #ffedd5; }

.pfb-upload-btn--roteiro {
  background: var(--bg-input, #faf5ff);
  color: #7c3aed;
  border-color: #ddd6fe;
}
.pfb-upload-btn--roteiro:hover { background: #ede9fe; }

.pfb-upload-status {
  font-size: 0.82rem;
  margin-left: auto;
}

/* Feed container */
.pfb-feed {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 0.25rem 0 0.5rem;
}

.pfb-loading,
.pfb-empty {
  text-align: center;
  padding: 1.5rem 0;
  line-height: 1.6;
}

/* Sentinela */
.pfb-feed-sentinel {
  height: 1px;
  visibility: hidden;
}

/* ── Post individual ─────────────────────────────────────────────────────── */

.pfb-post {
  border: 1px solid var(--border-color, #e0e0e0);
  border-radius: 0.75rem;
  overflow: hidden;
  background: var(--card-bg, #fff);
}

.pfb-post__header {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.7rem 0.9rem 0.4rem;
}

.pfb-post__author {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--text, #222);
}

.pfb-post__date {
  font-size: 0.75rem;
  color: var(--text-muted, #888);
}

/* Mídia do post */
.pfb-post__media {
  background: #000;
  line-height: 0;
}

.pfb-post__media img {
  display: block;
  width: 100%;
  max-height: 480px;
  object-fit: contain;
  -webkit-user-drag: none;
  user-select: none;
}

.pfb-post__media video {
  display: block;
  width: 100%;
  max-height: 480px;
}

.pfb-post__media--map {
  background: var(--card-bg, #fff);
  line-height: normal;
  padding: 0.75rem 0.9rem 0.85rem;
}

.pfb-map-label {
  margin: 0 0 0.5rem;
  font-size: 0.92rem;
}

.pfb-map-embed {
  display: block;
  width: 100%;
  height: 220px;
  border: 0;
  border-radius: 0.5rem;
  background: #e5e7eb;
}

.pfb-map-link {
  display: inline-block;
  margin-top: 0.45rem;
  font-size: 0.84rem;
}

.pfb-post__media--roteiro {
  background: var(--card-bg, #fff);
  line-height: 1.55;
  padding: 0.85rem 0.95rem;
}

.pfb-roteiro-body {
  word-break: break-word;
  font-size: 0.92rem;
}

.pfb-post__media-error {
  margin: 0;
  padding: 0.85rem 0.95rem;
  color: var(--text-muted, #888);
}

/* Modais mapa / roteiro */
.pfb-map-modal__panel,
.pfb-roteiro-modal__panel {
  max-width: 720px;
  width: min(720px, 95vw);
}

.pfb-map-picker {
  width: 100%;
  height: 320px;
  border-radius: 0.5rem;
  border: 1px solid var(--border-color, #e0e0e0);
  overflow: hidden;
  z-index: 0;
}

.pfb-map-coords {
  margin: 0;
  font-size: 0.84rem;
}

.pfb-roteiro-shell {
  border: 1px solid var(--border-color, #cbd5e1);
  border-radius: 0.45rem;
  background: #fff;
  overflow: hidden;
}

.pfb-roteiro-shell:focus-within {
  border-color: rgba(var(--brand-rgb), 0.45);
  box-shadow: 0 0 0 3px rgba(var(--brand-rgb), 0.12);
}

.pfb-roteiro-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  padding: 0.2rem 0.25rem;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  border-bottom: 1px solid var(--border-color, #cbd5e1);
}

.pfb-roteiro-toolbar__group {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 0.12rem 0.2rem;
}

.pfb-roteiro-toolbar__group + .pfb-roteiro-toolbar__group {
  border-left: 1px solid var(--border-color, #cbd5e1);
}

.pfb-roteiro-tbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0.05rem;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 0.2rem;
  background: transparent;
  color: var(--gray-900, #111827);
  font-size: 0.92rem;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}

.pfb-roteiro-tbtn[data-pfb-roteiro-tbtn-wide] {
  width: 2.15rem;
  font-size: 0.82rem;
}

.pfb-roteiro-tbtn strong,
.pfb-roteiro-tbtn em,
.pfb-roteiro-tbtn u,
.pfb-roteiro-tbtn s {
  font: inherit;
  pointer-events: none;
}

.pfb-roteiro-tbtn:hover {
  background: #fff;
  border-color: var(--border-color, #cbd5e1);
}

.pfb-roteiro-tbtn.is-active {
  background: #dbeafe;
  border-color: #93c5fd;
  box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.25);
}

.pfb-roteiro-tbtn--color {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.pfb-roteiro-tbtn__color-a {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1;
  pointer-events: none;
}

.pfb-roteiro-tbtn--color input[type="color"] {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0.45rem;
  padding: 0;
  border: 0;
  cursor: pointer;
  opacity: 1;
}

.pfb-roteiro-toolbar__group[aria-label="Cor e tamanho"] {
  flex-wrap: nowrap;
  gap: 0;
}

.pfb-roteiro-tselect-wrap {
  position: relative;
  display: inline-flex;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  margin: 0.05rem;
  overflow: hidden;
}

/* Sobrescreve `.field-stack select` (touch-target 48px / width 100% do formulário). */
.pfb-roteiro-modal__panel .pfb-roteiro-shell .pfb-roteiro-tselect {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  margin: 0;
  padding: 0 0.55rem 0 0.08rem;
  border: 1px solid var(--border-color, #cbd5e1);
  border-radius: 0.2rem;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4' viewBox='0 0 6 4'%3E%3Cpath fill='%2364748b' d='M0 0l3 4 3-4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.14rem center;
  background-size: 6px 4px;
  color: var(--gray-900, #111827);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  text-align-last: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.theme-dark .pfb-roteiro-modal__panel .pfb-roteiro-shell .pfb-roteiro-tselect {
  background-color: #fff;
  color: var(--gray-900, #111827);
  border-color: var(--border-color, #cbd5e1);
}

.pfb-roteiro-editor {
  min-height: 240px;
  max-height: min(50vh, 420px);
  overflow-y: auto;
  padding: 0.85rem 0.95rem;
  background: #fff;
  line-height: 1.55;
  font-size: 1rem;
  outline: none;
  word-break: break-word;
}

.pfb-roteiro-editor:empty::before {
  content: attr(data-placeholder);
  color: var(--text-muted, #94a3b8);
  pointer-events: none;
}

.pfb-roteiro-body p {
  margin: 0 0 0.65rem;
}

.pfb-roteiro-body p:last-child {
  margin-bottom: 0;
}

.pfb-roteiro-body ul,
.pfb-roteiro-body ol {
  margin: 0 0 0.65rem;
  padding-left: 1.35rem;
}

.pfb-roteiro-body li {
  margin: 0.2rem 0;
}

/* Rating */
.pfb-post__rating {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.5rem 0.9rem 0.3rem;
}

.pfb-post__avg-rating {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.9rem 0.3rem;
  font-size: 0.85rem;
}

.pfb-post__avg-rating--empty {
  opacity: 0.65;
}

.pfb-post__avg-label {
  color: var(--text-muted, #888);
  font-size: 0.8rem;
}

/* Estrelas */
.pfb-star {
  font-size: 1.4rem;
  line-height: 1;
  color: var(--border-color, #ccc);
  background: none;
  border: none;
  padding: 0;
  cursor: default;
  transition: color 0.1s, transform 0.1s;
}

.pfb-star.is-active {
  color: #f59e0b;
}

.pfb-star--interactive {
  cursor: pointer;
}

.pfb-star--interactive:hover,
.pfb-star--interactive:hover ~ .pfb-star--interactive {
  color: #fbbf24;
  transform: scale(1.15);
}

/* Seção de comentários */
.pfb-post__comments-section {
  padding: 0 0.9rem 0.7rem;
  border-top: 1px solid var(--border-color, #e9e9e9);
  margin-top: 0.4rem;
}

.pfb-post__comments {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.5rem 0 0.3rem;
  max-height: 200px;
  overflow-y: auto;
}

.pfb-post__no-comments {
  margin: 0;
  padding: 0.3rem 0;
  font-size: 0.82rem;
}

/* Comentário individual */
.pfb-comment {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.4rem;
  font-size: 0.87rem;
  line-height: 1.4;
  padding: 0.25rem 0.5rem;
  border-radius: 0.5rem;
  background: var(--bg-input, #f5f5f5);
}

.pfb-comment--admin {
  background: #eff6ff;
}

.pfb-comment__author {
  font-weight: 600;
  color: var(--text, #222);
  flex-shrink: 0;
}

.pfb-comment__body {
  flex: 1;
  word-break: break-word;
  white-space: pre-wrap;
  color: var(--text, #333);
}

.pfb-comment__body a {
  color: var(--accent, #2563eb);
  word-break: break-all;
}

.pfb-comment__date {
  font-size: 0.72rem;
  color: var(--text-muted, #aaa);
  flex-shrink: 0;
  margin-left: auto;
}

/* Formulário de comentário inline */
.pfb-post__comment-form {
  margin-top: 0.35rem;
}

.pfb-post__comment-row {
  display: flex;
  gap: 0.4rem;
  align-items: center;
}

.pfb-post__comment-input {
  flex: 1;
  border: 1px solid var(--border-color, #d0d0d0);
  border-radius: 1.5rem;
  padding: 0.4rem 0.85rem;
  font-size: 0.875rem;
  background: var(--bg-input, #fff);
  color: var(--text, #222);
}

.pfb-post__comment-input:focus {
  outline: none;
  border-color: var(--accent, #2563eb);
}

.pfb-post__comment-submit {
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .pfb-post__media img,
  .pfb-post__media video {
    max-height: 320px;
  }
  .pfb-star {
    font-size: 1.2rem;
  }
}

/* PWA — botão instalar nos painéis cliente/admin */
.admin-sidebar.is-open {
  display: flex;
  flex-direction: column;
}
.admin-sidebar__footer {
  margin-top: auto;
  padding-top: .75rem;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}
.admin-sidebar__pwa-btn {
  width: 100%;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.admin-app__pwa-btn {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(var(--brand-rgb), 0.28);
  border-radius: 999px;
  background: var(--white, #fff);
  color: var(--heading);
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
}
.admin-app__pwa-btn:not([hidden]) {
  display: grid;
}
.admin-app__pwa-btn svg {
  width: 22px;
  height: 22px;
}
.admin-app__pwa-btn:hover {
  border-color: rgba(var(--brand-rgb), 0.45);
  color: var(--brand);
}
.pwa-install-dialog {
  border: none;
  padding: 0;
  max-width: min(92vw, 26rem);
  background: transparent;
}
.pwa-install-dialog::backdrop {
  background: rgba(15, 23, 42, 0.55);
}
.pwa-install-dialog__panel {
  background: var(--white, #fff);
  color: var(--text);
  border-radius: 16px;
  padding: 1.1rem 1.15rem 1rem;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22);
}
.pwa-install-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .75rem;
}
.pwa-install-dialog__header h2 {
  margin: 0;
  font-size: 1.05rem;
  color: var(--heading);
}
.pwa-install-dialog__close {
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: .15rem .35rem;
}
.pwa-install-dialog__steps {
  margin: 0 0 .85rem;
  padding-left: 1.15rem;
  display: grid;
  gap: .55rem;
  font-size: .92rem;
  line-height: 1.45;
}
.pwa-install-dialog__share-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: .35rem;
  background: rgba(var(--brand-rgb), 0.12);
  color: var(--brand);
  font-size: .85rem;
  vertical-align: middle;
}
.pwa-install-dialog__hint {
  margin: 0 0 1rem;
  font-size: .84rem;
  color: var(--text-muted);
}
.pwa-install-dialog__footer {
  display: flex;
  justify-content: flex-end;
}
.theme-dark .pwa-install-dialog__panel {
  background: var(--navy-soft, #111827);
  border: 1px solid var(--border);
}

/* Faixa «Voltar ao admin» durante impersonação — vermelho = alerta de sessão no cliente */
.client-impersonation-tab {
  position: fixed;
  right: 0;
  top: 50%;
  z-index: 9500;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  min-height: 9.5rem;
  padding: 0.85rem 0.35rem;
  margin: 0;
  border: 0;
  border-radius: calc(var(--radius) - 2px) 0 0 calc(var(--radius) - 2px);
  background: var(--danger, #c0392b);
  color: #fff;
  box-shadow: -4px 0 18px rgba(192, 57, 43, 0.35);
  cursor: pointer;
  transform: translateY(-50%);
  transition: background 0.15s ease, box-shadow 0.15s ease;
}
.client-impersonation-tab:hover {
  background: #a93226;
  box-shadow: -6px 0 22px rgba(192, 57, 43, 0.45);
}
.client-impersonation-tab:focus-visible {
  outline: 2px solid var(--danger, #c0392b);
  outline-offset: 2px;
}
.client-impersonation-tab:disabled {
  opacity: 0.65;
  cursor: wait;
}
.client-impersonation-tab__label {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-transform: uppercase;
  white-space: nowrap;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
@media (max-width: 640px) {
  .client-impersonation-tab {
    width: 2rem;
    min-height: 8rem;
    padding: 0.65rem 0.25rem;
  }
  .client-impersonation-tab__label {
    font-size: 0.66rem;
  }
}

/* =============================================================================
   Webmail (painel cliente)
   ============================================================================= */
.webmail-page {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  box-sizing: border-box;
  overflow: hidden;
  color: var(--text);
  background: transparent;
}
.webmail-page input,
.webmail-page select,
.webmail-page textarea {
  color: var(--text);
  background: var(--surface);
  border-color: var(--border);
}
.webmail-page .admin-muted {
  color: var(--muted);
}
.webmail-topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.15rem 0.15rem 0;
  flex-shrink: 0;
}
.webmail-topbar__left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1 1 auto;
}
.webmail-search {
  display: flex;
  align-items: center;
  flex: 1 1 12rem;
  min-width: 10rem;
  max-width: 22rem;
  margin: 0;
}
.webmail-search input {
  width: 100%;
  min-height: 2.4rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.55rem;
  background: var(--surface, #fff);
  font: inherit;
}
.webmail-topbar__actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
.webmail-sort-option {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  cursor: pointer;
}
.webmail-mark-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.webmail-account-title {
  margin: 0;
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--heading, #111);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(100%, 36rem);
}
.webmail-icon-btn {
  display: inline-grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.55rem;
  background: var(--surface, #fff);
  color: var(--heading, #111);
  cursor: pointer;
}
.webmail-icon-btn:hover {
  background: color-mix(in srgb, var(--primary, #2411dc) 10%, transparent);
  border-color: color-mix(in srgb, var(--primary, #2411dc) 35%, var(--border, #ddd));
}
.webmail-icon-btn svg {
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}
.webmail-mailbox-select select {
  min-width: 14rem;
  max-width: 100%;
}
.webmail-shell {
  display: grid;
  grid-template-columns: 13rem minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.75rem;
  background: var(--surface, #fff);
  overflow: hidden;
  min-height: 0;
  flex: 1 1 auto;
  height: auto;
}
.webmail-folders {
  border-right: 1px solid var(--border, #ddd);
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--heading, #111) 8%);
  padding: 0.75rem 0.5rem;
  overflow: auto;
  min-height: 0;
}
.webmail-folders__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  padding: 0 0.35rem 0.5rem;
  font-size: 0.85rem;
}
.webmail-folders__head-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}
.webmail-icon-btn--sm {
  width: 2rem;
  height: 2rem;
  border-radius: 0.45rem;
}
.webmail-icon-btn--sm svg {
  width: 1.1rem;
  height: 1.1rem;
}
.webmail-icon-btn.is-active,
.webmail-icon-btn[aria-pressed="true"] {
  background: color-mix(in srgb, var(--primary, #2411dc) 16%, transparent);
  border-color: color-mix(in srgb, var(--primary, #2411dc) 40%, var(--border, #ddd));
  color: var(--primary, #2411dc);
}
.webmail-folders__list {
  display: grid;
  gap: 0.15rem;
}
.webmail-folder-row {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  min-width: 0;
}
.webmail-folder-del {
  display: none;
  place-items: center;
  flex-shrink: 0;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  border: 0;
  border-radius: 0.4rem;
  background: transparent;
  color: #b42318;
  cursor: pointer;
}
.webmail-folders.is-editing .webmail-folder-del {
  display: inline-grid;
}
.webmail-folder-del:hover {
  background: color-mix(in srgb, #b42318 12%, transparent);
}
.webmail-folder-del svg {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
}
.webmail-folder-btn {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  color: inherit;
  cursor: pointer;
  font: inherit;
}
.webmail-folder-btn__name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.webmail-folder-btn:hover,
.webmail-folder-btn.is-active {
  background: color-mix(in srgb, var(--primary, #2411dc) 14%, transparent);
}
.webmail-folder-badge {
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--primary, #2411dc);
  color: #fff;
  border-radius: 999px;
  padding: 0.05rem 0.4rem;
  flex-shrink: 0;
}
.webmail-folder-dialog.admin-modal {
  border: 0;
  padding: 0;
  background: transparent;
  max-width: calc(100vw - 1.5rem);
}
.webmail-folder-dialog.admin-modal::backdrop {
  background: rgba(15, 18, 30, 0.45);
}
.webmail-folder-dialog__panel {
  width: min(24rem, 96vw);
  margin: auto;
  border-radius: 0.85rem;
  padding: 1rem 1.1rem 1.15rem;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}
.webmail-list-pane {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.webmail-list-toolbar,
.webmail-read-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid var(--border, #ddd);
}
/* Leitura da mensagem: ocupa a janela inteira do webmail */
.webmail-read-dialog.admin-modal {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  inset: 0;
  background: var(--surface, #fff);
}
.webmail-read-dialog.admin-modal::backdrop {
  background: var(--surface, #fff);
}
.webmail-read-dialog__panel {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
}
.webmail-read-dialog__top {
  flex-shrink: 0;
  align-items: center;
  gap: 0.65rem;
}
.webmail-read-dialog__top h2 {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
  font-size: 1.05rem;
}
.webmail-read-dialog .webmail-read-toolbar {
  flex-shrink: 0;
}
.webmail-read-dialog .webmail-read-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: auto;
}
.webmail-read-dialog .webmail-html-frame {
  min-height: min(70dvh, 40rem);
  height: auto;
  flex: 1;
}
.webmail-settings-dialog.admin-modal {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  inset: 0;
  background: var(--surface, #fff);
}
.webmail-settings-dialog.admin-modal::backdrop {
  background: var(--surface, #fff);
}
.webmail-settings-panel {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0.75rem 1rem 1rem;
}
.webmail-settings-dialog__top {
  flex-shrink: 0;
  align-items: center;
  gap: 0.65rem;
}
.webmail-settings-dialog__top h2 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 1.05rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.webmail-settings-tabs {
  display: flex;
  gap: 0.35rem;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border, #ddd);
  padding: 0.35rem 0 0.5rem;
}
.webmail-settings-tab {
  border: 0;
  background: transparent;
  padding: 0.45rem 0.75rem;
  border-radius: 0.45rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  color: var(--muted, #666);
}
.webmail-settings-tab.is-active,
.webmail-settings-tab[aria-selected="true"] {
  background: color-mix(in srgb, var(--primary, #2411dc) 12%, transparent);
  color: var(--heading, #111);
}
.webmail-settings-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  margin-top: 0.75rem;
}
.webmail-settings-tabpanel {
  height: 100%;
  min-height: 0;
}
.webmail-filters-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
  gap: 1.25rem;
  align-items: start;
  min-height: 100%;
}
.webmail-filters-col--list {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-height: min(60dvh, 32rem);
}
.webmail-filters-col--form {
  min-width: 0;
  position: sticky;
  top: 0;
  padding: 1rem;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.65rem;
  background: color-mix(in srgb, var(--surface, #fff) 94%, #000);
}
.webmail-filters-hint {
  margin: 0 0 0.35rem;
  font-size: 0.88rem;
}
.webmail-filters-form {
  gap: 0.65rem;
}
@media (max-width: 820px) {
  .webmail-filters-layout {
    grid-template-columns: 1fr;
  }
  .webmail-filters-col--form {
    position: static;
  }
  .webmail-filters-col--list {
    min-height: 0;
  }
}
.webmail-message-list {
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
}
.webmail-check-all {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  cursor: pointer;
  user-select: none;
}
.webmail-check-all input[type="checkbox"],
.webmail-row__check input[type="checkbox"] {
  width: 1.35rem;
  height: 1.35rem;
  min-width: 1.35rem;
  min-height: 1.35rem;
  margin: 0;
  accent-color: var(--primary, #2411dc);
  cursor: pointer;
  flex-shrink: 0;
}
.webmail-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
  border-bottom: 1px solid color-mix(in srgb, var(--border, #ddd) 70%, transparent);
  padding: 0.15rem 0.4rem;
}
.webmail-row__note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 0.4rem;
  background: transparent;
  color: var(--muted, #666);
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
}
.webmail-row__note svg {
  width: 1.15rem;
  height: 1.15rem;
}
.webmail-row__note:hover,
.webmail-row__note.is-active {
  color: var(--primary, #2411dc);
  background: color-mix(in srgb, var(--primary, #2411dc) 12%, transparent);
}
.webmail-notes-panel {
  max-width: 32rem;
  width: min(92vw, 32rem);
}
.webmail-notes-subject {
  margin: 0;
  font-size: 0.9rem;
}
.webmail-notes-events {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 0.25rem;
}
.webmail-notes-event-item {
  font-size: 0.88rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid color-mix(in srgb, var(--border, #ddd) 80%, transparent);
  border-radius: 0.4rem;
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--primary, #2411dc));
}
.webmail-row__check {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  margin: 0;
  padding: 0.35rem 0.2rem;
  cursor: pointer;
}
.webmail-row.is-unread .webmail-row__from,
.webmail-row.is-unread .webmail-row__subject {
  font-weight: 700;
}
.webmail-row.is-active {
  background: color-mix(in srgb, var(--primary, #2411dc) 10%, transparent);
}
.webmail-row__main {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.6fr) auto 1.5rem;
  gap: 0.5rem;
  align-items: center;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 0.55rem 0.25rem;
  cursor: pointer;
  color: inherit;
  font: inherit;
  width: 100%;
}
.webmail-row__from,
.webmail-row__subject {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.webmail-row__date {
  font-size: 0.78rem;
  color: var(--muted, #666);
  white-space: nowrap;
}
.webmail-row__attach {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  flex-shrink: 0;
  color: transparent;
  border-radius: 0.3rem;
}
.webmail-row__attach.is-on {
  color: var(--primary, #2411dc);
  background: color-mix(in srgb, var(--primary, #2411dc) 12%, transparent);
}
.webmail-row__attach svg {
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}
.webmail-read-body {
  overflow: auto;
  flex: 1;
  padding: 0.85rem 1rem 1.25rem;
}
.webmail-read-head h2 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}
.webmail-read-head p {
  margin: 0.15rem 0;
  font-size: 0.9rem;
}
.webmail-html-frame {
  width: 100%;
  min-height: 18rem;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.5rem;
  background: var(--webmail-content-bg, #fff);
  color: #111;
}
.webmail-text-body {
  white-space: pre-wrap;
  font-family: inherit;
  font-size: 0.95rem;
}
.webmail-attach-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.65rem 0 0.35rem;
}
.webmail-attach-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.35rem 0 0.85rem;
}
.webmail-attach {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.6rem;
  border-radius: 0.4rem;
  border: 1px solid var(--border, #ddd);
  background: color-mix(in srgb, var(--primary, #2411dc) 6%, transparent);
  color: inherit;
  font: inherit;
  font-size: 0.82rem;
  cursor: pointer;
}
.webmail-attach:hover {
  border-color: color-mix(in srgb, var(--primary, #2411dc) 45%, var(--border, #ddd));
  color: var(--primary, #2411dc);
}
.webmail-preview-dialog.admin-modal {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  inset: 0;
  background: var(--surface, #fff);
}
.webmail-preview-dialog.admin-modal::backdrop {
  background: var(--surface, #fff);
}
.webmail-preview-panel {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0.75rem 1rem 1rem;
}
.webmail-preview-dialog__top {
  flex-shrink: 0;
  align-items: center;
  gap: 0.55rem;
}
.webmail-preview-dialog__top h2 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 1.05rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.webmail-preview-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 0;
  background: color-mix(in srgb, var(--surface, #fff) 92%, #000);
}
.webmail-preview-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0.35rem;
}
.webmail-preview-frame {
  width: 100%;
  height: 100%;
  min-height: 70dvh;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.4rem;
  background: var(--webmail-content-bg, #fff);
}
.webmail-preview-text {
  width: 100%;
  max-width: 56rem;
  margin: 0;
  padding: 1rem;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.9rem;
  text-align: left;
  align-self: stretch;
}
.webmail-preview-loading,
.webmail-preview-unavailable {
  margin: 0;
  padding: 1.5rem;
  text-align: center;
}
.webmail-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.75rem;
  background: var(--surface, #fff);
  flex-shrink: 0;
  position: static;
  z-index: 2;
}
.webmail-footer__quota {
  font-size: 0.88rem;
  font-weight: 600;
}
.webmail-footer__pager {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
}
.webmail-mobile-only { display: none; }
.webmail-empty { padding: 1.25rem; }
.webmail-filters-list {
  display: grid;
  gap: 0.65rem;
  flex: 1 1 auto;
  align-content: start;
  overflow: auto;
  min-height: 0;
  padding-right: 0.15rem;
}
.webmail-filter-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.55rem;
  background: var(--surface, #fff);
}
.webmail-filter-item p {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  line-height: 1.35;
}
.webmail-filter-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}
.webmail-filter-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border-radius: 0.35rem;
  font-size: 0.78rem;
  background: color-mix(in srgb, var(--primary, #2411dc) 10%, transparent);
  color: var(--heading, #111);
}
.webmail-unlock-email { font-weight: 700; margin: 0; }
.webmail-compose-dialog.admin-modal {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  inset: 0;
  background: var(--surface, #fff);
}
.webmail-compose-dialog.admin-modal::backdrop {
  background: var(--surface, #fff);
}
.webmail-compose-panel {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0.75rem 1rem 1rem;
}
.webmail-compose-dialog__top {
  flex-shrink: 0;
  align-items: center;
  gap: 0.65rem;
}
.webmail-compose-dialog__top h2 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 1.05rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.webmail-compose-form {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow: hidden;
}
.webmail-compose-fields {
  display: grid;
  gap: 0.55rem;
  flex-shrink: 0;
}
.webmail-compose-fields label {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 0.5rem;
  align-items: center;
}
.webmail-compose-fields label > span {
  font-size: 0.88rem;
  color: var(--muted, #666);
}
.webmail-compose-editor-wrap {
  flex: 1 1 auto;
  min-height: 12rem;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border, #ddd);
  border-radius: 0.5rem;
  overflow: hidden;
  background: var(--surface);
  color: var(--text);
}
.webmail-compose-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--border, #ddd);
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--primary, #2411dc));
  flex-shrink: 0;
}
.webmail-compose-toolbar__btn {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 0.82rem;
  padding: 0.28rem 0.45rem;
  border-radius: 0.35rem;
  cursor: pointer;
  line-height: 1.2;
}
.webmail-compose-toolbar__btn:hover,
.webmail-compose-toolbar__btn.is-active {
  background: color-mix(in srgb, var(--primary, #2411dc) 14%, transparent);
  color: var(--primary, #2411dc);
}
.webmail-compose-toolbar__sep {
  width: 1px;
  align-self: stretch;
  background: var(--border, #ddd);
  margin: 0 0.15rem;
}
.webmail-compose-editor {
  flex: 1 1 auto;
  min-height: 10rem;
  overflow: auto;
  padding: 0.85rem 1rem;
  outline: none;
  font: inherit;
  line-height: 1.5;
  color: inherit;
}
.webmail-compose-editor:empty::before {
  content: attr(data-placeholder);
  color: var(--muted, #888);
  pointer-events: none;
}
.webmail-compose-attach {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.webmail-compose-attach__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}
.webmail-compose-attach__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  max-height: 8rem;
  overflow: auto;
}
.webmail-compose-attach__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.4rem 0.55rem;
  border: 1px solid color-mix(in srgb, var(--border, #ddd) 80%, transparent);
  border-radius: 0.4rem;
  font-size: 0.86rem;
}
.webmail-compose-attach__item.is-loading {
  opacity: 0.75;
}
.webmail-compose-attach__item.is-error {
  border-color: color-mix(in srgb, #dc2626 50%, var(--border, #ddd));
}
.webmail-compose-attach__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.webmail-compose-attach__meta {
  color: var(--muted, #666);
  white-space: nowrap;
  font-size: 0.8rem;
}
.webmail-compose-attach__remove {
  border: 0;
  background: transparent;
  color: var(--muted, #666);
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 0.1rem 0.35rem;
  border-radius: 0.3rem;
}
.webmail-compose-attach__remove:hover {
  color: #dc2626;
  background: color-mix(in srgb, #dc2626 10%, transparent);
}
.webmail-compose-actions {
  flex-shrink: 0;
  margin-top: 0;
}
@media (max-width: 640px) {
  .webmail-compose-fields label {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.webmail-tool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  min-width: 2.35rem;
  height: 2.35rem;
  padding: 0;
}
.webmail-tool-btn svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
  flex-shrink: 0;
}
.webmail-tool-btn__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 960px) {
  .webmail-shell {
    grid-template-columns: 1fr;
    position: relative;
  }
  .webmail-folders,
  .webmail-list-pane {
    border-right: 0;
  }
  .webmail-shell[data-mobile-pane="list"] .webmail-folders { display: none; }
  .webmail-shell[data-mobile-pane="folders"] .webmail-list-pane { display: none; }
  .webmail-mobile-only { display: inline-flex; }
  body.webmail-embed .webmail-topbar__actions {
    display: none;
  }
  .webmail-row__main {
    grid-template-columns: minmax(0, 1fr) 1.55rem;
    gap: 0.15rem 0.45rem;
  }
  .webmail-row__from,
  .webmail-row__subject,
  .webmail-row__date {
    grid-column: 1;
  }
  .webmail-row__attach {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
  }
  .webmail-account-title {
    max-width: 100%;
    white-space: normal;
  }
}

/* Modal webmail: ocupa a janela abaixo da barra de topo; não cobre o chat à direita */
.webmail-shell-modal {
  position: fixed;
  z-index: 56;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--surface, #fff);
  box-shadow: none;
  overflow: hidden;
}
.webmail-shell-modal[hidden] {
  display: none !important;
}
.webmail-shell-modal__frame {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  background: var(--surface, #fff);
}
body.webmail-modal-open {
  overflow: hidden;
}
.admin-app__webmail-actions {
  display: none;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  body.webmail-modal-open .admin-menu-toggle {
    display: none !important;
  }
  body.webmail-modal-open .admin-app__bar-actions {
    display: none !important;
  }
  body.webmail-modal-open .admin-app__webmail-actions {
    display: inline-flex;
    grid-column: 3;
    justify-self: end;
    align-self: center;
  }
  body.webmail-modal-open .admin-app__bar {
    grid-template-columns: 0 minmax(0, 1fr) auto;
  }
  body.webmail-modal-open .admin-app__mobile-brand {
    grid-column: 2;
    justify-self: center;
  }
  body.webmail-modal-open .dizpare-notify.is-open .dizpare-notify-panel {
    display: none !important;
  }
}
@media (min-width: 1100px) {
  body.webmail-modal-open .client-app__chat-rail {
    z-index: 57;
  }
}
/* Dentro do iframe: só o webmail (shell do painel fica no parent) */
body.webmail-embed .admin-sidebar,
body.webmail-embed .admin-sidebar__mode-wrap,
body.webmail-embed .admin-app__bar,
body.webmail-embed .admin-menu-toggle,
body.webmail-embed .client-app__chat-rail,
body.webmail-embed .client-impersonation-tab,
body.webmail-embed footer.admin-app__footer,
body.webmail-embed .admin-app__footer,
body.webmail-embed .admin-dock {
  display: none !important;
}
body.webmail-embed .admin-app,
body.webmail-embed .admin-app__body,
body.webmail-embed .admin-main,
body.webmail-embed main,
body.webmail-embed .admin-app__main {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
body.webmail-embed .admin-app {
  display: flex !important;
  flex-direction: column !important;
}
body.webmail-embed .admin-app__body {
  display: block !important;
  flex: 1 1 auto !important;
}
body.webmail-embed .webmail-page {
  height: 100%;
  max-height: 100%;
  min-height: 0;
  padding: 0.55rem 0.65rem 0.65rem;
  box-sizing: border-box;
  overflow: hidden;
}
body.webmail-embed,
html.webmail-embed-root,
html.webmail-embed-root body {
  height: 100%;
  max-height: 100%;
  overflow: hidden;
}
body.webmail-embed.theme-dark,
html.webmail-embed-root body.theme-dark {
  background-color: #070b16;
  color: var(--text);
}
body.webmail-embed.theme-light,
html.webmail-embed-root body.theme-light {
  background-color: var(--white, #fff);
  color: var(--text);
}
body.theme-dark .webmail-shell-modal,
body.theme-dark .webmail-shell-modal__frame {
  background: var(--surface);
}
body.theme-dark .webmail-row.is-unread {
  background: color-mix(in srgb, var(--primary) 10%, var(--surface));
}
body.theme-dark .webmail-text-body,
body.theme-dark .webmail-preview-text {
  color: var(--text);
}

/* --- Link da Bio (painel cliente) --- */
.client-bio-layout{display:block;width:100%}
.client-bio-layout .client-bio-list-card{width:100%;max-width:none}
.client-bio-grid-2{display:grid;gap:1rem}
@media(min-width:720px){.client-bio-grid-2{grid-template-columns:1fr 1fr}}
.client-bio-switch{display:flex;align-items:flex-start;gap:.6rem;margin:.25rem 0}
.client-bio-switch input{margin-top:.2rem}
.client-bio-avatar-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.client-bio-avatar-row img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid rgba(0,0,0,.12)}
.client-bio-map-picker{width:100%;min-height:260px;border-radius:.75rem;border:1px solid rgba(0,0,0,.12);background:#e8eef5;overflow:hidden;z-index:0}
.client-bio-map-picker .leaflet-container{width:100%;height:100%;min-height:260px;font:inherit}
.client-bio-map-actions{margin-top:.5rem}
.client-bio-field--map-search{position:relative;z-index:5}
.client-bio-map-search-wrap{position:relative;width:100%}
.client-bio-map-search{display:flex;gap:.45rem;align-items:stretch;width:100%}
.client-bio-map-search input[type="search"]{flex:1;min-width:0;margin:0}
.client-bio-map-search input[type="search"].is-searching{opacity:.85}
.client-bio-map-search .btn{flex:0 0 auto;align-self:stretch;min-width:4.5rem}
.client-bio-map-suggestions{
  position:absolute;left:0;right:0;top:calc(100% + .28rem);z-index:30;
  margin:0;padding:.28rem;list-style:none;
  max-height:14rem;overflow:auto;
  border:1px solid rgba(0,0,0,.1);border-radius:.75rem;
  background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.14);
}
.client-bio-map-suggestions__item{
  display:flex;flex-direction:column;gap:.1rem;
  padding:.55rem .65rem;border-radius:.55rem;cursor:pointer;
}
.client-bio-map-suggestions__item:hover,
.client-bio-map-suggestions__item.is-active{background:rgba(36,17,220,.08)}
.client-bio-map-suggestions__title{font-size:.88rem;font-weight:600;line-height:1.25;color:inherit;word-break:break-word}
.client-bio-map-suggestions__detail{font-size:.75rem;line-height:1.35;color:var(--muted,#64748b);word-break:break-word}
.theme-dark .client-bio-map-suggestions{background:#111827;border-color:rgba(255,255,255,.12);box-shadow:0 10px 28px rgba(0,0,0,.45)}
.theme-dark .client-bio-map-suggestions__item:hover,
.theme-dark .client-bio-map-suggestions__item.is-active{background:rgba(139,124,252,.16)}
/* Pacote Places Autocomplete acima do dialog (legado) */
.pac-container{z-index:100000!important}
.client-bio-intro{
  margin:0 0 1.25rem;
  padding:1.15rem 1.25rem;
  border-radius:.9rem;
  border:1px solid rgba(36,17,220,.12);
  background:linear-gradient(135deg,rgba(36,17,220,.06),rgba(36,17,220,.02) 45%,rgba(255,255,255,.55));
  display:flex;
  flex-direction:column;
  gap:.7rem;
  max-width:46rem;
}
.client-bio-intro p{margin:0;font-size:.95rem;line-height:1.55;color:var(--muted,#475569)}
.client-bio-intro__lead{font-size:1.05rem;font-weight:600;line-height:1.45;color:var(--text,#111)}
.client-bio-intro strong{color:var(--text,#111);font-weight:700}
.theme-dark .client-bio-intro{
  border-color:rgba(139,124,255,.22);
  background:linear-gradient(135deg,rgba(109,94,252,.16),rgba(20,24,32,.55));
}
.theme-dark .client-bio-intro p{color:#cbd5e1}
.theme-dark .client-bio-intro__lead,
.theme-dark .client-bio-intro strong{color:#f8fafc}
.client-bio-page-list__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .85rem}
.client-bio-page-list__head p{margin:0;font-size:.92rem;color:var(--muted,#64748b)}
.client-bio-page-list__head strong{color:var(--text,#0f172a);font-weight:700}
.client-bio-page-list__empty{padding:1.25rem 0;text-align:center}
.client-bio-page-list__empty p{margin:.25rem 0}
.client-bio-page-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.client-bio-page-list__item{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  gap:.9rem 1rem;
  align-items:center;
  padding:.9rem 1rem;
  border:1px solid rgba(15,23,42,.08);
  border-radius:.85rem;
  background:linear-gradient(180deg,#fff,rgba(248,250,252,.9));
}
.client-bio-page-list__thumb{
  width:48px;height:48px;border-radius:50%;
  overflow:hidden;flex:0 0 48px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#e2e8f0;border:1px solid rgba(15,23,42,.08);
}
.client-bio-page-list__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.client-bio-page-list__thumb--fallback{
  background:var(--bio-thumb,#2411dc);
  color:#fff;font-weight:700;font-size:1.05rem;letter-spacing:.02em;
}
.client-bio-page-list__main{min-width:0}
.client-bio-page-list__title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .6rem}
.client-bio-page-list__title{margin:0;font-size:1rem;font-weight:700;line-height:1.3;color:var(--text,#0f172a)}
.client-bio-page-list__badge{
  display:inline-flex;align-items:center;
  padding:.15rem .55rem;border-radius:999px;
  font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;
  border:1px solid transparent;
}
.client-bio-page-list__badge.is-live{background:rgba(16,185,129,.12);color:#047857;border-color:rgba(16,185,129,.22)}
.client-bio-page-list__badge.is-draft{background:rgba(100,116,139,.12);color:#475569;border-color:rgba(100,116,139,.2)}
.client-bio-page-list__meta{
  margin:.35rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;
  font-size:.86rem;color:var(--muted,#64748b);line-height:1.4;
}
.client-bio-page-list__slug{color:#2411dc;text-decoration:none;font-weight:600;word-break:break-all}
.client-bio-page-list__slug:hover{text-decoration:underline}
.client-bio-page-list__dot{opacity:.55}
.client-bio-page-list__actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.2rem;justify-content:flex-end}
.client-bio-page-list__icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.15rem;height:2.15rem;padding:0;border:0;border-radius:.55rem;
  background:transparent;color:var(--text,#0f172a);cursor:pointer;text-decoration:none;
}
.client-bio-page-list__icon-btn:hover{background:rgba(36,17,220,.08);color:#2411dc}
.client-bio-page-list__icon-btn svg{display:block}
.theme-dark .client-bio-page-list__item{
  border-color:rgba(255,255,255,.1);
  background:linear-gradient(180deg,rgba(30,34,44,.95),rgba(20,24,32,.9));
}
.theme-dark .client-bio-page-list__title{color:#f8fafc}
.theme-dark .client-bio-page-list__icon-btn{color:#e2e8f0}
.theme-dark .client-bio-page-list__icon-btn:hover{background:rgba(109,94,252,.18);color:#c4b5fd}
@media (max-width:720px){
  .client-bio-page-list__item{grid-template-columns:48px minmax(0,1fr);grid-template-areas:"thumb main" "actions actions"}
  .client-bio-page-list__thumb{grid-area:thumb}
  .client-bio-page-list__main{grid-area:main}
  .client-bio-page-list__actions{grid-area:actions;justify-content:flex-start}
}

.admin-bio-client-results{display:flex;flex-direction:column;gap:.35rem;max-height:16rem;overflow:auto;margin:.35rem 0}
.admin-bio-client-option{display:block;width:100%;text-align:left;padding:.65rem .8rem;border:1px solid rgba(0,0,0,.1);border-radius:.55rem;background:#fff;cursor:pointer;font:inherit;color:inherit}
.admin-bio-client-option:hover{border-color:rgba(36,17,220,.35);background:rgba(36,17,220,.04)}
.admin-bio-client-option.is-selected{border-color:#2411dc;background:rgba(36,17,220,.08);font-weight:600}

.admin-bio-list__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .85rem}
.admin-bio-list__head p{margin:0;font-size:.92rem;color:var(--muted,#64748b)}
.admin-bio-list__head strong{color:var(--text,#0f172a);font-weight:700}
.admin-bio-list__empty{padding:1.5rem 0;text-align:center}
.admin-bio-list__empty p{margin:.25rem 0}
.admin-bio-list{display:flex;flex-direction:column;gap:.7rem}
.admin-bio-list__item{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  gap:.9rem 1rem;
  align-items:center;
  padding:.9rem 1rem;
  border:1px solid rgba(15,23,42,.08);
  border-radius:.85rem;
  background:linear-gradient(180deg,#fff,rgba(248,250,252,.9));
}
.admin-bio-list__thumb{
  width:48px;height:48px;border-radius:50%;
  overflow:hidden;flex:0 0 48px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#e2e8f0;border:1px solid rgba(15,23,42,.08);
}
.admin-bio-list__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.admin-bio-list__thumb--fallback{
  background:var(--bio-thumb,#2411dc);
  color:#fff;font-weight:700;font-size:1.05rem;letter-spacing:.02em;
}
.admin-bio-list__main{min-width:0}
.admin-bio-list__title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .6rem}
.admin-bio-list__title{margin:0;font-size:1rem;font-weight:700;line-height:1.3;color:var(--text,#0f172a)}
.admin-bio-list__badge{
  display:inline-flex;align-items:center;
  padding:.15rem .55rem;border-radius:999px;
  font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;
  border:1px solid transparent;
}
.admin-bio-list__badge.is-live{background:rgba(16,185,129,.12);color:#047857;border-color:rgba(16,185,129,.22)}
.admin-bio-list__badge.is-draft{background:rgba(100,116,139,.12);color:#475569;border-color:rgba(100,116,139,.2)}
.admin-bio-list__meta{
  margin:.35rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;
  font-size:.86rem;color:var(--muted,#64748b);line-height:1.4;
}
.admin-bio-list__slug{color:#2411dc;text-decoration:none;font-weight:600;word-break:break-all}
.admin-bio-list__slug:hover{text-decoration:underline}
.admin-bio-list__dot{opacity:.55}
.admin-bio-list__actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.2rem;justify-content:flex-end}
.admin-bio-list__icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.15rem;height:2.15rem;padding:0;border:0;border-radius:.55rem;
  background:transparent;color:var(--text,#0f172a);cursor:pointer;text-decoration:none;
}
.admin-bio-list__icon-btn:hover{background:rgba(36,17,220,.08);color:#2411dc}
.admin-bio-list__icon-btn.is-danger{color:#b42318}
.admin-bio-list__icon-btn.is-danger:hover{background:rgba(180,35,24,.1);color:#912018}
.admin-bio-list__icon-btn svg{display:block}
@media (max-width:720px){
  .admin-bio-list__item{grid-template-columns:48px minmax(0,1fr);grid-template-areas:"thumb main" "actions actions"}
  .admin-bio-list__thumb{grid-area:thumb}
  .admin-bio-list__main{grid-area:main}
  .admin-bio-list__actions{grid-area:actions;justify-content:flex-start}
}

.client-bio-report__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:.75rem 0 1rem}
.client-bio-report__period-wrap{position:relative}
.client-bio-report__period{display:flex;flex-wrap:wrap;gap:.4rem}
.client-bio-report__period .btn.is-active{background:#2411dc;border-color:#2411dc;color:#fff}
.client-bio-range-picker{position:absolute;top:calc(100% + .45rem);left:0;z-index:30;width:min(36rem,calc(100vw - 2rem));padding:1rem;border-radius:.9rem;border:1px solid rgba(0,0,0,.1);background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.16)}
.client-bio-range-picker[hidden]{display:none !important}
.client-bio-range-picker__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}
.client-bio-range-picker__hint{margin:0;font-size:.85rem;opacity:.75}
.client-bio-range-picker__selected{margin:0;font-size:.9rem;font-weight:700}
.client-bio-range-picker__nav{position:absolute;top:1rem;right:1rem;display:flex;gap:.25rem}
.client-bio-range-picker__nav-btn{width:2rem;height:2rem;border:0;border-radius:.5rem;background:rgba(15,23,42,.06);cursor:pointer;font-size:1.2rem;line-height:1}
.client-bio-range-picker__nav-btn:hover{background:rgba(36,17,220,.12)}
.client-bio-range-picker__months{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.35rem}
.client-bio-range-picker__actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.9rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.08)}
.client-bio-cal__title{margin:0 0 .5rem;font-size:.92rem;font-weight:700;text-align:center}
.client-bio-cal__weekdays,.client-bio-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.15rem}
.client-bio-cal__weekdays{margin-bottom:.25rem}
.client-bio-cal__weekdays span{text-align:center;font-size:.72rem;font-weight:700;opacity:.55}
.client-bio-cal__day{aspect-ratio:1;border:0;border-radius:.45rem;background:transparent;font:inherit;font-size:.82rem;cursor:pointer;color:inherit}
.client-bio-cal__day:hover:not(:disabled){background:rgba(36,17,220,.1)}
.client-bio-cal__day.is-outside{opacity:.35}
.client-bio-cal__day.is-today{outline:1px solid rgba(36,17,220,.45)}
.client-bio-cal__day.is-in-range{background:rgba(36,17,220,.12);border-radius:0}
.client-bio-cal__day.is-start,.client-bio-cal__day.is-end{background:#2411dc;color:#fff;border-radius:.45rem}
.client-bio-cal__day.is-start.is-in-range{border-radius:.45rem 0 0 .45rem}
.client-bio-cal__day.is-end.is-in-range{border-radius:0 .45rem .45rem 0}
.client-bio-cal__day:disabled,.client-bio-cal__day.is-disabled{opacity:.28;cursor:not-allowed}
.theme-dark .client-bio-range-picker{background:#151a24;border-color:rgba(255,255,255,.12);box-shadow:0 12px 32px rgba(0,0,0,.45)}
.theme-dark .client-bio-range-picker__nav-btn{background:rgba(255,255,255,.08);color:#f8fafc}
.theme-dark .client-bio-range-picker__actions{border-color:rgba(255,255,255,.1)}
@media (max-width:720px){
  .client-bio-range-picker__months{grid-template-columns:1fr}
  .client-bio-range-picker{width:min(20rem,calc(100vw - 2rem))}
}
.client-bio-report__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}
.client-bio-report__kpi{padding:1rem 1.1rem}
.client-bio-report__kpi-label{margin:0;font-size:.82rem;font-weight:600;opacity:.7}
.client-bio-report__kpi-value{margin:.25rem 0 0;font-size:1.75rem;font-weight:700;line-height:1.1}
.client-bio-report__card{margin-bottom:1rem;padding:1rem 1.1rem}
.client-bio-report__two{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem;margin-bottom:1rem;align-items:start}
.client-bio-chart{width:100%;min-height:160px;overflow-x:auto}
.client-bio-chart svg{display:block;width:100%;height:160px}
.client-bio-chart__bar--visits{fill:#2411dc}
.client-bio-chart__bar--clicks{fill:#22c55e}
.client-bio-chart__legend{display:flex;gap:1rem;margin-top:.5rem;font-size:.82rem}
.client-bio-chart__swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;margin-right:.35rem;vertical-align:middle}
.client-bio-chart__swatch--visits{background:#2411dc}
.client-bio-chart__swatch--clicks{background:#22c55e}
.client-bio-chart--bars{min-height:0;display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem}
.client-bio-bar{display:grid;grid-template-columns:5.5rem 1fr 2.2rem;gap:.45rem;align-items:center;font-size:.85rem}
.client-bio-bar__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-bio-bar__track{height:.55rem;border-radius:999px;background:rgba(0,0,0,.08);overflow:hidden}
.client-bio-bar__fill{display:block;height:100%;border-radius:999px;background:#2411dc}
.client-bio-bar__value{text-align:right;font-weight:600}
.client-bio-table{width:100%;border-collapse:collapse;font-size:.88rem}
.client-bio-table th,.client-bio-table td{padding:.55rem .4rem;border-bottom:1px solid rgba(0,0,0,.08);text-align:left}
.client-bio-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;opacity:.7}
.client-bio-item-link{appearance:none;-webkit-appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;font-weight:700;color:#2411dc;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:.12em}
.client-bio-item-link:hover{color:#1a0fb0}
.theme-dark .client-bio-item-link{color:#a5b4fc}
.theme-dark .client-bio-item-link:hover{color:#c7d2fe}
/* Modal de preview: compacto — anula min-height/padding fullscreen de .bio-public. */
.admin-modal[data-bio-item-preview-modal]{width:fit-content;max-width:min(96vw,26rem);height:fit-content;max-height:min(92vh,40rem);margin:auto;overflow:auto}
.client-bio-item-preview-panel{width:min(92vw,24rem);max-width:min(92vw,24rem);max-height:min(90vh,38rem);height:auto;overflow:auto;box-sizing:border-box;padding:.7rem .75rem .75rem}
.client-bio-item-preview-panel .admin-modal__top{margin-bottom:.4rem}
.client-bio-item-preview-panel .admin-modal__top h2{font-size:.95rem;line-height:1.25}
.bio-public.client-bio-item-preview{min-height:0!important;height:auto;padding:.7rem!important;display:block;border-radius:.85rem;background:var(--bio-bg,#0f172a);color:var(--bio-text,#f8fafc);width:100%;max-width:100%;margin:0;box-sizing:border-box}
.client-bio-item-preview__body{display:flex;flex-direction:column;align-items:stretch;gap:.55rem;width:100%;min-width:0}
.client-bio-item-preview__body .bio-public__media,
.client-bio-item-preview__body .bio-public__countdown-block,
.client-bio-item-preview__body .bio-public__link,
.client-bio-item-preview__body .bio-public__go-btn{width:100%;max-width:100%;box-sizing:border-box}
.client-bio-item-preview__body .bio-public__link,
.client-bio-item-preview__body .bio-public__go-btn{padding:.75rem .85rem;font-size:.92rem}
.client-bio-item-preview__body .bio-countdown-units{width:100%}
.client-bio-item-preview__body .bio-public__countdown-promo{font-size:1.15rem}
.client-bio-item-preview__body .bio-countdown-units__value{font-size:1.15rem}
/* Imagem/vídeo: mesmas regras da página pública (bio-page.css). */
.client-bio-item-preview__body .bio-public__media-image{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.client-bio-item-preview__body .bio-public__media-video{display:block;width:100%;height:auto;max-height:20rem;object-fit:contain;background:#000}
.client-bio-item-preview__empty{margin:0;opacity:.75;text-align:center;font-size:.88rem}
.theme-dark .client-bio-bar__track{background:rgba(255,255,255,.1)}
.theme-dark .client-bio-table th,.theme-dark .client-bio-table td{border-color:rgba(255,255,255,.1)}
@media (max-width:800px){
  .client-bio-report__grid{grid-template-columns:1fr}
  .client-bio-report__two{grid-template-columns:1fr}
}
.theme-dark .client-bio-map-picker{background:#1a2230;border-color:rgba(255,255,255,.12)}
.theme-dark .client-bio-page-list__item{border-color:rgba(255,255,255,.12)}
[data-bio-slug-status]{display:block;margin-top:.35rem;font-size:.85rem}
[data-bio-slug-status].is-error{color:#b42318}
[data-bio-slug-status].is-ok{color:#067647}

.client-bio-edit-screen{display:block}
.client-bio-edit-screen[hidden]{display:none !important}
.client-bio-edit-page-header{position:relative;display:flex;justify-content:flex-end;align-items:center;gap:1rem;min-height:2.35rem;margin-bottom:.75rem}
.client-bio-edit-page-header .admin-page-header-breadcrumb{position:absolute;left:0;right:0;margin:0}
.client-bio-edit-page-header .admin-screen-title{max-width:min(420px,calc(100% - 6.5rem))}
.client-bio-edit-actions{position:relative;z-index:2;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:.2rem}
.client-bio-icon-btn,
.client-bio-trash-btn{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border:0;border-radius:.55rem;background:transparent;color:var(--text,#111);cursor:pointer;padding:0;text-decoration:none}
.client-bio-icon-btn:hover{background:rgba(0,0,0,.06)}
.client-bio-icon-btn[hidden]{display:none !important}
.client-bio-trash-btn{color:#b42318}
.client-bio-trash-btn:hover{background:rgba(180,35,24,.1)}
.client-bio-trash-btn[hidden]{display:none !important}
.client-bio-switch-toggle{position:relative;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;user-select:none;font-size:.82rem;color:var(--text,#111)}
.client-bio-switch-toggle input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.client-bio-switch-toggle__ui{width:2.1rem;height:1.2rem;border-radius:999px;background:#c5cad3;position:relative;flex:0 0 auto;transition:background .15s ease}
.client-bio-switch-toggle__ui::after{content:"";position:absolute;top:2px;left:2px;width:.9rem;height:.9rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s ease}
.client-bio-switch-toggle input:checked + .client-bio-switch-toggle__ui{background:#2411dc}
.client-bio-switch-toggle input:checked + .client-bio-switch-toggle__ui::after{transform:translateX(.9rem)}
.client-bio-switch-toggle__label{white-space:nowrap}
.client-bio-studio{display:flex;flex-direction:column;align-items:center;gap:1rem}
.client-bio-phone-stack{display:flex;flex-direction:column;align-items:stretch;width:min(100%,360px);gap:0}
.client-bio-studio__toggles{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.55rem .85rem;width:100%;padding:.65rem .75rem;margin:0;border:1px solid rgba(0,0,0,.08);border-bottom:0;border-radius:1.15rem 1.15rem 0 0;background:rgba(255,255,255,.72);backdrop-filter:blur(6px);box-sizing:border-box}
.client-bio-phone-stack .bio-phone{width:100%}
.client-bio-phone-stack .bio-phone__bezel{border-top-left-radius:0;border-top-right-radius:0}
.client-bio-studio__msg{min-height:1.25rem;width:100%;text-align:center;margin:.25rem 0 .75rem}
.btn--sm{padding:.35rem .75rem;font-size:.85rem}
@media(max-width:720px){
  .client-bio-edit-page-header{min-height:2.35rem;margin-bottom:.5rem}
  .client-bio-edit-page-header .admin-page-header-breadcrumb{position:absolute;left:0;right:0;margin:0}
  .client-bio-edit-page-header .admin-screen-title{position:absolute;left:50%;transform:translateX(-50%);max-width:min(52vw,calc(100% - 6.5rem));text-align:center;pointer-events:none;margin:0}
  .client-bio-edit-actions{position:relative;z-index:2;justify-content:flex-end;margin-left:auto}
  .client-bio-studio__toggles{padding:.55rem .6rem;gap:.45rem .65rem;font-size:.78rem}
}
.theme-dark .client-bio-switch-toggle__ui{background:#4b5563}
.theme-dark .client-bio-switch-toggle input:checked + .client-bio-switch-toggle__ui{background:#6d5efc}
.theme-dark .client-bio-icon-btn:hover{background:rgba(255,255,255,.08)}
.theme-dark .client-bio-trash-btn:hover{background:rgba(248,113,113,.15)}
.theme-dark .client-bio-studio__toggles{background:rgba(20,24,32,.82);border-color:rgba(255,255,255,.1)}

.bio-phone{width:min(100%,360px)}
.bio-phone__bezel{border-radius:2rem;padding:12px;background:linear-gradient(160deg,#2a2a2e,#111);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.bio-phone__notch{width:110px;height:22px;margin:0 auto 8px;border-radius:0 0 14px 14px;background:#0a0a0b}
.bio-phone__screen{--bio-bg:#0f172a;--bio-btn:#2411dc;--bio-text:#f8fafc;--bio-btn-text:#fff;border-radius:1.35rem;overflow:hidden;background:var(--bio-bg);color:var(--bio-text);height:640px;display:flex;flex-direction:column}
.bio-phone__scroll{flex:1;overflow:auto;padding:0 0 1rem;display:flex;flex-direction:column;align-items:stretch;gap:.85rem;scrollbar-width:thin}
.bio-phone__hero{position:relative;display:flex;flex-direction:column;align-items:stretch;padding-bottom:.35rem}
.bio-phone__hero.has-cover .bio-phone__avatar-wrap{margin-top:-48px}
.bio-phone__cover{position:relative;height:128px;width:100%;background:#2411dc;overflow:hidden;flex:0 0 auto}
.bio-phone__cover[hidden]{display:none !important}
.bio-phone__cover-img{width:100%;height:100%;object-fit:cover;display:block}
.bio-phone__edit--cover{position:absolute;top:.45rem;right:.45rem;z-index:2}
.bio-phone__cover-placeholder{padding:.65rem 1rem 0;min-height:0}
.bio-phone__cover-placeholder[hidden]{display:none !important}
.bio-phone__cover-add{display:block;width:100%;border:1px dashed color-mix(in srgb,var(--bio-text) 35%,transparent);background:transparent;color:var(--bio-text);border-radius:.65rem;padding:.45rem;font-size:.8rem;cursor:pointer;opacity:.85}
.bio-phone__cover-add[hidden]{display:none !important}
.bio-phone__hero .bio-phone__avatar-wrap,
.bio-phone__hero .bio-phone__identity,
.bio-phone__scroll > .bio-phone__socials-row,
.bio-phone__scroll > .bio-phone__links,
.bio-phone__scroll > .bio-phone__add-link,
.bio-phone__scroll > .bio-phone__map{padding-inline:1rem}
.bio-phone__link--group,
.bio-phone__link--back{width:100%;border:0;cursor:pointer;font:inherit;text-align:center}
.bio-phone__link-row--group .bio-phone__link{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}
.bio-phone__links.is-reordering .bio-phone__link-row{will-change:transform}
.bio-phone__link-row.is-dragging{opacity:.55;z-index:2;box-shadow:0 10px 22px rgba(0,0,0,.22);border-radius:var(--bio-btn-radius,.75rem)}
.bio-phone__link-row--group.is-drop-target .bio-phone__link{outline:2px dashed color-mix(in srgb,var(--bio-btn) 80%,#fff);outline-offset:2px;transition:outline-color .15s ease,outline-offset .15s ease}
.bio-phone__link-row.is-drop-before{box-shadow:inset 0 3px 0 0 var(--bio-btn)}
.bio-phone__link-row.is-drop-after{box-shadow:inset 0 -3px 0 0 var(--bio-btn)}
.bio-phone__link-row[draggable="true"]{cursor:grab}
.bio-phone__link-row[draggable="true"]:active{cursor:grabbing}
.bio-phone__link-row.is-flip-animating{pointer-events:none;z-index:1}
.client-bio-cover-types{display:flex;flex-direction:column;gap:.45rem;border:0;margin:0;padding:0}
/* Modal Adicionar/Editar item — largura própria (evita painel estreito à esquerda do dialog 52rem) */
.admin-modal.admin-modal--bio-item{
  width:min(96vw,36rem);
  max-width:min(96vw,36rem);
  margin:auto;
  height:fit-content;
  max-height:min(92vh,44rem);
}
.admin-modal.admin-modal--bio-item .client-bio-modal-panel{
  max-width:none;
  width:100%;
  max-height:min(92vh,44rem);
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:hidden;
  padding:0;
}
.admin-modal.admin-modal--bio-item .client-bio-modal-panel__top{
  flex:0 0 auto;
  position:sticky;
  top:0;
  z-index:2;
  margin:0;
  padding:clamp(.9rem,2.5vw,1.2rem) clamp(.9rem,2.5vw,1.25rem) .65rem;
  background:var(--white,#fff);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.admin-modal.admin-modal--bio-item .client-bio-modal-form{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  gap:.85rem;
  padding:.85rem clamp(.9rem,2.5vw,1.25rem) 1rem;
  -webkit-overflow-scrolling:touch;
  align-content:start;
}
/* Evita .field-stack label { display:grid } quebrar chips e campos da modal */
.client-bio-modal-form .client-bio-seg__opt{
  display:block;
  gap:0;
  font-weight:inherit;
  color:inherit;
}
.client-bio-modal-form .client-bio-field{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  font-weight:inherit;
  color:inherit;
}
.client-bio-modal-form .client-bio-field > span{font-weight:600}
.client-bio-modal-panel{max-width:28rem}
.client-bio-modal-form{gap:.9rem}
.client-bio-modal-card{display:flex;flex-direction:column;gap:.75rem;padding:.9rem 1rem;border:1px solid rgba(0,0,0,.08);border-radius:.9rem;background:rgba(248,250,252,.9)}
.client-bio-modal-card[hidden],
.client-bio-type-block[hidden],
.client-bio-field[hidden]{display:none!important}
.client-bio-modal-card__title{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#64748b)}
.client-bio-modal-hint{margin:.15rem 0 0;font-size:.8rem;line-height:1.35}
.client-bio-phone-row{display:grid;grid-template-columns:minmax(9.5rem,11.5rem) minmax(0,1fr);gap:.65rem;align-items:end}
@media (max-width:380px){.client-bio-phone-row{grid-template-columns:1fr}}
.client-bio-field--phone-country select{padding-left:.65rem;padding-right:.45rem}
.client-bio-modal-footer{
  flex:0 0 auto;
  z-index:2;
  padding:.7rem clamp(.9rem,2.5vw,1.25rem) clamp(.9rem,2.5vw,1.2rem);
  background:var(--white,#fff);
  border-top:1px solid rgba(0,0,0,.06);
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
.admin-modal.admin-modal--bio-item .client-bio-modal-footer{
  margin-top:0;
}
.client-bio-modal-msg{margin:0;min-height:1.15em;font-size:.85rem}
.client-bio-modal-actions{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:.45rem;
}
.client-bio-modal-actions [data-bio-button-delete]:not([hidden]){margin-right:auto}
.client-bio-field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.client-bio-field > span{font-size:.85rem;font-weight:600;color:var(--text,#111)}
.client-bio-field input,
.client-bio-field select,
.client-bio-field textarea{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.12);border-radius:.7rem;padding:.7rem .85rem;font:inherit;background:#fff;color:inherit}
.client-bio-field input[type="file"]{padding:.55rem .65rem;font-size:.86rem}
.client-bio-field textarea{min-height:4.5rem;resize:vertical;line-height:1.4}
.client-bio-field input:focus,
.client-bio-field select:focus,
.client-bio-field textarea:focus{outline:2px solid rgba(36,17,220,.35);outline-offset:1px;border-color:#2411dc}
.client-bio-type-block{display:flex;flex-direction:column;gap:.4rem}
.client-bio-type-block__label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#64748b)}
.client-bio-seg{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.28rem;border-radius:.85rem;background:rgba(15,23,42,.06)}
.client-bio-seg--full{grid-template-columns:repeat(3,1fr)}
.client-bio-seg--wrap{grid-template-columns:repeat(3,1fr)}
.client-bio-seg--types{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:420px){.client-bio-seg--types{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:560px){.client-bio-seg--types{grid-template-columns:repeat(4,minmax(0,1fr))}}
.bio-phone__link-row--map{
  display:block;
  position:relative;
  width:100%;
}
.bio-phone__link-row--map .bio-phone__map{width:100%}
.bio-phone__link-row--map .bio-phone__edit{
  position:absolute;
  top:.55rem;
  right:.55rem;
  z-index:6;
}
.admin-modal--bio-item .client-bio-map-picker{min-height:220px}
.admin-modal--bio-item .client-bio-map-picker .leaflet-container{min-height:220px}
@media (min-width:520px){.client-bio-seg--wrap{grid-template-columns:repeat(3,1fr)}}
.client-bio-seg__opt{position:relative;display:block;cursor:pointer;margin:0;min-width:0}
.client-bio-seg__opt input{position:absolute;opacity:0;pointer-events:none}
.client-bio-seg__opt span{display:flex;align-items:center;justify-content:center;min-height:2.45rem;padding:.4rem .45rem;border-radius:.65rem;font-size:.82rem;font-weight:600;color:var(--muted,#64748b);text-align:center;line-height:1.15;transition:background .12s ease,color .12s ease,box-shadow .12s ease}
.client-bio-seg__opt input:checked + span{background:#fff;color:var(--text,#111);box-shadow:0 1px 3px rgba(15,23,42,.12)}
.client-bio-seg__opt input:disabled + span{opacity:.38;cursor:not-allowed}
.client-bio-seg__opt:has(input:disabled){cursor:not-allowed}
.client-bio-choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.client-bio-choice{display:block;cursor:pointer;margin:0}
.client-bio-choice input{position:absolute;opacity:0;pointer-events:none}
.client-bio-choice__swatch,
.client-bio-choice__shape{display:flex;align-items:center;justify-content:center;min-height:2.7rem;padding:.45rem .35rem;font-size:.78rem;font-weight:700;border:2px solid transparent;text-align:center;transition:outline .12s ease,transform .12s ease}
.client-bio-choice__swatch--solid{background:#2411dc;color:#fff;border-radius:.75rem}
.client-bio-choice__swatch--outline{background:transparent;color:#2411dc;border-color:#2411dc;border-radius:.75rem}
.client-bio-choice__swatch--soft{background:color-mix(in srgb,#2411dc 24%,#fff);color:#2411dc;border-color:color-mix(in srgb,#2411dc 45%,#fff);border-radius:.75rem}
.client-bio-choice__shape{background:color-mix(in srgb,#2411dc 14%,#fff);color:#2411dc}
.client-bio-choice__shape--square{border-radius:.2rem}
.client-bio-choice__shape--rounded{border-radius:.75rem}
.client-bio-choice__shape--pill{border-radius:999px}
.client-bio-choice input:checked + .client-bio-choice__swatch,
.client-bio-choice input:checked + .client-bio-choice__shape{outline:2px solid #111;outline-offset:2px}
.client-bio-switch--compact{margin:0;padding-top:.15rem}
.client-bio-color-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.client-bio-color{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600}
.client-bio-color input[type="color"]{width:100%;height:2.6rem;padding:.2rem;border:1px solid rgba(0,0,0,.1);border-radius:.7rem;background:#fff;cursor:pointer}
.theme-dark .admin-modal.admin-modal--bio-item .client-bio-modal-panel__top{background:var(--white,#141820);border-bottom-color:rgba(255,255,255,.08)}
.theme-dark .client-bio-modal-footer{background:linear-gradient(180deg,rgba(20,24,32,.72),var(--white,#141820) 28%);border-top-color:rgba(255,255,255,.08)}
.theme-dark .client-bio-modal-card{background:rgba(20,24,32,.72);border-color:rgba(255,255,255,.1)}
.theme-dark .client-bio-seg{background:rgba(255,255,255,.06)}
.theme-dark .client-bio-seg__opt input:checked + span{background:#1f2937;color:#f8fafc;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.theme-dark .client-bio-field input,
.theme-dark .client-bio-field select,
.theme-dark .client-bio-field textarea,
.theme-dark .client-bio-color input[type="color"]{background:#111827;border-color:rgba(255,255,255,.12);color:#f8fafc}
.theme-dark .client-bio-choice input:checked + .client-bio-choice__swatch,
.theme-dark .client-bio-choice input:checked + .client-bio-choice__shape{outline-color:#fff}
.bio-phone__item{position:relative}
.bio-phone__slug-row{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:1.25rem;margin-top:.2rem}
.bio-phone__slug{font-size:.8rem;opacity:.75;font-weight:500}
.bio-phone__avatar-wrap{display:flex;justify-content:center;align-items:center;position:relative;z-index:1;min-height:96px;margin-top:.75rem}
.bio-phone__avatar-stack{position:relative;width:96px;height:96px;flex:0 0 auto}
.bio-phone__avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--bio-bg);box-shadow:0 0 0 2px color-mix(in srgb,var(--bio-text) 25%,transparent);background:var(--bio-bg)}
.bio-phone__avatar-placeholder{width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;background:color-mix(in srgb,var(--bio-text) 12%,transparent);border:2px dashed color-mix(in srgb,var(--bio-text) 35%,transparent)}
.bio-phone__identity{text-align:center;padding-inline:.25rem;display:flex;flex-direction:column;align-items:center;gap:.15rem}
.bio-phone__title{margin:0;font-size:1.2rem;font-weight:700;line-height:1.25;word-break:break-word;color:var(--bio-text)}
.bio-phone__bio{margin:.35rem 0 0;font-size:.88rem;line-height:1.4;opacity:.9;white-space:pre-wrap;word-break:break-word;color:var(--bio-text)}
.bio-phone__socials-row{display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.4rem}
.bio-phone__socials{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}
.bio-phone__social{width:2.2rem;height:2.2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bio-text) 14%,transparent);color:var(--bio-text)}
.bio-phone__social svg{width:1.05rem;height:1.05rem}
.bio-phone__social-empty,.bio-phone__links-empty{margin:0;font-size:.85rem;opacity:.55;text-align:center}
.bio-phone__links{display:flex;flex-direction:column;gap:.65rem}
.bio-phone__link-row{position:relative;display:flex;align-items:center;gap:.35rem}
.bio-phone__link,.bio-phone__go-btn{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;text-align:center;padding:.85rem .9rem;border-radius:var(--bio-btn-radius,.75rem);font-weight:600;font-size:.92rem;border:2px solid transparent;box-sizing:border-box;word-break:break-word}
.bio-phone__screen[data-button-align="left"] .bio-phone__link,
.bio-phone__screen[data-button-align="left"] .bio-phone__go-btn{justify-content:flex-start;text-align:left}
.bio-phone__screen[data-button-align="right"] .bio-phone__link,
.bio-phone__screen[data-button-align="right"] .bio-phone__go-btn{justify-content:flex-end;text-align:right}
.bio-phone__screen[data-button-shape="square"]{--bio-btn-radius:.2rem}
.bio-phone__screen[data-button-shape="rounded"]{--bio-btn-radius:.75rem}
.bio-phone__screen[data-button-shape="pill"]{--bio-btn-radius:999px}
.bio-phone__link-icon{display:inline-flex;flex:0 0 auto}
.bio-phone__link-icon svg{width:1.05rem;height:1.05rem;display:block}
.bio-phone__link-text{min-width:0}
.bio-phone__link-row--media,.bio-phone__link-row--countdown{align-items:flex-start}
.bio-phone__media{display:flex;flex-direction:column;gap:.35rem;width:100%;min-width:0}
.bio-phone__media-image,.bio-phone__media-video{display:block;width:100%;height:auto;border-radius:var(--bio-btn-radius,.75rem);background:rgba(0,0,0,.2)}
.bio-phone__media-image{object-fit:contain}
.bio-phone__media-video{max-height:10rem;object-fit:contain;background:#000}
.bio-phone__media-caption{margin:0;text-align:center;font-size:.8rem;font-weight:600;color:var(--bio-text);word-break:break-word}
.bio-phone__countdown-block{display:flex;flex-direction:column;gap:.45rem;width:100%;min-width:0}
.bio-phone__countdown-promo{margin:0;text-align:center;font-size:1.05rem;font-weight:800;line-height:1.2;color:var(--bio-text);word-break:break-word}
.bio-countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem;width:100%;text-align:center;color:var(--bio-text)}
.bio-countdown-units__cell{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:0}
.bio-countdown-units__label{font-size:.58rem;font-weight:700;letter-spacing:.04em;opacity:.72;line-height:1.1}
.bio-countdown-units__value{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.client-bio-upload-progress{display:flex;align-items:center;gap:.55rem;margin-top:.15rem}
.client-bio-upload-progress__track{flex:1;min-width:0;height:.45rem;border-radius:999px;background:rgba(15,23,42,.1);overflow:hidden}
.client-bio-upload-progress__fill{height:100%;width:0;border-radius:inherit;background:#2411dc;transition:width .12s ease}
.client-bio-upload-progress__label{flex:0 0 auto;font-size:.78rem;font-weight:700;min-width:2.6rem;text-align:right;color:var(--muted,#64748b)}
.theme-dark .client-bio-upload-progress__track{background:rgba(255,255,255,.12)}
.theme-dark .client-bio-upload-progress__fill{background:#8b7cff}
.client-bio-countdown-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}
.client-bio-countdown-inputs__cell{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:600;color:var(--muted,#64748b)}
.client-bio-countdown-inputs__cell input{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.12);border-radius:.65rem;padding:.55rem .4rem;font:inherit;text-align:center;background:#fff}
.theme-dark .client-bio-countdown-inputs__cell input{background:#111827;border-color:rgba(255,255,255,.12);color:#f8fafc}
.client-bio-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.55rem,1fr));gap:.4rem;padding:.55rem;border:1px solid rgba(0,0,0,.08);border-radius:.75rem;background:rgba(255,255,255,.65)}
.admin-modal--bio-item .client-bio-icon-grid{max-height:9.75rem;overflow:auto;-webkit-overflow-scrolling:touch}
.client-bio-icon-btn{width:2.55rem;height:2.55rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:#222;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.client-bio-icon-btn:hover{background:rgba(36,17,220,.08)}
.client-bio-icon-btn svg{width:1.15rem;height:1.15rem}
.client-bio-icon-btn.is-selected{background:rgba(36,17,220,.12);outline:2px solid #2411dc;outline-offset:0;border-color:transparent}
.client-bio-icon-none{font-weight:700;opacity:.55}
.client-bio-avatar-preview{border-radius:50%;object-fit:cover}
.theme-dark .client-bio-icon-grid{border-color:rgba(255,255,255,.1);background:rgba(0,0,0,.2)}
.theme-dark .client-bio-icon-btn{color:#f3f4f6}
.theme-dark .client-bio-icon-btn:hover{background:rgba(109,94,252,.18)}
.theme-dark .client-bio-icon-btn.is-selected{outline-color:#8b7cff;background:rgba(109,94,252,.22)}
.bio-phone__screen[data-button-style="solid"] .bio-phone__link,.bio-phone__screen[data-button-style="solid"] .bio-phone__go-btn{background:var(--bio-btn);color:var(--bio-btn-text)}
.bio-phone__screen[data-button-style="outline"] .bio-phone__link,.bio-phone__screen[data-button-style="outline"] .bio-phone__go-btn{background:transparent;color:var(--bio-text);border-color:var(--bio-btn)}
.bio-phone__screen[data-button-style="soft"] .bio-phone__link,.bio-phone__screen[data-button-style="soft"] .bio-phone__go-btn{background:color-mix(in srgb,var(--bio-btn) 28%,transparent);color:var(--bio-btn-text);border-color:color-mix(in srgb,var(--bio-btn) 55%,transparent)}
.bio-phone__screen[data-button-shadow="1"] .bio-phone__link,.bio-phone__screen[data-button-shadow="1"] .bio-phone__go-btn{box-shadow:0 8px 18px rgba(0,0,0,.28)}
.bio-phone__add-link{margin-top:.15rem;border:1px dashed color-mix(in srgb,var(--bio-text) 40%,transparent);background:transparent;color:var(--bio-text);border-radius:.75rem;padding:.7rem;font:inherit;font-weight:600;cursor:pointer}
.bio-phone__map{position:relative;display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:0}
.bio-phone__map-frame-wrap{
  position:relative;
  border-radius:var(--bio-btn-radius,.75rem);
  overflow:hidden;
  aspect-ratio:4/3;
  min-height:9.5rem;
  background:
    linear-gradient(135deg, color-mix(in srgb,var(--bio-btn) 18%,transparent), transparent 55%),
    color-mix(in srgb,var(--bio-text) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--bio-text) 16%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bio-text) 6%,transparent);
}
.bio-phone__map-frame-wrap.is-empty{
  display:flex;align-items:center;justify-content:center;
}
.bio-phone__map-empty{
  margin:0;padding:1rem;text-align:center;font-size:.8rem;font-weight:600;
  color:var(--bio-text);opacity:.55;
}
.bio-phone__map-frame{width:100%;height:100%;border:0;display:block}
.bio-phone__map-frame.leaflet-container{
  width:100%;height:100%;min-height:9.5rem;font:inherit;background:transparent;
}
.bio-phone__map-frame:not(.is-map-ready):not(.is-map-fallback){
  background:
    linear-gradient(90deg,
      color-mix(in srgb,var(--bio-text) 8%,transparent) 25%,
      color-mix(in srgb,var(--bio-text) 14%,transparent) 37%,
      color-mix(in srgb,var(--bio-text) 8%,transparent) 63%);
  background-size:400% 100%;
  animation:bio-map-shimmer 1.1s ease infinite;
}
@keyframes bio-map-shimmer{
  0%{background-position:100% 0}
  100%{background-position:0 0}
}
.bio-phone__map-meta{
  display:flex;align-items:center;justify-content:center;gap:.4rem;
  min-width:0;padding:0 .15rem;
}
.bio-phone__map-meta-icon{
  display:inline-flex;flex:0 0 auto;color:var(--bio-text);opacity:.85;
}
.bio-phone__map-meta-icon svg{width:1rem;height:1rem;display:block}
.bio-phone__map-label{
  margin:0;min-width:0;text-align:center;font-size:.86rem;font-weight:700;
  line-height:1.25;color:var(--bio-text);word-break:break-word;
}
.bio-map-pin{background:transparent;border:0}
.bio-map-pin__dot{
  position:relative;display:block;width:18px;height:18px;margin:2px auto 0;
  border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--bio-btn,#2411dc);
  border:2px solid #fff;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}
.bio-map-pin__dot::after{
  content:"";position:absolute;left:50%;top:50%;
  width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;
  background:#fff;
}
.is-bio-editor-mode .bio-phone__link-row--map .bio-phone__map-frame-wrap{
  pointer-events:none;
}
.bio-phone__edit{position:absolute;top:0;right:0;width:1.85rem;height:1.85rem;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(255,255,255,.92);color:#111;box-shadow:0 2px 8px rgba(0,0,0,.2);z-index:2}
.bio-phone__link-row .bio-phone__edit{position:static;flex:0 0 auto}
.bio-phone__slug-row .bio-phone__edit,.bio-phone__socials-row .bio-phone__edit{position:static}
/* Lápis ao lado do avatar sem deslocar o centro da foto */
.bio-phone__avatar-wrap .bio-phone__edit--profile{
  position:absolute;
  left:50%;
  top:50%;
  right:auto;
  margin-left:calc(48px + .35rem);
  transform:translateY(-50%);
}
.bio-phone__footer{padding:.75rem .9rem 1rem;border-top:1px solid color-mix(in srgb,var(--bio-text) 14%,transparent);background:color-mix(in srgb,var(--bio-bg) 92%,#000)}
.bio-phone__design-btn{width:100%;border:0;border-radius:.7rem;padding:.8rem;font:inherit;font-weight:600;cursor:pointer;background:color-mix(in srgb,var(--bio-text) 14%,transparent);color:var(--bio-text)}
.bio-phone__design-btn:hover{background:color-mix(in srgb,var(--bio-text) 22%,transparent)}


/* ── Builder de campos do formulário (Link da Bio) ── */
.client-bio-form-fields{display:grid;gap:.55rem;margin:.35rem 0 .5rem}
.client-bio-form-fields__empty{margin:0;padding:.7rem .8rem;border:1px dashed rgba(0,0,0,.12);border-radius:.7rem;font-size:.84rem;text-align:center;color:var(--muted,#64748b)}
.client-bio-form-fields__row{display:grid;gap:.5rem;padding:.65rem .75rem .75rem;border:1px solid rgba(0,0,0,.07);border-radius:.75rem;background:rgba(255,255,255,.55)}
.client-bio-form-fields__row-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}
.client-bio-form-fields__index{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#64748b)}
.client-bio-form-fields__row-tools{display:flex;align-items:center;gap:.45rem;flex-shrink:0}
.client-bio-form-fields__grid{display:grid;gap:.5rem}
@media (min-width:420px){.client-bio-form-fields__grid{grid-template-columns:minmax(0,1.45fr) minmax(0,.95fr);align-items:end}}
.client-bio-form-fields__required{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  margin:0;
  padding:.15rem .35rem .15rem .2rem;
  border-radius:.45rem;
  cursor:pointer;
  user-select:none;
  font-size:.72rem;
  font-weight:500;
  line-height:1.2;
  color:var(--muted,#64748b);
  background:transparent;
}
.client-bio-form-fields__required input{
  width:.85rem;
  height:.85rem;
  margin:0;
  accent-color:#64748b;
  opacity:.85;
  flex:0 0 auto;
}
.client-bio-form-fields__required span{opacity:.9}
.client-bio-form-fields__required:hover{background:rgba(15,23,42,.04);color:var(--text,#334155)}
.client-bio-form-fields__required:has(input:checked){color:var(--text,#475569)}
.client-bio-form-fields__required:has(input:checked) input{accent-color:#2411dc;opacity:1}
.client-bio-form-fields__options{margin-top:.1rem}
.client-bio-form-fields__options textarea{width:100%;box-sizing:border-box;min-height:3.75rem;font-size:.88rem}
.client-bio-form-fields__row .client-bio-field > span{font-size:.78rem;font-weight:600;color:var(--muted,#64748b)}
.client-bio-form-fields__row .client-bio-field input,
.client-bio-form-fields__row .client-bio-field select,
.client-bio-form-fields__row .client-bio-field textarea{padding:.55rem .7rem;border-radius:.6rem;font-size:.9rem}
.theme-dark .client-bio-form-fields__row{background:rgba(20,24,32,.45);border-color:rgba(255,255,255,.08)}
.theme-dark .client-bio-form-fields__empty{border-color:rgba(255,255,255,.12);color:#94a3b8}
.theme-dark .client-bio-form-fields__required:hover{background:rgba(255,255,255,.05);color:#cbd5e1}
.theme-dark .client-bio-form-fields__required:has(input:checked){color:#e2e8f0}
.theme-dark .client-bio-form-fields__required:has(input:checked) input{accent-color:#8b7cff}
.client-bio-report__forms-list{display:grid;gap:.65rem}
.client-bio-report__form-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--border,#e2e8f0);border-radius:calc(var(--radius,12px) - 2px);background:var(--surface,#fff);cursor:pointer;text-align:left;width:100%;font:inherit}
.client-bio-report__form-card:hover{border-color:rgba(var(--brand-rgb,36,17,220),.35)}
.client-bio-report__form-card strong{display:block;color:var(--heading,#1a1a1a)}
.client-bio-report__answers{display:grid;gap:.85rem}
.client-bio-report__answers-head{display:grid;gap:.2rem;margin:0}
.client-bio-report__answers-head .admin-back-link{
  border:0;
  background:transparent;
  padding:0;
  margin:0 0 .15rem;
  cursor:pointer;
  font:inherit;
  width:fit-content;
}
.client-bio-report__answers-title{margin:0;line-height:1.25}
.client-bio-report__answers-title strong{font-size:clamp(1.15rem,2.4vw,1.4rem);font-weight:700;color:var(--heading,#111)}
.client-bio-report__answers-count{margin:.15rem 0 0;font-size:.88rem}
.client-bio-report__answers-toolbar{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin:0}
.client-bio-report__search{
  position:relative;
  flex:1 1 14rem;
  min-width:min(100%,14rem);
  display:block;
  margin:0;
}
.client-bio-report__search-icon{
  position:absolute;
  left:.75rem;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  color:var(--text-muted,#64748b);
  pointer-events:none;
  opacity:.75;
}
.client-bio-report__search input[type="search"]{
  width:100%;
  box-sizing:border-box;
  margin:0;
  padding:.65rem .85rem .65rem 2.35rem;
  border:1px solid var(--border,#e2e8f0);
  border-radius:.75rem;
  background:var(--surface,#fff);
  color:var(--heading,#111);
  font:inherit;
  font-size:.92rem;
  line-height:1.3;
}
.client-bio-report__search input[type="search"]::placeholder{color:var(--text-muted,#94a3b8)}
.client-bio-report__search input[type="search"]:focus{
  outline:2px solid rgba(36,17,220,.28);
  outline-offset:1px;
  border-color:#2411dc;
}
.client-bio-report__search input[type="search"]::-webkit-search-decoration,
.client-bio-report__search input[type="search"]::-webkit-search-cancel-button{appearance:none}
.client-bio-report__answers-toolbar .btn{flex:0 0 auto}
.client-bio-report__answers-table{width:100%;border-collapse:collapse}
.client-bio-report__answers-table th,.client-bio-report__answers-table td{padding:.65rem .45rem;border-bottom:1px solid var(--border,#e2e8f0);text-align:left;vertical-align:top;font-size:.9rem}
.client-bio-report__answers-table th{font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted,#64748b);border-bottom-color:rgba(15,23,42,.1)}
.client-bio-report__answers-table td:first-child{white-space:nowrap;color:var(--text-muted,#64748b);font-size:.86rem}
.client-bio-report__answers-table td:nth-child(2){color:var(--heading,#1a1a1a);word-break:break-word}
.client-bio-report__answers-table td:last-child{width:1%;white-space:nowrap;text-align:right}
.client-bio-report__answers-pager{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;margin-top:.25rem;flex-wrap:wrap}
.theme-dark .client-bio-report__search input[type="search"]{background:#111827;border-color:rgba(255,255,255,.12);color:#f8fafc}
.theme-dark .client-bio-report__search input[type="search"]:focus{border-color:#8b7cff;outline-color:rgba(139,124,255,.35)}
.theme-dark .client-bio-report__answers-table th{border-bottom-color:rgba(255,255,255,.12)}
.client-bio-form-answer-dl{display:grid;gap:.65rem;margin:0}
.client-bio-form-answer-dl div{display:grid;gap:.15rem}
.client-bio-form-answer-dl dt{font-size:.78rem;font-weight:700;color:var(--text-muted,#5c5c5c);text-transform:uppercase;letter-spacing:.03em}
.client-bio-form-answer-dl dd{margin:0;font-size:.95rem;color:var(--heading,#1a1a1a);word-break:break-word}
