/* ===========================================================
   AB STUDIO — folha de estilos principal
   Paleta, fontes e componentes copiados do design original.
   =========================================================== */

:root {
  --radius: 0.25rem;

  --background: oklch(0.16 0.005 20);
  --foreground: oklch(0.95 0.004 260);
  --carbon-1: oklch(0.22 0.008 20);
  --carbon-2: oklch(0.15 0.005 20);

  --primary: oklch(0.55 0.208 26);
  --primary-foreground: oklch(0.99 0 0);
  --secondary: oklch(0.27 0.008 20);
  --secondary-foreground: oklch(0.93 0.004 260);
  --muted-foreground: oklch(0.7 0.008 260);
  --border: oklch(0.32 0.012 20);
  --input: oklch(0.3 0.012 20);
  --steel: oklch(0.82 0.005 260);

  --gradient-blade: linear-gradient(115deg, oklch(0.55 0.208 26) 0%, oklch(0.42 0.16 26) 55%, oklch(0.24 0.02 20) 100%);
  --gradient-carbon: linear-gradient(160deg, var(--carbon-1) 0%, var(--carbon-2) 100%);
  --gradient-divider: linear-gradient(90deg, transparent 0%, oklch(0.55 0.208 26 / 0.55) 50%, transparent 100%);
  --shadow-blade: 0 18px 40px -18px oklch(0.55 0.208 26 / 0.55);
  --shadow-panel: 0 24px 60px -30px oklch(0 0 0 / 0.9);
  --shadow-card: 0 12px 28px -16px oklch(0 0 0 / 0.65);
  --focus-ring: 0 0 0 3px oklch(0.55 0.208 26 / 0.22);

  --font-display: "Poppins", ui-sans-serif, system-ui, sans-serif;
  --font-sans: "Barlow", ui-sans-serif, system-ui, sans-serif;

  /* Grade quadriculada de fundo (linhas finas, na cor da marca) */
  --grid-line: oklch(0.55 0.208 26 / 0.1);
  --grid-size: 42px;
}

* { box-sizing: border-box; border-color: var(--border); }
html, body { margin: 0; padding: 0; }

body {
  background-color: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  min-height: 100vh;
  background-image:
    radial-gradient(circle at 12% -10%, oklch(0.55 0.208 26 / 0.16), transparent 45%),
    radial-gradient(circle at 92% 4%, oklch(0.55 0.208 26 / 0.1), transparent 40%),
    linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
  background-size: auto, auto, var(--grid-size) var(--grid-size), var(--grid-size) var(--grid-size);
  background-attachment: fixed;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0;
  margin: 0;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img { max-width: 100%; display: block; }

.container { max-width: 80rem; margin: 0 auto; padding: 0 1.25rem; }
@media (min-width: 640px) { .container { padding: 0 2rem; } }
@media (min-width: 1024px) { .container { padding: 0 3rem; } }

.text-display { font-family: var(--font-display); }
.bg-carbon { background-image: var(--gradient-carbon); }
.bg-blade { background-image: var(--gradient-blade); }
.uppercase { text-transform: uppercase; }
.muted { color: var(--muted-foreground); }
.primary-text { color: var(--primary); }

/* Corte diagonal característico dos botões "blade" */
.clip-blade {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
}

/* ===================== Header ===================== */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background-color: oklch(0.16 0.005 20 / 0.85);
  backdrop-filter: blur(10px);
}
.site-header .container {
  height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.brand { display: flex; align-items: center; gap: 0.75rem; }
.brand img { height: 2.75rem; width: 2.75rem; object-fit: contain; }
.brand span {
  font-family: var(--font-display); font-weight: 700; font-size: 1.125rem;
  text-transform: uppercase; letter-spacing: 0.18em;
}
.header-right { display: flex; align-items: center; gap: 0.5rem; }

.btn-outline {
  display: inline-flex; align-items: center; gap: 0.5rem;
  border: 1px solid var(--border); border-radius: 2px;
  padding: 0.5rem 0.75rem; font-size: 0.75rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.15em;
  color: var(--muted-foreground); background: transparent; transition: 0.2s;
}
.btn-outline:hover { border-color: var(--primary); color: var(--primary); }

.btn-blade {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  background-image: var(--gradient-blade); color: var(--primary-foreground);
  padding: 0.75rem 1.25rem; font-size: 0.875rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.1em; border: none;
  box-shadow: var(--shadow-blade); transition: transform 0.15s;
}
.btn-blade:hover { transform: translateY(-2px); }
.btn-blade:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }

.btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  background: var(--secondary); color: var(--secondary-foreground);
  padding: 0.75rem 1.25rem; font-size: 0.875rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.1em; border: none;
}

/* ===================== Hero ===================== */
.hero { position: relative; overflow: hidden; }
.hero img.banner {
  position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; opacity: 0.4;
  pointer-events: none;
}
.hero-fade {
  /* Sem imagem de banner, essa camada só criava um "retângulo preto"
     visível por cima do fundo quadriculado — removida. Se um dia você
     adicionar hero-banner.jpg, pode reativar um leve degradê aqui pra
     dar contraste ao texto por cima da foto. */
  display: none;
}
.hero-inner { position: relative; padding: 4rem 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
@media (min-width: 768px) { .hero-inner { padding: 6rem 0; } }
.hero-inner .eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.35em; color: var(--primary); }
.hero-inner h1 { margin-top: 1rem; max-width: 40rem; font-size: 2.25rem; font-weight: 700; letter-spacing: 0; text-transform: uppercase; line-height: 1.05; }
@media (min-width: 768px) { .hero-inner h1 { font-size: 3.75rem; } }
.hero-inner h1 span { display: block; color: var(--primary); }
.hero-inner p { margin-top: 1.25rem; max-width: 36rem; font-size: 0.875rem; line-height: 1.6; color: var(--muted-foreground); }

/* ===================== Filtros ===================== */
.filters {
  position: sticky; top: 4rem; z-index: 30;
  background-color: oklch(0.16 0.005 20 / 0.55); backdrop-filter: blur(10px);
}
.filters .container { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding-top: 1rem; padding-bottom: 1rem; }
.filter-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem; }
.filter-row-between { width: 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem; }
.filter-label { font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted-foreground); }

.chip {
  border: 1px solid var(--border); border-radius: 2px; background: transparent;
  padding: 0.375rem 0.75rem; font-size: 0.75rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted-foreground); transition: 0.2s;
}
.chip:hover { border-color: var(--muted-foreground); color: var(--foreground); }
.chip.active { border-color: var(--primary); background: oklch(0.55 0.208 26 / 0.15); color: var(--foreground); }

.search-wrap { position: relative; width: 100%; max-width: 18rem; }
.search-wrap svg { position: absolute; left: 0.875rem; top: 50%; transform: translateY(-50%); width: 1rem; height: 1rem; color: var(--muted-foreground); pointer-events: none; }
.search-wrap input {
  width: 100%; border-radius: 2px; border: 1px solid var(--input);
  background: oklch(0.16 0.005 20 / 0.6); padding: 0.6rem 0.9rem 0.6rem 2.75rem;
  font-size: 0.875rem; color: var(--foreground); outline: none;
}
.search-wrap input:focus { border-color: var(--primary); }

/* ===================== Grid do catálogo ===================== */
.catalog-main { padding: 3rem 0; }
.catalog-main.is-empty { padding: 0; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 768px) { .catalog-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .catalog-grid { grid-template-columns: repeat(4, 1fr); } }

.empty-box {
  display: flex; flex-direction: column; align-items: center; gap: 0.75rem;
  border: 1px dashed var(--border); border-radius: 6px; padding: 3rem; text-align: center; color: var(--muted-foreground);
}
.empty-box svg { color: var(--border); }

/* ===================== Depoimentos (marquee em loop) ============= */
.testimonials-section { padding: 3rem 0; overflow: hidden; }
.testimonials-section .section-title { padding: 0 1.25rem; }
.marquee {
  overflow: hidden; width: 100%;
  -webkit-mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent);
  mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent);
}
.marquee-track {
  display: flex; width: max-content; gap: 1rem;
  animation: marquee-scroll 32s linear infinite;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.testimonial-card {
  flex: none; width: 18rem; border-radius: 8px; border: 1px solid var(--border);
  background-image: var(--gradient-carbon); padding: 1.25rem;
}
.testimonial-stars { color: var(--primary); font-size: 0.875rem; letter-spacing: 0.1em; }
.testimonial-card p {
  margin-top: 0.6rem; font-size: 0.8125rem; line-height: 1.6; color: var(--muted-foreground);
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.testimonial-author { display: flex; align-items: center; gap: 0.6rem; margin-top: 1rem; }
.testimonial-avatar {
  display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; flex: none;
  border-radius: 999px; background-image: var(--gradient-blade); color: var(--primary-foreground);
  font-family: var(--font-display); font-weight: 700; font-size: 0.875rem;
}
.testimonial-author strong { display: block; font-size: 0.8125rem; }
.testimonial-author span { font-size: 0.6875rem; color: var(--muted-foreground); }

/* ===================== FAQ (só na home) ===================== */
.faq-section { padding: 3rem 0; }
.faq-card {
  background: oklch(0.22 0.01 20 / 0.35);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid oklch(1 0 0 / 0.08);
  border-radius: 12px; padding: 2rem 1.5rem;
  box-shadow: 0 8px 32px oklch(0 0 0 / 0.45), inset 0 1px 0 oklch(1 0 0 / 0.06);
}
@media (min-width: 768px) { .faq-card { padding: 2.75rem; } }
.faq-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 768px) { .faq-grid { grid-template-columns: 1fr 1.4fr; gap: 3rem; } }
.faq-intro h2 { font-size: 1.5rem; text-transform: uppercase; }
.faq-intro p { margin-top: 0.75rem; color: var(--muted-foreground); font-size: 0.875rem; max-width: 22rem; }
.faq-list { display: flex; flex-direction: column; gap: 0.75rem; }
.faq-item {
  border: 1px solid oklch(1 0 0 / 0.08); border-radius: 8px; overflow: hidden;
  background: oklch(1 0 0 / 0.04); backdrop-filter: blur(6px);
}
.faq-question {
  width: 100%; display: flex; align-items: center; gap: 0.75rem; padding: 1rem 1.25rem;
  background: none; border: none; color: var(--foreground); font-weight: 600; font-size: 0.9375rem; text-align: left;
}
.faq-q-icon {
  display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; flex: none;
  border-radius: 999px; background-image: var(--gradient-blade); color: var(--primary-foreground);
}
.faq-question span:nth-child(2) { flex: 1; }
.faq-chevron { flex: none; color: var(--muted-foreground); transition: transform 0.2s; }
.faq-item.open .faq-chevron { transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.25s ease; }
.faq-answer p { padding: 0 1.25rem 1rem 3.5rem; font-size: 0.8125rem; line-height: 1.6; color: var(--muted-foreground); }

.faq-perks {
  margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--border);
  display: grid; grid-template-columns: 1fr; gap: 2rem; text-align: center;
}
@media (min-width: 768px) { .faq-perks { grid-template-columns: repeat(3, 1fr); } }
.faq-perk { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.faq-perk-icon {
  display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem;
  border-radius: 999px; background-image: var(--gradient-blade); color: var(--primary-foreground); box-shadow: var(--shadow-blade);
}
.faq-perk strong { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.03em; }
.faq-perk p { font-size: 0.8125rem; color: var(--muted-foreground); max-width: 16rem; }

/* --- Skeleton animado (enquanto o catálogo carrega) --------------- */
.skeleton-card { pointer-events: none; }
.skeleton-thumb { width: 100%; aspect-ratio: 4/5; border-radius: 6px 6px 0 0; }
.skeleton-line { height: 0.7rem; border-radius: 3px; }
.skeleton-shimmer {
  background: linear-gradient(100deg, var(--carbon-1) 30%, oklch(0.3 0.01 20) 45%, var(--carbon-1) 60%);
  background-size: 300% 100%;
  animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
@keyframes skeleton-shimmer {
  0% { background-position: 120% 0; }
  100% { background-position: -20% 0; }
}

.item-card {
  display: flex; flex-direction: column; overflow: hidden; border-radius: 6px;
  border: 1px solid var(--border); background-image: var(--gradient-carbon);
  transition: transform 0.2s, border-color 0.2s;
}
.item-card:hover { border-color: oklch(0.68 0.008 260 / 0.6); }
.item-card.selected { border-color: var(--primary); box-shadow: var(--shadow-blade); }

.item-thumb-btn {
  position: relative; display: block; width: 100%; aspect-ratio: 4/5; overflow: hidden;
  background: oklch(0.16 0.005 20 / 0.5); border: none; padding: 0;
}
.item-thumb-btn img, .item-thumb-btn model-viewer { width: 100%; height: 100%; object-fit: cover; }
.item-thumb-btn .no-image { display: flex; height: 100%; width: 100%; align-items: center; justify-content: center; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--muted-foreground); }
.badge-gender {
  position: absolute; left: 0.5rem; top: 0.5rem; border-radius: 2px;
  background: oklch(0.16 0.005 20 / 0.8); padding: 0.125rem 0.5rem;
  font-size: 0.625rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; color: var(--steel);
}
.badge-3d {
  position: absolute; bottom: 0; right: 0; display: flex; align-items: center; gap: 2px;
  background: oklch(0.55 0.208 26 / 0.9); color: var(--primary-foreground);
  padding: 2px 5px; font-size: 8px; font-weight: 700; text-transform: uppercase; border-top-left-radius: 2px;
}
.item-thumb-btn .thumb-caption {
  position: absolute; inset-inline: 0; bottom: 0;
  background: linear-gradient(to top, var(--background), transparent);
  padding: 2rem 0.75rem 0.5rem; text-align: left; font-size: 0.625rem;
  text-transform: uppercase; letter-spacing: 0.15em; color: var(--primary);
}

.item-body { display: flex; flex: 1; flex-direction: column; gap: 0.75rem; padding: 1rem; }
.item-body h3 { font-size: 0.875rem; font-weight: 700; text-transform: uppercase; }
.item-body .cat { font-size: 0.75rem; color: var(--muted-foreground); }

.btn-select {
  margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  border: none; padding: 0.5rem 0.75rem; font-size: 0.75rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em; background-image: var(--gradient-blade); color: var(--primary-foreground);
}
.btn-select.selected { background-image: none; background: var(--secondary); color: var(--secondary-foreground); }

/* ===================== Footer ===================== */
.site-footer { border-top: 1px solid var(--border); background-image: var(--gradient-carbon); }
.footer-grid { display: grid; gap: 2.5rem; padding: 3.5rem 0; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(3, 1fr); } }
.footer-grid h3 { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; }
.footer-grid p { margin-top: 1rem; max-width: 20rem; font-size: 0.875rem; line-height: 1.6; color: var(--muted-foreground); }
.footer-links { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; font-size: 0.875rem; color: var(--muted-foreground); }
.footer-links a:hover { color: var(--primary); }
.social-icons { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.social-icons a {
  display: flex; height: 2.5rem; width: 2.5rem; align-items: center; justify-content: center;
  border: 1px solid var(--border); border-radius: 2px; color: var(--muted-foreground); transition: 0.2s;
}
.social-icons a:hover { border-color: var(--primary); color: var(--primary); }
.social-icons svg { width: 1rem; height: 1rem; fill: currentColor; }
.footer-bottom { border-top: 1px solid oklch(0.32 0.012 20 / 0.7); padding: 1.25rem 0; text-align: center; font-size: 0.75rem; color: var(--muted-foreground); }

.fab-discord {
  position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 40;
  display: flex; height: 3.5rem; width: 3.5rem; align-items: center; justify-content: center;
  background-image: var(--gradient-blade); color: var(--primary-foreground); box-shadow: var(--shadow-blade);
  transition: transform 0.15s;
}
.fab-discord:hover { transform: translateY(-2px); }
.fab-discord svg { width: 1.5rem; height: 1.5rem; fill: currentColor; }

/* ===================== Modal do item (visualizador) ===================== */
.overlay {
  position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center;
  background: oklch(0.16 0.005 20 / 0.9); backdrop-filter: blur(4px); padding: 1rem;
}
.overlay.hidden { display: none; }
.viewer-panel {
  position: relative; display: flex; flex-direction: column; width: 100%; max-width: 64rem; max-height: 92vh;
  overflow: hidden; border-radius: 6px; border: 1px solid var(--border);
  background-image: var(--gradient-carbon); box-shadow: var(--shadow-panel);
}
@media (min-width: 768px) { .viewer-panel { flex-direction: row; } }
.viewer-close {
  position: absolute; right: 0.75rem; top: 0.75rem; z-index: 10; border-radius: 2px;
  border: 1px solid var(--border); background: oklch(0.16 0.005 20 / 0.7); padding: 0.5rem;
  color: var(--muted-foreground);
}
.viewer-close:hover { color: var(--foreground); }
.viewer-media {
  position: relative; display: flex; flex: 1; min-height: 320px; align-items: center; justify-content: center;
  overflow: hidden; border-bottom: 1px solid var(--border); background: oklch(0.16 0.005 20 / 0.5);
}
@media (min-width: 768px) { .viewer-media { border-bottom: none; border-right: 1px solid var(--border); } }
.viewer-media img { max-height: 60vh; width: 100%; object-fit: contain; cursor: ew-resize; user-select: none; }
.viewer-media model-viewer { width: 100%; height: 100%; min-height: 420px; }
.viewer-side { display: flex; width: 100%; flex-direction: column; gap: 1rem; overflow-y: auto; padding: 1.5rem; }
@media (min-width: 768px) { .viewer-side { max-width: 24rem; } }
.viewer-side h2 { margin-top: 0.25rem; font-size: 1.5rem; font-weight: 700; text-transform: uppercase; }
.viewer-side .gender { margin-top: 0.25rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted-foreground); }
.viewer-tips { border-radius: 6px; border: 1px solid var(--border); background: oklch(0.16 0.005 20 / 0.4); padding: 1rem; }
.viewer-tips .tips-title { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; color: var(--primary); }
.viewer-tips p { margin: 0.5rem 0 0; font-size: 0.875rem; color: var(--muted-foreground); }
.viewer-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.viewer-thumbs button { height: 3.5rem; width: 3.5rem; overflow: hidden; border-radius: 2px; border: 1px solid var(--border); padding: 0; }
.viewer-thumbs button.active { border-color: var(--primary); }
.viewer-thumbs img { height: 100%; width: 100%; object-fit: cover; }

/* ===================== Barra de seleção ===================== */
.selection-fab {
  position: fixed; bottom: 1.25rem; left: 50%; transform: translateX(-50%); z-index: 40;
  display: flex; align-items: center; gap: 0.75rem; background-image: var(--gradient-blade);
  color: var(--primary-foreground); padding: 0.75rem 1.5rem; font-size: 0.875rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em; border: none; box-shadow: var(--shadow-blade);
  transition: transform 0.15s;
}
.selection-fab.hidden { display: none; }
.selection-fab:hover { transform: translate(-50%, -2px); }

.selection-drawer {
  position: fixed; inset: 0; z-index: 50; display: flex; justify-content: flex-end;
  background: oklch(0.16 0.005 20 / 0.8); backdrop-filter: blur(4px);
}
.selection-drawer.hidden { display: none; }
.selection-panel { display: flex; height: 100%; width: 100%; max-width: 28rem; flex-direction: column; border-left: 1px solid var(--border); background-image: var(--gradient-carbon); }
.selection-header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border); padding: 1rem 1.25rem; }
.selection-header h2 { font-size: 0.875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; }
.selection-list { flex: 1; overflow-y: auto; list-style: none; margin: 0; padding: 0; }
.selection-list li { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1.25rem; border-bottom: 1px solid var(--border); }
.selection-list li p { margin: 0; }
.selection-list .sel-info { flex: 1; min-width: 0; }
.selection-list .name { font-size: 0.875rem; font-weight: 500; }
.selection-list .cat { font-size: 0.75rem; color: var(--muted-foreground); }
.sel-thumb { width: 2.75rem; height: 2.75rem; flex: none; border-radius: 4px; border: 1px solid var(--border); object-fit: cover; background: var(--carbon-1); }
.sel-thumb.no-image { display: flex; align-items: center; justify-content: center; font-size: 0.55rem; color: var(--muted-foreground); text-align: center; }
.selection-list button { background: none; border: none; color: var(--muted-foreground); }
.selection-list button:hover { color: var(--primary); }
.selection-form { display: flex; flex-direction: column; gap: 0.75rem; border-top: 1px solid var(--border); padding: 1rem 1.25rem; }

input[type="text"], input[type="email"], input[type="password"], input[type="url"], textarea, select {
  width: 100%; border-radius: 2px; border: 1px solid var(--input); background: oklch(0.16 0.005 20 / 0.6);
  padding: 0.5rem 0.75rem; font-size: 0.875rem; color: var(--foreground); outline: none; font-family: inherit;
}
input:focus, textarea:focus, select:focus { border-color: var(--primary); }
textarea { resize: vertical; }
label.field { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--muted-foreground); margin-bottom: 0.9rem; }
label.field > *:not(:first-child) { margin-top: 0.35rem; }
label.field .hint { font-size: 0.6875rem; text-transform: none; letter-spacing: normal; color: var(--muted-foreground); }
label.field input, label.field select, label.field textarea { text-transform: none; letter-spacing: normal; }

.link-muted { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--muted-foreground); background: none; border: none; }
.link-muted:hover { color: var(--primary); }

/* ===================== Páginas simples (termos, auth) ===================== */
.page-narrow { max-width: 48rem; margin: 0 auto; padding: 4rem 1rem; }
.page-narrow.small { max-width: 28rem; }
.prose-box { margin-top: 1.5rem; border-radius: 6px; border: 1px solid var(--border); background-image: var(--gradient-carbon); padding: 1.25rem; font-size: 0.875rem; line-height: 1.7; color: var(--muted-foreground); white-space: pre-wrap; }
.back-link { display: inline-block; margin-top: 2rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--primary); }
.back-link:hover { text-decoration: underline; }

.auth-card { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; border-radius: 6px; border: 1px solid var(--border); background-image: var(--gradient-carbon); padding: 1.5rem; }
.auth-divider { text-align: center; font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.3em; color: var(--muted-foreground); }

/* ===================== Painel Admin ===================== */
.admin-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.admin-tabs button { border: 1px solid var(--border); border-radius: 2px; background: transparent; padding: 0.5rem 1rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; color: var(--muted-foreground); }
.admin-tabs button.active { border-color: var(--primary); background: oklch(0.55 0.208 26 / 0.15); color: var(--primary); }

.admin-card { border-radius: 6px; border: 1px solid var(--border); background-image: var(--gradient-carbon); padding: 1.5rem; }
.admin-form { display: grid; gap: 1rem; }
@media (min-width: 768px) { .admin-form.two-col { grid-template-columns: 1fr 1fr; } }
.span-2 { grid-column: 1 / -1; }
.field-row-3 { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .field-row-3 { grid-template-columns: 2fr 1fr 1fr; align-items: start; } }

/* --- Cards de categoria --------------------------------------- */
.category-cards-section { padding: 3rem 0; }
.section-title {
  font-family: var(--font-display); font-weight: 700; font-size: 1.125rem;
  text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 1.25rem;
  color: var(--muted-foreground); text-align: center;
}
.category-cards { display: grid; grid-template-columns: repeat(2, minmax(0,11rem)); gap: 1rem; justify-content: center; }
@media (min-width: 640px) { .category-cards { grid-template-columns: repeat(4, minmax(0,11rem)); } }
.category-card {
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
  border: 1px solid var(--border); border-radius: 8px; background-image: var(--gradient-carbon);
  padding: 1.25rem 0.75rem; text-align: center; transition: border-color .15s, transform .15s;
}
.category-card:hover { border-color: var(--primary); transform: translateY(-2px); }
.category-card.active { border-color: var(--primary); background: oklch(0.55 0.208 26 / 0.1); }
.category-card .icon {
  width: 3rem; height: 3rem; display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; border-radius: 999px; background-image: var(--gradient-blade);
  box-shadow: var(--shadow-blade);
}
.category-card .label {
  font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--muted-foreground);
}
.category-card.active .label { color: var(--foreground); }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

table.admin-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
table.admin-table thead { border-bottom: 1px solid var(--border); font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--muted-foreground); }
table.admin-table th, table.admin-table td { padding: 0.75rem 1rem; text-align: left; }
table.admin-table tbody tr { border-bottom: 1px solid var(--border); }
table.admin-table td.actions { display: flex; justify-content: flex-end; gap: 0.5rem; }

.icon-btn { border: 1px solid var(--border); border-radius: 2px; padding: 0.5rem; color: var(--muted-foreground); background: transparent; }
.icon-btn:hover { border-color: var(--primary); color: var(--primary); }

.thumb-mini { position: relative; height: 3rem; width: 3rem; overflow: hidden; border-radius: 2px; border: 1px solid var(--border); background: oklch(0.16 0.005 20 / 0.5); }
.thumb-mini img, .thumb-mini model-viewer { height: 100%; width: 100%; object-fit: cover; }
.thumb-mini .no-photo { display: flex; height: 100%; width: 100%; align-items: center; justify-content: center; font-size: 8px; text-transform: uppercase; color: var(--muted-foreground); }

input[type="file"] { font-size: 0.75rem; color: var(--muted-foreground); }
input[type="file"]::file-selector-button {
  margin-right: 0.75rem; border: none; border-radius: 2px; background: var(--secondary);
  padding: 0.5rem 0.75rem; font-size: 0.75rem; text-transform: uppercase; color: var(--secondary-foreground);
}

.preview-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.5rem; }
.preview-thumb { position: relative; height: 3.5rem; width: 3.5rem; overflow: hidden; border-radius: 2px; border: 1px solid var(--border); }
.preview-thumb img { height: 100%; width: 100%; object-fit: cover; }
.preview-thumb button { position: absolute; right: 0; top: 0; border-radius: 0 0 0 2px; background: oklch(0.16 0.005 20 / 0.8); padding: 2px; border: none; color: var(--muted-foreground); }

.file-chip { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; border-radius: 2px; border: 1px solid var(--border); padding: 0.375rem 0.5rem; font-size: 0.6875rem; margin-top: 0.375rem; }
.file-chip button { border: none; background: none; color: var(--muted-foreground); }
.file-chip button:hover { color: var(--primary); }

.order-card { border-radius: 6px; border: 1px solid var(--border); background-image: var(--gradient-carbon); padding: 1.25rem; margin-bottom: 1rem; }
.order-items { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; list-style: none; padding: 0; }
.order-items li { display: flex; align-items: center; gap: 0.375rem; border-radius: 2px; border: 1px solid var(--border); padding: 0.25rem 0.625rem; font-size: 0.75rem; color: var(--muted-foreground); }

/* ===================== Toasts ===================== */
#toast-root { position: fixed; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 100; display: flex; flex-direction: column; gap: 0.5rem; align-items: center; }
.toast {
  border-radius: 4px; padding: 0.625rem 1rem; font-size: 0.8125rem; box-shadow: var(--shadow-panel);
  background: var(--secondary); color: var(--secondary-foreground); border: 1px solid var(--border);
}
.toast.success { border-color: var(--primary); }
.toast.error { border-color: var(--primary); background: oklch(0.3 0.1 26); }

.center-note { padding: 2.5rem 0; font-size: 0.875rem; color: var(--muted-foreground); }
.hidden { display: none !important; }

/* ===================== Feedbacks reais: foto + estrelas opcionais ===================== */
.testimonial-avatar.has-image { overflow: hidden; padding: 0; }
.testimonial-avatar.has-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.admin-content-stack { display: flex; flex-direction: column; gap: 1rem; }
.feedback-form { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
.feedback-visible-check { display: flex; align-items: center; gap: .6rem; min-height: 2.75rem; font-size: .8125rem; font-weight: 600; }
.feedback-visible-check input { width: 1rem; height: 1rem; accent-color: var(--primary); }
.feedback-form-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.feedback-avatar-drop { border: 1.5px dashed var(--border); border-radius: 1rem; min-height: 150px; display: grid; place-items: center; cursor: pointer; transition: .2s ease; background: var(--carbon-2); overflow: hidden; }
.feedback-avatar-drop:hover, .feedback-avatar-drop.dragging { border-color: var(--primary); box-shadow: var(--focus-ring, 0 0 0 3px color-mix(in oklab, var(--primary) 20%, transparent)); }
.feedback-avatar-preview { width: 100%; min-height: 150px; display: grid; place-items: center; text-align: center; color: var(--muted-foreground); font-size: .82rem; padding: 1rem; }
.feedback-avatar-preview.has-image { padding: .65rem; }
.feedback-avatar-preview img { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; border: 2px solid var(--border); }
.feedback-avatar-remove { margin-top: .6rem; }
.feedback-admin-list { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.5rem; }
.feedback-admin-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; border: 1px solid var(--border); border-radius: 1rem; padding: 1rem; background: var(--carbon-1); }
.feedback-admin-avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--primary); color: var(--primary-foreground); display: grid; place-items: center; font-weight: 800; flex: none; overflow: hidden; }
.feedback-admin-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.feedback-admin-main { min-width: 0; flex: 1; }
.feedback-admin-main strong { margin-right: .5rem; font-size: .9rem; }
.feedback-admin-main p { margin-top: .5rem; color: var(--muted-foreground); font-size: .8125rem; line-height: 1.55; white-space: pre-wrap; }
.feedback-admin-tag, .feedback-no-stars { color: var(--muted-foreground); font-size: .72rem; }
.feedback-no-stars { display: block; margin-bottom: .25rem; font-style: italic; }
.feedback-admin-actions { display: flex; gap: .4rem; align-items: flex-start; flex: none; }
.feedback-status { display: inline-flex; margin-top: .65rem; border-radius: 999px; padding: .2rem .55rem; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.feedback-status.active { background: oklch(0.75 0.15 145 / .18); color: oklch(0.55 0.16 145); }
.feedback-status.inactive { background: oklch(0.65 0 0 / .12); color: var(--muted-foreground); }
.feedback-setup-warning { margin-top: 1.25rem; border: 1px solid oklch(0.75 0.14 80); border-radius: 1rem; padding: 1rem; background: oklch(0.93 0.05 80 / .15); }
.feedback-setup-warning p { margin-top: .35rem; font-size: .8125rem; }
.feedback-setup-warning code { font-weight: 700; }
@media (max-width: 639px) { .feedback-admin-item { flex-wrap: wrap; } .feedback-admin-actions { margin-left: auto; } }

/* Edição rápida do catálogo no painel admin */
.quick-edit-input,
.quick-edit-select {
  width: 100%;
  min-width: 125px;
  background: rgba(255,255,255,.025);
  color: var(--foreground);
  border: 1px solid transparent;
  border-radius: 2px;
  padding: .5rem .55rem;
  font: inherit;
  transition: border-color .15s ease, background .15s ease, opacity .15s ease;
}
.quick-edit-input { min-width: 165px; font-weight: 600; }
.quick-edit-input:hover,
.quick-edit-select:hover { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.04); }
.quick-edit-input:focus,
.quick-edit-select:focus { outline: none; border-color: var(--primary); background: rgba(255,255,255,.055); }
.quick-edit-select option,
.quick-edit-select optgroup { background: #171212; color: #fff; }
.quick-saving { opacity: .55; cursor: wait; }
.quick-saved { border-color: rgba(60, 200, 120, .75) !important; }


/* Organizador do catálogo */
.organizer-wrap{display:flex;flex-direction:column;gap:1.5rem}.organizer-head{gap:1rem}.organizer-title{font-size:1.25rem;font-weight:700;text-transform:uppercase}.organizer-sub{margin-top:.35rem;font-size:.82rem}.organizer-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.organizer-stat{display:flex;flex-direction:column;gap:.2rem}.organizer-stat strong{font-family:Poppins,sans-serif;font-size:1.6rem}.organizer-stat span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-foreground)}.organizer-section-head{gap:1rem;margin-bottom:1rem}.organizer-section-head h2{font-family:Poppins,sans-serif;font-size:.9rem;text-transform:uppercase}.organizer-section-head p{font-size:.78rem;margin-top:.25rem}.duplicate-list{display:flex;flex-direction:column;gap:1rem}.duplicate-group{border:1px solid var(--border);border-radius:5px;overflow:hidden}.duplicate-reason{display:flex;justify-content:space-between;gap:1rem;padding:.7rem .85rem;background:rgba(255,255,255,.025);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.duplicate-reason b{color:var(--primary)}.duplicate-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--border)}.duplicate-item{display:flex;align-items:center;gap:.7rem;padding:.75rem;background:#151111}.duplicate-info{min-width:0;display:flex;flex:1;flex-direction:column}.duplicate-info strong{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duplicate-info span{font-size:.68rem;color:var(--muted-foreground)}.organizer-open{width:auto;padding:0 .6rem;font-size:.67rem}.rename-preview{max-height:460px;overflow:auto;border:1px solid var(--border);border-radius:4px}.rename-row{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid var(--border);font-size:.75rem}.rename-row:last-child{border-bottom:0}.rename-row span,.rename-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rename-row b{text-align:center;color:var(--primary)}@media(max-width:700px){.organizer-stats{grid-template-columns:1fr}.organizer-head,.organizer-section-head{align-items:flex-start;flex-direction:column}.rename-row{grid-template-columns:1fr 20px 1fr}}

/* Busca por imagem */
.image-search-section{padding:2rem 0 0}.image-search-card{border:1px solid #3b3030;background:linear-gradient(135deg,#171313,#100d0d);padding:1.5rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center}.image-search-card h2{text-transform:uppercase;margin:.2rem 0;font-size:1.25rem}.image-search-actions{display:flex;gap:.65rem;flex-wrap:wrap}.image-search-status{grid-column:1/-1;border-top:1px solid #342727;padding-top:1rem;font-family:Barlow,sans-serif}.image-search-status strong{color:#fff}.image-search-progress{height:5px;background:#2b2222;margin-top:.6rem;overflow:hidden}.image-search-progress>i{display:block;height:100%;background:#e51b2b;width:0;transition:width .15s}.similarity-badge{position:absolute;right:.6rem;top:.6rem;background:#e51b2b;color:#fff;padding:.25rem .45rem;font:700 .72rem Poppins,sans-serif;z-index:3}.organizer-progress{height:6px;background:#2a2222;overflow:hidden;margin:.8rem 0}.organizer-progress i{display:block;height:100%;background:#e51b2b;width:0}.duplicate-score{color:#ff5a66;font-size:.75rem;font-weight:700}@media(max-width:700px){.image-search-card{grid-template-columns:1fr}.image-search-actions{justify-content:flex-start}}

.image-search-card{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.image-search-card.dragging{border-color:#e51b2b;box-shadow:0 0 0 3px rgba(229,27,43,.18);transform:translateY(-1px)}.image-search-drop-hint{font:600 .78rem Barlow,sans-serif;color:#a89b9b;align-self:center}.image-search-card.dragging .image-search-drop-hint{color:#fff}

/* AB V5 dropzone */
.image-search-actions{min-width:430px;border:2px dashed #663238;padding:1rem 1.2rem;align-items:center;justify-content:center;background:rgba(229,27,43,.035)}.image-search-drop-icon{font-size:2rem;color:#e51b2b;line-height:1}.image-search-drop-copy{display:flex;flex-direction:column;gap:.15rem}.image-search-drop-copy strong{color:#fff;font-size:.9rem}.image-search-drop-copy span{color:#a89b9b;font-size:.75rem}.image-search-card.dragging .image-search-actions{border-color:#e51b2b;background:rgba(229,27,43,.12)}@media(max-width:700px){.image-search-actions{min-width:0;width:100%}}


/* AB V6 — estrutura do catálogo inspirada na referência, mantendo o tema AB */
.catalog-toolbar-section{padding:1.25rem 0 .65rem;background:var(--background)}
.catalog-searchbar{max-width:920px;margin:0 auto;display:flex;align-items:center;gap:.7rem;border:1px solid var(--border);background:#171313;padding:.25rem .35rem .25rem 1rem;min-height:48px;box-shadow:0 10px 35px rgba(0,0,0,.12)}
.catalog-search-icon{font-size:1.35rem;color:var(--primary)}.catalog-searchbar input{flex:1;border:0;outline:0;background:transparent;color:var(--foreground);font:500 .86rem Barlow,sans-serif;min-width:0}.catalog-searchbar input::placeholder{color:var(--muted-foreground)}
.catalog-search-clear{border:0;background:transparent;color:var(--primary);font-weight:700;padding:.65rem .8rem;cursor:pointer}
.catalog-workspace-section{padding:1rem 0 3rem}.catalog-workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:1.25rem;align-items:start}.catalog-sidebar{position:sticky;top:84px;border:1px solid var(--border);background:#151111;padding:.9rem;max-height:calc(100vh - 105px);overflow:auto}.sidebar-title{display:flex;align-items:center;gap:.55rem;padding:.2rem .2rem .75rem;border-bottom:1px solid var(--border);font-family:Poppins,sans-serif;font-size:.86rem}.sidebar-title span{color:var(--primary)}.sidebar-categories{display:flex;flex-direction:column;padding-top:.55rem}.sidebar-category{display:flex;align-items:center;gap:.6rem;width:100%;padding:.62rem .45rem;border:0;background:transparent;color:var(--muted-foreground);font:500 .78rem Barlow,sans-serif;text-align:left;cursor:pointer}.sidebar-category:hover{color:var(--foreground);background:rgba(255,255,255,.025)}.sidebar-check{width:16px;height:16px;border:1px solid #5b4b4b;display:inline-grid;place-items:center;flex:none}.sidebar-category.active{color:var(--foreground);font-weight:700}.sidebar-category.active .sidebar-check{background:var(--primary);border-color:var(--primary)}.sidebar-category.active .sidebar-check:after{content:'✓';font-size:11px;color:#fff}.catalog-content{min-width:0}.catalog-content .testimonials-section{padding:0 0 1rem}.catalog-content .image-search-section{padding:.2rem 0 1rem}.catalog-content .image-search-card{padding:1rem}.catalog-content .filters{padding:.4rem 0 1rem}.catalog-main{padding:0}.catalog-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:0 0 .9rem}.catalog-heading>div{display:flex;align-items:baseline;gap:.8rem}.catalog-heading h2{font-family:Poppins,sans-serif;font-size:1.35rem}.catalog-heading span{font-size:.76rem;color:var(--muted-foreground)}
.catalog-pagination{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:1.5rem 0 .25rem}.catalog-pagination button{min-width:36px;height:36px;border:1px solid var(--border);background:#171313;color:var(--foreground);cursor:pointer}.catalog-pagination button.active{background:var(--primary);border-color:var(--primary);color:#fff}.catalog-pagination button:disabled{opacity:.35;cursor:not-allowed}.catalog-pagination span{color:var(--muted-foreground);padding:.25rem}.item-thumb-btn img{width:100%;height:100%;object-fit:contain}.catalog-grid{content-visibility:auto;contain-intrinsic-size:800px}
@media(max-width:900px){.catalog-workspace{grid-template-columns:1fr}.catalog-sidebar{position:static;max-height:none}.sidebar-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-content .image-search-card{grid-template-columns:1fr}.catalog-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.sidebar-categories{grid-template-columns:1fr}.catalog-heading>div{align-items:flex-start;flex-direction:column;gap:.2rem}}

/* V6.1 — catálogo primeiro, estrutura limpa */
.catalog-toolbar-section{padding:1rem 0 .5rem}
.catalog-searchbar{max-width:none}
.catalog-workspace-section{padding:.65rem 0 3rem}
.catalog-workspace{grid-template-columns:230px minmax(0,1fr);gap:1rem}
.catalog-sidebar{top:72px;border-radius:10px;background:linear-gradient(180deg,#171212,#100d0d);padding:1rem;box-shadow:0 12px 32px rgba(0,0,0,.2)}
.sidebar-title{padding:.25rem .25rem .9rem;margin-bottom:.35rem}
.sidebar-category{border-radius:7px;padding:.68rem .55rem;margin:1px 0}
.sidebar-category.active{background:rgba(201,25,37,.12);color:#fff}
.catalog-main{background:rgba(14,12,12,.72);border:1px solid var(--border);border-radius:12px;padding:1rem}
.catalog-topline{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.4rem}
.catalog-heading{margin:0}.catalog-heading h2{font-size:1.55rem;text-transform:uppercase}.catalog-heading h2:before{content:'CATÁLOGO  /  ';font-size:.68rem;color:var(--primary);letter-spacing:.12em;vertical-align:middle;margin-right:.35rem}
.catalog-main-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.2rem}
.catalog-main-tabs .category-card{min-width:auto;width:auto;height:auto;padding:.58rem .9rem;display:flex;gap:.45rem;align-items:center;border-radius:7px;background:#181313;border:1px solid var(--border);color:var(--muted-foreground)}
.catalog-main-tabs .category-card.active,.catalog-main-tabs .category-card:hover{border-color:var(--primary);color:#fff;background:rgba(201,25,37,.12)}
.catalog-main-tabs .category-card .icon{font-size:.9rem}.catalog-main-tabs .category-card .label{font-size:.75rem;font-weight:700}
.catalog-content .filters{padding:.45rem 0 .9rem}
.compact-image-search{margin-top:1rem!important;padding:0!important}.compact-image-search .image-search-card{border-radius:10px;background:#151111}
.catalog-content .testimonials-section{margin-top:1.15rem;padding:0}
@media(max-width:900px){.catalog-workspace{grid-template-columns:1fr}.catalog-sidebar{position:static}.sidebar-categories{display:flex;overflow-x:auto;gap:.35rem}.sidebar-category{min-width:max-content}.catalog-main{padding:.75rem}}

/* AB V6.2 — layout amplo + filtros combináveis */
@media (min-width:1280px){.container{max-width:100rem;padding-left:2rem;padding-right:2rem}}
.hero{min-height:310px}.hero-inner{padding-top:4.2rem;padding-bottom:3.8rem}
.catalog-toolbar-section{background:transparent;padding:.9rem 0 .45rem}
.catalog-searchbar{background:transparent;border:1px solid #443638;border-radius:12px;box-shadow:none;min-height:54px;padding:.3rem .55rem .3rem 1rem}
.catalog-searchbar:focus-within{border-color:rgba(229,27,43,.75);box-shadow:0 0 0 3px rgba(229,27,43,.08)}
.catalog-prelude-section{padding:.15rem 0 .7rem}.catalog-prelude{display:flex;flex-direction:column;gap:.65rem}
.catalog-prelude .compact-image-search{margin:0!important;padding:0!important}.catalog-prelude .image-search-card{border-radius:12px;padding:.8rem 1rem;background:linear-gradient(135deg,rgba(36,24,24,.78),rgba(15,13,13,.78))}
.catalog-prelude .testimonials-section{padding:.15rem 0 .35rem;margin:0}.catalog-prelude .section-title{text-align:center;margin:.15rem 0 .55rem;font-size:.78rem;letter-spacing:.14em}
.catalog-prelude .testimonial-card{width:17rem;padding:.85rem 1rem;min-height:118px;background:#171313}
.catalog-prelude .testimonial-card p{line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.catalog-workspace{grid-template-columns:250px minmax(0,1fr);gap:1.1rem}.catalog-sidebar{border-radius:12px;background:#151212;top:76px;padding:1rem}
.sidebar-filter-group{padding:.85rem 0 0}.sidebar-filter-group+.sidebar-filter-group{margin-top:.35rem;border-top:1px solid var(--border)}.sidebar-filter-label{display:block;margin:0 .3rem .45rem;color:#fff;font:700 .72rem Poppins,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.sidebar-genders{padding-top:0}.sidebar-radio{border-radius:50%}.sidebar-category.active .sidebar-radio:after{content:'';width:6px;height:6px;border-radius:50%;background:#fff}.sidebar-category.active .sidebar-radio{background:var(--primary)}
.catalog-main{background:transparent;border:0;border-radius:0;padding:0}.catalog-topline{gap:.85rem}.catalog-main-tabs{padding:.15rem 0 .7rem;border-bottom:1px solid var(--border)}
.catalog-main-tabs .category-card{flex:1;justify-content:center;min-width:120px;padding:.72rem 1rem;background:#151212}.catalog-main-tabs .category-card.active{background:linear-gradient(135deg,#b61422,#e51b2b)}
.legacy-catalog-filters{display:none!important}
@media(min-width:1350px){.catalog-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}}
@media(max-width:900px){.hero{min-height:240px}.catalog-workspace{grid-template-columns:1fr}.catalog-sidebar{position:static}.sidebar-genders,.sidebar-categories{display:flex;overflow-x:auto}.sidebar-filter-group+.sidebar-filter-group{border-top:1px solid var(--border)}}

/* AB Studio V6.4 — painel administrativo mais leve e largura total */
body:has(#admin-panel:not(.hidden)) main.container{max-width:none;width:100%;padding-left:clamp(16px,2vw,34px)!important;padding-right:clamp(16px,2vw,34px)!important}
#admin-panel{width:100%;max-width:none}
#tab-catalogo,#tab-organizador,#tab-categorias,#tab-pedidos,#tab-conteudo{width:100%}
.admin-catalog-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.65rem .85rem;border:1px solid var(--border);background:#151111;border-radius:8px;color:var(--muted-foreground);font-size:.75rem}
.admin-page-buttons{display:flex;gap:.35rem}.admin-page-buttons button{min-width:34px;height:34px;border:1px solid var(--border);background:#1a1515;color:var(--foreground);cursor:pointer;border-radius:4px}.admin-page-buttons button.active{background:var(--primary);border-color:var(--primary);color:#fff}.admin-page-buttons button:disabled{opacity:.35;cursor:not-allowed}
.admin-table{width:100%}.admin-table td:nth-child(2){min-width:260px}.admin-table td:nth-child(3){min-width:230px}.admin-table .actions{white-space:nowrap}

/* V1.6 — seleção múltipla de Tipo e Estilo/Uso no admin */
.style-check{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);padding:.42rem .58rem;border-radius:5px;cursor:pointer;background:var(--carbon-1);font-size:.74rem;white-space:nowrap}
.style-check:has(input:checked){border-color:var(--primary);background:rgba(220,30,45,.14)}
.style-check input{accent-color:var(--primary)}
.style-check-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.quick-multi-dropdown{position:relative;min-width:210px;z-index:2}
.quick-multi-dropdown>summary{list-style:none;display:flex;align-items:center;gap:.2rem;min-height:38px;padding:.55rem .7rem;border:1px solid var(--border);border-radius:5px;background:var(--carbon-1);cursor:pointer;font-size:.76rem;white-space:nowrap}
.quick-multi-dropdown>summary::-webkit-details-marker{display:none}.quick-multi-dropdown>summary:after{content:'⌄';margin-left:auto;color:var(--muted-foreground)}
.quick-multi-dropdown[open]{z-index:10000}.quick-multi-dropdown[open]>summary{border-color:var(--primary)}
.quick-multi-menu{position:absolute;z-index:10001;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:340px;max-height:300px;overflow:auto;padding:.35rem;background:var(--carbon-1);border:1px solid var(--border);border-radius:6px;box-shadow:0 16px 34px rgba(0,0,0,.45)}
.quick-multi-menu label{display:flex;align-items:center;gap:.45rem;padding:.5rem .55rem;background:var(--carbon-1);cursor:pointer;white-space:nowrap;border-radius:4px}.quick-multi-menu label:hover{background:var(--secondary)}.quick-multi-menu input{accent-color:var(--primary)}
.admin-table tbody tr{position:relative;z-index:1}.admin-table tbody tr:has(.quick-multi-dropdown[open]){z-index:9999}.admin-table td{position:relative;overflow:visible}

/* AB Studio 2026-09: dropdowns do painel não são cortados pelo fim da tabela/modal. */
.quick-multi-dropdown[open]>.quick-multi-menu{position:fixed;z-index:30000;overflow-y:auto;overscroll-behavior:contain}

/* V7.2.2 — Conversor em duas colunas */
.conv-workspace{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(480px,1.15fr);gap:1rem;align-items:start}.conv-left,.conv-right{max-width:none}.conv-drop{border:1px dashed rgba(255,255,255,.28);border-radius:6px;padding:2.4rem 1rem;text-align:center;cursor:pointer;transition:.18s;background:rgba(255,255,255,.015)}.conv-drop.dragging{border-color:#d71920;background:rgba(215,25,32,.08);transform:translateY(-1px)}.conv-drop-title{font-weight:800;letter-spacing:.08em;text-transform:uppercase}.conv-small{font-size:.76rem}.conv-file-list{display:none;gap:.45rem;margin-top:.8rem}.conv-file{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .8rem;border:1px solid rgba(255,255,255,.12);border-radius:4px}.conv-file button{border:0;background:transparent;color:#e66;font-size:1.1rem;cursor:pointer}.conv-main-btn{margin-top:1rem}.conv-worker{margin-left:.75rem}.conv-settings{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.conv-settings summary{cursor:pointer;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground)}.conv-settings-body{margin-top:.8rem}.conv-url-row{display:flex;gap:.6rem;flex-wrap:wrap}.conv-url-row input{flex:1;min-width:220px}.conv-preview-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.conv-preview-head h2{font-family:Poppins,sans-serif;text-transform:uppercase;font-size:1rem}.conv-preview-head p{font-size:.78rem;margin-top:.25rem}.conv-preview-box{margin-top:1rem;height:420px;border:1px solid rgba(255,255,255,.12);background:radial-gradient(circle at center,rgba(255,255,255,.035),rgba(0,0,0,.12));display:grid;place-items:center;overflow:hidden}.conv-preview-box img{width:100%;height:100%;object-fit:contain;padding:1rem}.conv-preview-empty{display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center;color:var(--muted-foreground)}.conv-preview-empty b{font-family:Poppins,sans-serif;letter-spacing:.18em;color:rgba(255,255,255,.35)}.conv-preview-empty span{font-size:.78rem}.conv-meta{margin-top:1rem}.conv-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.conv-job{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem;border:1px solid var(--border);border-radius:4px;background:rgba(255,255,255,.015)}
@media(max-width:1050px){.conv-workspace{grid-template-columns:1fr}.conv-preview-box{height:360px}}@media(max-width:600px){.conv-preview-box{height:300px}.conv-preview-head{flex-direction:column}.conv-worker{display:block;margin:.7rem 0 0}.conv-actions>*{width:100%}}

/* AB Studio V7.2.4 — Conversor compacto + preview robusto */
.organizer-wrap{max-width:1480px;margin:0 auto}.conv-workspace{grid-template-columns:minmax(340px,.82fr) minmax(520px,1.18fr);gap:1.15rem}.conv-left{position:sticky;top:1rem}.conv-right{min-width:0}.conv-preview-box{height:clamp(300px,42vh,480px);min-height:300px;background:linear-gradient(45deg,rgba(255,255,255,.018) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.018) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.018) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.018) 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0}.conv-preview-img{width:100%;height:100%;object-fit:contain;padding:.75rem}.conv-preview-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;color:var(--muted-foreground);padding:2rem}.conv-preview-error{color:#e7a0a0}.conv-meta .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.conv-actions{padding-top:.25rem}.conv-drop{padding:2rem 1rem}.conv-settings{margin-top:.8rem}.conv-job{padding:.65rem .8rem}@media(max-width:1100px){.conv-workspace{grid-template-columns:1fr}.conv-left{position:static}.conv-preview-box{height:380px}}@media(max-width:650px){.conv-meta .form-grid{grid-template-columns:1fr}.conv-preview-box{height:320px}}

/* V7.2.5 — fila integrada na coluna esquerda */
.conv-left{display:flex;flex-direction:column;max-height:calc(100vh - 2rem)}
.conv-queue-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);min-height:150px;display:flex;flex-direction:column;flex:1}
.conv-queue-head h2{font-family:Poppins,sans-serif;text-transform:uppercase;font-size:.95rem;margin:0}
.conv-queue-head p{font-size:.76rem;margin-top:.25rem}
.conv-jobs{display:grid;gap:.55rem;margin-top:.75rem;overflow-y:auto;max-height:340px;padding-right:.2rem}
@media(max-width:1100px){.conv-left{max-height:none}.conv-jobs{max-height:260px}}

/* AB Studio V7.2.6 — visualizador 3D interativo */
.conv-preview-box{padding:0;position:relative}.conv-viewer-wrap{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.conv-model-viewer{width:100%;height:100%;min-height:300px;background:transparent;--poster-color:transparent}.conv-viewer-tools{position:absolute;left:12px;bottom:12px;display:flex;gap:8px;z-index:3;flex-wrap:wrap}.conv-viewer-tools .btn-secondary{padding:.55rem .75rem;font-size:.72rem;background:rgba(18,14,14,.88);backdrop-filter:blur(6px)}.conv-viewer-hint{position:absolute;right:12px;bottom:16px;font-size:.7rem;color:var(--muted-foreground);background:rgba(10,8,8,.72);padding:.4rem .55rem;border-radius:3px;pointer-events:none}.conv-viewer-progress{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted-foreground);font-size:.8rem;background:rgba(12,10,10,.65)}@media(max-width:650px){.conv-viewer-hint{display:none}.conv-viewer-tools{right:12px}.conv-viewer-tools .btn-secondary{flex:1}}


/* V7.2.7 — catálogo 3D estável: nenhuma troca de elemento altera o layout. */
.catalog-media-stage{position:absolute;inset:0;display:block;overflow:hidden;background:oklch(0.16 0.005 20 / .5)}
.catalog-media-stage>.catalog-cover-img,.catalog-media-stage>.catalog-hover-model{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
.catalog-media-stage>.catalog-cover-img{object-fit:contain;opacity:1;transition:opacity .16s ease}
.catalog-media-stage>.catalog-hover-model{opacity:0;visibility:hidden;transition:opacity .16s ease;background:transparent;--poster-color:transparent;pointer-events:none}
.catalog-media-stage.show-3d>.catalog-cover-img{opacity:0}
.catalog-media-stage.show-3d>.catalog-hover-model{opacity:1;visibility:visible}
.item-card,.item-thumb-btn{transform:none!important}
.item-thumb-btn:hover{transform:none!important}
.viewer-media model-viewer{display:block;contain:layout paint;--poster-color:transparent}

/* V7.2.8 - cards 3D clean + viewer sem loading preso */
.item-thumb-btn{overflow:hidden!important;contain:paint;}
.item-thumb-btn>img,.item-thumb-btn>model-viewer{width:100%!important;height:100%!important;display:block!important;}
.item-thumb-btn>model-viewer{--poster-color:transparent;background:transparent;transform:none!important;}
.badge-3d,.thumb-caption{display:none!important;}
.conv-model-viewer{opacity:.01;transition:opacity .16s ease;}
.conv-model-viewer.is-ready{opacity:1;}
.conv-viewer-progress{transition:opacity .16s ease;z-index:5;}

/* V7.2.9 — preview do catálogo usa GLB enquadrado, PNG apenas durante loading */
.catalog-media-stage.catalog-media-3d{background:oklch(.145 .004 20);}
.catalog-media-stage.catalog-media-3d>.catalog-primary-model{
  opacity:0;visibility:hidden;width:100%!important;height:100%!important;
  position:absolute;inset:0;display:block;background:transparent;--poster-color:transparent;
}
.catalog-media-stage.catalog-media-3d.model-ready>.catalog-primary-model{opacity:1;visibility:visible;}
.catalog-media-stage.catalog-media-3d.model-ready>.catalog-loading-poster{opacity:0;visibility:hidden;}
.catalog-media-stage>.catalog-loading-poster{object-fit:contain;padding:12%;transition:opacity .12s ease;}
.item-thumb-btn{aspect-ratio:4/5;min-height:0;}
.catalog-primary-model{contain:strict;}

/* V7.3.0 — enquadramento 3D estável */
.catalog-media-stage.catalog-media-3d>.catalog-primary-model{inset:4%!important;width:92%!important;height:92%!important;}
.catalog-media-stage.catalog-media-3d{overflow:hidden!important;}
.conv-model-viewer{opacity:1!important;}


/* V7.3.2 — miniaturas do painel e hover sem espera perceptível */
.thumb-mini model-viewer{width:100%!important;height:100%!important;display:block;background:transparent;--poster-color:transparent;pointer-events:none;}
.thumb-mini{display:grid;place-items:center;}
.catalog-primary-model{will-change:transform;content-visibility:visible;}


/* ===========================================================
   FUNÇÕES PORTADAS DA BD STUDIO
   Somente estrutura/comportamento. Todas as cores, bordas e
   fontes usam as variáveis da paleta AB (--primary, --border,
   --carbon-1, --foreground...). Nada da identidade visual da BD.
   =========================================================== */

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#catalog-section, #catalog-grid, #catalog-empty, .category-cards-section { overflow-anchor:none; }
.catalog-card { min-width:0; }

/* ---- Visualizador: acabamento da corrente (prévia de cor) ---- */
.chain-color-picker { border:1px solid var(--border); border-radius:var(--radius); padding:.9rem; background:var(--carbon-1); }
.chain-color-picker.hidden { display:none; }
.chain-color-title { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.13em; margin-bottom:.65rem; color:var(--foreground); }
.chain-color-options { display:flex; flex-wrap:wrap; gap:.45rem; }
.chain-color-option, .chain-custom-color { min-height:38px; border:1px solid var(--border); border-radius:var(--radius); background:var(--secondary); color:var(--foreground); padding:.5rem .75rem; font:inherit; font-size:.78rem; display:inline-flex; align-items:center; justify-content:center; gap:.45rem; cursor:pointer; }
.chain-color-option:hover, .chain-color-option.active { border-color:var(--primary); color:var(--primary); }
.chain-custom-color input[type=color] { width:24px; height:24px; padding:0; border:0; background:transparent; cursor:pointer; }
.chain-color-note { margin:.55rem 0 0; font-size:.7rem; color:var(--muted-foreground); line-height:1.35; }
@media (max-width:520px) {
  .chain-color-options { display:grid; grid-template-columns:1fr 1fr; }
  .chain-color-option, .chain-custom-color { width:100%; }
}

/* ---- Painel: categoria principal na aba Catálogo ---- */
.admin-main-category-tabs { display:flex; gap:.55rem; flex-wrap:wrap; }
.admin-main-category-tabs button { border:1px solid var(--border); background:var(--secondary); color:var(--foreground); padding:.55rem 1rem; border-radius:var(--radius); font:inherit; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; cursor:pointer; transition:.15s ease; }
.admin-main-category-tabs button:hover { border-color:var(--primary); }
.admin-main-category-tabs button.active { background:var(--primary); border-color:var(--primary); color:var(--primary-foreground); }

/* ---- Painel: edição inline dentro da tabela do catálogo ---- */
.inline-edit-row.hidden { display:none !important; }
.inline-edit-row > td { padding:0 !important; background:var(--carbon-2); border-bottom:1px solid var(--border); }
.inline-item-form-slot { padding:.6rem; }
.inline-item-form-slot .compact-item-form { margin:0; max-width:100%; overflow:visible; }
tr.is-editing { box-shadow:inset 3px 0 0 var(--primary); }
.admin-card:has(.admin-table) { overflow-x:auto; }

/* ---- Formulário compacto de item ---- */
.compact-item-form { display:grid !important; grid-template-columns:1fr !important; padding:.85rem 1rem; gap:.5rem; max-width:100%; min-width:0; overflow:visible; align-items:start; }
.compact-item-form .span-2, .compact-item-form .compact-name, .compact-item-form .compact-main-row { grid-column:1/-1 !important; grid-row:auto !important; }
.compact-item-form .compact-main-row { display:grid !important; grid-template-columns:minmax(150px,.9fr) minmax(210px,1.2fr) minmax(115px,.55fr) minmax(170px,.9fr); gap:.55rem; align-items:start; }
.compact-item-form .compact-main-row .field { display:flex; flex-direction:column; gap:.28rem; margin:0; min-width:0; }
.compact-item-form .field-label, .field-label { display:block; min-height:14px; margin:0; font-size:.68rem; line-height:14px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; color:var(--muted-foreground); white-space:nowrap; }
.compact-item-form textarea { min-height:42px; max-height:90px; }
.compact-item-form .hint { font-size:.65rem; margin:.15rem 0 0; line-height:1.3; }
.compact-item-form input[type=file] { max-width:100%; }
.compact-item-form .file-chip { max-width:100%; display:flex; align-items:center; justify-content:space-between; gap:.5rem; overflow:hidden; }
.compact-item-form .file-chip span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compact-media-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.55rem; align-items:start; }
.compact-upload-box { min-width:0; border:1px solid var(--border); border-radius:var(--radius); padding:.55rem; background:var(--carbon-2); }
.compact-upload-box .preview-thumb { width:50px; height:50px; }
@media (max-width:1100px) { .compact-item-form .compact-main-row { grid-template-columns:1fr 1.2fr .65fr .9fr; } }
@media (max-width:900px) { .compact-item-form .compact-main-row { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .compact-media-row { grid-template-columns:1fr; } }
@media (max-width:620px) { .compact-item-form .compact-main-row { grid-template-columns:1fr; } }

/* ---- Dropdowns de seleção múltipla (tipos / usos) ---- */
.form-multi-dropdown { position:relative; width:100%; min-width:0; z-index:20; }
.form-multi-dropdown[open] { z-index:20000; }
.form-multi-dropdown > summary { list-style:none; display:flex; align-items:center; justify-content:space-between; width:100%; min-height:36px; padding:.4rem .6rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--carbon-1); color:var(--foreground); cursor:pointer; font-size:.82rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.form-multi-dropdown > summary::-webkit-details-marker { display:none; }
.form-multi-dropdown > summary::after { content:'⌄'; flex:0 0 auto; margin-left:.55rem; color:var(--muted-foreground); }
.form-multi-dropdown[open] > summary { border-color:var(--primary); box-shadow:var(--focus-ring); }
.form-multi-menu { position:absolute; z-index:20001; top:calc(100% + 4px); left:0; width:100%; min-width:220px; max-height:260px; overflow:auto; padding:.35rem; background:var(--carbon-1); color:var(--foreground); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-panel); box-sizing:border-box; }
.form-multi-menu label { display:flex; align-items:center; gap:.5rem; width:100%; padding:.5rem .55rem; border-radius:var(--radius); cursor:pointer; font-size:.76rem; white-space:normal; }
.form-multi-menu label:hover { background:var(--secondary); }
.form-multi-menu input { accent-color:var(--primary); flex:0 0 auto; }
.form-multi-empty { display:block; padding:.55rem; }
.quick-multi-dropdown.quick-saving > summary { opacity:.65; }
.quick-multi-dropdown > summary b { font-weight:700; margin:0; }
@media (max-width:620px) {
  .form-multi-menu { position:fixed; left:12px; right:12px; width:auto; max-width:none; top:50%; bottom:auto; transform:translateY(-50%); max-height:55vh; }
}

/* ---- Arquivos do item (acordeão) ---- */
.item-files-accordion { border:1px solid var(--border); border-radius:var(--radius); background:var(--carbon-2); overflow:visible; }
.item-files-accordion > summary { list-style:none; display:flex; align-items:center; gap:.35rem; min-height:34px; padding:.4rem .6rem; cursor:pointer; font-size:.69rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.item-files-accordion > summary::-webkit-details-marker { display:none; }
.item-files-accordion > summary::after { content:'⌄'; margin-left:auto; color:var(--muted-foreground); transition:transform .16s ease; }
.item-files-accordion[open] > summary::after { transform:rotate(180deg); }
.item-files-body { padding:.55rem; border-top:1px solid var(--border); }
.item-files-hint { display:block; font-size:.7rem; font-weight:400; margin-bottom:.45rem; line-height:1.35; }

/* ---- Categorias: acordeão, ativar/desativar e arrastar ---- */
.category-accordion-card { padding:0 !important; overflow:hidden; }
.category-accordion-header { min-height:74px; padding:.9rem 1.15rem; gap:.75rem; }
.category-accordion-toggle { appearance:none; border:0; background:transparent; color:inherit; display:flex; align-items:center; gap:.75rem; flex:1; min-width:0; text-align:left; padding:.25rem 0; }
.category-accordion-info { cursor:default; }
.category-accordion-title { display:flex; flex-direction:column; gap:.18rem; min-width:0; }
.category-accordion-actions { flex:0 0 auto; }
.category-accordion-actions .icon-btn { width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; }
.category-accordion-chevron { transition:transform .18s ease; color:var(--muted-foreground); }
.category-accordion-card.is-open .category-chevron-btn .category-accordion-chevron { transform:rotate(180deg); }
.category-accordion-body { border-top:1px solid var(--border); padding:0 1.15rem 1.15rem; }
.category-accordion-body.hidden { display:none; }
.category-active-btn.is-disabled { opacity:.62; }
.category-status { font-weight:700; }
.category-status.is-active { color:var(--primary); }
.category-status.is-disabled { color:var(--muted-foreground); }
.drag-handle { border:0; background:transparent; color:var(--muted-foreground); display:inline-flex; align-items:center; justify-content:center; cursor:grab; flex:0 0 auto; padding:.35rem; border-radius:var(--radius); touch-action:none; }
.drag-handle:hover { color:var(--primary); background:var(--secondary); }
.drag-handle:active { cursor:grabbing; }
.category-drag-handle { width:34px; height:34px; margin-right:.15rem; }
.sub-drag-handle { width:28px; height:28px; vertical-align:middle; }
.category-accordion-card.is-dragging, .admin-table tr.is-dragging { opacity:.48; }
@media (max-width:640px) {
  .category-accordion-header { padding:.75rem; gap:.35rem; }
  .category-accordion-body { padding:0 .75rem .9rem; }
  .category-drag-handle { width:30px; height:30px; }
  .category-accordion-title .muted { white-space:normal; }
}

/* ---- Conteúdo do site: seções em acordeão ---- */
.main-content-accordion { display:flex; flex-direction:column; gap:.75rem; }
.main-content-section { padding:0 !important; overflow:hidden; }
.main-content-summary { list-style:none; min-height:58px; padding:.65rem 1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; user-select:none; }
.main-content-summary::-webkit-details-marker { display:none; }
.main-content-summary > span:first-child { display:flex; flex-direction:column; gap:.12rem; min-width:0; }
.main-content-summary strong { font-size:1rem; font-weight:700; text-transform:uppercase; color:var(--foreground); }
.main-content-summary small { font-size:.74rem; color:var(--muted-foreground); font-weight:400; }
.main-content-chevron.icon-btn { width:36px; height:36px; flex:0 0 36px; padding:0; display:inline-flex; align-items:center; justify-content:center; }
.main-content-chevron svg, .site-settings-chevron svg { transition:transform .18s ease; }
.main-content-section[open] .main-content-chevron svg, .site-settings-card[open] .site-settings-chevron svg { transform:rotate(180deg); }
.main-content-body { border-top:1px solid var(--border); padding:1rem; }
.main-content-body > .admin-form { padding:0 !important; border:0 !important; box-shadow:none !important; background:transparent !important; }
.site-settings-accordion { display:flex; flex-direction:column; gap:.55rem; width:100%; }
.site-settings-card { border:1px solid var(--border); border-radius:var(--radius); background:var(--carbon-1); overflow:hidden; }
.site-settings-card > summary { list-style:none; min-height:50px; padding:.5rem .75rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; user-select:none; }
.site-settings-card > summary::-webkit-details-marker { display:none; }
.site-settings-card > summary > span:first-child { display:flex; flex-direction:row; align-items:center; gap:.55rem; min-width:0; }
.site-settings-card > summary strong { font-size:.86rem; text-transform:uppercase; white-space:nowrap; color:var(--foreground); }
.site-settings-card > summary small { font-size:.72rem; color:var(--muted-foreground); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.site-settings-chevron.icon-btn { width:34px; height:34px; flex:0 0 34px; padding:0; display:inline-flex; align-items:center; justify-content:center; }
.site-settings-body { border-top:1px solid var(--border); padding:.85rem 1rem 1rem; }
.site-settings-body.two-col { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.site-settings-body .field { margin:0; min-width:0; }
.site-settings-body textarea { resize:vertical; }
@media (max-width:640px) {
  .main-content-body, .site-settings-body { padding:.75rem; }
  .site-settings-body.two-col { grid-template-columns:1fr; }
  .site-settings-body.two-col .span-2 { grid-column:auto; }
  .site-settings-card > summary small, .main-content-summary small { white-space:normal; }
}

/* ---- Pedidos: filtros por categoria e cards compactos ---- */
.orders-panel { display:flex; flex-direction:column; gap:.85rem; }
.orders-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.orders-heading h1 { margin:0; font-size:1.08rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; }
.orders-heading h1 span { color:var(--muted-foreground); font-weight:600; }
.orders-heading p { margin:.18rem 0 0; font-size:.74rem; }
.orders-filters { display:flex; flex-wrap:wrap; gap:.45rem; padding:.65rem; border:1px solid var(--border); background:var(--carbon-1); border-radius:var(--radius); }
.orders-filter { display:inline-flex; align-items:center; gap:.38rem; min-height:34px; padding:.4rem .72rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--secondary); color:var(--foreground); font:700 .72rem var(--font-display); cursor:pointer; transition:.16s ease; }
.orders-filter:hover, .orders-filter.active { border-color:var(--primary); background:var(--primary); color:var(--primary-foreground); }
.orders-filter span { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 .3rem; border-radius:999px; background:var(--carbon-2); color:var(--muted-foreground); font-size:.65rem; }
.orders-filter.active span { background:oklch(1 0 0 / .2); color:var(--primary-foreground); }
.orders-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; align-items:start; }
.order-card.compact { margin:0; padding:.85rem; min-width:0; }
.order-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.65rem; }
.order-card-copy { min-width:0; }
.order-card-copy h2 { margin:0; font-size:.82rem; font-weight:800; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.order-card-copy p { margin:.18rem 0 0; font-size:.65rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.order-card-actions { display:flex; align-items:center; gap:.35rem; flex:none; }
.order-card-actions .order-download { min-height:32px; padding:.4rem .65rem; font-size:.67rem; }
.order-card-actions .icon-btn { width:32px; height:32px; }
.order-card-summary { display:flex; flex-wrap:wrap; gap:.32rem; margin-top:.62rem; }
.order-total, .order-category-badge { display:inline-flex; align-items:center; gap:.25rem; min-height:25px; padding:.2rem .48rem; border:1px solid var(--border); border-radius:999px; background:var(--carbon-2); font-size:.65rem; color:var(--muted-foreground); }
.order-total b, .order-category-badge b { color:var(--foreground); }
.order-preview { margin:.48rem 0 0; font-size:.68rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.order-note { margin:.48rem 0 0; padding:.45rem .55rem; border-radius:var(--radius); background:var(--carbon-2); font-size:.68rem; color:var(--muted-foreground); }
.order-details { margin-top:.58rem; border-top:1px solid var(--border); padding-top:.48rem; }
.order-details > summary { list-style:none; display:flex; align-items:center; justify-content:space-between; cursor:pointer; color:var(--foreground); font:700 .69rem var(--font-display); }
.order-details > summary::-webkit-details-marker { display:none; }
.order-details > summary::after { content:''; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-left:auto; transition:transform .16s ease; }
.order-details[open] > summary::after { transform:rotate(225deg); }
.order-details > summary span { margin-left:.35rem; margin-right:auto; color:var(--muted-foreground); font-weight:500; }
.order-card.compact .order-items { gap:.3rem; margin:.5rem 0 0; max-height:160px; overflow:auto; }
.order-card.compact .order-items li { padding:.22rem .48rem; font-size:.65rem; }
.orders-empty-filter { grid-column:1/-1; padding:2rem; text-align:center; border:1px dashed var(--border); border-radius:var(--radius); color:var(--muted-foreground); font-size:.78rem; }
@media (max-width:1350px) { .orders-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) {
  .orders-grid { grid-template-columns:1fr; }
  .orders-filters { flex-wrap:nowrap; overflow-x:auto; }
  .orders-filter { flex:none; }
  .orders-heading p { display:none; }
}
@media (max-width:430px) {
  .order-card-actions .order-download { font-size:0; width:32px; padding:0; }
  .order-card-actions .order-download svg { margin:0; }
}

/* ---- Pedidos: progresso do download em ZIP ---- */
.order-download:disabled { cursor:wait; opacity:.88; }
.order-download.is-loading { min-width:118px; }
.order-download-spinner { width:12px; height:12px; border:2px solid oklch(1 0 0 / .45); border-top-color:var(--primary-foreground); border-radius:50%; display:inline-block; animation:orderZipSpin .7s linear infinite; flex:none; }
@keyframes orderZipSpin { to { transform:rotate(360deg); } }
.order-download-status { display:none; grid-column:1/-1; margin-top:.58rem; padding:.5rem .6rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--carbon-2); }
.order-download-status.active { display:block; }
.order-download-status-row { display:flex; align-items:center; justify-content:space-between; gap:.7rem; font-size:.65rem; color:var(--muted-foreground); }
.order-download-status-row b { color:var(--foreground); font-size:.64rem; }
.order-download-track { height:5px; margin-top:.38rem; overflow:hidden; border-radius:999px; background:var(--border); }
.order-download-track i { display:block; width:2%; height:100%; border-radius:inherit; background:var(--primary); transition:width .18s ease; }
.order-download-status.error { border-color:var(--primary); }
.order-download-status.error .order-download-track i { width:100% !important; }

/* ---- Conversor: fila clicável e imagem de apoio do preview ---- */
button.conv-job { width:100%; text-align:left; font:inherit; color:inherit; }
button.conv-job:disabled { cursor:default; opacity:1; }
.conv-job.is-clickable { cursor:pointer; }
.conv-job.is-clickable:hover { border-color:var(--primary); }
.conv-viewer-poster { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:contain; padding:14px; pointer-events:none; background:transparent; opacity:1; transition:opacity .15s ease; }
.conv-viewer-poster.is-hidden { opacity:0; visibility:hidden; }

/* ---- Painel: largura do shell do admin ---- */
body:has(#admin-panel) { --admin-shell-max:1480px; }
body:has(#admin-panel) main.container, body:has(#admin-panel) .site-header > .container { width:min(100%, var(--admin-shell-max)); max-width:var(--admin-shell-max) !important; margin-left:auto; margin-right:auto; box-sizing:border-box; }
#admin-panel > .admin-tabs, #admin-panel > section { width:100%; box-sizing:border-box; }
