/* 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.page-pacote,
body.page-servico,
body.page-carrinho {
  --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: 42ch;
  margin: 0 0 1.5rem;
}

.hero__brand {
  display: inline-block;
  margin: 0 0 1.25rem;
}

.hero__brand img {
  display: block;
  width: min(280px, 70vw);
  height: auto;
}

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

.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);
  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;
}
.service-detail-price--de {
  font-size: .9rem;
  color: var(--text-muted);
}
.service-detail-price--base {
  color: var(--text-muted);
  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;
}

.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 10px 32px rgba(0, 0, 0, 0.35);
}

.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,
.plan-card__cover-img {
  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,
.plan-card:hover .plan-card__cover-img {
  transform: scale(1.04);
}

.plan-card__badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 2;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: var(--accent-green);
  color: #0a0a0a;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.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;
  background: #ffffff;
}

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

.plan-card__desc {
  margin: 0;
  font-size: 0.83rem;
  color: #5c5c5c;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.plan-card__footer {
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid #e8eaf0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.35rem;
}

.plan-card .price {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -0.02em;
  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__cta {
  display: inline-flex;
  margin-top: 0.85rem;
  align-self: flex-start;
  pointer-events: none;
}

.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.55rem 0 0;
  padding: 0;
  list-style: none;
  color: #5c5c5c;
  font-size: 0.82rem;
  line-height: 1.45;
}

.plan-card li {
  position: relative;
  margin-bottom: 0.35rem;
  padding-left: 1.15rem;
}

.plan-card li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--accent-green);
}

.plan-card--featured {
  border-color: rgba(var(--brand-rgb), 0.45);
  box-shadow: 0 0 0 2px rgba(var(--brand-rgb), 0.12), 0 12px 32px rgba(var(--brand-rgb), 0.08);
}

/* ── 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: mesmo logo do topo (SITE_LOGO_LIGHT / 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 azul-escuro (efeito fixo em azul, independente da marca) ——— */
body.page-home {
  background-color: #06081a;
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -20%, rgba(36, 17, 220, 0.55), transparent 55%),
    radial-gradient(900px 480px at 100% 15%, rgba(36, 17, 220, 0.28), transparent 60%),
    radial-gradient(700px 420px at 0% 70%, rgba(26, 13, 184, 0.22), transparent 55%),
    linear-gradient(180deg, #0a0e28 0%, #06081a 42%, #080c22 78%, #0a1280 100%);
  color: #e4e4e7;
  --heading: #fafafa;
  --text: #e4e4e7;
  --text-muted: #a1a1aa;
  --border: #27272a;
  --navy-deep: #0a0e28;
  --navy: #10163a;
  --navy-mid: #1a2250;
  --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(36, 17, 220, 0.28), transparent 70%),
    radial-gradient(ellipse 50% 45% at 15% 80%, rgba(26, 13, 184, 0.22), transparent 65%);
}

/* Luzes animadas: movimento + pulso em tons de azul */
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(36, 17, 220, 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(61, 46, 232, 0.35);
  opacity: 0.42;
  animation: homeOrbPulseBlueAlt 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(36, 17, 220, 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(36, 17, 220, 0.55), transparent 70%);
  animation: homeAuroraSweep 24s ease-in-out infinite alternate;
}

body.page-home .hero__aurora--2 {
  background: radial-gradient(ellipse 50% 35% at 75% 55%, rgba(61, 46, 232, 0.4), transparent 68%);
  animation: homeAuroraSweepRev 28s ease-in-out infinite alternate;
  animation-delay: -8s;
}

@keyframes homeOrbPulseBlue {
  0% {
    background-color: rgba(36, 17, 220, 0.55);
    opacity: 0.35;
  }
  50% {
    background-color: rgba(61, 46, 232, 0.45);
    opacity: 0.58;
  }
  100% {
    background-color: rgba(26, 13, 184, 0.5);
    opacity: 0.4;
  }
}

@keyframes homeOrbPulseBlueAlt {
  0% {
    background-color: rgba(61, 46, 232, 0.42);
    opacity: 0.38;
  }
  50% {
    background-color: rgba(36, 17, 220, 0.5);
    opacity: 0.55;
  }
  100% {
    background-color: rgba(26, 13, 184, 0.38);
    opacity: 0.42;
  }
}

@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 homeAuroraSweep {
  0% {
    transform: translate3d(-6%, 4%, 0) scale(1);
    opacity: 0.22;
    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.4;
    background: radial-gradient(ellipse 55% 40% at 45% 50%, rgba(61, 46, 232, 0.42), transparent 70%);
  }
  100% {
    transform: translate3d(4%, 6%, 0) scale(1.02);
    opacity: 0.28;
    background: radial-gradient(ellipse 55% 40% at 35% 42%, rgba(36, 17, 220, 0.5), transparent 70%);
  }
}

@keyframes homeAuroraSweepRev {
  0% {
    transform: translate3d(6%, -4%, 0) scale(1.05);
    opacity: 0.2;
    background: radial-gradient(ellipse 50% 35% at 78% 58%, rgba(61, 46, 232, 0.4), transparent 68%);
  }
  50% {
    transform: translate3d(-10%, 8%, 0) scale(0.95);
    opacity: 0.38;
    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.26;
    background: radial-gradient(ellipse 50% 35% at 72% 52%, rgba(26, 13, 184, 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 — partículas/coração ocultos; contador numérico visível */
.card-like-badge svg,
.service-detail-like-badge svg,
.scroll-float-layer,
.scroll-float-particle {
  display: none !important;
}

/* 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.12), transparent);
}

body.page-home .section:not(.section--alt) {
  background: 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;
  /* Sem transição: troca topo/rodapé instantânea (evita travar no iPhone). */
  transition: none !important;
  animation: none !important;
}

.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);
  /* Blur no scroll custa caro no iOS; mantém fundo sólido. */
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  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: none !important;
  animation: none !important;
}

.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: none !important;
  align-items: center;
  line-height: 0;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border: 0;
  pointer-events: none;
  transition: none !important;
  animation: none !important;
}

.site-home-nav.is-top .site-home-nav__logo {
  display: flex !important;
  max-width: 280px;
  max-height: 60px;
  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-weight: 700;
  flex-shrink: 0;
  max-width: 100%;
  overflow-wrap: break-word;
}
.admin-widget__stat-breakdown {
  display: flex; flex-direction: column; gap: .18rem;
  flex: 1; min-width: 4.5rem;
}
.admin-widget__stat-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: .5rem;
  font-size: .74rem; min-width: 0;
}
.admin-widget__stat-row-label {
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.admin-widget__stat-row-value { color: var(--heading); font-weight: 700; font-size: .92rem; flex-shrink: 0; white-space: nowrap; }
.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;
}
/* Select nativo sem "appearance:none" pode cortar o texto verticalmente
   quando a altura é fixada via CSS (bug de renderização em alguns
   navegadores). Estilizamos por completo, igual aos demais selects do
   painel, para garantir texto e seta sempre visíveis por inteiro. */
.admin-pedido-billing__fields label > select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font: inherit;
  background-color: #fff;
  color: var(--heading);
  border: 1px solid var(--field-border, #8b96a8);
  border-radius: var(--field-radius);
  padding: 0 calc(0.75rem + 0.85rem) 0 0.75rem;
  line-height: 2.5rem;
  background-image: var(--select-chevron-svg);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 0.65rem auto;
}
.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);
}
.theme-dark .admin-pedido-billing__fields label > select {
  background-color: #0b1120;
  color: var(--text);
  border-color: #334155;
}
@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;
}

/* Faturas: número em destaque (descrição ocultada da listagem a pedido do usuário). */
.client-faturas-table__number {
  display: block;
  font-weight: 600;
}

/* Indicativo de filtro ativo (ex.: "Ver faturas" a partir de uma hospedagem
   específica, via `?order_id=`) exibido acima da tabela de faturas. */
.client-faturas-filter__notice {
  margin: 0 0 0.9rem;
  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-faturas-filter__clear {
  margin-left: 0.4rem;
  font-weight: 600;
  white-space: nowrap;
}

.client-faturas-table th:nth-child(1),
.client-faturas-table td:nth-child(1) {
  width: auto;
  text-align: left;
  white-space: normal;
}

.client-faturas-table th:nth-child(2),
.client-faturas-table td:nth-child(2),
.client-faturas-table th:nth-child(3),
.client-faturas-table td:nth-child(3) {
  width: 7.5rem;
  text-align: left;
  white-space: nowrap;
}

.client-faturas-table th:nth-child(4),
.client-faturas-table td:nth-child(4) {
  width: 6.5rem;
  text-align: right;
  white-space: nowrap;
}

.client-faturas-table th:nth-child(5),
.client-faturas-table td:nth-child(5) {
  width: auto;
  white-space: nowrap;
}

@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): número + descrição (sob o número) + status —— */
  .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";
    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;
    min-width: 0;
  }

  .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(2),
  .client-faturas-table td:nth-child(3),
  .client-faturas-table td:nth-child(4) {
    display: none;
  }

  .client-faturas-table td:nth-child(5) {
    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;
}

/* Hospedagem admin — listagem "Sites e E-mails": letras/linhas menores e ações só com ícone,
   para caber todas as colunas sem cortar informação. */
#hostingLocalAccounts .front-table th,
#hostingLocalAccounts .front-table td {
  padding: 0.5rem 0.6rem;
  font-size: 0.82rem;
  line-height: 1.3;
}
#hostingLocalAccounts .front-table th {
  font-size: 0.78rem;
}
#hostingLocalAccounts .admin-table-actions .admin-icon-btn {
  width: 2rem;
  height: 2rem;
}
#hostingLocalAccounts .admin-table-actions .admin-icon-svg {
  width: 15px;
  height: 15px;
}

/* 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;
  align-items: center;
  gap: 0.6rem;
}
.client-hosting-service__cancel-btn {
  margin-left: auto;
  color: var(--text-muted, #64748b);
  border-color: var(--border);
}
.client-hosting-service__cancel-btn:hover {
  color: #b91c1c;
  border-color: color-mix(in srgb, #b91c1c 45%, var(--border));
}
.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-faturas-filter__notice {
  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;
}

.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);
}

/* ══════════════════════════════════════════════════════════════════════
   Editor de Sites (Fase 1) — renderização de blocos (.sbr-*) e UI do editor
   ══════════════════════════════════════════════════════════════════════ */

/* Renderização — canvas livre: cada seção é um "quadro" (.sbr-canvas) de altura
   fixa, com elementos posicionados de forma absoluta (x/y/w/h/z, ver
   site-builder-render.js). Usada no canvas do editor (iframe) e no site publicado. */
.sbr-body { margin: 0; font-family: inherit; color: var(--heading); background: #fff; }
.sbr-page { display: block; }
.sbr-section { box-sizing: border-box; position: relative; width: 100%; overflow: hidden; }
.sbr-canvas { box-sizing: border-box; position: relative; }
.sbr-el { box-sizing: border-box; overflow: hidden; }

.sbr-el-text { width: 100%; height: 100%; overflow: auto; line-height: 1.5; font-size: 1rem; }
.sbr-el-text p { margin: 0 0 .5em; }
.sbr-el-text :last-child { margin-bottom: 0; }
.sbr-el-text h1, .sbr-el-text h2, .sbr-el-text h3, .sbr-el-text h4 { margin: 0 0 .3em; line-height: 1.2; }

.sbr-el-image, .sbr-el-logo { display: block; width: 100%; height: 100%; }
.sbr-el-image img, .sbr-el-logo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.sbr-el-logo img { object-fit: contain; border-radius: 0; }
.sbr-placeholder {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; border: 1.5px dashed var(--border, #d8dee8);
  border-radius: 8px; color: var(--text-muted); font-size: .85rem;
  background: var(--surface-2, #f8fafc);
}

.sbr-video-wrap { position: relative; width: 100%; height: 100%; border-radius: 8px; overflow: hidden; background: #000; }
.sbr-video-wrap iframe, .sbr-video-wrap video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sbr-caption { margin: .35rem 0 0; font-size: .8rem; color: var(--text-muted); text-align: center; }

.sbr-carousel { display: flex; gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; width: 100%; height: 100%; }
.sbr-carousel__item { flex: 0 0 78%; scroll-snap-align: start; }
.sbr-carousel__item img { display: block; width: 100%; height: auto; border-radius: 8px; }

.sbr-el-button {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
  background: var(--brand, #2563eb); color: #fff; border-radius: 8px; font-weight: 600;
  text-decoration: none; font-size: .95rem; padding: 0 .5rem; text-align: center;
}
.sbr-el-button:hover, .sbr-el-button:visited { color: #fff; }

.sbr-el-menu { display: flex; align-items: center; gap: 1.1rem; width: 100%; height: 100%; overflow-x: auto; }
.sbr-el-menu a { color: inherit; text-decoration: none; font-weight: 500; font-size: .95rem; white-space: nowrap; }

.sbr-el-card {
  display: flex; flex-direction: column; width: 100%; height: 100%; overflow: hidden;
  border-radius: 10px; border: 1px solid var(--border, #e5e9f0); background: #fff; text-decoration: none; color: inherit;
}
.sbr-el-card img { display: block; width: 100%; height: 45%; object-fit: cover; flex-shrink: 0; }
.sbr-el-card__body { padding: .75rem .9rem; overflow: auto; }
.sbr-el-card__title { margin: 0 0 .35em; font-size: 1rem; font-weight: 700; }
.sbr-el-card__text { font-size: .88rem; line-height: 1.5; color: var(--text-muted); }
.sbr-el-card__text p { margin: 0; }

.sbr-el-shape { width: 100%; height: 100%; background: var(--surface-2, #eef1f6); border-radius: 6px; }
.sbr-el-imported_generic { width: 100%; height: 100%; overflow: auto; }

/* ── Full-bleed: a página do editor ocupa toda a área útil, só a barra do
   topo do painel permanece visível (menu lateral, dock e chat ficam ocultos) ── */
body.site-editor-fullbleed .admin-sidebar,
body.site-editor-fullbleed .admin-sidebar__mode-wrap,
body.site-editor-fullbleed .admin-menu-toggle,
body.site-editor-fullbleed .client-app__chat-rail,
body.site-editor-fullbleed .client-impersonation-tab,
body.site-editor-fullbleed .admin-dock {
  display: none !important;
}
body.site-editor-fullbleed,
html.site-editor-fullbleed-root,
html.site-editor-fullbleed-root body {
  overflow: hidden;
  height: 100%;
}
body.site-editor-fullbleed .admin-app {
  height: 100dvh;
  overflow: hidden;
}
body.site-editor-fullbleed .admin-app__body {
  display: block !important;
  height: 100%;
  min-height: 0;
}
body.site-editor-fullbleed .admin-app__main,
body.site-editor-fullbleed.client-app .admin-app__main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
@media (max-width: 767px) {
  /* Só nesta faixa a barra fixa NÃO é compensada em `.admin-app` (ver regra global
     em ~4453) — por isso aqui a compensação continua sendo feita aqui mesmo. */
  body.site-editor-fullbleed .admin-app__main { padding-top: 64px !important; height: 100dvh; }
}
@media (min-width: 768px) {
  /* Sem padding-top aqui: `.admin-app` já reserva 72px para a barra fixa (regra
     global em ~4463), sempre — inclusive no editor. Repetir o padding aqui somava
     72px + 72px (faixa vazia clara acima do "Editar site" + conteúdo cortado
     72px no rodapé, já que a altura ainda era 100dvh apesar do offset extra). */
  body.site-editor-fullbleed .admin-app__main { height: 100%; }
}
/* ══════════════════════════════════════════════════════════════════════
   Editor de Sites — segue o tema claro/escuro já escolhido pelo usuário no
   painel (mesmas variáveis usadas no resto do admin), em vez de forçar um
   chrome escuro fixo. O canvas continua mostrando a página com fundo branco,
   centralizada num "palco" que contrasta com o chrome do editor (claro ou
   escuro, conforme o tema atual).
   ══════════════════════════════════════════════════════════════════════ */
.site-editor-page {
  --se-bg: var(--white);
  --se-bg-2: var(--surface-muted);
  --se-panel: var(--white);
  --se-panel-2: var(--surface-muted);
  --se-border: var(--border);
  --se-text: var(--heading);
  --se-muted: var(--muted);
  --se-accent: var(--brand);
  --se-accent-strong: var(--brand);
  --se-ok: #16a34a;
  --se-canvas: var(--surface-muted);
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  color: var(--se-text);
  background: var(--se-bg);
}
.site-editor-page > p.admin-muted { flex-shrink: 0; padding: .75rem 1.1rem 0; margin: 0; color: var(--se-muted); }

.site-editor-topbar {
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: .65rem 1.1rem;
  background: var(--se-bg-2);
  border-bottom: 1px solid var(--se-border);
}
.site-editor-topbar__text { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; min-width: 0; }
.site-editor-topbar__text .admin-screen-title { margin: 0; font-size: 1rem; color: var(--se-text); }
.site-editor-topbar .client-hosting-back { color: var(--se-muted); font-size: .82rem; }
.site-editor-topbar .client-hosting-back:hover { color: var(--se-text); }
.site-editor-topbar .client-hosting-back-sep { color: var(--se-border); }
#siteEditorDomainLabel { color: var(--se-muted); font-size: .82rem; }
.site-editor-header__actions { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.site-editor-status {
  font-size: .74rem; font-weight: 700; padding: .28rem .7rem; border-radius: 999px;
  background: var(--se-panel-2); color: var(--se-muted); border: 1px solid var(--se-border);
}
.site-editor-status.is-published { background: color-mix(in srgb, var(--se-ok) 18%, transparent); color: var(--se-ok); border-color: color-mix(in srgb, var(--se-ok) 40%, var(--se-border)); }

/* Botões dentro do editor herdam .btn, mas em versão escura */
.site-editor-page .btn,
.site-editor-page .btn--ghost {
  border-radius: 8px;
}
.site-editor-page .btn:not(.btn--ghost) {
  background: var(--se-accent); border-color: var(--se-accent-strong); color: #fff;
}
.site-editor-page .btn:not(.btn--ghost):hover { background: var(--se-accent-strong); }
.site-editor-page .btn--ghost {
  background: transparent; border: 1px solid var(--se-border); color: var(--se-text);
}
.site-editor-page .btn--ghost:hover { background: var(--se-panel-2); border-color: color-mix(in srgb, var(--se-accent) 45%, var(--se-border)); }
.site-editor-page .admin-icon-btn {
  background: transparent; border: 1px solid var(--se-border); color: var(--se-muted);
}
.site-editor-page .admin-icon-btn:hover { background: var(--se-panel-2); color: var(--se-text); border-color: color-mix(in srgb, var(--se-accent) 45%, var(--se-border)); }

/* Layout de 2 colunas do editor: painel de páginas/elementos + canvas.
   As propriedades não ocupam coluna fixa — aparecem como card flutuante perto
   do elemento selecionado (ver `positionPropsCard()` em site-editor.js). */
.site-editor {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  flex: 1 1 auto;
  min-height: 0;
}
.site-editor__pages {
  display: flex; flex-direction: column; min-height: 0;
  background: var(--se-panel); border-right: 1px solid var(--se-border);
}
.site-editor__props {
  position: fixed; z-index: 200; width: 300px; max-height: min(80vh, 640px);
  background: var(--se-panel); border: 1px solid var(--se-border);
  border-radius: 12px; box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
  padding: .9rem; overflow-y: auto;
  top: -9999px; left: -9999px; /* posicionado via JS antes de aparecer */
  opacity: 0; pointer-events: none; transition: opacity .12s ease;
}
.site-editor__props.is-visible { opacity: 1; pointer-events: auto; }
.site-editor__panel-section { padding: .9rem; min-height: 0; }
.site-editor__panel-section--pages { flex-shrink: 0; max-height: 42%; overflow-y: auto; border-bottom: 1px solid var(--se-border); }
.site-editor__panel-section--outline { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
.site-editor__pages-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.site-editor__pages-head h3 {
  margin: 0; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--se-muted);
}
.site-editor__pages-list { display: flex; flex-direction: column; gap: .25rem; }
.site-editor__outline-list { display: flex; flex-direction: column; gap: .5rem; }
.site-editor__outline-empty { color: var(--se-muted); font-size: .82rem; margin: .2rem 0 0; }
.site-editor__outline-hint { color: var(--se-muted); font-size: .74rem; line-height: 1.4; margin: 0 0 .6rem; }
.site-editor__prop-hint { color: var(--se-muted); font-size: .74rem; line-height: 1.4; margin: 0 0 .6rem; }

.site-editor__outline-section { border: 1px solid var(--se-border); border-radius: 8px; background: var(--se-bg-2); overflow: hidden; }
.site-editor__outline-elements { display: flex; flex-direction: column; gap: .2rem; padding: .2rem .3rem .35rem .9rem; }
.site-editor__outline-elements:empty { display: none; }
.site-editor__outline-item--section { border-radius: 8px 8px 0 0; font-weight: 600; }
.site-editor__outline-item--section .site-editor__outline-title { text-transform: uppercase; font-size: .72rem; letter-spacing: .04em; color: var(--se-muted); }
.site-editor__outline-item--section.is-active .site-editor__outline-title { color: var(--se-text); }
.site-editor__outline-item--element { padding-left: .4rem; }

.site-editor__page-item, .site-editor__outline-item {
  display: flex; align-items: center; gap: .35rem; padding: .45rem .5rem; border-radius: 8px;
  border: 1px solid transparent; cursor: pointer; font-size: .85rem; color: var(--se-text);
  position: relative;
}
.site-editor__page-item:hover, .site-editor__outline-item:hover { background: var(--se-panel-2); }
.site-editor__page-item.is-active, .site-editor__outline-item.is-active {
  background: color-mix(in srgb, var(--se-accent) 22%, var(--se-panel-2)); border-color: color-mix(in srgb, var(--se-accent) 55%, var(--se-border)); font-weight: 600;
}
.site-editor__page-item span.site-editor__page-title,
.site-editor__outline-item span.site-editor__outline-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-editor__page-item .admin-icon-btn, .site-editor__outline-item .admin-icon-btn { width: 1.8rem; height: 1.8rem; flex-shrink: 0; }
.site-editor__page-badge {
  flex-shrink: 0; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
  padding: .12rem .45rem; border-radius: 999px; color: #92400e; background: #fde68a; border: 1px solid #f5c451;
  white-space: nowrap;
}
.site-editor__outline-icon { flex-shrink: 0; width: 1.05rem; height: 1.05rem; color: var(--se-muted); display: inline-flex; }
.site-editor__outline-icon svg { width: 100%; height: 100%; }

/* Alça de arrastar (drag handle) — páginas e camadas/blocos */
.se-drag-handle {
  flex-shrink: 0; width: 1.15rem; height: 1.15rem; display: inline-flex; align-items: center; justify-content: center;
  color: var(--se-muted); cursor: grab; border-radius: 4px; touch-action: none;
}
.se-drag-handle:hover { color: var(--se-text); background: color-mix(in srgb, var(--se-accent) 18%, transparent); }
.se-drag-handle svg { width: 100%; height: 100%; }
.site-editor__page-item.is-dragging, .site-editor__outline-item.is-dragging { opacity: .45; }
.site-editor__page-item.is-drag-over-top, .site-editor__outline-item.is-drag-over-top { box-shadow: inset 0 2px 0 0 var(--se-accent); }
.site-editor__page-item.is-drag-over-bottom, .site-editor__outline-item.is-drag-over-bottom { box-shadow: inset 0 -2px 0 0 var(--se-accent); }

.site-editor__canvas-wrap { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.site-editor__toolbar {
  flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap;
  padding: .55rem .9rem; background: var(--se-panel); border-bottom: 1px solid var(--se-border);
}
.site-editor__device-toggle { display: inline-flex; border: 1px solid var(--se-border); border-radius: 999px; padding: .2rem; gap: .2rem; background: var(--se-bg-2); }
.site-editor__device-btn {
  border: 0; background: transparent; padding: .32rem .85rem; border-radius: 999px; font-size: .8rem;
  font-weight: 600; color: var(--se-muted); cursor: pointer; display: inline-flex; align-items: center; gap: .35rem;
}
.site-editor__device-btn svg { width: 1rem; height: 1rem; }
.site-editor__device-btn.is-active { background: var(--se-accent); color: #fff; }
.site-editor__add-section { display: flex; gap: .3rem; flex-wrap: wrap; }
.site-editor__add-btn {
  display: inline-flex; align-items: center; gap: .35rem; border: 1px solid var(--se-border); background: var(--se-bg-2);
  color: var(--se-text); border-radius: 8px; padding: .35rem .6rem; font-size: .78rem; cursor: pointer;
}
.site-editor__add-btn:hover { border-color: color-mix(in srgb, var(--se-accent) 55%, var(--se-border)); background: color-mix(in srgb, var(--se-accent) 14%, var(--se-bg-2)); }
.site-editor__add-btn svg { width: 1rem; height: 1rem; flex-shrink: 0; }

.site-editor__canvas-scroll {
  flex: 1 1 auto; min-height: 0; overflow: auto;
  background: var(--se-canvas);
  background-image: radial-gradient(circle, rgba(0, 0, 0, .06) 1px, transparent 1.4px);
  background-size: 20px 20px;
  display: flex; justify-content: center; align-items: flex-start;
  padding: 1.75rem;
}
.theme-dark .site-editor__canvas-scroll {
  background-image: radial-gradient(circle, rgba(255, 255, 255, .05) 1px, transparent 1.4px);
}
/* "Palco" com o tamanho final JÁ COM ZOOM aplicado (largura/altura calculadas em
   JS — ver `applyCanvasZoom()`), para a página sempre caber na área visível sem
   rolagem horizontal, tanto desktop como mobile. O iframe dentro mantém o
   tamanho "real" (1200/390px) e só é encolhido visualmente via `transform`,
   por isso o arrastar/redimensionar continua preciso (a matemática do mouse
   já compensa a escala — ver `state.canvasScale` em site-editor.js). */
.site-editor__canvas-stage {
  position: relative; flex-shrink: 0;
}
.site-editor__canvas-frame {
  position: absolute; top: 0; left: 0; transform-origin: top left;
  border: 0; background: #fff; border-radius: 10px;
  box-shadow: 0 25px 60px rgba(0, 0, 0, .18), 0 0 0 1px rgba(0, 0, 0, .08);
  /* Largura/altura reais (não responsivas): precisam bater exatamente com
     REF_WIDTH_DESKTOP/MOBILE (site-builder-render.js) para que a matemática de
     arrastar/redimensionar seja exata. O ajuste ao espaço disponível é feito
     por `transform: scale()`, nunca mudando este valor base. */
  width: 1200px; transition: border-radius .2s ease, box-shadow .2s ease;
}
.theme-dark .site-editor__canvas-frame {
  box-shadow: 0 25px 60px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06);
}
.site-editor__canvas-frame.is-mobile {
  width: 390px; border-radius: 26px;
  box-shadow: 0 25px 70px rgba(0, 0, 0, .55), 0 0 0 8px #05060a, 0 0 0 9px #333a48;
}
.site-editor__props h3 {
  margin: 0 0 .75rem; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--se-muted);
}
.site-editor__props-empty { color: var(--se-muted); font-size: .85rem; }
.site-editor__prop-group { margin-bottom: 1rem; }
.site-editor__prop-group > span, .site-editor__prop-group label > span { display: block; font-size: .76rem; color: var(--se-muted); margin-bottom: .3rem; }
.site-editor__align-group { display: flex; gap: .3rem; }
.site-editor__align-btn { flex: 1; border: 1px solid var(--se-border); background: var(--se-bg-2); border-radius: 8px; padding: .4rem 0; cursor: pointer; color: var(--se-muted); }
.site-editor__align-btn.is-active { border-color: var(--se-accent); color: var(--se-accent); background: color-mix(in srgb, var(--se-accent) 16%, var(--se-bg-2)); }
.site-editor__toolbar-btn-group { display: flex; gap: .3rem; margin-bottom: .5rem; flex-wrap: wrap; }
.site-editor__toolbar-btn { border: 1px solid var(--se-border); background: var(--se-bg-2); border-radius: 8px; width: 2rem; height: 2rem; cursor: pointer; font-weight: 700; color: var(--se-text); }
.site-editor__rich-text {
  border: 1px solid var(--se-border); border-radius: 10px; padding: .6rem .7rem; min-height: 110px;
  font-size: .9rem; line-height: 1.5; background: #fff; color: #1a1a1a;
}
.site-editor__rich-text:focus { outline: 2px solid color-mix(in srgb, var(--se-accent) 55%, transparent); outline-offset: 1px; }
.site-editor__asset-preview { width: 100%; max-height: 130px; object-fit: cover; border-radius: 8px; margin-bottom: .5rem; display: block; }
.site-editor__carousel-item { border: 1px solid var(--se-border); border-radius: 10px; padding: .6rem; margin-bottom: .6rem; }
.site-editor__carousel-item-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .4rem; }
.site-editor__props input[type="text"], .site-editor__props input[type="url"], .site-editor__props input[type="number"], .site-editor__props input[type="color"],
.site-editor__props select {
  width: 100%; box-sizing: border-box; background: var(--se-bg-2); border: 1px solid var(--se-border); color: var(--se-text);
  border-radius: 8px; padding: .45rem .6rem; font: inherit;
}
.site-editor__props input[type="color"] { padding: .2rem; height: 2.4rem; }
.site-editor__props input[type="range"] { width: 100%; accent-color: var(--se-accent); }
.site-editor__props-actions { display: flex; gap: .5rem; margin-top: 1rem; flex-wrap: wrap; }
.site-editor__prop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.site-editor__prop-grid label { margin: 0; }
.site-editor__prop-inline-value { font-size: .74rem; color: var(--se-muted); float: right; }
.site-editor__menu-item, .site-editor__card-fields { border: 1px solid var(--se-border); border-radius: 10px; padding: .6rem; margin-bottom: .5rem; }
.site-editor__menu-item-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .4rem; gap: .4rem; }
.site-editor__menu-item-head input { flex: 1; }

/* Canvas livre (Fase 2) dentro do iframe do editor — não aparece no site publicado.
   Injetado via <style> extra no srcdoc (ver renderCanvas() em site-editor.js). */
.se-editor-mode [data-sbr-section] { overflow: visible !important; }
.se-editor-mode [data-sbr-canvas] {
  outline: 1px dashed transparent; cursor: default; transition: outline-color .1s ease;
}
.se-editor-mode [data-sbr-canvas]:hover { outline-color: color-mix(in srgb, #6250f0 35%, transparent); }
.se-editor-mode [data-sbr-canvas].is-selected { outline: 2px dashed #6250f0; }

.se-section-toolbar {
  position: absolute; top: 6px; left: 6px; z-index: 100001; display: flex; align-items: center; gap: 2px;
  background: #6250f0; border-radius: 7px; padding: 2px 3px; font: 600 11px/1 sans-serif; color: #fff; box-shadow: 0 3px 10px rgba(0, 0, 0, .3);
}
.se-section-toolbar button { border: 0; background: transparent; color: #fff; cursor: pointer; width: 20px; height: 20px; border-radius: 4px; padding: 0; }
.se-section-toolbar button:hover { background: rgba(255, 255, 255, .25); }
.se-section-toolbar__label { padding: 0 .3rem; text-transform: uppercase; letter-spacing: .03em; opacity: .9; }

.se-editor-mode [data-sbr-element] {
  cursor: move; -webkit-user-select: none; user-select: none;
  outline: 1px dashed transparent; transition: outline-color .1s ease;
}
.se-editor-mode [data-sbr-element]:hover { outline-color: color-mix(in srgb, #6250f0 55%, transparent); }
.se-editor-mode [data-sbr-element].is-selected { outline: 2px solid #6250f0 !important; }
.se-editor-mode [data-sbr-element] a { pointer-events: none; }
.se-editor-mode [data-sbr-element].is-inline-editing { cursor: text; outline: 2px solid #22c55e !important; }
.se-editor-mode [data-sbr-element].is-inline-editing .sbr-el-text { cursor: text; user-select: text; }
.se-editor-mode [data-sbr-element] .sbr-el-text[contenteditable="true"] { outline: none; cursor: text; }

.se-el-toolbar {
  position: absolute; top: -28px; left: 0; z-index: 100002; display: flex; align-items: center; gap: 1px;
  background: #6250f0; border-radius: 7px; padding: 2px; font: 700 12px/1 sans-serif; color: #fff;
  white-space: nowrap; box-shadow: 0 3px 10px rgba(0, 0, 0, .35);
}
.se-el-toolbar button { border: 0; background: transparent; color: #fff; cursor: pointer; width: 22px; height: 22px; border-radius: 4px; padding: 0; font: inherit; }
.se-el-toolbar button:hover { background: rgba(255, 255, 255, .25); }

.se-resize-handle {
  position: absolute; width: 11px; height: 11px; background: #6250f0; border: 2px solid #fff; border-radius: 3px; z-index: 100002;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}
.se-resize-handle--e { top: 50%; right: -6px; margin-top: -6px; cursor: ew-resize; }
.se-resize-handle--s { bottom: -6px; left: 50%; margin-left: -6px; cursor: ns-resize; }
.se-resize-handle--se { bottom: -6px; right: -6px; cursor: nwse-resize; }

@media (max-width: 1080px) {
  .site-editor { grid-template-columns: 220px minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .site-editor { grid-template-columns: 1fr; grid-auto-rows: auto minmax(50vh, 1fr); }
  .site-editor__pages { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--se-border); }
  .site-editor__panel-section--pages, .site-editor__panel-section--outline { max-height: none; border-bottom: 0; }
  .site-editor__props { width: min(92vw, 320px); }
}

/* Preview em tela cheia */
/* `.admin-modal` (o <dialog>) limita max-width a 52rem — sem sobrescrever aqui,
   o painel (`.site-editor-preview-modal__panel`, com até 1200px) fica mais largo
   que o próprio <dialog> e o iframe de preview aparece cortado/deslocado. */
.admin-modal.site-editor-preview-modal { max-width: min(96vw, 1200px); }
.site-editor-preview-modal__panel { width: min(96vw, 1200px); height: min(92vh, 900px); padding: 0; display: flex; flex-direction: column; }
.site-editor-preview-modal__panel .admin-modal__top { padding: 1rem 1.25rem; }
.site-editor-preview-modal__body { flex: 1; padding: 0 1rem 1rem; }
.site-editor-preview-modal__body iframe { width: 100%; height: 100%; border: 0; border-radius: 8px; background: #fff; }

body.theme-dark .webmail-text-body,
body.theme-dark .webmail-preview-text {
  color: var(--text);
}
