/* ============================================================
   Começa Ebook — Modern marketplace style
   ============================================================ */

:root {
  color-scheme: only light;
  /* Palette (light) - Muralis Seguros */
  --bg:           #FAFAF6;
  --bg-elev:      #FFFFFF;
  --bg-panel:     #FBFAF5;
  --bg-cream:     #FAFAF6;
  --ink:          #0A1230;
  --ink-soft:     #3D4566;
  --ink-mute:     #878FAB;
  --ink-faint:    #B6BACA;
  --hairline:     #ECE8DD;
  --hairline-strong: #DDE3FB;

  --navy:         #2945E8;
  --navy-deep:    #0A1A6E;
  --navy-ink:     #0A1230;
  --yellow:       #A37820;
  --yellow-warm:  #FAF1DC;
  --accent:       #2945E8;
  --accent-ink:   #FFFFFF;

  --green:        #1B9E5E;
  --red:          #C9362F;

  /* Spacing */
  --space-xs: 0.375rem;
  --space-sm: 0.625rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.25rem;
  --space-2xl: 3.5rem;
  --space-3xl: 5rem;

  /* Radii */
  --r-sm: 6px;
  --r:    10px;
  --r-lg: 14px;
  --r-xl: 22px;

  /* Type */
  --f-display: 'Instrument Serif', 'Newsreader', Georgia, serif;
  --f-body: 'Manrope', system-ui, -apple-system, sans-serif;
  --f-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Density (driven by tweaks) */
  --card-gap: 1.25rem;
  --card-pad: 1rem;
  --grid-min: 220px;

  --container: 1200px;
  --header-h: 70px;
  --category-bar-h: 52px;
}

body.dark {
  --bg:          #0b1224;
  --bg-elev:     #121b30;
  --bg-panel:    #1a243d;
  --bg-cream:    #121b30;
  --ink:         #f8fafc;
  --ink-soft:    #e2e8f0;
  --ink-mute:    #94a3b8;
  --ink-faint:   #64748b;
  --hairline:    rgba(255, 255, 255, 0.08);
  --hairline-strong: rgba(255, 255, 255, 0.15);
}

body.density-compact {
  --card-gap: 0.875rem;
  --card-pad: 0.75rem;
  --grid-min: 180px;
}
body.density-comfy {
  --card-gap: 1.75rem;
  --card-pad: 1.25rem;
  --grid-min: 260px;
}

/* Accent variants */
body.accent-coral  { --accent: #f06a4a; --accent-ink: #fff; }
body.accent-emerald{ --accent: #1f8a5b; --accent-ink: #fff; }
body.accent-violet { --accent: #7a5ae0; --accent-ink: #fff; }

/* ───── Reset ───── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; color-scheme: only light !important; background-color: #FAFAF6; }
body {
  font-family: var(--f-body);
  background: var(--bg);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.55;
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Samsung Internet/Chrome podem tentar escurecer páginas sem uma declaração
   explícita. A loja é deliberadamente clara em todos os dispositivos. */
html { background: #FAFAF6 !important; }

button { font: inherit; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; margin: 0; }
input, button, select, textarea { font-family: inherit; }
img { display: block; max-width: 100%; }

h1, h2, h3, h4 { margin: 0; line-height: 1.1; letter-spacing: -0.015em; }
h1 { font-family: var(--f-display); font-weight: 400; }
h2 { font-family: var(--f-display); font-weight: 400; }

.serif { font-family: var(--f-display); font-weight: 400; }
.mono { font-family: var(--f-mono); }

/* ───── Layout containers ───── */
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 28px;
}
@media (max-width: 720px) { .container { padding: 0 18px; } }
.spinner {
  width: 28px; height: 28px;
  border: 3px solid var(--hairline-strong);
  border-top-color: var(--accent, #f5c518);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ============================================================
   HEADER
   ============================================================ */
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in oklab, var(--bg) 86%, transparent);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid var(--hairline);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  height: var(--header-h);
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 28px;
}
.header-inner > * { min-width: 0; }
.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 700;
  letter-spacing: -0.01em;
  font-size: 18px;
}
.brand-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
}
.brand-logo-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
}
.brand-logo-copy {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.brand-logo-name {
  color: #061227;
  font-size: 29px;
  font-weight: 900;
  letter-spacing: -0.055em;
  text-transform: lowercase;
}
.brand-logo-tagline {
  margin-top: 5px;
  color: var(--ink-soft);
  font-size: 7.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}
.brand-logo.compact .brand-logo-mark {
  width: 56px;
  height: 56px;
}
.brand-logo-image { display:inline-flex; align-items:center; }
.brand-logo-image img { display:block; width:176px; height:58px; object-fit:contain; object-position:left center; }
.brand-logo-image.compact img { width:56px; height:56px; object-fit:cover; border-radius:50%; }
.brand-logo-image.light img { filter:invert(1); mix-blend-mode:screen; }
/* O logo completo permanece legível no telemóvel; nunca o recortar nem o
   substituir pelo ícone “C” no cabeçalho ou no checkout. */
@media (max-width: 980px) {
  .logo .brand-logo-image:not(.compact) img { width:clamp(118px, 35vw, 148px); height:auto; max-height:44px; object-fit:contain; object-position:left center; border-radius:0; }
  .header .logo { flex:0 0 auto; width:auto; max-width:148px; overflow:visible; }
}
.brand-logo.light .brand-logo-name,
.brand-logo.light .brand-logo-tagline {
  color: #fbfaf6;
}
body.dark .brand-logo-name { color: #fbfaf6; }
body.dark .brand-logo-tagline { color: var(--ink-mute); }
.logo-text { display: flex; align-items: baseline; gap: 2px; }
.logo-text em {
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-mute);
  font-size: 16px;
  margin-left: 4px;
}

/* Search */
.search-wrap {
  position: relative;
  max-width: 380px;
  width: 100%;
  flex: 1;
}
.search-input {
  width: 100%;
  height: 38px;
  padding: 0 14px 0 38px;
  border-radius: 999px;
  border: 1px solid var(--hairline-strong);
  background: var(--bg-elev);
  color: var(--ink);
  font-size: 14px;
  transition: border-color .15s, box-shadow .15s;
}
.search-input:focus {
  outline: none;
  border-color: var(--ink);
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--ink) 8%, transparent);
}
.search-icon {
  position: absolute;
  left: 13px; top: 50%;
  transform: translateY(-50%);
  color: var(--ink-faint);
  pointer-events: none;
}
.search-hint {
  position: absolute;
  right: 8px; top: 50%;
  transform: translateY(-50%);
  font-size: 11px;
  color: var(--ink-faint);
  background: var(--bg-panel);
  border: 1px solid var(--hairline);
  border-radius: 5px;
  padding: 2px 6px;
  font-family: var(--f-mono);
  letter-spacing: 0;
}

.header-right {
  display: flex;
  align-items: center;
  gap: 18px;
}
.header-nav {
  display: flex;
  gap: 22px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-soft);
}
.header-nav a:hover { color: var(--ink); }
.install-trigger {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid color-mix(in oklab, var(--navy) 22%, var(--hairline));
  border-radius: 9px;
  background: var(--navy);
  color: #fff;
  font: 700 12px/1 var(--f-sans);
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 5px 14px color-mix(in oklab, var(--navy) 18%, transparent);
}
.install-trigger:hover { transform: translateY(-1px); filter: brightness(1.08); }
.offline-banner {
  position: relative;
  z-index: 30;
  padding: 9px 18px;
  background: #7c2d12;
  color: #fff;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  text-align: center;
}
.icon-btn {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink-soft);
  cursor: default;
  position: relative;
}
.icon-btn:hover { background: var(--bg-panel); color: var(--ink); }
.cart-badge {
  position: absolute;
  top: 2px; right: 2px;
  min-width: 16px; height: 16px;
  border-radius: 8px;
  background: var(--accent);
  color: var(--accent-ink);
  font-size: 10px;
  font-weight: 700;
  display: grid; place-items: center;
  padding: 0 4px;
  line-height: 1;
}

@media (max-width: 980px) {
  /* O layout em si (grid, colunas, alturas) fica só no bloco @980px mais
     abaixo (perto da linha 3673) -- aqui ficam só as regras de
     mostrar/esconder que não conflituam com esse. Isto já foi um sistema
     flex+order duplicado e incompatível com o grid mais recente (o antigo
     forçava height:auto no cabeçalho, que desalinhava a barra de categorias
     fixada por baixo com --header-h). */
  .header-nav { display: none; }
  .brand-logo-copy { display: none; }
  .logo-text { display: none; }
  .menu-toggle-btn { display: grid !important; }
  .mobile-only-nav { display: block !important; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-cream) 100%);
  border-bottom: 1px solid var(--hairline);
}
body.dark .hero {
  background: linear-gradient(180deg, var(--bg) 0%, #0a0e2a 100%);
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 85% 30%, color-mix(in oklab, var(--accent) 18%, transparent), transparent 50%),
    radial-gradient(circle at 10% 80%, color-mix(in oklab, var(--navy) 8%, transparent), transparent 50%);
  pointer-events: none;
}
.hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 4rem;
  align-items: center;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border: 1px solid var(--hairline-strong);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: var(--bg-elev);
}
.hero-eyebrow .dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
}
.hero h1 {
  font-size: clamp(2.6rem, 5.4vw, 4.8rem);
  margin: 1.25rem 0 1.25rem;
  letter-spacing: -0.025em;
  line-height: 1.02;
  color: var(--ink);
}
.hero h1 em {
  font-style: italic;
  color: var(--ink-mute);
}
.hero h1 .underline {
  position: relative;
  white-space: nowrap;
}
.hero h1 .underline::after {
  content: '';
  position: absolute;
  left: -2%; right: -2%; bottom: 8%;
  height: 30%;
  background: var(--accent);
  z-index: -1;
  border-radius: 4px;
  opacity: 0.85;
}
.hero p.lead {
  font-size: 1.05rem;
  color: var(--ink-mute);
  max-width: 480px;
  line-height: 1.65;
  margin: 0 0 1.75rem;
}
.hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
}
.hero-stats {
  display: flex;
  gap: 2.5rem;
  border-top: 1px solid var(--hairline);
  padding-top: 1.5rem;
  max-width: 480px;
}
.hero-stat-num {
  font-family: var(--f-display);
  font-size: 2rem;
  line-height: 1;
  color: var(--ink);
  margin-bottom: 4px;
}
.hero-stat-lbl {
  font-size: 12px;
  color: var(--ink-mute);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-weight: 600;
}

/* Hero book stage */
.hero-stage {
  position: relative;
  height: 480px;
  perspective: 2000px;
}
.hero-stage .book-3d {
  position: absolute;
}
.hero-stage .book-3d.b-back {
  top: 20px; left: 8%;
  transform: rotateY(-20deg) rotate(-6deg);
}
.hero-stage .book-3d.b-mid {
  top: 80px; left: 38%;
  transform: rotateY(-15deg) rotate(2deg);
  z-index: 2;
}
.hero-stage .book-3d.b-front {
  bottom: 0; right: 5%;
  transform: rotateY(-22deg) rotate(-3deg);
  z-index: 3;
}

@media (max-width: 980px) {
  .hero { padding: 3rem 0 2rem; }
  .hero-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero-stage { height: 360px; max-width: 420px; margin: 0 auto; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  height: 44px;
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  border: 1px solid transparent;
  cursor: default;
  transition: transform .12s, background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}
.btn-primary:hover { background: var(--ink-soft); }
body.dark .btn-primary { background: var(--bg-elev); color: var(--ink); border-color: var(--bg-elev); }

.btn-accent {
  background: var(--yellow);
  color: #0f172a;
  border-color: var(--yellow);
  font-weight: 700;
}
.btn-accent:hover {
  background: var(--yellow-warm);
  border-color: var(--yellow-warm);
}

.btn-outline {
  background: transparent;
  color: var(--ink);
  border-color: var(--hairline-strong);
}
.btn-outline:hover { border-color: var(--ink); background: var(--bg-elev); }
.btn-ghost {
  background: transparent;
  color: var(--ink-soft);
}
.btn-ghost:hover { background: var(--bg-panel); color: var(--ink); }
.btn-sm { height: 34px; padding: 0 12px; font-size: 13px; border-radius: 8px; }
.btn-lg { height: 52px; padding: 0 24px; font-size: 16px; }
.btn-block { width: 100%; }

/* ============================================================
   TRUST BAR
   ============================================================ */
.trust-bar {
  background: var(--bg-elev);
  border-bottom: 1px solid var(--hairline);
}
.trust-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 18px 28px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13.5px;
  color: var(--ink-soft);
}
.trust-item strong { color: var(--ink); font-weight: 600; }
.trust-icn {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--bg-panel);
  display: grid; place-items: center;
  color: var(--ink);
  flex-shrink: 0;
}
@media (max-width: 880px) {
  .trust-inner { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

/* ============================================================
   CATALOG LAYOUT
   ============================================================ */
.catalog {
  padding: 3.5rem 0 5rem;
}

/* Header block above tabs */
.catalog-header-block {
  margin-bottom: 1.25rem;
}
.catalog-title {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  letter-spacing: -0.025em;
  margin-bottom: 4px;
}
.catalog-sub {
  font-size: 14px;
  color: var(--ink-mute);
}

/* ───── Category Tabs (horizontal scrollable) ───── */
.cat-tabs-wrap {
  position: relative;
  margin-bottom: 1.5rem;
}
.cat-tabs-wrap::after {
  content: '';
  position: absolute;
  right: 0; top: 0; bottom: 8px;
  width: 48px;
  background: linear-gradient(90deg, transparent, var(--bg));
  pointer-events: none;
  z-index: 1;
}
.cat-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.cat-tabs::-webkit-scrollbar { display: none; }

.cat-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid var(--hairline-strong);
  background: var(--bg-elev);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink-soft);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all .15s ease;
}
.cat-tab:hover {
  background: var(--bg-panel);
  color: var(--ink);
  border-color: var(--ink-faint);
}
.cat-tab.active {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}
body.dark .cat-tab.active {
  background: var(--bg-elev);
  color: var(--ink);
  border-color: var(--ink-faint);
}

.cat-tab-cristao {
  border-color: color-mix(in oklab, var(--green) 35%, transparent);
  background: color-mix(in oklab, var(--green) 6%, transparent);
}
.cat-tab-cristao:hover {
  background: color-mix(in oklab, var(--green) 12%, transparent);
  border-color: var(--green);
}
.cat-tab-cristao.active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.cat-tab-label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.cat-tab-count {
  font-size: 11px;
  font-weight: 600;
  opacity: 0.6;
  font-variant-numeric: tabular-nums;
}
.cat-tab.active .cat-tab-count { opacity: 0.7; }

/* ───── Catalog content (sidebar + grid) ───── */
.catalog-content {
  display: block;
}

/* Hide old static sidebar on all screens since the slide-out left drawer replaces it */
.sidebar {
  display: none !important;
}

.sidebar-section { margin-bottom: 2rem; }
.sidebar-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-faint);
  margin-bottom: 12px;
}
.cat-list { display: flex; flex-direction: column; gap: 2px; }
.cat-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  color: var(--ink-soft);
  font-size: 14px;
  font-weight: 500;
  border: none;
  background: transparent;
  text-align: left;
  white-space: nowrap;
}
.cat-item:hover { background: var(--bg-panel); color: var(--ink); }
.cat-item.active {
  background: var(--ink);
  color: var(--bg);
}
body.dark .cat-item.active { background: var(--bg-elev); color: var(--ink); }
.cat-count {
  font-size: 12px;
  color: var(--ink-faint);
  font-variant-numeric: tabular-nums;
}
.cat-item.active .cat-count { color: color-mix(in oklab, var(--bg) 70%, transparent); }
body.dark .cat-item.active .cat-count { color: var(--ink-mute); }

.filter-block {
  background: var(--bg-elev);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  padding: 18px;
}
.filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 13.5px;
  color: var(--ink-soft);
}
.filter-row label { display: flex; align-items: center; gap: 8px; cursor: default; }
.checkbox {
  width: 16px; height: 16px;
  border: 1.5px solid var(--hairline-strong);
  border-radius: 4px;
  display: grid; place-items: center;
  background: var(--bg);
}
.checkbox.on {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--bg);
}

/* Catalog toolbar (sort + mobile filter pills) */
.catalog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
  gap: 12px;
}
.filter-pills {
  display: none;
}
.filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--hairline-strong);
  background: var(--bg-elev);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-soft);
  cursor: pointer;
}

.sort-bar {
  display: flex;
  gap: 6px;
  align-items: center;
  font-size: 13px;
  color: var(--ink-mute);
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--hairline-strong);
  border-radius: 999px;
  background: var(--bg-elev);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-soft);
  cursor: default;
}
.chip.on {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}
body.dark .chip.on { background: var(--bg-elev); color: var(--ink); border-color: var(--bg-elev); }

/* Product grid */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--grid-min), 1fr));
  gap: var(--card-gap);
}
@media (max-width: 600px) {
  body { --grid-min: 150px; --card-gap: 12px; --card-pad: 12px; }
}
.product {
  background: var(--bg-elev);
  border: 1px solid var(--hairline);
  border-radius: var(--r-lg);
  padding: var(--card-pad);
  display: flex;
  flex-direction: column;
  gap: 12px;
  cursor: default;
  transition: transform .2s ease, box-shadow .2s ease, border-color .15s;
  position: relative;
}
.product:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px -16px rgba(11,17,32,0.20);
  border-color: var(--hairline-strong);
}
body.dark .product:hover { box-shadow: 0 12px 32px -16px rgba(0,0,0,0.5); }
.product-cover {
  aspect-ratio: 2 / 3;
  background: var(--bg-cream);
  border-radius: var(--r);
  display: grid; place-items: center;
  position: relative;
  overflow: hidden;
  perspective: 1200px;
}
body.dark .product-cover { background: var(--bg-panel); }
.product-cover .book-3d { transform: rotateY(-22deg) rotate(-2deg); transition: transform .35s ease; }
.product:hover .product-cover .book-3d { transform: rotateY(-12deg) rotate(0deg) translateY(-4px); }
.product-cover .book-3d.has-cover { width:100%; height:100%; --bw:100%; --bh:100%; --bd:0px; }
.product-cover .book-3d.has-cover .front img { object-fit:contain !important; object-position:center; background:var(--bg-cream); }
.category-row-section { margin-top: 38px; }
.category-row-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:14px; }
.category-row-heading h3 { margin:0; font:400 clamp(1.45rem,2.5vw,2rem)/1.1 var(--f-display); color:var(--ink); }
.category-row-heading span { color:var(--ink-mute); font-size:12px; }
.category-carousel { position:relative; min-width:0; }
.category-row { display:flex; gap:18px; overflow-x:auto; padding:4px 44px 16px; scroll-snap-type:x mandatory; scrollbar-width:none; }
.category-row::-webkit-scrollbar { display:none; }
.category-row .product { flex:0 0 clamp(248px, 25vw, 300px); scroll-snap-align:start; }
.category-arrow { position:absolute; top:50%; transform:translateY(-62%); z-index:3; width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--hairline); border-radius:50%; background:var(--bg-elev); color:var(--navy); box-shadow:0 8px 22px rgba(13,27,75,.15); cursor:pointer; }
.category-arrow:hover { background:var(--navy); color:#fff; }
.category-arrow-left { left:0; transform:translateY(-62%) rotate(180deg); }
.category-arrow-right { right:0; }
.footer-socials { display:flex; align-items:center; gap:12px; margin-top:8px; }
.footer-socials a { display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(255,255,255,.2); border-radius:50%; color:#fff; }
.footer-socials a:hover { border-color:var(--yellow); color:var(--yellow); }
.footer-socials::before { content:'Redes sociais'; color:var(--ink-soft); font-size:12px; margin-right:4px; }
.product { min-width:0; }
.product-title, .product-author { overflow-wrap:anywhere; }

.product-badges {
  position: absolute;
  top: 10px; left: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2;
}
.badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  background: var(--ink);
  color: var(--bg);
}
.badge.gold { background: var(--accent); color: var(--accent-ink); }
.badge.free { background: var(--green); color: white; }
.badge.new { background: var(--bg-elev); color: var(--ink); border: 1px solid var(--hairline-strong); }

.product-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.product-cat {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.product-title {
  font-family: var(--f-display);
  font-size: 1.1rem;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-author {
  font-size: 12.5px;
  color: var(--ink-mute);
}
.product-rating {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--ink-mute);
}
.product-rating .stars { color: var(--accent); letter-spacing: 1px; }
body.accent-coral .product-rating .stars,
body.accent-emerald .product-rating .stars,
body.accent-violet .product-rating .stars { color: var(--yellow); }

.product-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 8px;
  margin-top: auto;
  border-top: 1px solid var(--hairline);
}
.price {
  font-family: var(--f-display);
  font-size: 1.2rem;
  color: var(--ink);
  line-height: 1;
}
.price-suffix {
  font-family: var(--f-body);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-faint);
  margin-left: 2px;
  letter-spacing: 0.04em;
}
.price-free {
  font-family: var(--f-display);
  font-size: 1.2rem;
  color: var(--green);
}
.btn-buy {
  height: 32px;
  padding: 0 12px;
  border-radius: 8px;
  background: var(--yellow);
  color: #0f172a;
  border: none;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: default;
  transition: background .15s, transform .12s;
}
.btn-buy:hover {
  background: var(--yellow-warm);
  transform: scale(1.03);
}

.btn-buy.free {
  background: var(--ink);
  color: var(--bg);
}
body.dark .btn-buy.free { background: var(--bg-elev); color: var(--ink); }

/* ============================================================
   3D BOOK COMPONENT
   ============================================================ */
.book-3d {
  --bw: 130px;
  --bh: 190px;
  --bd: 14px;
  width: var(--bw);
  height: var(--bh);
  position: relative;
  transform-style: preserve-3d;
  filter: drop-shadow(0 18px 24px rgba(11, 17, 32, 0.18));
}
@media (max-width: 600px) {
  .book-3d { --bw: 100px; --bh: 150px; --bd: 12px; }
  .book-3d .cv-title { font-size: 13px !important; }
}
body.dark .book-3d { filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.5)); }
.book-3d.sz-lg { --bw: 200px; --bh: 290px; --bd: 18px; }
.book-3d.sz-xl { --bw: 240px; --bh: 340px; --bd: 22px; }

/* Com capa real (foto carregada), tira sempre a inclinação 3D -- em cada
   sítio (cartão de produto, carrinho, montra) há um rotateY diferente,
   cortando/deformando uma foto real de forma inconsistente. O !important
   é deliberado: há várias regras espalhadas, algumas com :hover, mais
   específicas do que seria prático corresponder uma a uma. */
.book-3d.has-cover,
.product:hover .product-cover .book-3d.has-cover {
  transform: none !important;
}

.book-3d .face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
}
.book-3d .front {
  background: var(--cv-bg, #0d2a4b);
  color: var(--cv-text, white);
  padding: 14px 12px 12px;
  justify-content: space-between;
  border-radius: 2px 6px 6px 2px;
  overflow: hidden;
}
.book-3d .front::after {
  /* page edge sliver on the right */
  content: '';
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 3px;
  background: rgba(255, 255, 255, 0.15);
  pointer-events: none;
}
.book-3d .front::before {
  /* binding line on left */
  content: '';
  position: absolute;
  left: 6px; top: 0; bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.12);
  pointer-events: none;
}
.book-3d .spine {
  width: var(--bd);
  height: var(--bh);
  background: var(--cv-spine, #08203a);
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: left center;
  transform: rotateY(-90deg) translateX(calc(var(--bd) * -0.5));
}
.book-3d .pages {
  position: absolute;
  right: -1px; top: 4px; bottom: 4px;
  width: calc(var(--bd) - 2px);
  background: repeating-linear-gradient(90deg, #fdfbf3 0 1px, #e5e0cf 1px 2px);
  transform: translateX(1px);
  border-radius: 0 1px 1px 0;
}

.book-3d .cv-meta {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.7;
}
.book-3d .cv-title {
  font-family: var(--f-display);
  font-size: 17px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-wrap: balance;
  margin: 4px 0 8px;
}
.book-3d .cv-author {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.85;
  margin-top: auto;
}
.book-3d .cv-deco {
  position: absolute;
  inset: auto -10% -15% -10%;
  height: 50%;
  background: var(--cv-accent, #f5c518);
  opacity: 0.18;
  border-radius: 50%;
  filter: blur(8px);
  pointer-events: none;
}
.book-3d .cv-rule {
  width: 28px;
  height: 2px;
  background: var(--cv-accent, #f5c518);
  margin: 0 0 6px;
  border-radius: 2px;
}
.book-3d.sz-lg .cv-title { font-size: 26px; }
.book-3d.sz-xl .cv-title { font-size: 32px; }
.book-3d.sz-lg .cv-meta,
.book-3d.sz-lg .cv-author { font-size: 11px; }
.book-3d.sz-xl .cv-meta,
.book-3d.sz-xl .cv-author { font-size: 12px; }

/* ============================================================
   SECTION HEADER (shared)
   ============================================================ */
.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-mute);
  margin-bottom: 14px;
}
.section-eyebrow .line {
  width: 22px; height: 1px;
  background: currentColor;
}
.section-h {
  font-size: clamp(1.75rem, 3.6vw, 2.75rem);
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin-bottom: 12px;
}
.section-lead {
  font-size: 1rem;
  color: var(--ink-mute);
  max-width: 560px;
  line-height: 1.65;
}

/* ============================================================
   ALA CRISTA
   ============================================================ */
.crista {
  background: var(--bg-cream);
  color: var(--ink);
  padding: 4.5rem 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.crista::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(245,197,24,0.12), transparent 40%),
    radial-gradient(circle at 10% 90%, rgba(245,197,24,0.06), transparent 50%);
  pointer-events: none;
}
.crista-inner { position: relative; }
.crista-head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 3rem;
  align-items: end;
  margin-bottom: 3rem;
}
.crista-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
.crista-eyebrow .cross {
  width: 12px; height: 12px;
  position: relative;
}
.crista-eyebrow .cross::before,
.crista-eyebrow .cross::after {
  content: '';
  position: absolute;
  background: currentColor;
}
.crista-eyebrow .cross::before { left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); }
.crista-eyebrow .cross::after  { top: 30%; left: 0; right: 0; height: 2px; }
.crista-head h2 {
  font-size: clamp(1.75rem, 4vw, 3rem);
  color: var(--ink);
  margin: 0;
}
.crista-verse {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.5;
  color: var(--ink-soft);
  border-left: 2px solid var(--green);
  padding-left: 18px;
}
.crista-verse cite {
  display: block;
  font-style: normal;
  font-family: var(--f-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 8px;
}
.crista .product {
  background: var(--bg-elev);
  border-color: var(--hairline);
  color: var(--ink);
}
.crista .product:hover { border-color: var(--hairline-strong); box-shadow: 0 12px 32px -16px rgba(11,17,32,0.15); }
.crista .product-cover { background: var(--bg-cream); }
.crista .product-title { color: var(--ink); }
.crista .product-author { color: var(--ink-mute); }
.crista .product-cat { color: var(--green); }
.crista .product-foot { border-top-color: var(--hairline); }
.crista .product-rating { color: var(--ink-mute); }

@media (max-width: 800px) {
  .crista-head { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ============================================================
   SERVICES
   ============================================================ */
.services {
  padding: 5rem 0;
  background: var(--bg-cream);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
body.dark .services { background: var(--bg-panel); }
.services-head {
  margin-bottom: 2.5rem;
  max-width: 660px;
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.service {
  background: var(--bg-elev);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform .2s, border-color .15s;
}
.service:hover { transform: translateY(-3px); border-color: var(--hairline-strong); }
.service-num {
  font-family: var(--f-display);
  font-size: 1.5rem;
  color: var(--ink-faint);
}
.service h3 {
  font-family: var(--f-display);
  font-size: 1.75rem;
  letter-spacing: -0.02em;
  font-weight: 400;
}
.service p {
  color: var(--ink-mute);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.service-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid var(--hairline);
  font-size: 13px;
  color: var(--ink-mute);
}
.service-foot strong { color: var(--ink); font-family: var(--f-display); font-size: 1.1rem; font-weight: 400; }
@media (max-width: 880px) { .services-grid { grid-template-columns: 1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
  background: var(--bg-elev);
  color: var(--ink-soft);
  padding: 4rem 0 1.5rem;
  border-top: 1px solid var(--hairline);
}
.footer-inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 3rem;
}
.footer-brand p {
  margin: 14px 0 0;
  max-width: 320px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-mute);
}
.footer-brand .logo { color: var(--ink); }
.footer-brand .brand-logo-mark {
  width: 38px;
  height: 38px;
}
.footer-brand .brand-logo-name {
  font-size: 27px;
}
.footer-title {
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.footer-links { display: flex; flex-direction: column; gap: 10px; }
.footer-links a { font-size: 14px; color: var(--ink-soft); }
.footer-links a:hover { color: var(--navy); }
.footer-link-button { appearance: none; border: 0; background: transparent; color: var(--ink-soft); cursor: pointer; font: inherit; font-size: 14px; padding: 0; text-align: left; }
.footer-link-button:hover { color: var(--navy); }
.footer-link-button:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; border-radius: 2px; }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--hairline);
  margin-top: 3rem;
  padding-top: 1.5rem;
  font-size: 13px;
  color: var(--ink-mute);
}
.footer-bottom .slogan {
  font-family: var(--f-display);
  font-style: italic;
  color: var(--ink-mute);
}
@media (max-width: 800px) { .footer-inner { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }

/* ============================================================
   PRODUCT DETAIL DRAWER
   ============================================================ */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(11,17,32,0.45);
  backdrop-filter: blur(4px);
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.drawer-backdrop.open { opacity: 1; pointer-events: auto; }
.drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(560px, 100vw);
  background: var(--bg);
  z-index: 101;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.4,.0,.2,1);
  display: flex;
  flex-direction: column;
  box-shadow: -24px 0 60px -20px rgba(0,0,0,0.3);
}
.drawer.open { transform: translateX(0); }
.drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  border-bottom: 1px solid var(--hairline);
}
.drawer-cat {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-mute);
}
.drawer-close {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid var(--hairline);
  color: var(--ink-soft);
  cursor: default;
  display: grid; place-items: center;
}
.drawer-close:hover { background: var(--bg-panel); color: var(--ink); }
.drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 28px 32px 40px;
}
.drawer-hero {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 28px;
  align-items: start;
  margin-bottom: 28px;
}
.drawer-hero-cover {
  padding: 16px 0 16px 16px;
  perspective: 1200px;
}
.drawer-hero h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 4px 0 6px;
}
.drawer-hero .sub {
  font-family: var(--f-display);
  font-style: italic;
  color: var(--ink-mute);
  font-size: 1.05rem;
  margin-bottom: 14px;
}
.drawer-hero .author {
  font-size: 13px;
  color: var(--ink-soft);
  font-weight: 500;
}
.drawer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  padding: 14px 0;
  margin: 16px 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  font-size: 13px;
}
.drawer-meta > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.drawer-meta .lbl {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.drawer-meta .val {
  font-family: var(--f-display);
  font-size: 1.05rem;
  color: var(--ink);
}
.drawer-desc {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin-bottom: 20px;
}
.drawer-section-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-faint);
  margin: 24px 0 12px;
}
.toc {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.toc-item {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
  color: var(--ink-soft);
}
.toc-item:hover { background: var(--bg-panel); }
.toc-num {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--ink-faint);
}
.toc-pages {
  font-size: 11px;
  color: var(--ink-faint);
  font-variant-numeric: tabular-nums;
}

.drawer-foot {
  border-top: 1px solid var(--hairline);
  padding: 18px 24px;
  background: var(--bg-elev);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
}
.drawer-foot .price-big {
  font-family: var(--f-display);
  font-size: 2rem;
  line-height: 1;
  color: var(--ink);
}
.drawer-foot .price-note {
  font-size: 11px;
  color: var(--ink-mute);
  margin-top: 2px;
  letter-spacing: 0.02em;
}

/* Reader-mode mini-preview */
.sample-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

/* ============================================================
   RESPONSIVE CATALOG
   ============================================================ */

/* Desktop: hide tabs (sidebar is visible) */
@media (min-width: 981px) {
  .cat-tabs-wrap { display: none; }
}

/* Mobile: hide sidebar, show tabs + filter pills */
@media (max-width: 980px) {
  .catalog { padding: 2rem 0 3rem; }
  .catalog-content { grid-template-columns: 1fr; gap: 1rem; }
  .sidebar { display: none; }
  .filter-pills { display: flex; gap: 8px; flex-wrap: wrap; }
  .catalog-toolbar { flex-direction: column; align-items: flex-start; }
  .sort-bar { flex-wrap: wrap; }
}

/* ============================================================
   EMPTY STATE
   ============================================================ */
.empty {
  grid-column: 1 / -1;
  background: var(--bg-elev);
  border: 1px dashed var(--hairline-strong);
  border-radius: var(--r-lg);
  padding: 48px 24px;
  text-align: center;
  color: var(--ink-mute);
}
.empty h3 {
  font-family: var(--f-display);
  font-size: 1.5rem;
  color: var(--ink);
  margin-bottom: 6px;
}

/* ============================================================
   CART TOAST
   ============================================================ */
.toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--ink);
  color: var(--bg);
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s, transform .25s cubic-bezier(.4,0,.2,1);
  z-index: 200;
  box-shadow: 0 12px 32px -8px rgba(0,0,0,0.3);
}
.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.toast .check {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-ink);
  display: grid; place-items: center;
  font-size: 11px;
  font-weight: 700;
}

/* ============================================================
   CRM — Admin Panel (Dona Luísa)
   ============================================================ */
.crm{display:grid;grid-template-columns:260px 1fr;min-height:100vh;background:#f4f5f7;font-family:var(--f-body);}

/* Sidebar */
.crm-sidebar{background:#0d1b4b;color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;}
.crm-sb-hd{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,.08);}
.crm-sb-logo{display:flex;align-items:center;gap:12px;}
.crm-sb-mark{width:36px;height:36px;border-radius:9px;display:block;object-fit:cover;flex:0 0 36px;}
.crm-sb-title{font-size:15px;font-weight:700;letter-spacing:-.01em;}
.crm-sb-sub{font-size:11px;color:rgba(255,255,255,.5);font-weight:500;}
.crm-sb-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px;}
.crm-sb-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;border:none;background:transparent;color:rgba(255,255,255,.65);font-size:14px;font-weight:500;cursor:default;transition:background .15s,color .15s;text-align:left;width:100%;}
.crm-sb-item:hover{background:rgba(255,255,255,.08);color:#fff;}
.crm-sb-item.on{background:rgba(245,197,24,.15);color:var(--yellow);}
.crm-sb-ft{padding:12px;border-top:1px solid rgba(255,255,255,.08);}
.crm-sb-back{color:rgba(255,255,255,.45);}
.crm-sb-back:hover{color:#fff;background:rgba(255,255,255,.06);}

/* Main */
.crm-main{padding:32px 36px;overflow-y:auto;max-height:100vh;}

/* Page header */
.crm-page-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px;}
.crm-page-hdr h2{font-family:var(--f-display);font-size:1.8rem;color:#0b1120;margin-bottom:4px;line-height:1.1;}
.crm-page-hdr h3{font-size:1.1rem;color:#0b1120;margin-bottom:4px;}
.crm-page-hdr p{font-size:14px;color:#5b6478;margin:0;}
.crm-hdr-date{display:flex;align-items:center;gap:6px;font-size:13px;color:#5b6478;background:#fff;padding:8px 14px;border-radius:8px;border:1px solid #e5e7eb;}

/* KPI */
.crm-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;}
.crm-kpi{background:#fff;border-radius:14px;padding:20px;border:1px solid #e5e7eb;display:flex;align-items:flex-start;gap:14px;transition:transform .15s,box-shadow .15s;}
.crm-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(0,0,0,.1);}
.crm-kpi-accent{background:linear-gradient(135deg,#0d1b4b,#162d6b);border-color:transparent;color:#fff;}
.crm-kpi-accent .crm-kpi-label{color:rgba(255,255,255,.7);} .crm-kpi-accent .crm-kpi-value{color:#fff;} .crm-kpi-accent .crm-kpi-sub{color:rgba(255,255,255,.5);} .crm-kpi-accent .crm-kpi-icon{background:rgba(245,197,24,.2);color:var(--yellow);}
.crm-kpi-icon{width:40px;height:40px;border-radius:10px;background:#f4f5f7;display:grid;place-items:center;color:#0d1b4b;flex-shrink:0;}
.crm-kpi-label{font-size:12px;font-weight:600;color:#5b6478;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;}
.crm-kpi-value{font-family:var(--f-display);font-size:1.5rem;color:#0b1120;line-height:1.1;}
.crm-kpi-sub{font-size:12px;color:#8b94a6;margin-top:2px;display:flex;align-items:center;gap:6px;}
.crm-delta-up{color:#065f46;font-weight:700;font-size:11px;} .crm-delta-dn{color:#991b1b;font-weight:700;font-size:11px;}

/* Cards */
.crm-card{background:#fff;border-radius:14px;border:1px solid #e5e7eb;overflow:hidden;}
.crm-card-h{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f1f3;}
.crm-card-h h3{font-family:var(--f-body);font-size:14px;font-weight:700;color:#0b1120;letter-spacing:-.01em;}

/* Tables */
.crm-tw{overflow-x:auto;}
.crm-t{width:100%;border-collapse:collapse;font-size:13.5px;}
.crm-t thead{background:#f9fafb;border-bottom:1px solid #e5e7eb;}
.crm-t th{padding:10px 16px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#5b6478;white-space:nowrap;}
.crm-t td{padding:12px 16px;border-bottom:1px solid #f0f1f3;color:#28324a;vertical-align:middle;}
.crm-t tbody tr:last-child td{border-bottom:none;}
.crm-t-hov tbody tr{transition:background .1s;} .crm-t-hov tbody tr:hover{background:#f9fafb;}
.crm-click{cursor:default;}
.crm-mono{font-family:var(--f-mono);font-size:12.5px;} .crm-c{text-align:center;}
.crm-empty{text-align:center;padding:32px 16px!important;color:#8b94a6;font-style:italic;}
.crm-muted{font-size:13px;color:#8b94a6;}

/* Badges */
.crm-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap;}
.crm-st-pend{background:#fef3c7;color:#92400e;} .crm-st-paid{background:#dbeafe;color:#1e40af;} .crm-st-deliv{background:#d1fae5;color:#065f46;} .crm-st-canc{background:#fee2e2;color:#991b1b;}

/* Priority */
.crm-pri{display:inline-flex;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.crm-pr-h{background:#fee2e2;color:#991b1b;} .crm-pr-m{background:#fef3c7;color:#92400e;} .crm-pr-l{background:#e0e7ff;color:#3730a3;}

/* Segments */
.crm-seg-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;}
.crm-seg-vip{background:#fef3c7;color:#92400e;} .crm-seg-act,.crm-seg-activo{background:#d1fae5;color:#065f46;} .crm-seg-new,.crm-seg-novo{background:#e0e7ff;color:#3730a3;} .crm-seg-reg,.crm-seg-regular{background:#f0f1f3;color:#555;} .crm-seg-ina,.crm-seg-inactivo{background:#fee2e2;color:#991b1b;}
.crm-segs{padding:12px 16px;display:flex;flex-direction:column;gap:8px;}
.crm-seg-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f1f3;}
.crm-seg-row:last-child{border-bottom:none;} .crm-seg-n{font-weight:700;font-size:14px;color:#0b1120;}

/* Filters */
.crm-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.crm-fbtn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;font-size:13px;font-weight:500;color:#5b6478;cursor:default;transition:all .12s;}
.crm-fbtn:hover{border-color:#0b1120;color:#0b1120;} .crm-fbtn.on{background:#0b1120;color:#fff;border-color:#0b1120;}
.crm-fc{font-size:11px;background:rgba(0,0,0,.06);padding:1px 6px;border-radius:4px;font-variant-numeric:tabular-nums;}
.crm-fbtn.on .crm-fc{background:rgba(255,255,255,.15);}

/* Search */
.crm-search-w{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:0 12px;color:#8b94a6;}
.crm-search-i{border:none;outline:none;background:transparent;font-size:14px;padding:9px 0;width:220px;color:#0b1120;}

/* Dashboard */
.crm-dash-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.crm-dash-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:20px;}
.crm-dash-side{display:flex;flex-direction:column;gap:20px;}
.crm-dash-alerts .crm-alerts{padding:12px 16px;display:flex;flex-direction:column;gap:8px;}
.crm-alert{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:default;transition:transform .1s;}
.crm-alert:hover{transform:translateX(3px);} .crm-alert strong{font-weight:700;}
.crm-al-warn{background:#fef3c7;color:#92400e;} .crm-al-info{background:#dbeafe;color:#1e40af;} .crm-al-task{background:#e0e7ff;color:#3730a3;}

/* Top list */
.crm-top-list{padding:12px 16px;}
.crm-top-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #f0f1f3;}
.crm-top-item:last-child{border-bottom:none;}
.crm-top-r{width:22px;height:22px;border-radius:6px;background:#f4f5f7;display:grid;place-items:center;font-size:11px;font-weight:700;color:#5b6478;}
.crm-top-n{flex:1;font-size:13px;font-weight:500;color:#0b1120;} .crm-top-c{font-size:12px;color:#8b94a6;font-variant-numeric:tabular-nums;}

/* Category bars */
.crm-cat-bars{padding:16px 20px;display:flex;flex-direction:column;gap:10px;}
.crm-cat-bar{display:grid;grid-template-columns:120px 1fr 100px;gap:12px;align-items:center;font-size:13px;}
.crm-cat-lbl{font-weight:500;color:#28324a;} .crm-cat-val{text-align:right;font-family:var(--f-mono);font-size:12px;color:#5b6478;}
.crm-cat-track{height:8px;background:#f0f1f3;border-radius:4px;overflow:hidden;}
.crm-cat-fill{height:100%;background:linear-gradient(90deg,#f5c518,#e8a800);border-radius:4px;transition:width .3s;}

/* Chart */
.crm-chart{display:flex;align-items:flex-end;gap:8px;padding:20px 20px 12px;height:180px;}
.crm-chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;}
.crm-chart-fill{width:100%;max-width:40px;background:linear-gradient(180deg,#f5c518,#e8a800);border-radius:4px 4px 0 0;min-height:4px;transition:height .3s ease;}
.crm-chart-lbl{font-size:10px;font-weight:600;color:#8b94a6;text-transform:uppercase;letter-spacing:.04em;}
.crm-link{background:none;border:none;color:#1e40af;font-size:13px;font-weight:600;cursor:default;padding:0;} .crm-link:hover{text-decoration:underline;}

/* Name cells */
.crm-name-c{display:flex;align-items:center;gap:10px;}
.crm-av-sm{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#0d1b4b,#1e3a7a);color:var(--yellow);display:grid;place-items:center;font-size:13px;font-weight:700;flex-shrink:0;}
.crm-nm{font-weight:600;color:#0b1120;font-size:13.5px;} .crm-em{font-size:12px;color:#8b94a6;}
.crm-bk-cell{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.crm-pay{font-size:12px;color:#5b6478;}
.crm-cat-tag{display:inline-flex;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:#f4f5f7;color:#5b6478;}
.crm-rating{color:#f59e0b;font-weight:600;font-size:13px;}
.crm-sel{padding:4px 8px;border-radius:6px;border:1px solid #e5e7eb;background:#fff;font-size:12px;font-weight:500;color:#28324a;cursor:default;}

/* Detail views */
.crm-detail-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.crm-back{display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:#5b6478;font-size:13px;font-weight:500;cursor:default;padding:6px 0;} .crm-back:hover{color:#0b1120;}
.crm-detail-hdr{display:flex;align-items:center;gap:18px;margin-bottom:28px;}
.crm-avatar{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#0d1b4b,#1e3a7a);color:var(--yellow);display:grid;place-items:center;font-size:24px;font-weight:700;}
.crm-detail-hdr h2{font-family:var(--f-display);font-size:1.5rem;margin-bottom:4px;}
.crm-detail-meta{font-size:13px;color:#5b6478;display:flex;align-items:center;gap:6px;}
.crm-detail-grid{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start;}
.crm-info-r{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f1f3;font-size:13.5px;}
.crm-info-r:last-of-type{border-bottom:none;} .crm-info-r span{color:#5b6478;} .crm-info-r strong{color:#0b1120;font-weight:600;}
.crm-info-note{margin-top:14px;padding:12px;background:#f9fafb;border-radius:8px;font-size:13px;line-height:1.5;color:#28324a;}
.crm-info-note strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#5b6478;margin-bottom:4px;}

/* Buttons */
.crm-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:default;transition:all .12s;white-space:nowrap;}
.crm-btn-pri{background:#0d1b4b;color:#fff;} .crm-btn-pri:hover{background:#162d6b;}
.crm-btn-out{background:#fff;color:#28324a;border:1px solid #e5e7eb;} .crm-btn-out:hover{border-color:#0b1120;}
.crm-btn-sm{height:30px;padding:0 10px;font-size:12px;}
.crm-btn-ok{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0;}

/* Tasks */
.crm-task-row{display:flex;gap:10px;align-items:center;}
.crm-task-inp{flex:1;height:38px;border:1px solid #e5e7eb;border-radius:8px;padding:0 14px;font-size:14px;color:#0b1120;background:#f9fafb;outline:none;}
.crm-task-inp:focus{border-color:#0d1b4b;background:#fff;}
.crm-tasks{display:flex;flex-direction:column;gap:6px;}
.crm-task{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;transition:all .12s;}
.crm-task:hover{border-color:#d1d5db;box-shadow:0 2px 8px rgba(0,0,0,.04);} .crm-task.done{opacity:.55;} .crm-task.done .crm-task-txt{text-decoration:line-through;}
.crm-task-chk{width:20px;height:20px;border-radius:6px;border:2px solid #d1d5db;background:#fff;display:grid;place-items:center;cursor:default;flex-shrink:0;margin-top:1px;transition:all .12s;color:transparent;}
.crm-task-chk:hover{border-color:#0d1b4b;} .crm-task-chk.on{background:#0d1b4b;border-color:#0d1b4b;color:#fff;}
.crm-task-bd{flex:1;min-width:0;} .crm-task-txt{font-size:14px;color:#0b1120;line-height:1.4;margin-bottom:4px;}
.crm-task-mt{display:flex;align-items:center;gap:10px;font-size:12px;color:#8b94a6;}
.crm-task-del{border:none;background:none;color:#d1d5db;cursor:default;padding:4px;border-radius:4px;transition:all .12s;} .crm-task-del:hover{color:#991b1b;background:#fee2e2;}

/* WhatsApp */
.crm-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;}
.crm-tpl{padding:20px;} .crm-tpl-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.crm-tpl-hd h3{font-size:14px;font-weight:700;color:#0b1120;}
.crm-tpl-body{font-size:13.5px;line-height:1.6;color:#28324a;background:#f9fafb;padding:14px;border-radius:10px;border:1px solid #f0f1f3;white-space:pre-wrap;}

/* Reports */
.crm-report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;}
.crm-report-card{padding:24px;cursor:default;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;gap:10px;}
.crm-report-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px -8px rgba(0,0,0,.1);}
.crm-report-icon{width:48px;height:48px;border-radius:12px;background:#f4f5f7;display:grid;place-items:center;color:#0d1b4b;}
.crm-report-card h3{font-size:16px;font-weight:700;color:#0b1120;} .crm-report-card p{font-size:13px;color:#5b6478;line-height:1.5;margin:0;}
.crm-report-action{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#1e40af;margin-top:auto;padding-top:8px;}
.crm-report-month{cursor:auto;}
.crm-report-preview{display:flex;gap:16px;margin-bottom:8px;}
.crm-report-preview>div{display:flex;flex-direction:column;gap:2px;} .crm-report-preview span{font-size:16px;font-weight:700;color:#0b1120;} .crm-report-preview small{font-size:10px;text-transform:uppercase;color:#8b94a6;font-weight:600;letter-spacing:.03em;}

/* Quick reports */
.crm-quick-reports{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;}
.crm-qr-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:default;transition:all .12s;text-align:left;width:100%;}
.crm-qr-btn:hover{border-color:#1e40af;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.crm-qr-title{font-size:13.5px;font-weight:600;color:#0b1120;flex:1;} .crm-qr-meta{font-size:11px;color:#8b94a6;flex-shrink:0;}
.crm-qr-icon{color:#1e40af;flex-shrink:0;}

/* Empty */
.crm-empty-st{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;color:#8b94a6;text-align:center;} .crm-empty-st p{font-size:14px;margin:0;}

/* Responsive */
@media(max-width:1100px){.crm-kpis{grid-template-columns:repeat(2,1fr);}.crm-dash-grid,.crm-dash-row{grid-template-columns:1fr;}.crm-detail-grid{grid-template-columns:1fr;}}
@media(max-width:800px){.crm{grid-template-columns:1fr;}.crm-sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:100;transform:translateX(-100%);}.crm-main{padding:20px 16px;max-height:none;}.crm-kpis{grid-template-columns:1fr;}.crm-quick-reports{grid-template-columns:1fr;}}

/* ───── Novo Posicionamento do Cabeçalho e Lupa ───── */
/* .logo-and-search foi removido a favor do layout flex com order */

/* ───── Selo 24/24 de Confiança (Floating 24/24 Seal) ───── */
.seal-247 {
  position: absolute;
  top: -24px;
  right: -24px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--yellow);
  border: 2.5px solid var(--yellow);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--f-body);
  font-weight: 800;
  font-size: 13.5px;
  line-height: 1.15;
  box-shadow: 0 12px 28px rgba(245, 197, 24, 0.32);
  z-index: 10;
  transform: rotate(12deg);
  animation: pulseGlow 3s infinite ease-in-out;
}
@media (max-width: 600px) {
  .seal-247 {
    width: 64px;
    height: 64px;
    top: -12px;
    right: -12px;
    font-size: 10px;
    border-width: 1.5px;
  }
}
.seal-247 em {
  font-family: var(--f-display);
  font-size: 11px;
  font-style: italic;
  font-weight: 400;
  color: #fff;
  display: block;
  margin-top: 1px;
}
@keyframes pulseGlow {
  0% { transform: rotate(12deg) scale(1); box-shadow: 0 12px 28px rgba(245, 197, 24, 0.32); }
  50% { transform: rotate(12deg) scale(1.06); box-shadow: 0 14px 34px rgba(245, 197, 24, 0.5); }
  100% { transform: rotate(12deg) scale(1); box-shadow: 0 12px 28px rgba(245, 197, 24, 0.32); }
}

/* ───── Emblemas nas Capas Padrão (Category Cover Emblems) ───── */
.book-3d .cv-icon {
  margin: 10px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cv-accent, #f5c518);
  filter: drop-shadow(0 3px 6px rgba(0,0,0,0.18));
}
.book-3d .cv-icon svg { display: block; }

/* ───── Destaque da Categoria Cristão (GRÁTIS) ───── */
.cat-label-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.badge-gratis {
  background: var(--green);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  text-transform: uppercase;
  margin-left: 8px;
  display: inline-block;
  letter-spacing: 0.04em;
  box-shadow: 0 2px 6px rgba(31, 138, 91, 0.25);
  animation: badgePulse 2s infinite ease-in-out;
}
.cat-item.cat-cristao {
  border: 1px dashed color-mix(in oklab, var(--green) 35%, transparent);
  background: color-mix(in oklab, var(--green) 6%, transparent);
}
.cat-item.cat-cristao:hover {
  background: color-mix(in oklab, var(--green) 12%, transparent);
}
.cat-item.cat-cristao.active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}
.cat-item.cat-cristao.active .badge-gratis,
.cat-tab-cristao.active .badge-gratis {
  background: #fff;
  color: var(--green);
  box-shadow: none;
}

@keyframes badgePulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; }
}

/* ============================================================
   INFO MODAL
   ============================================================ */
.info-modal {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(560px, 92vw);
  max-height: 80vh;
  background: var(--bg-elev);
  border-radius: 16px;
  z-index: 301;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 60px -20px rgba(0,0,0,0.4);
}
.info-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  border-bottom: 1px solid var(--hairline);
}
.info-modal-head h3 {
  font-family: var(--f-display);
  font-size: 1.3rem;
  margin: 0;
}
.info-modal-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ink-soft);
  white-space: pre-line;
}

/* ============================================================
   PWA INSTALL MODAL
   ============================================================ */
.install-modal {
  position: fixed;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  z-index: 311;
  width: min(720px, calc(100vw - 32px));
  max-height: min(760px, calc(100dvh - 32px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: 22px;
  background: var(--bg-elev);
  color: var(--ink);
  box-shadow: 0 28px 80px -26px rgba(0,0,0,.55);
}
.install-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 26px 20px;
  border-bottom: 1px solid var(--hairline);
  background: linear-gradient(135deg, color-mix(in oklab, var(--navy) 8%, var(--bg-elev)), var(--bg-elev));
}
.install-modal-head h3 {
  margin: 3px 0 0;
  font: 400 clamp(1.7rem, 4vw, 2.2rem)/1.05 var(--f-display);
}
.install-kicker {
  color: var(--ink-mute);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.install-modal-body {
  min-height: 0;
  padding: 24px 26px 28px;
  overflow-y: auto;
}
.install-intro {
  max-width: 620px;
  margin: 0 0 18px;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.65;
}
.install-native-btn { margin-bottom: 20px; }
.install-platforms {
  display: flex;
  gap: 7px;
  margin: 0 0 22px;
  overflow-x: auto;
  scrollbar-width: none;
}
.install-platforms::-webkit-scrollbar { display: none; }
.install-platforms button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  background: var(--bg-panel);
  color: var(--ink-soft);
  font: 700 12px/1 var(--f-sans);
  cursor: pointer;
}
.install-platforms button.active {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}
.install-guide {
  padding: 20px 22px;
  border: 1px solid var(--hairline);
  border-radius: 16px;
  background: var(--bg-panel);
}
.install-guide h4 { margin: 0 0 14px; font-size: 15px; }
.install-guide ol { margin: 0; padding-left: 22px; }
.install-guide li {
  padding: 0 0 11px 5px;
  color: var(--ink-soft);
  font-size: 13.5px;
  line-height: 1.55;
}
.install-guide li:last-child { padding-bottom: 0; }
.install-guide li::marker { color: var(--navy); font-weight: 800; }
.install-note {
  margin: 16px 2px 0;
  color: var(--ink-mute);
  font-size: 11.5px;
  line-height: 1.55;
}
.install-success {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  border: 1px solid color-mix(in oklab, var(--green) 32%, var(--hairline));
  border-radius: 16px;
  background: color-mix(in oklab, var(--green) 9%, var(--bg-elev));
  color: var(--green);
}
.install-success div { display: flex; flex-direction: column; gap: 4px; }
.install-success strong { color: var(--ink); }
.install-success span { color: var(--ink-soft); font-size: 13px; line-height: 1.5; }

/* ============================================================
   CART DRAWER ADDITIONS
   ============================================================ */
.cart-empty {
  text-align: center;
  padding: 48px 0;
  color: var(--ink-mute);
}
.cart-empty p { margin-top: 12px; font-size: 15px; }
.cart-items { display: flex; flex-direction: column; gap: 12px; }
.cart-item {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 14px;
  background: var(--bg-panel);
  border-radius: 12px;
}
.cart-item-cover {
  width: 50px; height: 70px;
  flex-shrink: 0;
  perspective: 600px;
  overflow: hidden;
}
.cart-item-cover .book-3d {
  --bw: 50px; --bh: 70px; --bd: 6px;
  transform: rotateY(-12deg);
}
.cart-item-info { flex: 1; min-width: 0; }
.cart-item-title {
  font-weight: 600; font-size: 14px; color: var(--ink);
  margin-bottom: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cart-item-author { font-size: 12px; color: var(--ink-mute); }
.cart-item-price { font-family: var(--f-display); font-size: 15px; color: var(--ink); margin-top: 4px; }
.cart-qty { display: flex; align-items: center; gap: 6px; }
.cart-qty-btn {
  width: 28px; height: 28px;
  border-radius: 6px;
  border: 1px solid var(--hairline-strong);
  background: var(--bg-elev);
  color: var(--ink);
  display: grid; place-items: center;
  font-size: 16px; font-weight: 600;
  cursor: default;
}
.cart-qty-btn:hover { background: var(--bg-panel); border-color: var(--ink); }
.cart-qty-num { font-weight: 700; font-size: 14px; width: 20px; text-align: center; }
.cart-remove {
  width: 28px; height: 28px;
  border: none; background: none;
  color: var(--red);
  display: grid; place-items: center;
  border-radius: 6px;
  cursor: default;
}
.cart-remove:hover { background: color-mix(in oklab, var(--red) 10%, transparent); }
.cart-total-row {
  display: flex;
  justify-content: space-between;
  width: 100%;
  align-items: center;
  font-size: 14px;
  color: var(--ink-mute);
}
.cart-total-val {
  font-family: var(--f-display);
  font-size: 1.5rem;
  color: var(--ink);
}

/* ============================================================
   CHECKOUT PAGE
   ============================================================ */
.checkout-page {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--bg);
  overflow-y: auto;
}
.checkout-inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 32px 24px 60px;
}
.checkout-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 32px;
}
.checkout-progress {
  display: flex;
  gap: 8px;
  margin-bottom: 32px;
}
.checkout-step-item { flex: 1; text-align: center; }
.checkout-step-bar {
  height: 4px;
  border-radius: 2px;
  background: var(--hairline-strong);
  margin-bottom: 6px;
  transition: background .2s;
}
.checkout-step-bar.active { background: var(--accent); }
.checkout-step-lbl {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-faint);
}
.checkout-step-lbl.active { color: var(--ink); }
.checkout-title {
  font-family: var(--f-display);
  font-size: 1.6rem;
  margin-bottom: 24px;
}
.checkout-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 24px;
}
.checkout-field label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-mute);
  display: block;
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}
.checkout-field input {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  border-radius: 10px;
  border: 1px solid var(--hairline-strong);
  background: var(--bg-elev);
  font-size: 15px;
  color: var(--ink);
}
.checkout-field input:focus {
  outline: none;
  border-color: var(--ink);
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--ink) 8%, transparent);
}
.checkout-form-hint { color: var(--ink-mute); font-size: 13px; margin: -8px 0 16px; }
.checkout-summary {
  background: var(--bg-panel);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 24px;
}
.checkout-summary-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-faint);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 10px;
}
.checkout-summary-item {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid var(--hairline);
  font-size: 14px;
  color: var(--ink);
}
.checkout-summary-item .mono {
  font-family: var(--f-mono);
  color: var(--ink-soft);
}
.checkout-summary-total {
  display: flex;
  justify-content: space-between;
  padding-top: 10px;
  font-weight: 700;
  font-size: 16px;
}
.checkout-summary-total span:last-child { font-family: var(--f-display); }
.checkout-pay-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}
.checkout-pay-opt {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 12px;
  border: 1px solid var(--hairline-strong);
  background: var(--bg-elev);
  text-align: left;
  cursor: default;
  transition: border-color .15s, background .15s;
}
.checkout-pay-opt.selected {
  border: 2px solid var(--accent);
  background: color-mix(in oklab, var(--accent) 8%, var(--bg-elev));
}
.checkout-pay-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: var(--bg-panel);
  color: var(--ink);
  display: grid; place-items: center;
  transition: background .15s, color .15s;
}
.checkout-pay-icon.selected {
  background: var(--accent);
  color: var(--accent-ink);
}
.checkout-pay-total {
  background: var(--bg-panel);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--ink-mute);
}
.checkout-pay-total-val {
  font-family: var(--f-display);
  font-size: 1.5rem;
  color: var(--ink);
}
.checkout-pay-actions {
  display: flex;
  gap: 12px;
}
.checkout-pay-actions .btn-accent { min-width: 0; }
.checkout-done-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  display: grid; place-items: center;
  margin: 0 auto 20px;
}
.checkout-ref-card {
  background: var(--bg-panel);
  border-radius: 14px;
  padding: 24px;
  text-align: left;
  margin-bottom: 24px;
}
.checkout-ref-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid var(--hairline);
}
.checkout-ref-row span:first-child { color: var(--ink-mute); font-size: 13px; }
.checkout-ref-val {
  font-family: var(--f-mono);
  font-weight: 700;
  font-size: 18px;
  color: var(--ink);
  letter-spacing: 1px;
}
.checkout-ref-price {
  font-family: var(--f-display);
  font-size: 18px;
  color: var(--ink);
}
.checkout-steps-box {
  background: color-mix(in oklab, var(--green) 10%, var(--bg-elev));
  border: 1px solid color-mix(in oklab, var(--green) 30%, transparent);
  border-radius: 12px;
  padding: 16px;
  text-align: left;
  margin-bottom: 24px;
  font-size: 14px;
  line-height: 1.6;
}
.checkout-steps-title {
  font-weight: 700;
  color: var(--green);
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.checkout-steps-box ol {
  margin: 0;
  padding-left: 18px;
  color: var(--ink-soft);
}
.checkout-steps-box li { margin-bottom: 4px; }
.checkout-steps-box strong { color: var(--ink); }
.checkout-done-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================================
   CRM CRUD MODAL
   ============================================================ */
.crm-modal-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(4px);
  z-index: 200;
  display: grid; place-items: center;
}
.crm-modal {
  background: #fff;
  border-radius: 16px;
  width: min(560px, 92vw);
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 60px -20px rgba(0,0,0,0.4);
}
.crm-modal-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 24px;
  border-bottom: 1px solid #e5e7eb;
}
.crm-modal-head h3 { font-size: 16px; font-weight: 700; color: #0b1120; margin: 0; }
.crm-modal-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.crm-modal-foot {
  padding: 16px 24px;
  border-top: 1px solid #e5e7eb;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.crm-publish-toggle{display:flex;align-items:flex-start;gap:10px;margin:2px 0;padding:12px 14px;border:1px solid #334155;border-radius:8px;background:#172033;color:#e2e8f0;cursor:pointer;}
.crm-publish-toggle input{margin-top:3px;accent-color:#f5c518;}
.crm-publish-toggle span{display:flex;flex-direction:column;gap:3px;font-size:13px;}
.crm-publish-toggle small{color:#94a3b8;font-size:11px;line-height:1.4;}
.crm-modal-body > .crm-field:nth-child(2),
.crm-modal-body > .crm-modal-field-subtitle { display:none; }
.product-facts > span:first-child,
.product-facts > .product-facts-dot,
.drawer-meta > div:first-child,
.drawer-hero .sub { display:none; }
.crm-field label {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em;
  color: #5b6478;
  display: block; margin-bottom: 5px;
}
.crm-field input, .crm-field select, .crm-field textarea {
  width: 100%;
  height: 38px;
  padding: 0 12px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  font-size: 14px;
  color: #0b1120;
}
.crm-field textarea { height: 72px; padding: 10px 12px; resize: vertical; }
.crm-field input:focus, .crm-field select:focus, .crm-field textarea:focus {
  outline: none;
  border-color: #0d1b4b;
  background: #fff;
}
.crm-btn-danger { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.crm-btn-danger:hover { background: #991b1b; color: #fff; }

/* CRM Partners */
.crm-partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.crm-partner-card {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; padding: 20px;
  display: flex; flex-direction: column; gap: 12px;
  transition: transform .15s, box-shadow .15s;
}
.crm-partner-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px -8px rgba(0,0,0,.1); }
.crm-partner-hdr { display: flex; align-items: center; gap: 14px; }
.crm-partner-info { flex: 1; }
.crm-partner-name { font-weight: 700; font-size: 15px; color: #0b1120; }
.crm-partner-meta { font-size: 12px; color: #8b94a6; }
.crm-partner-stats { display: flex; gap: 16px; padding-top: 10px; border-top: 1px solid #f0f1f3; }
.crm-partner-stat { display: flex; flex-direction: column; gap: 2px; }
.crm-partner-stat span:first-child { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: #8b94a6; font-weight: 600; }
.crm-partner-stat span:last-child { font-size: 14px; font-weight: 700; color: #0b1120; }
.crm-partner-actions { display: flex; gap: 8px; margin-top: auto; }
.crm-compliance { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; }
.crm-compliance.ok { background: #d1fae5; color: #065f46; }
.crm-compliance.no { background: #fee2e2; color: #991b1b; }

/* ============================================================
   LEFT CATEGORIES DRAWER (SLIDING SIDEBAR) & RATINGS/COMMENTS
   ============================================================ */
.left-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.left-drawer-backdrop.open {
  opacity: 1;
  visibility: visible;
}
.left-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(340px, 85vw);
  background: var(--bg);
  box-shadow: 20px 0 60px rgba(15, 23, 42, 0.15);
  z-index: 1001;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
body.dark .left-drawer {
  box-shadow: 20px 0 60px rgba(0, 0, 0, 0.5);
}
.left-drawer.open {
  transform: translateX(0);
}
.left-drawer-head {
  padding: var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.left-drawer-title {
  font-family: var(--f-display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--ink);
}
.left-drawer-body {
  padding: var(--space-md) var(--space-lg);
  overflow-y: auto;
  flex: 1;
}
.left-drawer-section {
  margin-bottom: var(--space-lg);
}
.left-drawer-section-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-mute);
  margin-bottom: 12px;
}
.left-cat-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.left-cat-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-radius: 8px;
  cursor: pointer;
  color: var(--ink-soft);
  font-size: 14.5px;
  font-weight: 500;
  border: 1px solid transparent;
  background: transparent;
  text-align: left;
  transition: all 0.15s ease;
  width: 100%;
}
.left-cat-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.left-cat-item:hover {
  background: var(--bg-panel);
  color: var(--ink);
}
.left-cat-item.active {
  background: color-mix(in oklab, var(--navy) 10%, transparent);
  border-color: color-mix(in oklab, var(--navy) 20%, transparent);
  color: var(--navy);
  font-weight: 600;
}
.left-cat-item.cat-cristao {
  border-color: color-mix(in oklab, var(--green) 25%, transparent);
  background: color-mix(in oklab, var(--green) 5%, transparent);
  color: var(--green);
}
.left-cat-item.cat-cristao:hover {
  background: color-mix(in oklab, var(--green) 10%, transparent);
}
.left-cat-item.cat-cristao.active {
  background: var(--green);
  color: #fff;
}
.badge-gratis-large {
  background: #27ae60;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.05em;
  animation: pulse-gratis 2s infinite;
  display: inline-block;
  margin-left: 6px;
}
@keyframes pulse-gratis {
  0% { transform: scale(1); }
  50% { transform: scale(1.06); box-shadow: 0 0 8px rgba(39, 174, 96, 0.4); }
  100% { transform: scale(1); }
}

/* App Store Ratings & Comments Styles */
.product-comments {
  max-height: 380px;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.comments-list::-webkit-scrollbar {
  width: 4px;
}
.comments-list::-webkit-scrollbar-thumb {
  background: var(--hairline-strong);
  border-radius: 2px;
}
.comment-bubble {
  border: 1px solid var(--hairline);
  box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}
body.dark .comment-bubble {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: rgba(255, 255, 255, 0.08);
}
.app-store-stats > div {
  border: 1px solid var(--hairline);
}
body.dark .app-store-stats > div {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: rgba(255, 255, 255, 0.08);
}
.btn-categories-toggle {
  background: color-mix(in oklab, var(--navy) 8%, transparent);
  color: var(--navy);
  border: 1px solid color-mix(in oklab, var(--navy) 15%, transparent);
  transition: all 0.2s ease;
}
.btn-categories-toggle:hover {
  background: color-mix(in oklab, var(--navy) 15%, transparent);
  color: var(--navy-deep);
}
body.dark .btn-categories-toggle {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.12);
}
body.dark .btn-categories-toggle:hover {
  background: rgba(255, 255, 255, 0.12);
}
.search-icon-btn-mobile {
  display: none;
}
@media (max-width: 980px) {
  .btn-categories-toggle {
    order: 4;
    width: 100%;
    margin-top: 4px;
    height: 38px;
    justify-content: center;
  }
}

/* ============================================================
   OMIE EDUCAÇÃO LAYOUT — STICKY CATEGORIES BAR & CAROUSELS
   ============================================================ */

/* Sticky Category Menu Bar */
.sticky-category-bar {
  position: sticky;
  top: var(--header-h);
  z-index: 45;
  background: color-mix(in oklab, var(--bg) 95%, transparent);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--hairline-strong);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}
body.dark .sticky-category-bar {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.sticky-category-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  align-items: center;
  height: var(--category-bar-h);
}
@media (max-width: 720px) {
  .sticky-category-inner { padding: 0 14px; }
}

.sticky-category-list {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  width: 100%;
  padding: 4px 0;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sticky-category-list::-webkit-scrollbar {
  display: none;
}

.sticky-cat-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-soft);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.sticky-cat-item:hover {
  color: var(--navy);
  background: color-mix(in oklab, var(--navy) 6%, transparent);
}
.sticky-cat-item.active {
  background: var(--navy);
  color: #ffffff;
}

/* Category Block */
.category-block {
  margin-bottom: var(--space-2xl);
  scroll-margin-top: calc(var(--header-h) + var(--category-bar-h) + 16px);
  padding: 12px 0;
}

.category-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-md);
  border-left: 4px solid var(--navy);
  padding-left: 10px;
  height: 28px;
}

.category-block-title {
  font-size: 19px;
  font-weight: 800;
  color: var(--navy); /* Ocean Blue 💙 */
  display: flex;
  align-items: center;
  gap: 8px;
}
.category-title-icon {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: color-mix(in oklab, var(--navy) 8%, transparent);
  color: var(--navy);
}
body.dark .category-block-title {
  color: #fff;
}
body.dark .category-title-icon {
  background: rgba(255,255,255,0.08);
  color: #fff;
}

.category-block-vejamais {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--navy); /* Ocean Blue 💙 */
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  background: color-mix(in oklab, var(--navy) 6%, transparent);
  transition: all 0.15s ease;
}
.category-block-vejamais:hover {
  background: color-mix(in oklab, var(--navy) 12%, transparent);
  color: var(--navy-deep);
}

/* Ebook lists scroll row */
.category-carousel {
  display: flex;
  overflow-x: auto;
  gap: 20px;
  padding: 10px 4px 20px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.category-carousel::-webkit-scrollbar {
  display: none;
}

.category-carousel .product {
  flex: 0 0 calc(25% - 15px);
  scroll-snap-align: start;
  min-width: 250px;
  box-shadow: 0 4px 14px rgba(11, 17, 32, 0.04);
}
@media (max-width: 1024px) {
  .category-carousel .product {
    flex: 0 0 calc(33.333% - 14px);
    min-width: 230px;
  }
}
@media (max-width: 768px) {
  .category-carousel .product {
    flex: 0 0 calc(50% - 10px);
    min-width: 210px;
  }
}
@media (max-width: 480px) {
  .category-carousel .product {
    flex: 0 0 84%; /* Gives preview / cutoff to next card */
    min-width: 200px;
  }
}

/* Expanded Grid Mode */
.category-block.expanded .category-carousel {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  overflow-x: visible;
  scroll-snap-type: none;
  gap: 20px;
}
@media (max-width: 600px) {
  .category-block.expanded .category-carousel {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
@media (max-width: 400px) {
  .category-block.expanded .category-carousel {
    grid-template-columns: 1fr;
  }
}

.category-block.expanded .category-carousel .product {
  flex: none;
  width: 100%;
}

/* Author Section Restructure */
.author-invite-card {
  background: linear-gradient(135deg, color-mix(in oklab, var(--navy) 8%, transparent) 0%, color-mix(in oklab, var(--navy) 4%, transparent) 100%);
  border: 1px dashed var(--navy);
  border-radius: var(--r-lg);
  padding: var(--space-2xl) var(--space-xl);
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}
.author-invite-card h2 {
  font-size: clamp(1.6rem, 3.5vw, 2.3rem);
  font-weight: 800;
  color: var(--ink);
  margin-bottom: var(--space-md);
}
.author-invite-text {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 620px;
  margin: 0 auto var(--space-lg);
}

/* Trust badge seal in Hero */
.seal-24-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--yellow);
  color: #0f172a;
  font-weight: 800;
  font-size: 13.5px;
  padding: 6px 14px;
  border-radius: 30px;
  box-shadow: 0 4px 10px rgba(245, 197, 24, 0.3);
}
body.dark .seal-24-badge {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}

/* ============================================================
   HERO WELCOME TEXT — destaque por camadas
   ============================================================ */
.hero-headline {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0 0 1.5rem;
}
.welcome-primary {
  display: block;
  font-family: var(--f-body);
  font-size: clamp(1.55rem, 3.8vw, 2.5rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.welcome-secondary {
  display: block;
  font-family: var(--f-display);
  font-size: clamp(2.2rem, 5.5vw, 4rem);
  font-weight: 700;
  font-style: italic;
  line-height: 1.05;
  color: var(--navy);
  letter-spacing: -0.03em;
}
body.dark .welcome-secondary { color: var(--yellow); }
.welcome-tertiary {
  display: block;
  font-family: var(--f-body);
  font-size: clamp(1rem, 2.2vw, 1.35rem);
  font-weight: 600;
  line-height: 1.4;
  color: var(--ink-mute);
  margin-top: 0.25rem;
  letter-spacing: 0.02em;
}

/* ============================================================
   WEEKLY SHOWCASE — "E-book da Semana" outdoor
   ============================================================ */
.weekly-showcase-section {
  position: relative;
  padding: 3.5rem 0 4rem;
  background: linear-gradient(135deg, var(--navy) 0%, #1e3a7a 60%, #0d1b4b 100%);
  overflow: hidden;
}
.weekly-showcase-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(245,197,24,0.12), transparent 55%),
    radial-gradient(ellipse at 15% 85%, rgba(31,138,91,0.1), transparent 50%);
  pointer-events: none;
}
.weekly-showcase-badge {
  position: relative;
  display: inline-block;
  background: var(--yellow);
  color: #0f172a;
  font-weight: 800;
  font-size: 13px;
  padding: 5px 16px;
  border-radius: 30px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(245,197,24,0.35);
}
.weekly-showcase-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3rem;
  align-items: center;
  max-width: 900px;
}
.weekly-showcase-cover {
  transition: transform 0.3s ease;
}
.weekly-showcase-cover:hover {
  transform: scale(1.04);
}
.weekly-showcase-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.weekly-showcase-cat {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--yellow);
  opacity: 0.85;
}
.weekly-showcase-title {
  font-family: var(--f-display);
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
}
.weekly-showcase-sub {
  font-size: 1rem;
  color: rgba(255,255,255,0.65);
  margin: 0;
  font-style: italic;
}
.weekly-showcase-author {
  font-size: 14px;
  color: rgba(255,255,255,0.55);
  font-weight: 600;
  margin: 0;
}
.weekly-showcase-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  line-height: 1.6;
  max-width: 480px;
  margin: 4px 0 0;
}
.weekly-showcase-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 6px;
}
.price-lg {
  font-size: 2rem;
  font-weight: 800;
  color: var(--yellow);
}
.price-suffix-lg {
  font-size: 1rem;
  font-weight: 600;
  color: rgba(255,255,255,0.5);
}
.price-free-lg {
  font-size: 2rem;
  font-weight: 800;
  color: #34d399;
}
.weekly-showcase-actions {
  display: flex;
  gap: 12px;
  margin-top: 10px;
}
.weekly-showcase-actions .btn-accent {
  background: var(--yellow);
  border-color: var(--yellow);
  color: #0f172a;
  font-weight: 700;
}
.weekly-showcase-actions .btn-outline {
  border-color: rgba(255,255,255,0.3);
  color: #fff;
}
.weekly-showcase-actions .btn-outline:hover {
  border-color: rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.08);
}

@media (max-width: 700px) {
  .weekly-showcase-card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    text-align: center;
  }
  .weekly-showcase-cover { margin: 0 auto; }
  .weekly-showcase-info { align-items: center; }
  .weekly-showcase-actions { justify-content: center; flex-wrap: wrap; }
  .weekly-showcase-desc { max-width: 100%; }
}

/* ============================================================
   TRUST BAR — ícones vibrantes
   ============================================================ */
.trust-icn-pay {
  background: linear-gradient(135deg, #0d1b4b, #1e3a7a) !important;
  color: #fff !important;
  border-radius: 10px !important;
  width: 38px !important; height: 38px !important;
  box-shadow: 0 3px 8px rgba(13,27,75,0.2);
}
.trust-icn-24 {
  background: var(--yellow) !important;
  color: #0f172a !important;
  font-weight: 900 !important;
  font-size: 11px !important;
  border-radius: 10px !important;
  width: 44px !important; height: 38px !important;
  box-shadow: 0 3px 10px rgba(245,197,24,0.35);
  letter-spacing: -0.02em;
}
.trust-icn-device {
  background: linear-gradient(135deg, #6c5ce7, #a55eea) !important;
  color: #fff !important;
  border-radius: 10px !important;
  width: 38px !important; height: 38px !important;
  box-shadow: 0 3px 8px rgba(108,92,231,0.25);
}
.trust-icn-chat {
  background: linear-gradient(135deg, #1f8a5b, #34d399) !important;
  color: #fff !important;
  border-radius: 10px !important;
  width: 38px !important; height: 38px !important;
  box-shadow: 0 3px 8px rgba(31,138,91,0.25);
}
.trust-item-highlight {
  background: color-mix(in oklab, var(--yellow) 12%, var(--bg-elev));
  padding: 10px 14px;
  border-radius: 10px;
  border: 1.5px dashed var(--yellow);
}

/* ============================================================
   ADMIN LOGIN
   ============================================================ */
.admin-login-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0a0e2a 0%, #0d1b4b 50%, #1e3a7a 100%);
  padding: 24px;
}
.admin-login-card {
  position: relative;
  background: #fff;
  border-radius: 20px;
  padding: 48px 40px 40px;
  width: 100%;
  max-width: 380px;
  box-shadow: 0 25px 60px rgba(0,0,0,0.4);
  text-align: center;
}
body.dark .admin-login-card {
  background: #1e293b;
}
.admin-login-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: #94a3b8;
  padding: 4px;
  border-radius: 6px;
  transition: color 0.2s, background 0.2s;
}
.admin-login-close:hover {
  color: #0f172a;
  background: #f1f5f9;
}
body.dark .admin-login-close:hover {
  color: #fff;
  background: #334155;
}
.admin-login-logo {
  margin-bottom: 20px;
}
.admin-login-logo .brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.admin-login-title {
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 6px;
}
body.dark .admin-login-title {
  color: #f8fafc;
}
.admin-login-sub {
  font-size: 14px;
  color: #64748b;
  margin: 0 0 28px;
}
.admin-login-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.admin-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
}
.admin-field label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
.admin-login-input {
  width: 100%;
  height: 46px;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 500;
  color: #0f172a;
  background: #f8fafc;
  outline: none;
  padding: 0 14px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
body.dark .admin-login-input {
  background: #0f172a;
  border-color: #334155;
  color: #f8fafc;
}
.admin-login-input:focus {
  border-color: #0d1b4b;
  box-shadow: 0 0 0 3px rgba(13,27,75,0.15);
}
body.dark .admin-login-input:focus {
  border-color: #F5C518;
  box-shadow: 0 0 0 3px rgba(245,197,24,0.2);
}
.admin-login-input.admin-login-error {
  border-color: #ef4444;
  background: #fef2f2;
}
body.dark .admin-login-input.admin-login-error {
  border-color: #ef4444;
  background: rgba(239,68,68,0.1);
}
.admin-pass-wrap {
  position: relative;
}
.admin-pass-wrap .admin-login-input {
  padding-right: 70px;
}
.admin-pass-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  font-size: 12px;
  font-weight: 600;
  color: #0d1b4b;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
}
.admin-pass-toggle:hover {
  background: rgba(13,27,75,0.06);
}
body.dark .admin-pass-toggle {
  color: #F5C518;
}
body.dark .admin-pass-toggle:hover {
  background: rgba(245,197,24,0.1);
}
.admin-login-msg {
  font-size: 13px;
  color: #ef4444;
  font-weight: 600;
}
@keyframes adminShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-8px); }
  40% { transform: translateX(8px); }
  60% { transform: translateX(-6px); }
  80% { transform: translateX(6px); }
}
.admin-shake {
  animation: adminShake 0.4s ease-in-out;
}

/* ============================================================
   GLOBAL FLUID & RESPONSIVE FIXES
   ============================================================ */

/* Smooth transitions everywhere */
*, *::before, *::after {
  -webkit-tap-highlight-color: transparent;
}

/* ─── Mobile: Trust bar stacks vertically ─── */
@media (max-width: 600px) {
  .trust-inner { grid-template-columns: 1fr !important; gap: 10px; padding: 14px 18px; }
  .trust-item { font-size: 12.5px; }
}

/* ─── Mobile: Hero compact ─── */
@media (max-width: 600px) {
  .hero { padding: 2.5rem 0 2rem; }
  .hero-inner { grid-template-columns: 1fr !important; gap: 1.5rem; }
  .hero-headline { gap: 0.2rem; }
  .welcome-primary { font-size: 1.35rem !important; }
  .welcome-secondary { font-size: 1.8rem !important; }
  .welcome-tertiary { font-size: 0.95rem !important; }
  .hero-actions { flex-direction: column; gap: 8px; }
  .hero-actions .btn { width: 100%; justify-content: center; }
}

/* ─── Mobile: Weekly showcase stacks ─── */
@media (max-width: 600px) {
  .weekly-showcase-section { padding: 2.5rem 0 3rem; }
  .weekly-showcase-card { grid-template-columns: 1fr !important; gap: 1.2rem; text-align: center; }
  .weekly-showcase-cover { margin: 0 auto; transform: scale(0.85); }
  .weekly-showcase-info { align-items: center; }
  .weekly-showcase-title { font-size: 1.3rem !important; }
  .weekly-showcase-desc { font-size: 13px; }
  .weekly-showcase-actions { flex-wrap: wrap; justify-content: center; }
  .weekly-showcase-actions .btn { flex: 1; min-width: 140px; justify-content: center; }
}

/* ─── Mobile: Category bar scrolls smooth ─── */
.sticky-category-list {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sticky-category-list::-webkit-scrollbar { display: none; }

/* ─── Mobile: Product grid single column ─── */
@media (max-width: 520px) {
  .category-carousel { gap: 12px !important; }
  .product { min-width: 260px !important; }
}

/* ─── Mobile: Drawer full width ─── */
@media (max-width: 600px) {
  .drawer { width: 100% !important; max-width: 100% !important; }
  .drawer-hero { flex-direction: column; text-align: center; }
  .drawer-hero-cover { margin: 0 auto; }
  .drawer-meta { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ─── Mobile: Checkout compact ─── */
@media (max-width: 600px) {
  .checkout-inner { padding: 20px 18px !important; }
  .checkout-pay-options { flex-direction: column; }
  .checkout-pay-actions { flex-direction: column-reverse; }
  .checkout-pay-actions .btn { width: 100%; white-space: normal; }
}

/* ─── Mobile: Footer 1 column ─── */
@media (max-width: 600px) {
  .footer-inner { grid-template-columns: 1fr !important; gap: 1.5rem; }
}

/* ─── Mobile: Admin login ─── */
@media (max-width: 480px) {
  .admin-login-card { padding: 32px 24px 28px; margin: 0 12px; }
  .admin-login-title { font-size: 20px; }
}

/* ============================================================
   CRM RESPONSIVE — sidebar toggle + fluid tables
   ============================================================ */

/* Hamburger button — hidden on desktop */
.crm-hamburger {
  display: none;
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 110;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #0d1b4b;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Sidebar overlay */
.crm-sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 99;
}

/* Sidebar open state on mobile */
.crm-sidebar {
  transition: transform 0.25s ease;
}

@media (max-width: 800px) {
  .crm-hamburger { display: flex; }
  .crm-sidebar-overlay { display: block; }

  .crm-sidebar {
    position: fixed;
    left: 0; top: 0; bottom: 0;
    width: 270px;
    z-index: 100;
    transform: translateX(-100%);
    box-shadow: 4px 0 20px rgba(0,0,0,0.15);
  }
  .crm-sidebar.crm-sidebar-open {
    transform: translateX(0);
  }

  .crm-main {
    padding: 60px 14px 24px !important;
    max-height: none !important;
    overflow-x: hidden;
  }

  .crm-kpis { grid-template-columns: 1fr !important; }
  .crm-dash-grid, .crm-dash-row { grid-template-columns: 1fr !important; }
  .crm-detail-grid { grid-template-columns: 1fr !important; }
  .crm-detail-hdr { flex-direction: column; text-align: center; gap: 12px; }
  .crm-detail-top { flex-direction: column; gap: 8px; }

  .crm-page-hdr {
    flex-direction: column !important;
    gap: 10px !important;
    align-items: flex-start !important;
  }
  .crm-page-hdr > div:last-child {
    width: 100%;
  }
  .crm-search-w { width: 100%; }

  .crm-task-row { flex-direction: column; }
  .crm-task-row .crm-sel { width: 100%; }
  .crm-task-row .crm-btn { width: 100%; justify-content: center; }

  .crm-tpl-grid { grid-template-columns: 1fr !important; }
  .crm-report-grid { grid-template-columns: 1fr !important; }
  .crm-cat-bar { grid-template-columns: 80px 1fr 70px !important; gap: 8px; font-size: 12px; }

  .crm-filters { flex-wrap: wrap; }
}

/* CRM tables: horizontal scroll on small screens */
.crm-tw {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.crm-tw::-webkit-scrollbar { height: 4px; }
.crm-tw::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 2px; }
.crm-t { min-width: 700px; }

@media (max-width: 800px) {
  .crm-t { min-width: 580px; font-size: 12px; }
  .crm-t th, .crm-t td { padding: 8px 6px; }
}

/* SplitBar responsive */
@media (max-width: 600px) {
  .crm-kpi { padding: 14px 16px; }
  .crm-kpi-value { font-size: 1.3rem; }
}

/* ============================================================
   VITRINE DE PRODUÇÃO
   Catálogo compacto, dados reais e hero equilibrado.
   ============================================================ */
.hero {
  padding: 3.75rem 0 4rem;
}
.hero-inner {
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: clamp(2.5rem, 6vw, 5rem);
}
.hero-content {
  max-width: 590px;
}
.hero-visual {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-book-card,
.hero-promise-card {
  width: min(100%, 470px);
  min-height: 380px;
  border: 1px solid var(--hairline-strong);
  border-radius: 28px;
  background: linear-gradient(145deg, #102669 0%, #071438 100%);
  box-shadow: 0 28px 70px -38px rgba(10, 26, 110, .72);
  color: #fff;
}
.hero-book-card {
  position: relative;
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: center;
  gap: 20px;
  padding: 38px 34px 30px;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
}
.hero-book-card::after {
  content: '';
  position: absolute;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  right: -80px;
  top: -90px;
  background: rgba(255,255,255,.08);
}
.hero-book-card .book-3d {
  transform: none !important;
  justify-self: center;
}
.hero-book-kicker {
  position: absolute;
  top: 20px;
  left: 24px;
  color: #f0d18f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hero-book-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.hero-book-copy strong {
  font-family: var(--f-display);
  font-size: clamp(1.55rem, 2.6vw, 2.15rem);
  line-height: 1.05;
}
.hero-book-copy span {
  color: rgba(255,255,255,.68);
  font-size: 13px;
}
.hero-book-copy b {
  margin-top: 12px;
  color: #f0d18f;
  font-size: 1.15rem;
}
.hero-promise-card {
  padding: 42px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-promise-label {
  color: #f0d18f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero-promise-card h2 {
  max-width: 360px;
  margin: 14px 0 28px;
  color: #fff;
  font-size: clamp(1.8rem, 3vw, 2.45rem);
  line-height: 1.05;
}
.hero-promise-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.hero-promise-list span {
  display: flex;
  align-items: center;
  gap: 11px;
  color: rgba(255,255,255,.78);
  font-size: 13.5px;
}
.hero-promise-list svg { color: #f0d18f; flex: 0 0 auto; }

.published-catalog {
  min-height: 300px;
}
.published-catalog-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--hairline);
}
.published-catalog-header .catalog-title {
  margin-top: 8px;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 600;
}
.published-catalog-header .catalog-title em {
  color: var(--navy);
  font-style: normal;
}
.published-catalog-header .catalog-sub {
  margin: 8px 0 0;
  color: var(--ink-mute);
  font-size: 14px;
}
.published-catalog-header .catalog-toolbar {
  justify-content: flex-end;
  margin: 0;
}
.catalog-grid-production {
  grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
  align-items: stretch;
}
.catalog-grid-production .product {
  max-width: 330px;
  width: 100%;
}
.product-facts {
  min-height: 34px;
  margin-top: 10px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  color: var(--ink-mute);
  font-size: 11.5px;
}
.product-facts-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--ink-faint);
}
.product-rating { color: var(--ink-soft); font-weight: 600; }

.catalog-state {
  min-height: 340px;
  padding: 54px 24px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xl);
  background: var(--bg-elev);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--ink-mute);
}
.catalog-state h2 {
  margin: 15px 0 8px;
  color: var(--ink);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
}
.catalog-state p { max-width: 560px; margin: 0 0 20px; }
.catalog-state-error svg { color: var(--red); }
.catalog-loader {
  width: 34px;
  height: 34px;
  border: 3px solid var(--hairline-strong);
  border-top-color: var(--navy);
  border-radius: 50%;
  animation: catalogSpin .8s linear infinite;
}
@keyframes catalogSpin { to { transform: rotate(360deg); } }

.drawer-body { overflow-x: hidden; }
.drawer-hero > * { min-width: 0; }
.drawer-rating-summary {
  margin-top: 16px;
  padding: 13px 15px;
  border: 1px solid var(--hairline);
  border-radius: 12px;
  background: var(--bg-panel);
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.drawer-rating-summary strong { color: var(--ink); font-size: 14px; }
.drawer-rating-summary strong span { color: var(--yellow); }
.drawer-rating-summary small { color: var(--ink-mute); font-size: 11px; }

@media (max-width: 980px) {
  :root { --header-h: 118px; }
  .header-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px 14px;
    padding: 10px 18px 12px;
  }
  .logo { grid-column: 1; grid-row: 1; }
  .header-right { grid-column: 2; grid-row: 1; justify-self: end; }
  .search-wrap {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    max-width: none;
    min-width: 100%;
    margin: 0;
  }
  .hero-inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .hero-content { max-width: 680px; }
  .hero-visual { justify-content: flex-start; }
  .published-catalog-header { align-items: flex-start; flex-direction: column; }
  .published-catalog-header .catalog-toolbar { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .header-right { gap: 5px; }
  .install-trigger { width: 36px; padding: 0; }
  .install-trigger span { display: none; }
  .install-modal {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 18px;
  }
  .install-modal-head { padding: 20px 18px 16px; }
  .install-modal-body { padding: 18px 18px max(22px, env(safe-area-inset-bottom)); }
  .category-row { gap:14px; padding-left:42px; padding-right:42px; }
  .category-row .product { flex-basis: min(82vw, 310px); }
  .install-guide { padding: 18px 17px; }
  .search-hint { display: none; }
  .search-input { padding-right: 14px; }
  .hero { padding: 2.35rem 0 2.75rem; }
  .hero-promise-card,
  .hero-book-card { min-height: 0; border-radius: 20px; }
  .hero-promise-card { padding: 28px 24px; }
  .hero-promise-card h2 { margin-bottom: 22px; }
  .hero-book-card {
    grid-template-columns: 125px 1fr;
    gap: 16px;
    padding: 48px 20px 22px;
  }
  .hero-book-card .book-3d.sz-lg {
    --bw: 112px;
    --bh: 164px;
    --bd: 10px;
  }
  .hero-book-kicker { left: 20px; top: 17px; }
  .hero-actions { margin-bottom: 0; }
  .sticky-category-bar { top: var(--header-h); }
  .catalog { padding-top: 2.4rem; }
  .published-catalog-header { gap: 18px; }
  .published-catalog-header .catalog-toolbar,
  .published-catalog-header .sort-bar {
    width: 100%;
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }
  .published-catalog-header .catalog-toolbar::-webkit-scrollbar,
  .published-catalog-header .sort-bar::-webkit-scrollbar { display: none; }
  .published-catalog-header .chip { flex: 0 0 auto; }
  .catalog-grid-production { grid-template-columns: 1fr; }
  .catalog-grid-production .product { max-width: none; min-width: 0 !important; }
  .product-cover { aspect-ratio: 1.25 / 1; }
  .drawer { width: 100vw !important; }
  .drawer-body { padding: 22px 20px 34px; }
  .drawer-hero {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 16px;
    text-align: left;
  }
  .drawer-hero-cover { padding: 6px 0 12px; margin: 0 auto; }
  .drawer-hero .book-3d.sz-lg {
    --bw: 140px;
    --bh: 205px;
    --bd: 12px;
  }
  .drawer-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .drawer-body form > div { flex-direction: column; }
  .drawer-body form select { width: 100% !important; }
  .author-invite-card { overflow: hidden; padding: 2.25rem 1.25rem; }
  .author-invite-card .btn {
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 44px;
    padding: 11px 14px;
    white-space: normal;
    line-height: 1.35;
  }
}
