:root {
  --burgundy: #6b1f1a;
  --burgundy-dark: #2b1810;
  --wood: #3d2a1a;
  --wood-dark: #1f140c;
  --gold: #b8813f;
  --gold-dark: #8f6229;
  --copper: #b87333;
  --parchment: #ede4d0;
  --cream: #f2e9d8;
  --ink: #2a1e1a;
  --muted: #7a6d5c;
  --card-bg: #fbf7ee;
  --danger: #8f3324;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  background: var(--cream);
  color: var(--ink);
  font-size: 16px;
  padding-bottom: 78px; /* espaço pra barra de navegação fixa */
}

h1, h2, h3 { font-family: 'Playfair Display', serif; color: var(--wood-dark); }

.topbar {
  background: linear-gradient(180deg, var(--wood) 0%, var(--wood-dark) 100%);
  color: var(--parchment);
  padding: 14px 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 2px solid var(--copper);
}
.brand {
  color: var(--gold);
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-decoration: none;
}
.admin-link {
  position: absolute;
  right: 16px;
  color: var(--parchment);
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0.85;
}
.admin-link a { color: var(--parchment); text-decoration: none; }
@media (max-width: 480px) {
  .topbar { justify-content: space-between; }
  .admin-link { position: static; }
  .admin-name { display: none; }
}
.alert-banner {
  background: #fbeedd;
  border: 1px solid var(--copper);
  border-left: 4px solid var(--copper);
  color: var(--wood-dark);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 0.88rem;
  margin: 0 0 16px;
}
.filter-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; -webkit-overflow-scrolling: touch; }
.chip {
  flex-shrink: 0; padding: 7px 14px; border-radius: 18px; font-size: 0.85rem; font-weight: 600;
  text-decoration: none; color: var(--wood); background: var(--card-bg); border: 1.5px solid #ddc9a3;
}
.chip.active { background: var(--wood); color: var(--parchment); border-color: var(--wood); }
.alert-banner code { background: rgba(0,0,0,0.06); padding: 1px 5px; border-radius: 4px; }

.container { max-width: 720px; margin: 0 auto; padding: 18px 14px 24px; }

/* ---------- Navegação inferior fixa (mobile-first) ---------- */
.bottom-nav {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(0deg, var(--wood-dark) 0%, var(--wood) 100%);
  display: flex;
  justify-content: space-around;
  align-items: stretch;
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  box-shadow: 0 -2px 12px rgba(0,0,0,0.3);
  border-top: 2px solid var(--copper);
  z-index: 20;
}
.nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #cbb999;
  text-decoration: none;
  font-size: 0.68rem;
  font-weight: 600;
  padding: 6px 2px;
  border-radius: 10px;
  min-height: 52px;
}
.nav-item .nav-icon { font-size: 1.5rem; line-height: 1; }
.nav-item.active { color: var(--gold); background: rgba(184,115,51,0.16); }
.nav-item-cta { color: var(--gold); font-weight: 700; }
.nav-item-cta .nav-icon {
  background: linear-gradient(135deg, var(--gold) 0%, var(--copper) 100%);
  color: var(--wood-dark);
  border-radius: 50%;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  margin-top: -14px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

/* ---------- Botões (alvo de toque grande) ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 10px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  font-size: 1rem;
  min-height: 48px;
}
.btn-gold { background: linear-gradient(135deg, var(--gold) 0%, var(--copper) 100%); color: #2a1a0e; }
.btn-gold:hover, .btn-gold:active { background: var(--gold-dark); }
.btn-outline { background: transparent; border: 1.5px solid var(--wood); color: var(--wood); }
.btn-danger { background: var(--danger); color: white; }
.btn-round { border-radius: 50%; width: 52px; height: 52px; min-height: 52px; padding: 0; background: var(--wood); color: var(--parchment); font-size: 1.4rem; flex-shrink: 0; }
.btn-round.listening { background: var(--danger); animation: pulse 1s infinite; }
.speak-card-btn { width: 34px; height: 34px; min-height: 34px; font-size: 0.9rem; margin-top: 6px; }
@keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:0.6;} }
.btn-lg { padding: 16px 24px; font-size: 1.1rem; margin-top: 10px; width: 100%; }

/* ---------- Guia do Sommelier ---------- */
.guide-toc { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 16px 0 24px; padding: 14px 16px; background: var(--parchment); border-radius: 10px; border: 1px solid #ddc9a3; }
.guide-toc a { color: var(--wood); text-decoration: none; font-size: 0.85rem; font-weight: 600; }
.guide-toc a:hover { text-decoration: underline; }
.guide-section { margin-bottom: 36px; scroll-margin-top: 70px; }
.guide-section h2 { border-bottom: 2px solid var(--copper); padding-bottom: 8px; margin-bottom: 14px; font-size: 1.3rem; letter-spacing: 0.3px; }
.guide-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-bottom: 18px; }
.guide-card { background: var(--card-bg); border: 1px solid #e6d9bd; border-radius: 10px; padding: 16px 18px; box-shadow: 0 2px 8px rgba(43,24,16,0.08); }
.guide-card h3 { font-size: 1.05rem; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.guide-card p { margin: 6px 0; font-size: 0.92rem; line-height: 1.5; }
.guide-card .tag { font-size: 0.65rem; background: var(--copper); color: #fff; padding: 2px 8px; border-radius: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; }
.guide-card .example { font-style: italic; color: var(--muted); margin-top: 10px; }
.guide-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 0.9rem; }
.guide-table td, .guide-table th { padding: 10px; border-bottom: 1px solid #ddc9a3; text-align: left; }
.guide-table th { color: var(--wood-dark); font-family: 'Playfair Display', serif; }
.guide-table.full { background: var(--card-bg); border: 1px solid #e6d9bd; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(43,24,16,0.08); display: block; overflow-x: auto; }
.guide-quote { border-left: 4px solid var(--copper); padding: 12px 16px; margin: 18px 0; font-style: italic; color: var(--wood-dark); background: var(--parchment); border-radius: 0 8px 8px 0; font-size: 0.95rem; }
.guide-quote span { display: block; font-style: normal; color: var(--muted); font-size: 0.85rem; margin-top: 8px; }
.timeline { display: flex; flex-direction: column; gap: 12px; }
.timeline-item { background: var(--card-bg); border-left: 4px solid var(--wood); padding: 10px 14px; border-radius: 0 8px 8px 0; box-shadow: 0 2px 8px rgba(43,24,16,0.08); }
.timeline-item strong { color: var(--wood-dark); font-family: 'Playfair Display', serif; font-size: 0.95rem; }
.timeline-item p { margin: 4px 0 0; font-size: 0.9rem; }

.menu-list { list-style: none; padding: 0; margin: 0; }
.menu-list li { background: var(--card-bg); border: 1px solid #e6d9bd; padding: 12px 14px; border-radius: 8px; margin-bottom: 6px; font-size: 0.92rem; box-shadow: 0 1px 4px rgba(43,24,16,0.06); display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.menu-list li a { color: var(--ink); text-decoration: none; flex: 1; }
.menu-list li a:active { color: var(--wood); }
.menu-list .speak-menu-btn { width: 34px; height: 34px; min-height: 34px; font-size: 0.9rem; flex-shrink: 0; }
.menu-thumb { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; flex-shrink: 0; }
.error-msg { color: var(--danger); font-weight: 600; margin: 8px 0; }

/* ---------- Inglês pro Atendimento ---------- */
.phrase-card {
  background: var(--card-bg);
  border: 1px solid #e6d9bd;
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 2px 8px rgba(43,24,16,0.06);
}
.phrase-card > div, .phrase-card > .phrase-pt, .phrase-card > .phrase-en { flex: none; }
.phrase-card { flex-wrap: wrap; }
.phrase-pt { width: 100%; margin: 0 0 4px; color: var(--muted); font-size: 0.85rem; }
.phrase-en { flex: 1; margin: 0; font-weight: 600; font-size: 1rem; cursor: pointer; }
.phrase-en.phrase-hidden { color: var(--copper); font-style: italic; font-weight: 500; }
.phrase-card .speak-phrase-btn { width: 36px; height: 36px; min-height: 36px; font-size: 0.9rem; flex-shrink: 0; }

/* ---------- Curso de Sommelier ---------- */
.topic-text p { font-size: 0.92rem; line-height: 1.55; }
.videos-box { margin: 14px 0; padding: 10px 12px; background: var(--parchment); border-radius: 8px; }
.video-list { list-style: none; padding: 0; margin: 4px 0 0; }
.video-list li { margin-bottom: 4px; }
.video-list a { color: var(--wood); font-size: 0.88rem; text-decoration: none; }
.video-list a:hover { text-decoration: underline; }
.notes-box { margin-top: 12px; }
.notes-field {
  width: 100%; padding: 10px 12px; border-radius: 8px;
  border: 1.5px solid #ddc9a3; font-size: 0.88rem; font-family: inherit;
  background: var(--card-bg); color: var(--ink); margin-top: 4px; resize: vertical;
}

/* ---------- Busca ---------- */
.search-bar { display: flex; gap: 8px; margin-bottom: 8px; }
.search-bar input {
  flex: 1;
  min-width: 0;
  padding: 14px;
  border-radius: 10px;
  border: 1.5px solid #ddc9a3;
  font-size: 1rem;
}
.voice-status { color: var(--muted); font-size: 0.85rem; min-height: 1.2em; margin: 6px 0 16px; }

/* ---------- Grid de vinhos ---------- */
.wine-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 14px;
}
.wine-card {
  background: var(--card-bg);
  border: 1px solid #e6d9bd;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: var(--ink);
  box-shadow: 0 2px 8px rgba(43,24,16,0.1);
  display: flex;
}
.wine-card .wine-photo { width: 110px; height: auto; flex-shrink: 0; }
.wine-photo { background: var(--parchment); display: flex; align-items: center; justify-content: center; }
.wine-photo img { width: 100%; height: 100%; object-fit: cover; }
.wine-photo-placeholder { font-size: 2.2rem; opacity: 0.4; }
.wine-photo-placeholder.large { font-size: 4rem; }
.wine-info { padding: 12px 14px; flex: 1; min-width: 0; }
.wine-info h3 { margin: 0 0 4px; font-size: 1.05rem; }
.wine-winery { margin: 0; font-weight: 600; color: var(--burgundy); font-size: 0.9rem; }
.wine-meta { margin: 2px 0 8px; color: var(--muted); font-size: 0.85rem; }

.score-badge, .type-badge {
  display: inline-block;
  font-size: 0.75rem;
  padding: 4px 9px;
  border-radius: 12px;
  margin: 2px 4px 2px 0;
}
.score-badge { background: linear-gradient(135deg, var(--gold) 0%, var(--copper) 100%); color: #2a1a0e; font-weight: 700; }
.type-badge { background: var(--parchment); color: var(--wood-dark); border: 1px solid #ddc9a3; }

.empty-state { color: var(--muted); padding: 40px 0; text-align: center; }

.page-title { margin-bottom: 18px; font-size: 1.5rem; }

.ai-box {
  background: var(--parchment);
  border: 1.5px dashed var(--copper);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 22px;
}
.ai-box h3 { margin-top: 0; font-size: 1rem; }
.hint { color: var(--muted); font-size: 0.85rem; margin: 4px 0 10px; }

/* ---------- Formulários ---------- */
.form-grid { display: grid; grid-template-columns: 1fr; gap: 4px; margin-bottom: 4px; }
.form-field { display: flex; flex-direction: column; margin-bottom: 14px; }
.form-field label { font-weight: 600; font-size: 0.85rem; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.form-field input, .form-field select, .form-field textarea {
  padding: 13px 12px;
  border-radius: 10px;
  border: 1.5px solid #ddc9a3;
  font-size: 1rem;
  font-family: inherit;
  width: 100%;
  background: var(--card-bg);
  color: var(--ink);
}
.mic-inline { border: none; background: var(--wood); color: var(--parchment); border-radius: 50%; width: 30px; height: 30px; font-size: 0.85rem; cursor: pointer; flex-shrink: 0; }

.detail-header { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; margin-bottom: 22px; }
.detail-photo { width: 130px; height: 170px; border-radius: 10px; overflow: hidden; background: var(--parchment); flex-shrink: 0; border: 1px solid #ddc9a3; }
.detail-photo img { width: 100%; height: 100%; object-fit: cover; }
.detail-info { flex: 1; min-width: 180px; }
.detail-info h1 { margin: 0 0 4px; font-size: 1.35rem; }
.badges { margin: 10px 0; }
.detail-actions { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.detail-actions .btn { flex: 1; min-width: 120px; }

.detail-section { margin-bottom: 20px; }
.detail-section h3 { margin-bottom: 6px; font-size: 1.05rem; }
.detail-section p { line-height: 1.55; }

.pitch-output {
  white-space: pre-wrap;
  background: white;
  border-radius: 8px;
  padding: 14px;
  margin-top: 12px;
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  line-height: 1.6;
  min-height: 20px;
}

/* ---------- Telas maiores (tablet/desktop): aproveita mais espaço ---------- */
@media (min-width: 640px) {
  .container { max-width: 900px; padding: 28px 20px 40px; }
  .wine-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
  .wine-card { flex-direction: column; }
  .wine-card .wine-photo { width: 100%; height: 160px; }
  .form-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
  .guide-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
  .btn-lg { width: auto; }
  body { padding-bottom: 0; }
  .bottom-nav { position: static; box-shadow: none; margin-top: 30px; border-top: 1px solid rgba(255,255,255,0.1); }
}

/* ===================== Menu inicial — caixas de vinho em 3D ===================== */
:root {
  --pine-light: #dcbb8e;
  --pine: #c99d69;
  --pine-edge: #8a5c31;
  --burnt: #46260f;
}
.cellar-hero { margin-bottom: 8px; }
.cellar-greeting {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.6rem, 6vw, 2.3rem);
  line-height: 1.15;
  margin: 4px 0 16px;
  color: var(--wood-dark);
}
.cellar-search { margin-bottom: 4px; }

.shelf { margin: 22px 0 30px; }
.shelf-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.15rem;
  color: var(--wood);
  margin: 0 0 12px;
}
/* a prateleira: as caixas ficam apoiadas numa tábua escura */
.shelf-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 14px;
  perspective: 900px;
  padding-bottom: 22px;
  position: relative;
}
.shelf-row::after {
  content: "";
  position: absolute; left: -6px; right: -6px; bottom: 0; height: 12px;
  border-radius: 3px;
  background: linear-gradient(180deg, #5a3a20 0%, #3d2a1a 55%, #24160c 100%);
  box-shadow: 0 6px 10px rgba(31, 20, 12, 0.35);
}

.crate {
  --rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 30%;
  position: relative;
  display: flex; flex-direction: column; gap: 4px;
  min-height: 150px;
  padding: 18px 14px 34px;
  text-decoration: none;
  color: var(--burnt);
  border-radius: 5px;
  /* tábuas + veio da madeira + brilho que acompanha o dedo */
  background:
    radial-gradient(circle at var(--gx) var(--gy), rgba(255, 240, 210, 0.35), transparent 55%),
    repeating-linear-gradient(176deg, rgba(110, 70, 35, 0.10) 0 2px, transparent 2px 7px, rgba(110, 70, 35, 0.06) 7px 8px, transparent 8px 13px),
    linear-gradient(165deg, var(--pine-light), var(--pine));
  border: 1px solid rgba(70, 38, 15, 0.35);
  box-shadow:
    inset 0 1px 0 rgba(255, 245, 225, 0.5),
    inset 0 0 0 5px rgba(120, 78, 38, 0.10),
    0 8px 0 var(--pine-edge),
    0 9px 0 #5e3d1f,
    0 16px 18px rgba(31, 20, 12, 0.32);
  transform: rotateX(var(--rx)) rotateY(var(--ry)) translateY(0);
  transform-style: preserve-3d;
  transition: transform 0.12s ease-out, box-shadow 0.12s ease-out;
  -webkit-tap-highlight-color: transparent;
  animation: crate-in 0.5s cubic-bezier(.2, .8, .2, 1) both;
}
.shelf-row .crate:nth-child(2) { animation-delay: 0.06s; }
.shelf-row .crate:nth-child(3) { animation-delay: 0.12s; }
.shelf-row .crate:nth-child(4) { animation-delay: 0.18s; }
@keyframes crate-in {
  from { opacity: 0; transform: translateY(-18px) rotateX(22deg); }
  to   { opacity: 1; transform: translateY(0) rotateX(0deg); }
}
/* apertar: a caixa afunda na prateleira */
.crate:active {
  transform: rotateX(var(--rx)) rotateY(var(--ry)) translateY(6px);
  box-shadow:
    inset 0 1px 0 rgba(255, 245, 225, 0.5),
    0 2px 0 var(--pine-edge),
    0 3px 0 #5e3d1f,
    0 5px 8px rgba(31, 20, 12, 0.3);
}
.crate:focus-visible { outline: 3px solid var(--copper); outline-offset: 4px; }

.crate-nail {
  position: absolute; width: 6px; height: 6px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #9c8a78, #3b3027 70%);
  box-shadow: 0 1px 0 rgba(255, 240, 215, 0.45);
}
.n1 { top: 8px; left: 8px; } .n2 { top: 8px; right: 8px; }
.n3 { bottom: 8px; left: 8px; } .n4 { bottom: 8px; right: 8px; }

/* ícone carimbado a fogo, como o brasão gravado na tampa do caixote */
.crate-stamp {
  width: 46px; height: 46px; margin-bottom: 4px;
  display: grid; place-items: center;
  font-size: 1.45rem;
  border: 2px solid rgba(70, 38, 15, 0.55);
  border-radius: 50%;
  filter: grayscale(1) sepia(1) saturate(1.6) brightness(0.55) contrast(1.5);
  transform: translateZ(28px);
}
.crate-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 1.08rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  text-shadow: 0 1px 0 rgba(255, 238, 205, 0.6), 0 -1px 0 rgba(60, 30, 10, 0.25);
  transform: translateZ(22px);
}
.crate-text {
  font-size: 0.8rem;
  line-height: 1.35;
  color: #5b3519;
  transform: translateZ(14px);
}
/* plaquinha de cobre pregada na caixa */
.crate-plate {
  position: absolute; right: 18px; bottom: 9px;
  padding: 2px 9px;
  font-size: 0.7rem; font-weight: 600;
  color: #2a170a;
  border-radius: 3px;
  background: linear-gradient(180deg, #d9a066, #b87333 60%, #93592a);
  box-shadow: inset 0 1px 0 rgba(255, 225, 180, 0.6), 0 1px 2px rgba(31, 20, 12, 0.4);
  transform: translateZ(18px);
}
.cellar-login { text-align: center; margin-top: 8px; }

@media (min-width: 640px) {
  .shelf-row { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 20px 18px; }
  .crate { min-height: 170px; }
}
@media (prefers-reduced-motion: reduce) {
  .crate { animation: none; transition: none; }
}

/* =====================================================================
   MENU "GRAND CRU" — rótulo da casa, garrafeira com fotos, etiquetas
   ===================================================================== */
:root {
  --papel: #f5edda;
  --papel-2: #ece0c4;
  --tinta: #24140f;
  --ouro: #a97a35;
  --ouro-claro: #d6b26f;
  --garrafa: #1c0d0a;
  --garrafa-2: #3b1613;
  --tinto: #6e1d22;
  --branco: #9c7c25;
  --rose: #b0566a;
  --espumante: #7d6a2e;
  --outro: #5a3a22;
}
.casa {
  margin: -18px -14px 18px;
  padding: 22px 16px 26px;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,.07), transparent 60%),
    linear-gradient(180deg, var(--garrafa-2) 0%, var(--garrafa) 100%);
  border-bottom: 1px solid #000;
}
.casa-rotulo {
  position: relative;
  max-width: 460px;
  margin: 0 auto;
  padding: 22px 22px 16px;
  text-align: center;
  color: var(--tinta);
  background:
    radial-gradient(140% 90% at 50% 40%, var(--papel) 55%, var(--papel-2) 100%);
  border: 1px solid var(--ouro);
  outline: 1px solid var(--ouro);
  outline-offset: -7px;
  box-shadow: 0 18px 40px rgba(0,0,0,.45), inset 0 0 0 9px var(--papel), inset 0 0 0 10px rgba(169,122,53,.55);
  border-radius: 3px;
}
.casa-sup {
  display: block;
  font-family: 'Cormorant SC', 'Playfair Display', serif;
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .22em;
  color: var(--ouro);
}
.casa-gravura { display: block; width: 74%; max-width: 250px; margin: 8px auto 2px; color: var(--tinto); }
.casa-nome {
  margin: 0;
  font-family: 'Cormorant SC', 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(1.9rem, 8.5vw, 2.6rem);
  letter-spacing: .06em;
  line-height: 1.05;
  color: var(--tinta);
}
.casa-saudacao {
  display: block;
  margin-top: 4px;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.12rem;
  color: var(--tinto);
}
.casa-busca {
  display: flex; align-items: center; gap: 6px;
  margin: 14px auto 0;
  padding: 4px 4px 4px 12px;
  background: #fffaf0;
  border: 1px solid #cdb488;
  border-radius: 999px;
}
.casa-busca input {
  flex: 1; min-width: 0;
  border: 0; background: transparent; outline: none;
  font: 500 .98rem 'Inter', sans-serif; color: var(--tinta);
  padding: 9px 2px;
}
.casa-busca-ic { color: var(--ouro); display: flex; }
.casa-busca .icone, .casa-mic .icone { width: 20px; height: 20px; }
.casa-mic {
  flex-shrink: 0;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%;
  background: var(--tinto); color: var(--papel);
  cursor: pointer;
}
.casa-mic.listening { background: #b3261e; animation: pulse 1s infinite; }
.casa-rotulo .voice-status { margin: 6px 0 0; min-height: 0; }
.casa-rodape {
  display: block;
  margin-top: 12px; padding-top: 9px;
  border-top: 1px solid rgba(169,122,53,.45);
  font-family: 'Cormorant SC', serif; font-weight: 600;
  font-size: .8rem; letter-spacing: .14em; color: #7a5a35;
}

.secao { margin: 22px 0 6px; }
.secao-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.secao-titulo {
  margin: 0 0 10px;
  font-family: 'Cormorant SC', 'Playfair Display', serif;
  font-weight: 700; font-size: 1.32rem; letter-spacing: .05em;
  color: var(--tinta);
  display: flex; align-items: center; gap: 10px;
}
.secao-titulo::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--ouro), transparent); min-width: 20px; }
.secao-cab .secao-titulo { flex: 1; }
.secao-link { font-size: .88rem; font-weight: 600; color: var(--tinto); text-decoration: none; white-space: nowrap; }

/* Garrafeira: nichos em arco com a foto de cada rótulo */
.garrafeira {
  display: flex; gap: 12px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 14px;
  padding: 2px 14px 10px; margin: 0 -14px;
  scrollbar-width: none;
}
.garrafeira::-webkit-scrollbar { display: none; }
.garrafa {
  flex: 0 0 128px; scroll-snap-align: start;
  text-decoration: none; color: var(--tinta);
  display: flex; flex-direction: column;
}
.garrafa-foto {
  display: block; position: relative;
  width: 128px; height: 176px;
  border-radius: 64px 64px 6px 6px;
  overflow: hidden;
  background: var(--garrafa);
  border: 1px solid var(--ouro);
  box-shadow: 0 8px 18px rgba(40,15,10,.28), inset 0 0 0 3px var(--papel);
}
.garrafa-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.garrafa-nome {
  margin-top: 7px;
  font-family: 'Cormorant Garamond', serif; font-weight: 700; font-size: 1.05rem; line-height: 1.15;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.garrafa-info { font-size: .78rem; color: var(--muted); margin-top: 2px; }
.garrafa:active .garrafa-foto { transform: scale(.97); }
.garrafa-mais .garrafa-foto {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, var(--garrafa-2), var(--garrafa));
}
.garrafa-mais-txt { font-family: 'Cormorant SC', serif; font-weight: 700; color: var(--ouro-claro); text-align: center; font-size: 1.05rem; letter-spacing: .05em; }

/* Rótulo desenhado (quando o vinho não tem foto) */
.rotulo {
  --cor: var(--outro);
  width: 100%; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px;
  padding: 34px 10px 0;
  text-align: center;
  background: radial-gradient(130% 90% at 50% 40%, var(--papel) 55%, var(--papel-2) 100%);
  color: var(--tinta);
  overflow: hidden;
}
.rotulo-tinto { --cor: var(--tinto); }
.rotulo-branco { --cor: var(--branco); }
.rotulo-rose { --cor: var(--rose); }
.rotulo-espumante { --cor: var(--espumante); }
.rotulo-topo { font-family: 'Cormorant SC', serif; font-weight: 600; font-size: .62rem; letter-spacing: .2em; color: var(--cor); }
.rotulo-gravura { width: 78%; color: var(--cor); margin: 2px 0; }
.rotulo-nome {
  font-family: 'Cormorant SC', 'Playfair Display', serif; font-weight: 700;
  font-size: .98rem; line-height: 1.05; letter-spacing: .02em;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rotulo-casa { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: .78rem; line-height: 1.1; color: #5b4330;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.rotulo-origem { font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.rotulo-safra {
  margin-top: auto; align-self: stretch;
  padding: 3px 0 4px;
  background: var(--cor); color: var(--papel);
  font-family: 'Cormorant SC', serif; font-weight: 700; font-size: .85rem; letter-spacing: .2em;
}
.rotulo:not(:has(.rotulo-safra))::after { content: ""; margin-top: auto; align-self: stretch; height: 6px; background: var(--cor); }
.rotulo-grande { padding-top: 28px; }
.rotulo-grande .rotulo-topo { font-size: .8rem; }
.rotulo-grande .rotulo-nome { font-size: 1.5rem; }
.rotulo-grande .rotulo-casa { font-size: 1rem; }
.rotulo-grande .rotulo-origem { font-size: .7rem; }
.rotulo-grande .rotulo-safra { font-size: 1.05rem; }

/* Caves por tipo */
.caves {
  display: flex; gap: 8px;
  overflow-x: auto; scrollbar-width: none;
  margin: 8px -14px 0; padding: 2px 14px 4px;
}
.caves::-webkit-scrollbar { display: none; }
.cave {
  --cor: var(--outro);
  flex-shrink: 0;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 13px 8px 9px;
  border: 1px solid #d8c39c; border-radius: 999px;
  background: #fbf6ea; color: var(--tinta);
  font-weight: 600; font-size: .9rem; text-decoration: none;
}
.cave-tinto { --cor: var(--tinto); }
.cave-branco { --cor: var(--branco); }
.cave-rose { --cor: var(--rose); }
.cave-espumante { --cor: var(--espumante); }
.cave-selo { width: 16px; height: 16px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.35), transparent 45%), var(--cor); box-shadow: 0 0 0 2px #fbf6ea, 0 0 0 3px var(--cor); }
.cave-n { color: var(--muted); font-weight: 500; font-size: .82rem; }

/* Etiquetas (atalhos dos módulos) */
.etiquetas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.etiqueta {
  position: relative;
  display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  min-height: 118px;
  padding: 14px 13px 13px;
  text-decoration: none; color: var(--tinta);
  background: #fbf6ea;
  border: 1px solid #d8c39c;
  outline: 1px solid rgba(169,122,53,.35); outline-offset: -5px;
  border-radius: 4px;
  box-shadow: 0 2px 0 rgba(90,58,34,.08);
  transition: transform .12s ease, box-shadow .12s ease;
}
.etiqueta:hover { box-shadow: 0 8px 18px rgba(90,58,34,.16); transform: translateY(-1px); }
.etiqueta:active { transform: scale(.98); }
.etiqueta-icone {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--tinto); border: 1px solid rgba(110,29,34,.35); background: var(--papel);
}
.etiqueta-icone .icone { width: 22px; height: 22px; }
.etiqueta-corpo { display: flex; flex-direction: column; gap: 3px; }
.etiqueta-titulo { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-size: 1.16rem; line-height: 1.1; }
.etiqueta-texto { font-size: .8rem; line-height: 1.3; color: var(--muted); }
.etiqueta-nota {
  position: absolute; top: 12px; right: 11px;
  font-size: .7rem; font-weight: 600; color: #6b4a1f;
  background: #f1e2bf; border: 1px solid #dcc08a; border-radius: 999px; padding: 2px 8px;
}
.etiqueta-destaque { background: linear-gradient(160deg, var(--garrafa-2), var(--garrafa)); border-color: var(--ouro); outline-color: rgba(214,178,111,.45); color: var(--papel); }
.etiqueta-destaque .etiqueta-texto { color: #d9c8a8; }
.etiqueta-destaque .etiqueta-icone { background: transparent; color: var(--ouro-claro); border-color: rgba(214,178,111,.5); }

@media (max-width: 340px) { .etiquetas { grid-template-columns: 1fr; } }
@media (min-width: 700px) {
  .casa { margin: -28px -20px 22px; padding: 34px 20px 38px; }
  .garrafeira, .caves { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; scroll-padding-inline: 20px; }
  .etiquetas { grid-template-columns: repeat(4, 1fr); }
  .garrafa { flex-basis: 140px; }
  .garrafa-foto { width: 140px; height: 192px; border-radius: 70px 70px 6px 6px; }
}

/* Lista da adega e ficha: rótulo desenhado no lugar da foto que falta */
.wine-card .wine-photo .rotulo { padding-top: 10px; min-height: 150px; }
.detail-photo .rotulo { min-height: 300px; border-radius: 8px; border: 1px solid var(--ouro); }

/* Tela "Fotos dos vinhos" */
.fotos-resumo { display: flex; gap: 10px; flex-wrap: wrap; margin: 6px 0 14px; }
.fotos-resumo span { background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 999px; padding: 5px 12px; font-size: .86rem; font-weight: 600; }
.foto-lista { display: grid; gap: 10px; }
.foto-item {
  display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: center;
  padding: 10px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 6px;
}
.foto-mini { width: 72px; height: 96px; border-radius: 36px 36px 4px 4px; overflow: hidden; border: 1px solid var(--ouro); background: var(--garrafa); }
.foto-mini img { width: 100%; height: 100%; object-fit: cover; }
.foto-mini .rotulo { padding: 14px 4px 0; }
.foto-mini .rotulo-gravura, .foto-mini .rotulo-casa, .foto-mini .rotulo-origem, .foto-mini .rotulo-topo { display: none; }
.foto-mini .rotulo-nome { font-size: .7rem; }
.foto-mini .rotulo-safra { font-size: .62rem; }
.foto-item h3 { margin: 0; font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; }
.foto-item .hint { margin: 2px 0 8px; }
.foto-perdida { color: var(--danger); font-weight: 600; }
.foto-botoes { display: flex; gap: 8px; flex-wrap: wrap; }
.foto-botoes label { cursor: pointer; }
.foto-botoes input[type=file] { display: none; }
.foto-status { font-size: .82rem; margin-top: 6px; }
.btn-sm { padding: 7px 12px; font-size: .85rem; }
.alert-banner ~ .casa { margin-top: 0; }
@media (min-width: 700px) {
  .casa { margin: 0 0 22px; border-radius: 10px; }
  .alert-banner ~ .casa { margin-top: 0; }
}
.rotulo-origem { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rotulo-safra, .rotulo:not(:has(.rotulo-safra))::after { margin-left: -10px; margin-right: -10px; }
.foto-mini .rotulo { justify-content: flex-start; padding-top: 22px; }
.foto-mini .rotulo-safra, .foto-mini .rotulo:not(:has(.rotulo-safra))::after { margin-left: -4px; margin-right: -4px; }

/* =====================================================================
   Estoque, salão, garrafas abertas, QR code, ficha pública
   ===================================================================== */
.estoque-badge {
  display: inline-block; padding: 3px 10px; border-radius: 999px;
  font-size: .78rem; font-weight: 600;
  background: #e9efe2; color: #3d5a2a; border: 1px solid #c9d8b8;
}
.estoque-badge.baixo { background: #fbecd0; color: #8a5a12; border-color: #e7c98d; }
.estoque-badge.esgotado { background: #f6dcd6; color: #8f3324; border-color: #e3b1a6; }
.estoque-badge.indisponivel { background: #e6e1d9; color: #5c544a; border-color: #cfc6b8; }
p.estoque-badge { margin: 10px 0 0; }
.etiqueta-nota-alerta { background: #f6dcd6 !important; border-color: #e3b1a6 !important; color: #8f3324 !important; }
.alerta-link { display: block; text-decoration: none; color: inherit; }
.secao-n { font-family: 'Inter', sans-serif; font-size: .8rem; color: var(--muted); letter-spacing: 0; }
.voltar { display: inline-block; margin-bottom: 10px; color: var(--tinto); font-weight: 600; text-decoration: none; font-size: .92rem; }

.servico-linha { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.servico-linha form { display: inline; }

.form-estoque { border: 1px solid #d8c39c; border-radius: 6px; padding: 10px 14px 12px; margin: 6px 0 16px; background: #fbf6ea; }
.form-estoque legend { font-family: 'Cormorant SC', serif; font-weight: 700; font-size: 1.05rem; padding: 0 6px; }
.check-linha { display: flex; align-items: center; gap: 8px; font-size: .88rem; cursor: pointer; }
.check-linha input { width: auto !important; margin: 0; }

/* Filtros da adega */
.filtro-preco { margin-top: -4px; }
.chip-preco { font-size: .82rem; }
.filtros-linha { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 2px 0 6px; }
.filtros-linha select {
  flex: 1 1 140px; min-width: 0;
  padding: 9px 10px; border-radius: 10px; border: 1.5px solid #ddc9a3; background: #fffaf0;
  font: 500 .9rem 'Inter', sans-serif; color: var(--tinta);
}
.limpar-filtros { font-size: .85rem; font-weight: 600; color: var(--tinto); }

/* Modo salão */
.salao-cab .page-title { margin-bottom: 4px; }
.salao-busca { margin: 10px 0 0; }
.salao-lista { display: grid; gap: 8px; }
.salao-linha {
  display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center;
  padding: 8px 12px 8px 8px; text-decoration: none; color: var(--tinta);
  background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 6px;
}
.salao-linha:active { transform: scale(.99); }
.salao-mini { width: 52px; height: 68px; border-radius: 26px 26px 3px 3px; overflow: hidden; border: 1px solid var(--ouro); background: var(--garrafa); }
.salao-mini img { width: 100%; height: 100%; object-fit: cover; }
.salao-mini .rotulo { padding: 12px 2px 0; }
.salao-mini .rotulo > :not(.rotulo-nome):not(.rotulo-safra) { display: none; }
.salao-mini .rotulo-nome { font-size: .5rem; }
.salao-mini .rotulo-safra { font-size: .45rem; padding: 1px 0; margin-left: -2px; margin-right: -2px; }
.salao-txt { display: flex; flex-direction: column; min-width: 0; }
.salao-txt strong { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; line-height: 1.15; }
.salao-txt small { color: var(--muted); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.salao-precos { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; white-space: nowrap; }
.salao-precos b { font-size: .95rem; }
.salao-precos span { font-size: .76rem; color: var(--tinto); font-weight: 600; }
.tag-aberta, .tag-baixo { font-style: normal; font-size: .7rem; font-weight: 600; margin-top: 3px; align-self: flex-start;
  padding: 1px 7px; border-radius: 999px; background: #e9efe2; color: #3d5a2a; }
.tag-baixo { background: #fbecd0; color: #8a5a12; }

.mesa { display: grid; grid-template-columns: 120px 1fr; gap: 16px; align-items: start; }
.mesa-foto { width: 120px; height: 170px; border-radius: 60px 60px 6px 6px; overflow: hidden; border: 1px solid var(--ouro); background: var(--garrafa);
  box-shadow: 0 8px 18px rgba(40,15,10,.28), inset 0 0 0 3px var(--papel); }
.mesa-foto img { width: 100%; height: 100%; object-fit: cover; }
.mesa-foto .rotulo-grande { padding-top: 30px; }
.mesa-foto .rotulo-grande .rotulo-nome { font-size: 1.05rem; }
.mesa-foto .rotulo-grande .rotulo-casa, .mesa-foto .rotulo-grande .rotulo-origem { display: none; }
.mesa-nome { margin: 0; font-family: 'Cormorant SC', serif; font-size: 1.7rem; line-height: 1.05; }
.mesa-casa { margin: 4px 0 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.1rem; color: var(--tinto); }
.mesa-origem { margin: 2px 0 0; font-size: .85rem; color: var(--muted); }
.mesa-precos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.mesa-precos div { background: var(--garrafa); color: var(--papel); border-radius: 8px; padding: 8px 10px; border: 1px solid var(--ouro); }
.mesa-precos span { display: block; font-family: 'Cormorant SC', serif; letter-spacing: .12em; font-size: .78rem; color: var(--ouro-claro); }
.mesa-precos b { font-size: 1.15rem; }
.tag-aberta-grande { margin: 10px 0 0; font-size: .85rem; font-weight: 600; color: #3d5a2a; }
.mesa-frases { margin: 18px 0 8px; padding: 14px 16px; background: #fbf6ea; border: 1px solid #d8c39c; outline: 1px solid rgba(169,122,53,.35); outline-offset: -5px; border-radius: 4px; }
.mesa-frases-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.mesa-frases h2 { margin: 0; font-family: 'Cormorant SC', serif; font-size: 1.3rem; }
.mesa-frases ol { margin: 10px 0 2px; padding-left: 22px; }
.mesa-frases li { font-size: 1.08rem; line-height: 1.45; margin-bottom: 10px; }
.mesa-frases li::marker { font-family: 'Cormorant SC', serif; font-weight: 700; color: var(--tinto); }
.mesa-fatos { display: grid; gap: 10px; }
.mesa-fatos h3 { margin: 6px 0 2px; font-family: 'Cormorant SC', serif; font-size: 1.05rem; }
.mesa-fatos p { margin: 0; font-size: .92rem; line-height: 1.45; color: #4a3b30; }
.mesa-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.mesa-acoes form { display: inline; }
@media (min-width: 700px) {
  .mesa { grid-template-columns: 180px 1fr; }
  .mesa-foto { width: 180px; height: 250px; border-radius: 90px 90px 6px 6px; }
  .mesa-fatos { grid-template-columns: 1fr 1fr; }
}

/* Garrafas abertas */
.abrir-garrafa { display: flex; gap: 8px; flex-wrap: wrap; margin: 6px 0 16px; }
.abrir-garrafa select { flex: 1 1 220px; min-width: 0; padding: 11px 10px; border-radius: 10px; border: 1.5px solid #ddc9a3; background: #fffaf0; font: 500 .92rem 'Inter', sans-serif; }
.garrafas-lista { display: grid; gap: 10px; }
.garrafa-aberta { display: grid; grid-template-columns: 72px 1fr auto; gap: 12px; align-items: center; padding: 10px;
  background: #fbf6ea; border: 1px solid #d8c39c; border-left: 5px solid #6f9150; border-radius: 6px; }
.garrafa-aberta.situacao-ultimo_dia { border-left-color: #c98a1d; }
.garrafa-aberta.situacao-vencida { border-left-color: var(--danger); background: #fbeee9; }
.garrafa-aberta-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.garrafa-aberta-txt a { color: var(--tinta); text-decoration: none; font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; }
.garrafa-aberta-txt span { font-size: .8rem; color: var(--muted); }
.garrafa-aberta-txt .situacao-txt { color: var(--tinta); font-weight: 600; font-size: .82rem; }
.dias-lista { margin: 0; padding-left: 20px; line-height: 1.8; }

/* Estoque */
.estoque-lista { display: grid; gap: 8px; }
.estoque-item { display: grid; grid-template-columns: 56px 1fr; gap: 10px 12px; align-items: center; padding: 10px;
  background: #fbf6ea; border: 1px solid #d8c39c; border-left: 5px solid #cbbfa8; border-radius: 6px; }
.estoque-item .foto-mini { width: 56px; height: 74px; border-radius: 28px 28px 3px 3px; }
.estoque-item.st-ok { border-left-color: #6f9150; }
.estoque-item.st-baixo { border-left-color: #c98a1d; }
.estoque-item.st-esgotado { border-left-color: var(--danger); }
.estoque-item.st-indisponivel { opacity: .7; }
.estoque-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.estoque-txt a { color: var(--tinta); text-decoration: none; font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; }
.estoque-situacao { font-size: .78rem; font-weight: 600; color: var(--muted); }
.st-baixo .estoque-situacao { color: #8a5a12; } .st-esgotado .estoque-situacao { color: var(--danger); }
.estoque-ctrl { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.est-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--ouro); background: var(--papel); font-size: 1.3rem; font-weight: 600; color: var(--tinto); cursor: pointer; }
.est-btn:active { transform: scale(.94); }
.est-qtd { width: 64px; text-align: center; padding: 9px 4px; border-radius: 8px; border: 1.5px solid #ddc9a3; font: 600 1rem 'Inter', sans-serif; }
.est-min { display: flex; align-items: center; gap: 6px; margin-left: auto; font-size: .78rem; color: var(--muted); }
.est-minimo { width: 54px; text-align: center; padding: 7px 4px; border-radius: 8px; border: 1.5px solid #ddc9a3; }
@media (min-width: 700px) {
  .estoque-item { grid-template-columns: 56px 1fr auto; }
  .estoque-ctrl { grid-column: auto; }
}

/* Backups */
.backup-lista { list-style: none; padding: 0; margin: 8px 0 12px; display: grid; gap: 6px; }
.backup-lista li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; background: #fbf6ea; border: 1px solid #e3d4b3; border-radius: 6px; font-size: .88rem; }
.backup-lista a { font-weight: 600; color: var(--tinto); }

/* QR codes */
.qr-folha { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 14px; }
.qr-cartao { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 3px; padding: 12px 10px;
  background: #fff; border: 1px dashed #c9b48a; border-radius: 6px; break-inside: avoid; }
.qr-cartao img { width: 120px; height: 120px; image-rendering: pixelated; }
.qr-cartao strong { font-family: 'Cormorant SC', serif; font-size: 1rem; line-height: 1.1; }
.qr-cartao span { font-size: .72rem; color: var(--muted); }
.qr-cartao small { font-size: .66rem; color: var(--tinto); margin-top: 2px; }
@media print {
  .topbar, .bottom-nav, .no-print, .alert-banner { display: none !important; }
  body { background: #fff; padding: 0; }
  .container { max-width: none; padding: 0; }
  .qr-folha { grid-template-columns: repeat(4, 1fr); gap: 6mm; }
}

/* Ficha pública (cliente, pelo QR code) */
body.publico { padding-bottom: 0; background: linear-gradient(180deg, var(--garrafa-2), var(--garrafa) 260px, var(--cream) 260px); }
.publico-main { max-width: 560px; margin: 0 auto; padding: 22px 18px 40px; text-align: center; }
.publico-sup { margin: 0 0 14px; font-family: 'Cormorant SC', serif; letter-spacing: .22em; font-size: .8rem; color: var(--ouro-claro); }
.publico-foto { width: 190px; height: 260px; margin: 0 auto; border-radius: 95px 95px 8px 8px; overflow: hidden; border: 1px solid var(--ouro);
  background: var(--garrafa); box-shadow: 0 16px 34px rgba(0,0,0,.35), inset 0 0 0 4px var(--papel); }
.publico-foto img { width: 100%; height: 100%; object-fit: cover; }
.publico-nome { margin: 18px 0 0; font-family: 'Cormorant SC', serif; font-size: 2rem; line-height: 1.05; color: var(--tinta); }
.publico-casa { margin: 4px 0 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.15rem; color: var(--tinto); }
.publico-origem { margin: 4px 0 0; color: var(--muted); font-size: .9rem; }
.publico-chips { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 12px 0 4px; }
.publico-chips span { padding: 4px 11px; border-radius: 999px; border: 1px solid #d8c39c; background: #fbf6ea; font-size: .82rem; }
.publico-precos { max-width: 320px; margin: 14px auto 0; }
.publico-main section { text-align: left; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(169,122,53,.4); }
.publico-main h2 { margin: 0 0 4px; font-family: 'Cormorant SC', serif; font-size: 1.2rem; }
.publico-main section p { margin: 0; line-height: 1.6; color: #3e3028; }
.publico-rodape { margin-top: 26px; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.05rem; color: var(--tinto); }
.mesa-precos b { white-space: nowrap; font-size: clamp(.95rem, 4.2vw, 1.15rem); }
.mesa-precos div { padding: 8px 9px; }
.estoque-badge.mundo { background: #e8eef4; color: #2f4d6b; border-color: #c4d3e2; }
.cave-mundo { --cor: #2f4d6b; }
.origem-chips small { font-weight: 500; color: var(--muted); margin-left: 3px; }
.chip.active small { color: inherit; opacity: .8; }
.paginacao { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 18px 0 6px; font-weight: 600; color: var(--muted); }

/* ===================== Menu do celular: abas + "Mais" ===================== */
.bottom-nav { gap: 2px; }
.nav-mais { background: none; border: 0; font-family: inherit; cursor: pointer; position: relative; }
.nav-mais[aria-expanded="true"] { color: var(--gold); background: rgba(184,115,51,0.16); }
.nav-ponto { position: absolute; top: 6px; right: calc(50% - 18px); width: 10px; height: 10px; border-radius: 50%; background: #e0533d; box-shadow: 0 0 0 2px var(--wood-dark); }
body.sem-rolagem { overflow: hidden; }
.mais-fundo { position: fixed; inset: 0; background: rgba(20,8,6,.55); z-index: 40; opacity: 0; transition: opacity .2s ease; }
.mais-fundo.aberto { opacity: 1; }
.menu-mais {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 41;
  max-height: 86vh; overflow-y: auto; overscroll-behavior: contain;
  padding: 6px 16px calc(18px + env(safe-area-inset-bottom));
  background: var(--cream); border-radius: 18px 18px 0 0;
  border-top: 2px solid var(--ouro);
  box-shadow: 0 -10px 30px rgba(0,0,0,.35);
  transform: translateY(100%); transition: transform .22s ease;
}
.menu-mais.aberto { transform: translateY(0); }
.mais-alca { width: 44px; height: 5px; border-radius: 3px; background: #cdb894; margin: 6px auto 8px; }
.mais-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(169,122,53,.35); }
.mais-cab strong { display: block; font-family: 'Cormorant SC', serif; font-size: 1.3rem; color: var(--tinta); }
.mais-cab span { font-size: .8rem; color: var(--muted); }
.mais-fechar { width: 40px; height: 40px; border-radius: 50%; border: 1px solid #d8c39c; background: #fbf6ea; font-size: 1rem; cursor: pointer; color: var(--tinta); }
.mais-grupo { margin: 14px 0 8px; font-family: 'Cormorant SC', serif; font-size: 1.05rem; letter-spacing: .06em; color: var(--tinto); }
.mais-grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mais-item {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px;
  padding: 12px 4px 10px; min-height: 86px; text-align: center; text-decoration: none; color: var(--tinta);
  background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 12px;
}
.mais-item:active { transform: scale(.97); }
.mais-item.ativo { border-color: var(--ouro); box-shadow: inset 0 0 0 1px var(--ouro); }
.mais-ic { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--tinto); background: var(--papel); border: 1px solid rgba(110,29,34,.25); }
.mais-ic .icone { width: 21px; height: 21px; }
.mais-txt { font-size: .76rem; font-weight: 600; line-height: 1.2; }
.mais-n { position: absolute; top: 6px; right: 6px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; font-size: .68rem; font-weight: 700; line-height: 20px; background: #efe1bf; color: #6b4a1f; }
.mais-n.alerta { background: #e0533d; color: #fff; }
.mais-conta { display: flex; justify-content: center; margin-top: 16px; }
@media (min-width: 700px) {
  body { padding-bottom: 86px; }
  .bottom-nav { position: fixed; margin-top: 0; box-shadow: 0 -2px 12px rgba(0,0,0,0.3); border-top: 2px solid var(--copper); }
  .bottom-nav .nav-item { max-width: 140px; }
  .bottom-nav { justify-content: center; }
  .menu-mais { left: 50%; right: auto; width: 560px; transform: translate(-50%, 100%); }
  .menu-mais.aberto { transform: translate(-50%, 0); }
  .mais-grade { grid-template-columns: repeat(4, 1fr); }
}
@media print { .menu-mais, .mais-fundo { display: none !important; } }

/* ===================== Escola de inglês ===================== */
.escola-cab .page-title { margin-bottom: 4px; }
.escola-nome { display: flex; align-items: center; gap: 10px; margin: 10px 0 2px; }
.escola-nome span { font-weight: 600; font-size: .9rem; white-space: nowrap; }
.escola-nome input { flex: 1; min-width: 0; padding: 10px 12px; border-radius: 10px; border: 1.5px solid #ddc9a3; background: #fffaf0; font: 500 1rem 'Inter', sans-serif; }
.escola-nome-dica { margin: 2px 0 10px; font-size: .78rem; }
.escola-abas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 4px; margin: 6px 0 14px;
  background: var(--garrafa); border-radius: 12px; position: sticky; top: 0; z-index: 5; }
.escola-aba { border: 0; background: transparent; color: #d9c8a8; font: 600 .78rem 'Inter', sans-serif; padding: 10px 2px; border-radius: 9px; cursor: pointer; }
.escola-aba.ativa { background: var(--papel); color: var(--tinta); }
.aulas-grade, .provas-grade { display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 16px; }
@media (min-width: 600px) { .aulas-grade, .provas-grade { grid-template-columns: 1fr 1fr; } }
.aula-card, .prova-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left;
  padding: 12px 14px 12px 52px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 8px; cursor: pointer;
  font-family: inherit; color: var(--tinta); text-decoration: none; }
.aula-card strong, .prova-card strong { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.aula-card small, .prova-card small { color: var(--muted); font-size: .78rem; line-height: 1.3; }
.aula-n, .prova-selo { position: absolute; left: 12px; top: 12px; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--tinto); color: var(--papel); font-family: 'Cormorant SC', serif; font-weight: 700; }
.aula-status, .prova-status { font-style: normal; font-size: .78rem; font-weight: 600; color: #3d5a2a; }
.prova-status { color: var(--tinto); }
.carregando { padding: 20px; text-align: center; color: var(--muted); }
.aula-nivel { margin: 6px 0 0; font-family: 'Cormorant SC', serif; color: var(--ouro); letter-spacing: .12em; }
.aula-titulo { margin: 0; font-family: 'Cormorant SC', serif; font-size: 1.7rem; }
.aula-obj { font-weight: 600; color: var(--tinto); }
.aula-bloco { margin: 14px 0; padding: 12px 14px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; }
.aula-bloco h3 { margin: 0 0 8px; font-family: 'Cormorant SC', serif; font-size: 1.15rem; }
.aula-bloco p { line-height: 1.55; margin: 0 0 6px; }
.frases-aula { margin: 0; padding-left: 20px; display: grid; gap: 10px; }
.frase-aula div { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.frase-aula span, .frase-aula small { display: block; font-size: .85rem; color: var(--muted); }
.ouvir { border: 1px solid #d8c39c; background: #fff; border-radius: 50%; width: 32px; height: 32px; cursor: pointer; font-size: .9rem; flex-shrink: 0; vertical-align: middle; }
.fala { margin: 8px 0; padding: 8px 10px; border-radius: 10px; max-width: 92%; }
.fala p { margin: 2px 0; } .fala small { color: var(--muted); }
.fala .quem, .bolha .quem { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.fala.cliente, .bolha.cliente { background: #fff; border: 1px solid #e0cfab; }
.fala.garcom, .bolha.garcom { background: #f3e6cc; margin-left: auto; }
.exercicio { padding: 10px 0; border-top: 1px dashed #dcc9a2; }
.exercicio p { margin: 0 0 6px; }
.ex-linha { display: flex; gap: 6px; }
.ex-resp { flex: 1; min-width: 0; padding: 10px; border-radius: 8px; border: 1.5px solid #ddc9a3; font: 500 .95rem 'Inter', sans-serif; background: #fff; }
.mic-peq { width: 44px; border-radius: 8px; border: 1px solid #d8c39c; background: var(--papel); cursor: pointer; font-size: 1.1rem; }
.mic-peq.listening, .mic-grande.listening { background: #b3261e; color: #fff; animation: pulse 1s infinite; }
.corr { margin-top: 6px; padding: 8px 10px; border-radius: 8px; border-left: 4px solid #6f9150; background: #eef4e7; }
.corr.erro { border-left-color: #c98a1d; background: #fbf0dc; }
.corr p { margin: 3px 0; font-weight: 600; } .corr small { color: #4a3b30; }
.nota-final { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 12px 0; padding: 14px; border-radius: 10px; background: var(--garrafa); color: var(--papel); }
.nota-final span { font-family: 'Cormorant SC', serif; font-size: 2.6rem; font-weight: 700; color: var(--ouro-claro); line-height: 1; }
.nota-final p { flex: 1; margin: 0; min-width: 180px; }
.nota-final small { width: 100%; color: #d9c8a8; }
.nota-final.aprovado { background: linear-gradient(160deg, #2c4a1f, #16280f); }
.conversa-config { display: grid; gap: 8px; margin-bottom: 12px; }
.conversa-config select { padding: 10px; border-radius: 10px; border: 1.5px solid #ddc9a3; background: #fffaf0; font: 500 .9rem 'Inter', sans-serif; }
.chat { display: flex; flex-direction: column; gap: 8px; }
.bolha { padding: 10px 12px; border-radius: 12px; max-width: 92%; }
.bolha p { margin: 3px 0; font-size: 1.02rem; }
.bolha small { display: block; color: var(--muted); font-size: .8rem; margin-top: 2px; }
.fb { margin-top: 6px; padding-top: 6px; border-top: 1px dashed #c9b48a; }
.fb p { font-size: .92rem !important; }
.fb-nota { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #fbecd0; color: #8a5a12; font-size: .78rem; }
.fb-nota.ok { background: #e3eed9; color: #3d5a2a; }
.chat-entrada { position: sticky; bottom: 84px; display: flex; gap: 6px; align-items: center; margin-top: 10px; padding: 8px; background: var(--cream); border: 1px solid #d8c39c; border-radius: 14px; box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.chat-entrada input { flex: 1; min-width: 0; padding: 10px; border-radius: 10px; border: 1.5px solid #ddc9a3; font: 500 .95rem 'Inter', sans-serif; }
.mic-grande { width: 52px; height: 52px; flex-shrink: 0; border-radius: 50%; border: 0; background: var(--tinto); color: var(--papel); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.mic-grande .icone { width: 24px; height: 24px; }
.conversa-fim { margin-top: 10px; }
.avaliacao { margin-top: 12px; padding: 12px 14px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 10px; }
.avaliacao h3 { margin: 10px 0 4px; font-family: 'Cormorant SC', serif; }
.progresso-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.progresso-lista li { display: grid; grid-template-columns: auto 1fr auto auto; gap: 4px 8px; align-items: center; padding: 8px 10px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; font-size: .88rem; }
.progresso-lista small { grid-column: 1 / -1; color: var(--muted); font-size: .72rem; }
.progresso-lista em { font-style: normal; font-weight: 700; }
.progresso-lista [class^="tipo-"] { font-size: .7rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: #efe1bf; }
.progresso-lista .tipo-prova { background: var(--tinto); color: var(--papel); }
.vocab-topo { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.vocab-topo input { flex: 1 1 200px; padding: 10px; border-radius: 10px; border: 1.5px solid #ddc9a3; background: #fffaf0; font: 500 .95rem 'Inter', sans-serif; }
.vocab-lista { display: grid; gap: 6px; }
@media (min-width: 600px) { .vocab-lista { grid-template-columns: 1fr 1fr; } }
.vocab-item { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; }
.vocab-item b { display: block; font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; }
.vocab-item span, .vocab-item small { display: block; font-size: .8rem; color: var(--muted); }
.cartao { text-align: center; }
.cartao-face { width: 100%; min-height: 200px; margin: 6px 0 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid var(--ouro); outline: 1px solid rgba(169,122,53,.35); outline-offset: -7px; border-radius: 12px; background: var(--papel); cursor: pointer; font-family: inherit; color: var(--tinta); }
.cartao-face span { color: var(--muted); font-size: .85rem; }
.cartao-face b { font-family: 'Cormorant SC', serif; font-size: 1.8rem; padding: 0 10px; }
.cartao-face small { color: var(--tinto); }
.cartao-acoes { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.prova-lista { padding-left: 22px; display: grid; gap: 12px; }
.prova-q p, .prova-aberta p { margin: 0 0 6px; }
.prova-op { display: flex; gap: 8px; align-items: center; padding: 8px 10px; margin: 4px 0; border: 1px solid #e0cfab; border-radius: 8px; background: #fbf6ea; cursor: pointer; }
.prova-op input { width: auto; margin: 0; }
.prova-op.certa { border-color: #6f9150; background: #eef4e7; }
.prova-op.errada { border-color: #c0573f; background: #fbe9e4; }
.progresso-tabela { display: grid; gap: 8px; }
.aluno-linha { display: grid; gap: 2px; padding: 10px 12px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; font-size: .88rem; }
.aluno-linha strong { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; }
.aluno-linha small { color: var(--muted); }
/* Certificado */
.cert-corpo { background: #e9e1d0; padding: 16px; }
.cert-acoes { display: flex; gap: 8px; justify-content: center; margin-bottom: 12px; }
.certificado { max-width: 900px; margin: 0 auto; padding: 46px 40px; text-align: center; background: var(--papel); color: var(--tinta);
  border: 2px solid var(--ouro); outline: 1px solid var(--ouro); outline-offset: -12px; box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.cert-sup { font-family: 'Cormorant SC', serif; letter-spacing: .25em; color: var(--ouro); margin: 0; }
.cert-gravura { width: 200px; color: var(--tinto); margin: 8px auto 0; display: block; }
.cert-titulo { font-family: 'Cormorant SC', serif; font-size: 3rem; margin: 6px 0 10px; letter-spacing: .08em; }
.cert-txt { margin: 6px 0; font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; }
.cert-nome { margin: 6px 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 2.6rem; color: var(--tinto); border-bottom: 1px solid var(--ouro); display: inline-block; padding: 0 20px 4px; }
.cert-curso { font-family: 'Cormorant SC', serif; font-size: 1.5rem; margin: 10px 0; }
.cert-curso span { font-size: 1.1rem; color: var(--ouro); letter-spacing: .1em; }
.cert-assin { display: flex; justify-content: space-around; gap: 30px; margin-top: 46px; }
.cert-assin div { flex: 1; max-width: 240px; }
.cert-assin span { display: block; border-top: 1px solid var(--tinta); margin-bottom: 4px; }
.cert-assin small { font-family: 'Cormorant Garamond', serif; font-size: 1rem; }
.cert-rodape { margin-top: 26px; font-size: .75rem; color: var(--muted); }
@media print { .cert-corpo { background: #fff; padding: 0; } .certificado { box-shadow: none; } @page { size: A4 landscape; margin: 10mm; } }
@media (max-width: 600px) { .certificado { padding: 30px 18px; } .cert-titulo { font-size: 2.1rem; } .cert-nome { font-size: 1.8rem; } }
.frase-aula div { flex-wrap: nowrap; align-items: flex-start; } .frase-aula div b { flex: 1; }
[hidden] { display: none !important; }
.conversa-config { grid-template-columns: minmax(0, 1fr); }
.conversa-config select { width: 100%; min-width: 0; text-overflow: ellipsis; }

/* ===================== Leitura de rótulo / Que vinho é este? ===================== */
.leitor-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0 10px; }
.leitor-foto { position: relative; display: flex; align-items: center; justify-content: center; text-align: center; min-height: 110px;
  border: 1.5px dashed #c9b48a; border-radius: 10px; background: #fffaf0; cursor: pointer; overflow: hidden; font-weight: 600; }
.leitor-foto input, .qv-camera input, .qv-verso input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.leitor-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.leitor-foto.com-foto span { display: none; }
.leitura-card { margin-top: 12px; padding: 14px; background: #fff; border: 1px solid #d8c39c; border-radius: 10px; }
.leitura-topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.leitura-topo strong { font-family: 'Cormorant SC', serif; font-size: 1.4rem; line-height: 1.1; }
.conf { font-size: .74rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.conf-alta { background: #e3eed9; color: #3d5a2a; } .conf-media { background: #fbecd0; color: #8a5a12; } .conf-baixa { background: #f6dcd6; color: #8f3324; }
.leitura-tabela { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: .9rem; }
.leitura-tabela th { text-align: left; color: var(--muted); font-weight: 600; padding: 5px 8px 5px 0; white-space: nowrap; vertical-align: top; }
.leitura-tabela td { padding: 5px 4px; border-bottom: 1px solid #f0e6d2; }
.origem { font-size: .66rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
.origem.lido { background: #e3eed9; color: #3d5a2a; } .origem.deduzido { background: #efe7f6; color: #5b3d7a; }
.leitura-alertas { margin: 6px 0; padding: 8px 10px 8px 26px; background: #fbf0dc; border-radius: 8px; font-size: .86rem; }
.texto-lido { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .8rem; background: #faf6ee; padding: 8px; border-radius: 6px; }
.leitura-dup { margin-top: 10px; padding: 10px; border-radius: 8px; background: #fbecd0; display: grid; gap: 6px; }
.dup-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.dup-linha small { color: var(--muted); }
.salao-qv { display: block; text-align: center; margin: 10px 0 4px; }
.qv-fotos { display: grid; gap: 8px; margin: 10px 0; }
.qv-camera { position: relative; display: flex; align-items: center; justify-content: center; min-height: 220px; border-radius: 16px; overflow: hidden; cursor: pointer;
  background: linear-gradient(160deg, var(--garrafa-2), var(--garrafa)); border: 1px solid var(--ouro); color: var(--papel); text-align: center; }
.qv-camera img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #000; }
.qv-camera-txt { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.qv-camera-txt .icone { width: 46px; height: 46px; color: var(--ouro-claro); }
.qv-camera-txt b { font-family: 'Cormorant SC', serif; font-size: 1.3rem; }
.qv-camera-txt small { color: #d9c8a8; }
.qv-camera.com-foto .qv-camera-txt { display: none; }
.qv-verso { position: relative; display: block; text-align: center; padding: 10px; border: 1.5px dashed #c9b48a; border-radius: 10px; background: #fffaf0; font-weight: 600; font-size: .9rem; cursor: pointer; }
.qv-ficha { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin: 10px 0; }
.qv-ficha span { display: block; font-size: .7rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.qv-ficha b { font-size: .92rem; }
.qv-lista { display: grid; gap: 8px; margin-bottom: 12px; }
.qv-item { display: grid; grid-template-columns: 52px 1fr auto; gap: 10px; align-items: center; padding: 8px 10px 8px 8px; text-decoration: none; color: var(--tinta);
  background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 8px; }
.qv-item.forte { border-color: #6f9150; box-shadow: inset 0 0 0 1px #6f9150; }
.qv-mini { width: 52px; height: 68px; border-radius: 26px 26px 3px 3px; overflow: hidden; border: 1px solid var(--ouro); background: var(--garrafa); }
.qv-mini img { width: 100%; height: 100%; object-fit: cover; }
.qv-mini .rotulo { padding: 14px 2px 0; } .qv-mini .rotulo-nome { font-size: .5rem; } .qv-mini .rotulo-safra { font-size: .45rem; margin: auto -2px 0; }
.qv-item-txt { display: flex; flex-direction: column; min-width: 0; }
.qv-item-txt strong { font-family: 'Cormorant Garamond', serif; font-size: 1.08rem; line-height: 1.15; }
.qv-item-txt small { color: var(--muted); font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qv-item-txt em { font-style: normal; font-size: .74rem; font-weight: 600; color: var(--tinto); }
.qv-nota { font-weight: 700; font-size: .85rem; color: #3d5a2a; }
.espaco-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; }
.espaco-grade div { padding: 8px 10px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; }
.espaco-grade span { display: block; font-size: .74rem; color: var(--muted); }
.espaco-grade b { font-size: 1.05rem; }
.espaco-grade .total { background: var(--garrafa); color: var(--papel); border-color: var(--ouro); }
.espaco-grade .total span { color: var(--ouro-claro); }
.credito { margin: 28px 0 4px; text-align: center; font-family: "Cormorant SC", serif; letter-spacing: .12em; font-size: .78rem; color: #a08b6c; }

/* ===================== Perfil sensorial e uvas ===================== */
.sens { margin: 18px 0; padding: 16px; background: #fbf6ea; border: 1px solid #d8c39c; outline: 1px solid rgba(169,122,53,.3); outline-offset: -6px; border-radius: 6px; }
.sens-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.sens-cab h2 { margin: 0; font-family: 'Cormorant SC', serif; font-size: 1.4rem; }
.sens-fonte { font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: #efe7f6; color: #5b3d7a; }
.sens-fonte.ia { background: var(--garrafa); color: var(--ouro-claro); }
.sens-cor, .sens-int { margin: 4px 0 10px; font-size: .92rem; }
.sens-barras { display: grid; gap: 7px; margin: 6px 0 12px; }
.sens-linha { display: grid; grid-template-columns: 64px 1fr 74px; align-items: center; gap: 10px; }
.sens-rot { font-family: 'Cormorant SC', serif; font-weight: 700; font-size: .95rem; }
.sens-escala { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3px; }
.sens-escala i { height: 10px; border-radius: 2px; background: linear-gradient(90deg, var(--tinto) calc(var(--f) * 100%), #e7dcc5 calc(var(--f) * 100%)); }
.sens-termo { font-size: .76rem; color: var(--muted); }
.sens-barras.compacto { gap: 4px; margin: 4px 0; }
.sens-barras.compacto .sens-linha { grid-template-columns: 52px 1fr; }
.sens-barras.compacto .sens-termo { display: none; }
.sens-barras.compacto .sens-rot { font-size: .8rem; }
.sens-barras.compacto .sens-escala i { height: 7px; }
.sens-aromas { display: grid; gap: 8px; margin: 6px 0 10px; }
@media (min-width: 600px) { .sens-aromas { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } }
.sens-aromas h3 { margin: 0 0 4px; font-family: 'Cormorant SC', serif; font-size: 1rem; color: var(--tinto); }
.sens-aromas p, .mesa-aromas { margin: 0; display: flex; flex-wrap: wrap; gap: 5px; }
.aroma { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #fff; border: 1px solid #e0cfab; font-size: .8rem; }
.sens-estilo { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; font-style: italic; line-height: 1.45; color: #3e2a22; margin: 8px 0; }
.sens-servico { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.sens-servico div { padding: 7px 10px; background: #fff; border: 1px solid #e8dcc3; border-radius: 6px; }
.sens-servico span { display: block; font-size: .68rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.sens-servico b { font-size: .86rem; font-weight: 600; }
.sens-harm { font-size: .9rem; margin: 6px 0; }
.sens-dica { font-size: .9rem; margin: 6px 0; padding: 8px 10px; background: #f3e6cc; border-radius: 6px; }
.sens-uvas { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.uva-chip { font-size: .8rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; text-decoration: none; border: 1px solid; }
.uva-chip.uva-tinta { color: var(--tinto); border-color: rgba(110,29,34,.4); background: #fbeff0; }
.uva-chip.uva-branca { color: #6b5414; border-color: rgba(156,124,37,.45); background: #fbf5df; }
.mesa-perfil { margin: 14px 0 0; padding: 10px 12px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; }
.uvas-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
@media (min-width: 700px) { .uvas-grade { grid-template-columns: repeat(4, 1fr); } }
.uva-card { position: relative; display: flex; flex-direction: column; gap: 3px; padding: 12px 12px 10px; text-decoration: none; color: var(--tinta);
  background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 8px; }
.uva-card strong { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; line-height: 1.1; padding-right: 22px; }
.uva-card small { color: var(--muted); font-size: .72rem; }
.uva-bago { position: absolute; top: 12px; right: 12px; width: 16px; height: 16px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.5), transparent 45%), var(--tinto); }
.uva-branca .uva-bago { background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.6), transparent 45%), #b9a33d; }
.uva-cab { display: flex; gap: 14px; align-items: flex-start; position: relative; }
.uva-bago.grande { position: static; width: 46px; height: 46px; flex-shrink: 0; margin-top: 8px; box-shadow: 0 0 0 4px var(--papel), 0 0 0 5px var(--ouro); }
.foto-credito { margin: 4px 0 0; font-size: .66rem; color: var(--muted); line-height: 1.3; }
.foto-acoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.foto-busca { margin: 14px 0; padding: 14px; background: #fff; border: 1px solid #d8c39c; border-radius: 8px; }
.foto-candidatos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.foto-cand { margin: 0; display: flex; flex-direction: column; gap: 6px; padding: 8px; border: 1px solid #e0cfab; border-radius: 8px; background: #fbf6ea; }
.foto-cand img { width: 100%; height: 180px; object-fit: contain; background: #fff; border-radius: 4px; }
.foto-cand figcaption { display: flex; flex-direction: column; gap: 4px; font-size: .78rem; }
.foto-cand small { color: var(--muted); font-size: .68rem; }
.barra-progresso { height: 10px; border-radius: 5px; background: #e7dcc5; overflow: hidden; margin: 8px 0; }
.barra-progresso i { display: block; height: 100%; width: 0; background: var(--tinto); transition: width .4s ease; }
.detail-photo { height: auto; overflow: visible; border: 0; background: none; border-radius: 0; }
.detail-photo img { display: block; width: 100%; height: 190px; object-fit: cover; border-radius: 10px; border: 1px solid #ddc9a3; }
.detail-photo .rotulo { min-height: 0; height: 190px; }
.foto-acoes .btn { flex: 1 1 auto; padding: 6px 8px; font-size: .78rem; }
@media (min-width: 700px) { .detail-photo img, .detail-photo .rotulo { height: 260px; } }

/* ===================== Pessoas e acessos ===================== */
.papeis-explica { display: grid; gap: 6px; margin: 8px 0 14px; }
@media (min-width: 700px) { .papeis-explica { grid-template-columns: repeat(3, 1fr); } }
.papeis-explica div { padding: 8px 10px; background: #fbf6ea; border: 1px solid #e0cfab; border-radius: 8px; }
.papeis-explica b { display: block; font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; }
.papeis-explica span { font-size: .8rem; color: var(--muted); }
.senha-nova { margin: 10px 0 16px; padding: 14px; border-radius: 10px; background: #eef4e7; border: 1px solid #b9d0a3; }
.senha-dados { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.05rem; background: #fff; padding: 10px; border-radius: 6px; }
.usuario-novo { display: grid; gap: 4px; }
@media (min-width: 700px) { .usuario-novo { grid-template-columns: 1fr 1fr; column-gap: 12px; } .usuario-novo button { grid-column: 1 / -1; justify-self: start; } }
.usuarios-lista { display: grid; gap: 8px; }
.usuario-linha { display: grid; gap: 8px; padding: 10px 12px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 8px; }
@media (min-width: 700px) { .usuario-linha { grid-template-columns: 1fr 200px; align-items: center; } .usuario-acoes { grid-column: 1 / -1; } }
.usuario-linha.inativo { opacity: .6; }
.usuario-linha.fixo { border-style: dashed; }
.usuario-id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.usuario-id strong { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.usuario-id small { color: var(--muted); font-size: .76rem; }
.usuario-nome { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 700; border: 1px solid transparent; background: transparent; padding: 2px 4px; margin-left: -4px; border-radius: 4px; }
.usuario-nome:focus { border-color: #ddc9a3; background: #fff; }
.usuario-linha select { padding: 8px; border-radius: 8px; border: 1.5px solid #ddc9a3; background: #fff; font: 500 .88rem 'Inter', sans-serif; }
.usuario-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.papel-tag { justify-self: start; font-size: .74rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: #efe1bf; }
.papel-tag.papel-admin { background: var(--garrafa); color: var(--ouro-claro); }
.form-senha { max-width: 420px; }
.aluno-cursos { display: grid; gap: 8px; margin: 4px 0; } @media (min-width: 600px) { .aluno-cursos { grid-template-columns: 1fr 1fr; } } .aluno-cursos div { display: flex; flex-direction: column; gap: 2px; padding: 6px 8px; background: #fff; border-radius: 6px; border: 1px solid #ece0c8; } .aluno-cursos b { font-size: .86rem; }
.glossario { display: grid; gap: 6px; }
@media (min-width: 600px) { .glossario { grid-template-columns: 1fr 1fr; } }
.termo { padding: 6px 8px; background: #fff; border: 1px solid #ece0c8; border-radius: 6px; }
.termo b { display: block; font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; color: var(--tinto); }
.termo span { font-size: .84rem; }
.aula-bloco.pratica { background: #f3e6cc; }
.exercicio textarea.ex-resp { width: 100%; }
.degus-escolha { display: grid; gap: 8px; margin-bottom: 12px; }
.degus-escolha select { padding: 10px; border-radius: 10px; border: 1.5px solid #ddc9a3; background: #fffaf0; font: 500 .92rem 'Inter', sans-serif; width: 100%; }
.degus-vinho { padding: 10px 12px; background: var(--garrafa); color: var(--papel); border-radius: 8px; margin-bottom: 10px; }
.degus-vinho strong { display: block; font-family: 'Cormorant SC', serif; font-size: 1.3rem; }
.degus-vinho small { color: #d9c8a8; }
.degus-campos { display: grid; gap: 10px; margin-bottom: 12px; }
.degus-campo { display: grid; grid-template-columns: 70px 1fr 78px; align-items: center; gap: 10px; }
.degus-campo span { font-family: 'Cormorant SC', serif; font-weight: 700; }
.degus-campo input[type=range] { width: 100%; accent-color: var(--tinto); }
.degus-campo em { font-style: normal; font-size: .8rem; color: var(--muted); }
.degus-tabela { display: grid; gap: 6px; margin: 8px 0; }
.degus-linha { display: grid; grid-template-columns: 70px 1fr 1fr auto; gap: 6px; align-items: center; padding: 6px 8px; border-radius: 6px; background: #fbf0dc; font-size: .82rem; }
.degus-linha.ok { background: #eef4e7; }
.aroma.aroma-ok { background: #e3eed9; border-color: #9fbf83; font-weight: 600; }

/* =====================================================================
   ESTILOS DO SISTEMA (troca em Mais › Estilo do sistema)
   tema-classico = visual original · tema-barricas · tema-roda
   ===================================================================== */

/* ---------- Escolha de estilo (menu Mais e página /estilo) ---------- */
.mais-estilos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.estilo-op {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 4px 10px;
  border: 1px solid #e0cfab; border-radius: 12px; background: #fbf6ea; color: var(--tinta);
  font: 600 .74rem 'Inter', sans-serif; cursor: pointer; min-height: 44px;
}
.estilo-op.ativo { border-color: var(--ouro); box-shadow: inset 0 0 0 1px var(--ouro); }
.estilo-amostra { width: 100%; height: 34px; border-radius: 8px; display: block; }
.estilo-op-classico .estilo-amostra { background: linear-gradient(180deg, #3b1613 0 45%, #f5edda 45% 100%); box-shadow: inset 0 0 0 1px #a97a35; }
.estilo-op-barricas .estilo-amostra {
  background: radial-gradient(circle at 30% 60%, #a8723f 0 9px, #2b2b2b 9px 11px, transparent 11px),
              radial-gradient(circle at 70% 60%, #a8723f 0 9px, #2b2b2b 9px 11px, transparent 11px),
              repeating-linear-gradient(90deg, #5a3820 0 14px, #4a2e1a 14px 15px);
}
.estilo-op-roda .estilo-amostra {
  background: radial-gradient(circle at 50% 50%, #8a2a2f 0 7px, #d6b26f 7px 8px, transparent 8px),
              radial-gradient(ellipse 40% 26% at 50% 55%, transparent 80%, rgba(214,178,111,.8) 82%, transparent 88%),
              radial-gradient(circle at 50% 30%, #4a1418, #1c0d0a 75%);
}
.mais-estilo-link { display: block; margin-top: 8px; font-size: .82rem; font-weight: 600; color: var(--tinto); text-decoration: none; text-align: right; }

.estilos-lista { display: grid; gap: 14px; margin-top: 12px; }
@media (min-width: 700px) { .estilos-lista { grid-template-columns: repeat(3, 1fr); } }
.estilo-cartao { display: flex; flex-direction: column; gap: 10px; padding: 12px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 16px; }
.estilo-cartao.ativo { border-color: var(--ouro); box-shadow: 0 0 0 2px var(--ouro); }
.estilo-info strong { display: block; font-family: 'Cormorant SC', serif; font-size: 1.3rem; }
.estilo-info span { font-size: .86rem; color: var(--muted); }
.estilo-tag { display: inline-block; margin-top: 6px; font-size: .72rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: #efe1bf; color: #6b4a1f; }
.estilo-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.estilo-usando { cursor: default; }
.estilo-previa { position: relative; height: 190px; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 10px; padding-top: 14px; }
.estilo-previa > * { display: block; }
.pv-nav { position: absolute; left: 10px; right: 10px; bottom: 8px; height: 18px; border-radius: 8px; }
.previa-classico { background: linear-gradient(180deg, #3b1613 0 52%, #f2e9d8 52%); }
.previa-classico .pv-rotulo { width: 70%; padding: 10px; text-align: center; background: #f5edda; outline: 1px solid #a97a35; outline-offset: -4px; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.previa-classico .pv-rotulo b { display: block; font-family: 'Cormorant SC', serif; font-size: 1rem; color: #24140f; }
.previa-classico .pv-rotulo i { font-family: 'Cormorant Garamond', serif; font-size: .8rem; color: #6e1d22; }
.pv-tiles, .pv-barris { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; width: 84%; }
.pv-barris { gap: 14px; width: 74%; }
.previa-classico .pv-tiles span { height: 30px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 3px; }
.previa-classico .pv-nav { background: #2b1810; }
.previa-barricas { background: repeating-linear-gradient(90deg, #5a3820 0 26px, #4a2e1a 26px 28px); }
.previa-barricas .pv-placa { padding: 6px 16px; font-family: 'Cormorant SC', serif; font-weight: 700; color: #2a180c; background: linear-gradient(180deg, #f0d79c, #b8913f 60%, #8a6a2a); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.45); }
.previa-barricas .pv-barris span { aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, #9a6537 0 3px, #87552c 3px 5px); box-shadow: 0 0 0 3px #2b2b2b, 0 0 0 4px #6b6b6b, 0 6px 10px rgba(0,0,0,.5); }
.previa-barricas .pv-nav { background: linear-gradient(#5a3820, #2a180c); box-shadow: inset 0 2px 0 #c9a24a; }
.previa-roda { background: radial-gradient(80% 60% at 50% 35%, #4a1418, #1c0d0a 75%); }
.pv-roda { position: relative; width: 86%; height: 100px; }
.pv-roda::before { content: ""; position: absolute; left: 6%; right: 6%; top: 40%; height: 46%; border-radius: 50%; border: 1px solid rgba(214,178,111,.5); }
.pv-centro { position: absolute; left: 50%; top: 18%; width: 46px; height: 46px; margin-left: -23px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #8a2a2f, #3a0d10); border: 2px solid #d6b26f; }
.pv-i { position: absolute; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 7px; background: linear-gradient(145deg, #6e1d22, #2a0a0e); border: 1px solid rgba(214,178,111,.6); }
.pv-i.a { left: 50%; top: 86%; width: 28px; height: 28px; margin: -14px 0 0 -14px; background: linear-gradient(145deg, #f0d79c, #a97a35); }
.pv-i.b { left: 82%; top: 70%; } .pv-i.c { left: 18%; top: 70%; } .pv-i.d { left: 76%; top: 42%; opacity: .6; transform: scale(.8); } .pv-i.e { left: 24%; top: 42%; opacity: .6; transform: scale(.8); }
.previa-roda .pv-card { width: 80%; height: 34px; border-radius: 10px; border: 1px solid rgba(214,178,111,.35); background: rgba(255,255,255,.07); }
.previa-roda .pv-nav { background: rgba(20,8,8,.9); border: 1px solid rgba(214,178,111,.3); border-radius: 10px; }

/* ---------- Partes comuns dos estilos 3D ---------- */
.nav-3d .nav-icon .icone { width: 24px; height: 24px; }
.nav-centro { position: relative; }
.nav-centro-bt { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin-top: -26px; }
.nav-centro-bt .icone { width: 26px; height: 26px; }
.nav-centro-txt { margin-top: 2px; }

/* =========================== BARRICAS =========================== */
body.tema-barricas {
  --b-madeira: #5a3820; --b-madeira-2: #4a2e1a; --b-escura: #2a180c;
  --b-latao: #c9a24a; --b-latao-claro: #f0d79c; --b-ferro: #2b2b2b;
  background:
    linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.05) 30%, rgba(0,0,0,.35)),
    repeating-linear-gradient(90deg, transparent 0 63px, rgba(0,0,0,.45) 63px 65px),
    repeating-linear-gradient(90deg, #5a3820 0 9px, #553519 9px 21px, #5e3b22 21px 34px, #51321c 34px 47px, #5a3820 47px 65px);
  background-attachment: fixed;
  padding-bottom: 96px;
}
.tema-barricas .topbar {
  background: linear-gradient(180deg, #3a2414, var(--b-escura));
  border-bottom: 2px solid var(--b-latao);
  box-shadow: 0 4px 12px rgba(0,0,0,.45);
}
.tema-barricas .brand { font-family: 'Cormorant SC', serif; color: var(--b-latao-claro); font-size: 1.35rem; text-shadow: 0 1px 0 #000; }
.tema-barricas .container {
  background: radial-gradient(140% 90% at 50% 0%, #f8f0de, #efe2c4);
  margin: 14px 10px 0; border-radius: 12px;
  box-shadow: 0 0 0 3px #7a5230, 0 0 0 5px var(--b-latao), 0 18px 40px rgba(0,0,0,.55);
}
@media (min-width: 740px) { .tema-barricas .container { margin: 18px auto 0; } }
.tema-barricas .page-title { font-family: 'Cormorant SC', serif; }

/* Início: tudo direto sobre a madeira */
.tema-barricas.pg-inicio .container { background: transparent; box-shadow: none; margin: 0 auto; border-radius: 0; }
.tema-barricas .casa { background: transparent; border: 0; padding-top: 18px; }
.tema-barricas .casa-rotulo {
  background: linear-gradient(180deg, #f6e2a8 0%, #d9b866 22%, #b8913f 60%, #8a6a2a 100%);
  border: 1px solid #6b4f1c; outline: 1px solid rgba(255,240,200,.55); outline-offset: -6px;
  border-radius: 8px;
  box-shadow: 0 16px 30px rgba(0,0,0,.6), inset 0 2px 0 rgba(255,255,255,.6), inset 0 -3px 0 rgba(0,0,0,.25);
  transform: perspective(700px) rotateX(6deg);
}
.tema-barricas .casa-rotulo::before, .tema-barricas .casa-rotulo::after {
  content: ""; position: absolute; top: 12px; width: 10px; height: 10px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff4d0, #8a6a2a 70%); box-shadow: 0 1px 1px rgba(0,0,0,.5);
}
.tema-barricas .casa-rotulo::before { left: 12px; } .tema-barricas .casa-rotulo::after { right: 12px; }
.tema-barricas .casa-sup { color: #4a3210; }
.tema-barricas .casa-gravura { color: #4a3210; }
.tema-barricas .casa-nome { color: #2a180c; text-shadow: 0 1px 0 rgba(255,240,200,.7); }
.tema-barricas .casa-saudacao { color: #5a2a10; }
.tema-barricas .casa-busca { background: #fff8e6; border-color: #6b4f1c; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); }
.tema-barricas .casa-mic { background: linear-gradient(145deg, #6a4224, #2a180c); color: var(--b-latao-claro); box-shadow: 0 0 0 2px var(--b-ferro); }
.tema-barricas .casa-rodape { color: #3a2410; border-top-color: rgba(60,40,10,.4); }
.tema-barricas .casa-rotulo .voice-status { color: #2a180c; }

.tema-barricas.pg-inicio .secao-titulo { color: var(--b-latao-claro); text-shadow: 0 1px 2px #000; }
.tema-barricas.pg-inicio .secao-titulo::after { background: linear-gradient(90deg, var(--b-latao), transparent); height: 2px; }
.tema-barricas.pg-inicio .secao-link { color: var(--b-latao-claro); }
.tema-barricas.pg-inicio .hint, .tema-barricas.pg-inicio .credito { color: #e6d3ad; }
.tema-barricas.pg-inicio .cellar-login a { color: var(--b-latao-claro); }

/* Garrafeira: cada vinho num nicho da estante de madeira */
.tema-barricas .garrafeira { padding-top: 6px; }
.tema-barricas .garrafa-foto {
  border-radius: 8px; border: 3px solid var(--b-escura);
  box-shadow: inset 0 0 0 2px #7a5230, 0 10px 18px rgba(0,0,0,.6);
}
.tema-barricas.pg-inicio .garrafa-nome { color: #fbf0d8; text-shadow: 0 1px 2px #000; }
.tema-barricas.pg-inicio .garrafa-info { color: #dcc69c; }

/* Caves por tipo: pontas de garrafa na adega */
.tema-barricas .cave { background: linear-gradient(180deg, #3a2414, #24150b); border-color: #7a5230; color: #f3e6c8; padding-left: 6px; }
.tema-barricas .cave-selo { width: 22px; height: 22px; box-shadow: 0 0 0 3px #1a0f07, 0 0 0 4px #7a5230; background: radial-gradient(circle at 50% 50%, #120806 0 3px, transparent 4px), radial-gradient(circle at 35% 30%, rgba(255,255,255,.35), transparent 45%), var(--cor); }
.tema-barricas .cave-n { color: #cdb486; }

/* Módulos = tampos de barril */
.tema-barricas .etiquetas { gap: 22px 18px; padding: 8px 6px; }
.tema-barricas .etiqueta {
  aspect-ratio: 1; min-height: 0; border-radius: 50%;
  align-items: center; justify-content: center; text-align: center; gap: 5px; padding: 16%;
  color: #fbefd6; outline: 0; border: 0;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,220,160,.18), transparent 55%),
    repeating-radial-gradient(circle at 50% 50%, #9a6537 0 5px, #8c5a30 5px 7px, #966135 7px 12px, #84532b 12px 14px),
    #8c5a30;
  box-shadow:
    inset 0 0 0 5px #5a3820, inset 0 0 0 7px rgba(0,0,0,.35), inset 0 -10px 22px rgba(0,0,0,.35),
    0 0 0 5px var(--b-ferro), 0 0 0 7px #6b6b6b, 0 0 0 8px #1a1a1a,
    0 16px 22px rgba(0,0,0,.6);
  transform: perspective(500px) rotateX(10deg);
  transition: transform .15s ease;
}
.tema-barricas .etiqueta:hover { transform: perspective(500px) rotateX(4deg) translateY(-2px); box-shadow:
    inset 0 0 0 5px #5a3820, inset 0 0 0 7px rgba(0,0,0,.35), inset 0 -10px 22px rgba(0,0,0,.35),
    0 0 0 5px var(--b-ferro), 0 0 0 7px #6b6b6b, 0 0 0 8px #1a1a1a, 0 20px 26px rgba(0,0,0,.6); }
.tema-barricas .etiqueta:active { transform: perspective(500px) rotateX(10deg) scale(.97); }
.tema-barricas .etiqueta-icone { width: 38px; height: 38px; flex-shrink: 0; color: #2a180c; border: 0;
  background: radial-gradient(circle at 35% 30%, #fff4d0, #c9a24a 55%, #8a6a2a); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.tema-barricas .etiqueta-corpo { align-items: center; }
.tema-barricas .etiqueta-titulo { font-family: 'Cormorant SC', serif; font-size: 1.02rem; text-shadow: 0 1px 2px rgba(0,0,0,.8); }
.tema-barricas .etiqueta-texto { color: #f0dfbd; font-size: .7rem; text-shadow: 0 1px 1px rgba(0,0,0,.8);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tema-barricas .etiqueta-nota { top: -4px; right: 50%; transform: translateX(50%); white-space: nowrap; background: var(--b-latao-claro); border-color: #8a6a2a; color: #2a180c; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.tema-barricas .etiqueta-nota-alerta { background: #e0533d; color: #fff; border-color: #8f2a1a; }
.tema-barricas .etiqueta-destaque {
  background:
    radial-gradient(circle at 50% 42%, rgba(255,180,120,.15), transparent 55%),
    repeating-radial-gradient(circle at 50% 50%, #4a2a16 0 5px, #3c2010 5px 7px, #44261a 7px 12px, #351c0e 12px 14px),
    #3f2312;
}
.tema-barricas .etiqueta-destaque .etiqueta-icone { color: #f0d79c; background: radial-gradient(circle at 35% 30%, #a83a3f, #5a1013 70%); }
@media (max-width: 340px) { .tema-barricas .etiquetas { grid-template-columns: 1fr 1fr; } .tema-barricas .etiqueta-texto { display: none; } }
@media (min-width: 700px) { .tema-barricas .etiquetas { grid-template-columns: repeat(3, 1fr); } }

/* Barra de baixo de madeira com o botão-barril no meio */
.tema-barricas .bottom-nav {
  background: linear-gradient(180deg, #5a3820, #2a180c);
  border-top: 2px solid var(--b-latao);
  box-shadow: 0 -6px 16px rgba(0,0,0,.5);
}
.tema-barricas .nav-item { color: #d9c29a; }
.tema-barricas .nav-item.active, .tema-barricas .nav-mais[aria-expanded="true"] { color: var(--b-latao-claro); background: rgba(201,162,74,.16); }
.tema-barricas .nav-centro-bt {
  border-radius: 50%; color: #2a180c;
  background: repeating-radial-gradient(circle, #a8723f 0 4px, #93602f 4px 6px);
  box-shadow: 0 0 0 4px var(--b-ferro), 0 0 0 6px #6b6b6b, 0 10px 18px rgba(0,0,0,.6), inset 0 0 0 3px #5a3820;
}
.tema-barricas .nav-centro-bt .icone { color: #fff3d6; filter: drop-shadow(0 1px 1px #000); }
.tema-barricas .nav-centro.active .nav-centro-bt { box-shadow: 0 0 0 4px var(--b-latao), 0 0 0 6px #8a6a2a, 0 10px 18px rgba(0,0,0,.6), inset 0 0 0 3px #5a3820; }
.tema-barricas .nav-ponto { box-shadow: 0 0 0 2px var(--b-escura); }

/* Menu Mais: pergaminho com moldura de latão */
.tema-barricas .menu-mais { border-top: 4px solid var(--b-latao); background: linear-gradient(180deg, #f8f0de, #efe2c4); }
.tema-barricas .mais-ic { color: #2a180c; border: 0; background: radial-gradient(circle at 35% 30%, #fff4d0, #c9a24a 55%, #8a6a2a); }

/* ============================ RODA ============================ */
body.tema-roda {
  --r-fundo: #1c0d0a; --r-ouro: #d6b26f; --r-ouro-claro: #e8c98a; --r-texto: #f3e9d6;
  background:
    radial-gradient(70% 40% at 15% 0%, rgba(150,40,50,.45), transparent 70%),
    radial-gradient(50% 35% at 100% 45%, rgba(214,178,111,.14), transparent 70%),
    radial-gradient(80% 50% at 50% 100%, rgba(110,29,34,.55), transparent 70%),
    var(--r-fundo);
  background-attachment: fixed;
  padding-bottom: 104px;
}
.tema-roda .topbar {
  background: rgba(20,8,8,.78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(214,178,111,.28);
}
.tema-roda .brand { font-family: 'Cormorant SC', serif; color: var(--r-ouro-claro); font-size: 1.35rem; }
.tema-roda .admin-link, .tema-roda .admin-link a { color: rgba(243,233,214,.85); }
.tema-roda .container {
  background: var(--papel); margin: 14px 10px 0; border-radius: 24px;
  box-shadow: 0 24px 50px rgba(0,0,0,.6), 0 0 0 1px rgba(214,178,111,.35);
}
@media (min-width: 740px) { .tema-roda .container { margin: 18px auto 0; } }
.tema-roda .page-title { font-family: 'Cormorant SC', serif; }

/* Início: escuro, com vidro */
.tema-roda.pg-inicio .container { background: transparent; box-shadow: none; margin: 0 auto; border-radius: 0; color: var(--r-texto); }
.tema-roda.pg-inicio .secao-titulo { color: var(--r-texto); }
.tema-roda.pg-inicio .secao-titulo::after { background: linear-gradient(90deg, var(--r-ouro), transparent); }
.tema-roda.pg-inicio .secao-link { color: var(--r-ouro-claro); }
.tema-roda.pg-inicio .hint, .tema-roda.pg-inicio .credito { color: rgba(243,233,214,.7); }
.tema-roda.pg-inicio .cellar-login a { color: var(--r-ouro-claro); }
.tema-roda.pg-inicio .garrafa-nome { color: var(--r-texto); }
.tema-roda.pg-inicio .garrafa-info { color: rgba(243,233,214,.65); }
.tema-roda .garrafa-foto { border-color: rgba(214,178,111,.7); box-shadow: 0 14px 26px rgba(0,0,0,.6), inset 0 0 0 3px #2a0a0e; }
.tema-roda .cave { background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.03)); border-color: rgba(255,255,255,.16); color: var(--r-texto); }
.tema-roda .cave-selo { box-shadow: 0 0 0 2px #1c0d0a, 0 0 0 3px var(--cor); }
.tema-roda .cave-n { color: rgba(243,233,214,.6); }
.tema-roda .etiqueta {
  color: var(--r-texto); border: 1px solid rgba(255,255,255,.14); outline: 0; border-radius: 18px;
  background: linear-gradient(160deg, rgba(255,255,255,.13), rgba(255,255,255,.03));
  box-shadow: 0 12px 24px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.16);
}
.tema-roda .etiqueta:hover { box-shadow: 0 16px 30px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.2); }
.tema-roda .etiqueta-icone { border: 0; color: #f5edda; border-radius: 14px; background: linear-gradient(145deg, #8a2a2f, #4a1013); box-shadow: 0 6px 12px rgba(110,29,34,.55), inset 0 1px 0 rgba(255,255,255,.3); }
.tema-roda .etiqueta-texto { color: rgba(243,233,214,.7); }
.tema-roda .etiqueta-nota { background: rgba(214,178,111,.2); border-color: rgba(214,178,111,.45); color: var(--r-ouro-claro); }
.tema-roda .etiqueta-nota-alerta { background: #e0533d; border-color: #e0533d; color: #fff; }
.tema-roda .etiqueta-destaque { border-color: rgba(214,178,111,.5); background: linear-gradient(160deg, rgba(214,178,111,.22), rgba(110,29,34,.25)); }
.tema-roda .etiqueta-destaque .etiqueta-icone { color: #1c0d0a; background: linear-gradient(145deg, #f0d79c, #a97a35); }

/* A roda */
.roda-palco { margin: -18px -14px 6px; padding: 12px 14px 4px; }
.roda-cab { display: flex; flex-direction: column; gap: 2px; padding: 0 6px; }
.roda-dica { font-size: .78rem; color: rgba(243,233,214,.65); }
.roda-saud { font-family: 'Cormorant Garamond', serif; font-weight: 700; font-size: 1.65rem; line-height: 1.1; color: var(--r-texto); }
.roda { position: relative; isolation: isolate; z-index: 0; height: 290px; margin-top: -20px; max-width: 440px; margin: 0 auto; touch-action: pan-y; }
.roda-anel { position: absolute; left: 6%; right: 6%; top: 52%; height: 54%; transform: translateY(-50%) perspective(600px) rotateX(10deg);
  border-radius: 50%; border: 1px solid rgba(214,178,111,.38); background: radial-gradient(ellipse, rgba(214,178,111,.10), transparent 70%); }
.roda-anel-2 { left: 20%; right: 20%; height: 34%; border-style: dashed; border-color: rgba(214,178,111,.22); background: none; }
.roda-centro {
  position: absolute; left: 50%; top: 42%; width: 104px; height: 104px; transform: translate(-50%, -50%); z-index: 55;
  border-radius: 50%; border: 2px solid var(--r-ouro); cursor: pointer;
  background: radial-gradient(circle at 35% 30%, #8a2a2f, #3a0d10 75%); color: #f5edda;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  font: 600 .66rem 'Inter', sans-serif; letter-spacing: .1em; text-transform: uppercase;
  box-shadow: 0 20px 40px rgba(0,0,0,.6), 0 0 0 8px rgba(214,178,111,.10), inset 0 2px 0 rgba(255,255,255,.25);
}
.roda-centro .icone { width: 30px; height: 30px; }
.roda-centro.listening { background: radial-gradient(circle at 35% 30%, #d0453a, #7a1410 75%); animation: pulse 1s infinite; }
.roda-centro:disabled { opacity: .85; cursor: default; }
.roda-item {
  position: absolute; left: 0; top: 0; width: 72px; height: 72px; padding: 6px 4px;
  border-radius: 22px; border: 1px solid rgba(214,178,111,.45); cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  font: 600 .62rem/1.1 'Inter', sans-serif; text-align: center; color: var(--r-texto);
  background: linear-gradient(145deg, #6e1d22, #2a0a0e);
  box-shadow: 0 14px 24px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.25);
  opacity: 0; will-change: transform;
}
.roda.pronta .roda-item { transition: background .25s ease, color .25s ease, border-color .25s ease; }
.roda-item .icone { width: 24px; height: 24px; flex-shrink: 0; }
.roda-item span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.roda-item.frente { color: #1c0d0a; border-color: #f0d79c; background: linear-gradient(145deg, #f0d79c, #a97a35); box-shadow: 0 18px 30px rgba(169,122,53,.35), 0 14px 24px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.6); }
.roda-ponto { position: absolute; top: -4px; right: -4px; width: 12px; height: 12px; border-radius: 50%; background: #e0533d; box-shadow: 0 0 0 2px #1c0d0a; }
.roda-cartao {
  margin: 4px 4px 0; padding: 16px 16px 16px; border-radius: 22px;
  border: 1px solid rgba(214,178,111,.35); color: var(--r-texto);
  background: linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.02));
  box-shadow: 0 18px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.12);
}
.roda-cartao-cab { display: flex; justify-content: space-between; align-items: center; }
.roda-n { font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--r-ouro); font-weight: 600; }
.roda-setas { display: flex; gap: 8px; }
.roda-setas button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(214,178,111,.4); background: transparent; color: var(--r-ouro-claro); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.roda-setas .icone { width: 18px; height: 18px; }
.roda-nome { margin: 4px 0 0; font-family: 'Cormorant SC', serif; font-weight: 700; font-size: 1.85rem; line-height: 1.05; color: var(--r-texto); }
.roda-texto { margin: 6px 0 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.08rem; line-height: 1.3; color: rgba(243,233,214,.85); min-height: 2.6em; }
.roda-nota { display: inline-block; margin-top: 6px; font-size: .74rem; font-weight: 700; padding: 2px 10px; border-radius: 999px; background: #e0533d; color: #fff; }
.roda-abrir {
  display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin-top: 12px; border-radius: 14px;
  text-decoration: none; font-weight: 600; font-size: .95rem; color: #1c0d0a;
  background: linear-gradient(145deg, #f0d79c, #a97a35); box-shadow: 0 10px 20px rgba(169,122,53,.3), inset 0 1px 0 rgba(255,255,255,.6);
}
.roda-abrir .icone { width: 18px; height: 18px; }
.roda-busca {
  display: flex; align-items: center; gap: 6px; margin: 14px 4px 0; padding: 4px 4px 4px 14px; border-radius: 999px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16);
}
.roda-busca .casa-busca-ic { color: var(--r-ouro); }
.roda-busca .icone { width: 20px; height: 20px; }
.roda-busca input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; color: var(--r-texto); font: 500 .98rem 'Inter', sans-serif; padding: 10px 2px; }
.roda-busca input::placeholder { color: rgba(243,233,214,.55); }
.roda-busca-ok { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 0; font: 600 .86rem 'Inter', sans-serif; color: #1c0d0a; background: var(--r-ouro); cursor: pointer; }
.roda-palco .voice-status { color: var(--r-ouro-claro); text-align: center; margin: 6px 0 0; min-height: 0; }
.roda-rodape { display: block; text-align: center; margin-top: 10px; font-family: 'Cormorant SC', serif; font-weight: 600; font-size: .8rem; letter-spacing: .14em; color: rgba(243,233,214,.55); }
@media (prefers-reduced-motion: reduce) { .roda-centro.listening { animation: none; } }

/* Barra flutuante de vidro com o medalhão dourado no meio */
.tema-roda .bottom-nav {
  left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); padding: 4px 6px;
  border-radius: 24px; border: 1px solid rgba(214,178,111,.28);
  background: rgba(20,8,8,.88); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 16px 30px rgba(0,0,0,.55);
}
.tema-roda .nav-item { color: rgba(243,233,214,.72); }
.tema-roda .nav-item.active, .tema-roda .nav-mais[aria-expanded="true"] { color: var(--r-ouro-claro); background: rgba(214,178,111,.12); }
.tema-roda .nav-centro-bt {
  border-radius: 50%; color: #1c0d0a;
  background: radial-gradient(circle at 35% 30%, #f6e2a8, #a97a35 75%);
  box-shadow: 0 12px 24px rgba(169,122,53,.45), 0 0 0 5px rgba(20,8,8,.9), 0 0 0 6px rgba(214,178,111,.5), inset 0 2px 0 rgba(255,255,255,.6);
}
.tema-roda .nav-centro.active { background: none; }
.tema-roda .nav-ponto { box-shadow: 0 0 0 2px #140808; }
@media (min-width: 700px) {
  .tema-roda .bottom-nav { left: 50%; right: auto; width: 520px; transform: translateX(-50%); border-top: 1px solid rgba(214,178,111,.28); }
  .tema-barricas .bottom-nav { border-top: 2px solid var(--b-latao); }
}

/* Menu Mais escuro, de vidro */
.tema-roda .menu-mais { background: #1f0f0c; border-top: 1px solid rgba(214,178,111,.5); color: var(--r-texto); }
.tema-roda .mais-alca { background: rgba(214,178,111,.4); }
.tema-roda .mais-cab { border-bottom-color: rgba(214,178,111,.25); }
.tema-roda .mais-cab strong { color: var(--r-texto); }
.tema-roda .mais-cab span { color: rgba(243,233,214,.6); }
.tema-roda .mais-fechar { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); color: var(--r-texto); }
.tema-roda .mais-grupo { color: var(--r-ouro); }
.tema-roda .mais-item, .tema-roda .estilo-op { background: linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,.03)); border-color: rgba(255,255,255,.12); color: var(--r-texto); }
.tema-roda .mais-item.ativo, .tema-roda .estilo-op.ativo { border-color: var(--r-ouro); box-shadow: inset 0 0 0 1px var(--r-ouro); }
.tema-roda .mais-ic { border: 0; border-radius: 12px; color: #f5edda; background: linear-gradient(145deg, #8a2a2f, #4a1013); }
.tema-roda .mais-n { background: rgba(214,178,111,.25); color: var(--r-ouro-claro); }
.tema-roda .mais-n.alerta { background: #e0533d; color: #fff; }
.tema-roda .mais-estilo-link { color: var(--r-ouro-claro); }
.tema-roda .mais-conta .btn-outline { color: var(--r-texto); border-color: rgba(214,178,111,.5); background: transparent; }

/* Telas sem barra de baixo (login) não precisam do espaço extra */
body.tema-barricas.pg-login, body.tema-roda.pg-login { padding-bottom: 24px; }

/* =====================================================================
   MÓDULO PROFISSIONAL DE SOMMELIER
   ===================================================================== */
.pro-titulo { margin: 0 0 8px; font-family: 'Cormorant SC', serif; font-weight: 700; font-size: 1.25rem; letter-spacing: .05em; color: var(--tinta); }
.pro-titulo small { font-family: 'Inter', sans-serif; font-size: .72rem; font-weight: 500; letter-spacing: 0; color: var(--muted); }
.pro-servico, .pro-pronuncia, .pro-sugestoes, .pro-preco {
  margin: 18px 0; padding: 14px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 12px;
}
.pro-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 640px) { .pro-grade { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pro-item { display: flex; flex-direction: column; gap: 2px; padding: 9px 10px; background: #fff; border: 1px solid #ece0c8; border-radius: 8px; }
.pro-rot { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.pro-item b { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; line-height: 1.15; }
.pro-porque { margin: 10px 0 0; font-size: .86rem; line-height: 1.45; color: #4b3a2c; }
.pro-passos { margin-top: 10px; }
.pro-passos summary { cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--tinto); min-height: 32px; display: flex; align-items: center; }
.pro-passos ol { margin: 6px 0 0; padding-left: 22px; font-size: .9rem; line-height: 1.5; }
.pro-passos li { margin-bottom: 4px; }
.pro-servico.compacto .pro-porque { display: none; }

/* janela de consumo */
.janela-tag { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: .74rem; font-weight: 700; letter-spacing: .02em; }
.janela-jovem { background: #e3ecf6; color: #1f4b7a; }
.janela-auge { background: #e3eed9; color: #2f5a1e; }
.janela-ja { background: #fbe8c8; color: #7a4a0c; }
.janela-passou { background: #f6dcd6; color: #8a2b1c; }
.pro-janela { display: grid; gap: 6px; margin-top: 12px; padding: 10px 12px; background: #fff; border: 1px solid #ece0c8; border-radius: 8px; font-size: .88rem; }
.pro-janela small { color: var(--muted); }
.janela-barra { position: relative; display: block; height: 10px; border-radius: 5px; background: #efe5cf; }
.janela-faixa { position: absolute; top: 0; bottom: 0; border-radius: 5px; background: linear-gradient(90deg, #9fbf83, #5f8f43); }
.janela-hoje { position: absolute; top: -4px; width: 4px; height: 18px; margin-left: -2px; border-radius: 2px; background: var(--tinto); box-shadow: 0 0 0 2px #fff; }
.janela-anos { display: flex; justify-content: space-between; font-size: .72rem; color: var(--muted); }

/* selos e local */
.selos { display: inline-flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.selo { padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; background: #e3eed9; color: #2f5a1e; border: 1px solid #b7d1a0; }
.local-adega { margin: 6px 0; font-size: .88rem; padding: 6px 10px; background: #fff7e6; border: 1px dashed #d8b97a; border-radius: 8px; display: inline-block; }
.selos-form { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; }

/* pronúncia */
.pron-lista { display: flex; flex-wrap: wrap; gap: 8px; }
.pron-bt { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px 6px 10px; border-radius: 999px; cursor: pointer;
  border: 1px solid #d8c39c; background: #fff; color: var(--tinta); font: 600 .92rem 'Cormorant Garamond', serif; text-align: left; }
.pron-bt .icone { width: 20px; height: 20px; color: var(--tinto); flex-shrink: 0; }
.pron-bt small { display: block; font: 600 .62rem 'Inter', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.pron-bt:active { transform: scale(.97); }

/* venda sugestiva */
.sug-lista { display: grid; gap: 8px; }
@media (min-width: 640px) { .sug-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sug-item { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; background: #fff; border: 1px solid #ece0c8; border-radius: 10px; text-decoration: none; color: var(--tinta); }
.sug-item:hover { border-color: var(--ouro); }
.sug-rot { align-self: flex-start; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tinto); }
.sug-item b { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; }
.sug-item small { color: var(--muted); font-size: .8rem; }
.sug-preco { font-weight: 700; font-size: .9rem; }
.sug-txt { font-style: italic; }
.txt-alerta { color: #a8321f; }
.btn-defeito { border-color: #c98a7c; color: #8a2b1c; }

/* preços */
.regras-preco { padding: 14px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 12px; margin-bottom: 18px; }
.ok-banner { background: #eef4e7; border-color: #9fbf83; border-left-color: #5f8f43; }
.precos-lista { display: grid; gap: 10px; }
.preco-linha { display: grid; gap: 8px; padding: 12px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 10px; }
.preco-linha.alerta { border-color: #d99a86; box-shadow: inset 4px 0 0 #c45a3f; }
.preco-nome a { color: var(--tinta); text-decoration: none; font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; }
.preco-nome small { display: block; color: var(--muted); font-size: .78rem; }
.preco-campos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.preco-campos label { display: flex; flex-direction: column; gap: 3px; font-size: .72rem; font-weight: 600; color: var(--muted); }
.preco-campos input { width: 100%; padding: 9px 8px; border-radius: 8px; border: 1.5px solid #ddc9a3; background: #fff; font: 500 .95rem 'Inter', sans-serif; min-height: 42px; }
.preco-analise { display: flex; flex-direction: column; gap: 2px; font-size: .84rem; }
.preco-acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (min-width: 760px) {
  .preco-linha { grid-template-columns: 1.3fr 1.6fr 1.2fr; align-items: center; }
  .preco-acoes { grid-column: 1 / -1; }
}

/* relatórios */
.kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
@media (min-width: 640px) { .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kpi { padding: 12px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 10px; display: flex; flex-direction: column; gap: 2px; }
.kpi span { font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.kpi b { font-family: 'Cormorant SC', serif; font-size: 1.6rem; line-height: 1.1; color: var(--tinta); }
.kpi-alerta b { color: #a8321f; }
.tabela-rolar { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 -2px; }
.rel-tabela { min-width: 520px; }
.rel-tabela td a { color: var(--tinto); }
.cobertura { display: grid; gap: 6px; }
.cob-linha { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; padding: 9px 12px; background: #fbf6ea; border: 1px solid #ece0c8; border-radius: 8px; text-decoration: none; color: var(--tinta); }
.cob-linha small { grid-column: 1 / -1; color: var(--muted); font-size: .78rem; }
.cob-linha.alerta { border-color: #d99a86; background: #fbeee9; }

/* defeitos */
.conduta { margin: 0; padding-left: 22px; line-height: 1.55; }
.conduta li { margin-bottom: 6px; }
.defeitos { display: grid; gap: 8px; }
.defeito { background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 10px; }
.defeito summary { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px; padding: 12px 14px; cursor: pointer; min-height: 48px; }
.defeito summary b { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.defeito-tag { font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: #fbe8c8; color: #7a4a0c; }
.defeito-tag.troca { background: #f6dcd6; color: #8a2b1c; }
.defeito dl { margin: 0; padding: 0 14px 12px; }
.defeito dt { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: 8px; }
.defeito dd { margin: 2px 0 0; line-height: 1.45; }
.nao-defeitos { display: grid; gap: 8px; }
@media (min-width: 640px) { .nao-defeitos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nao-defeito { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; background: #eef4e7; border: 1px solid #c4d9b2; border-radius: 10px; font-size: .88rem; }
.nao-defeito b { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; }

/* safras */
.safra-legenda { display: grid; grid-template-columns: auto 1fr auto 1fr; gap: 6px 8px; align-items: center; font-size: .82rem; margin: 10px 0 14px; }
@media (min-width: 640px) { .safra-legenda { display: flex; flex-wrap: wrap; } }
.safras { border-collapse: separate; border-spacing: 3px; min-width: 640px; font-size: .82rem; }
.safras th { font-weight: 600; color: var(--muted); }
.safras thead th { font-size: .74rem; }
.safras tbody th { text-align: left; padding-right: 8px; color: var(--tinta); font-family: 'Cormorant Garamond', serif; font-size: 1rem; white-space: nowrap; position: sticky; left: 0; background: var(--cream); }
.tema-barricas .safras tbody th, .tema-roda .safras tbody th { background: var(--papel); }
.safra-cel { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 30px; border-radius: 6px; font-weight: 700; }
.safra-cel.s5 { background: #5c1a1f; color: #fff; }
.safra-cel.s4 { background: #9b3d3f; color: #fff; }
.safra-cel.s3 { background: #e0b7a5; color: #3a1a12; }
.safra-cel.s2 { background: #efe3cf; color: #6b5640; }
.safra-cel.s1 { background: #f5efe4; color: #8a7a68; }
.safra-cel.s0 { background: transparent; color: #b5a58f; border: 1px dashed #d8c9ae; }
.safra-obs { padding-left: 20px; line-height: 1.5; }
.safra-obs li { margin-bottom: 5px; }

/* regiões: mapa esquemático */
.regiao { margin: 18px 0; padding: 14px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 12px; scroll-margin-top: 70px; }
.regiao-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.regiao-nome { border: 0; background: none; padding: 0; cursor: pointer; font-family: 'Cormorant SC', serif; font-weight: 700; font-size: 1.5rem; color: var(--tinto); text-align: left; min-height: 40px; }
.regiao-cab span { font-size: .8rem; color: var(--muted); }
.regiao-eixo { margin: 2px 0 10px; font-style: italic; font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; }
.mapa-esquema { list-style: none; margin: 0 0 12px; padding: 0 0 0 20px; position: relative; }
.mapa-esquema::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 3px; border-radius: 2px; background: linear-gradient(180deg, #8fb4cf, #4f7ea3); }
.zona { position: relative; margin-bottom: 10px; padding: 10px 12px; background: #fff; border: 1px solid #ece0c8; border-radius: 10px; }
.zona::before { content: ""; position: absolute; left: -19px; top: 14px; width: 11px; height: 11px; border-radius: 50%; background: var(--tinto); box-shadow: 0 0 0 3px #fbf6ea; }
.zona b { font-family: 'Cormorant Garamond', serif; font-size: 1.08rem; }
.zona small { display: block; margin-top: 6px; color: #4b3a2c; font-size: .84rem; line-height: 1.4; }
.zona-subs { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.zona-sub { padding: 5px 10px; min-height: 32px; border-radius: 999px; border: 1px solid #e0cfab; background: #fbf6ea; font: 500 .82rem 'Inter', sans-serif; color: var(--tinta); cursor: pointer; }
.regiao-casa a { color: var(--tinto); }

/* caderno */
.notas-lista { display: grid; gap: 6px; }
.nota-linha { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; align-items: center; padding: 10px 12px; background: #fbf6ea; border: 1px solid #ece0c8; border-radius: 10px; text-decoration: none; color: var(--tinta); }
.nota-linha small { color: var(--muted); font-size: .78rem; }
.nota-vinho b { font-family: 'Cormorant Garamond', serif; font-size: 1.08rem; }
.nota-pontos { grid-row: 1 / span 2; grid-column: 2; font-family: 'Cormorant SC', serif; font-weight: 700; font-size: 1.4rem; color: var(--tinto); }
.caderno-form { display: grid; gap: 14px; }
.cad-bloco { padding: 14px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 12px; }
.cad-bloco .secao-titulo { font-size: 1.15rem; }
.esc-grupo { border: 0; padding: 0; margin: 0 0 12px; }
.esc-grupo legend { font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; padding: 0; }
.esc-opcoes { display: flex; flex-wrap: wrap; gap: 6px; }
.esc-op { position: relative; }
.esc-op input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.esc-op span { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 13px; border-radius: 999px; border: 1px solid #d8c39c; background: #fff; font-size: .88rem; }
.esc-op input:checked + span { background: var(--tinto); border-color: var(--tinto); color: #fff; }
.esc-op input:focus-visible + span { outline: 2px solid var(--ouro); outline-offset: 2px; }
.nota-ficha { display: grid; gap: 10px; }
@media (min-width: 640px) { .nota-ficha { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nota-ficha section { padding: 12px; background: #fbf6ea; border: 1px solid #ece0c8; border-radius: 10px; }
.nota-ficha p { margin: 4px 0; }
.degus-cab { background: transparent !important; font-weight: 700; color: var(--muted); }

/* simulados */
.simulados { display: grid; gap: 12px; margin-top: 12px; }
@media (min-width: 700px) { .simulados { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.simulado-cartao { display: flex; flex-direction: column; gap: 8px; padding: 14px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 12px; }
.simulado-cartao h2 { margin: 0; font-family: 'Cormorant SC', serif; font-size: 1.25rem; }
.simulado-cartao p { margin: 0; font-size: .88rem; color: #4b3a2c; flex: 1; }
.simulado-fatos { margin: 0; padding-left: 18px; font-size: .86rem; }
.sim-topo { position: sticky; top: 58px; z-index: 5; display: flex; align-items: center; gap: 10px; margin: -6px -4px 12px; padding: 10px 12px; border-radius: 12px;
  background: var(--garrafa); color: var(--papel); box-shadow: 0 8px 18px rgba(0,0,0,.25); }
.sim-nome { flex: 1; font-family: 'Cormorant SC', serif; font-size: 1.02rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sim-relogio { font: 700 1.2rem ui-monospace, Menlo, Consolas, monospace; color: var(--ouro-claro); }
.sim-relogio.acabando { color: #ff8a73; }
.sim-progresso { font-size: .8rem; color: #d9c8a8; }
.sim-form { display: grid; gap: 10px; }
.sim-q { margin: 0; padding: 12px; background: #fbf6ea; border: 1px solid #d8c39c; border-radius: 12px; }
.sim-q legend { float: left; width: 100%; padding: 0; margin-bottom: 8px; font-weight: 600; line-height: 1.4; }
.sim-q legend + * { clear: both; }
.sim-n { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin-right: 4px; border-radius: 50%; background: var(--tinto); color: #fff; font-size: .78rem; }
.sim-cat { display: block; margin-top: 2px; font-weight: 500; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.sim-op { display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; min-height: 44px; border-radius: 8px; cursor: pointer; clear: both; }
.sim-op:hover { background: #fff; }
.sim-op input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--tinto); flex-shrink: 0; }
.sim-feedback { margin: 6px 0 0; padding: 6px 10px; border-radius: 6px; font-size: .86rem; font-weight: 600; }
.sim-feedback.ok { background: #e3eed9; color: #2f5a1e; }
.sim-feedback.nao { background: #f6dcd6; color: #8a2b1c; }
.sim-cega { font-size: .9rem; }
#sim-cega-ver { text-decoration: underline; cursor: pointer; color: var(--tinto); }
.sim-resultado { margin-top: 16px; padding: 16px; background: #fbf6ea; border: 2px solid var(--ouro); border-radius: 14px; }
.sim-veredito { margin: 0; font-family: 'Cormorant SC', serif; font-size: 2rem; }
.sim-veredito.ok { color: #2f5a1e; } .sim-veredito.nao { color: #8a2b1c; }
.sim-cats { display: grid; gap: 6px; margin-bottom: 12px; }
.sim-cat-linha { display: grid; grid-template-columns: 130px 1fr 44px; gap: 8px; align-items: center; font-size: .86rem; }
.sim-cat-barra { height: 8px; border-radius: 4px; background: #efe5cf; overflow: hidden; }
.sim-cat-barra span { display: block; height: 100%; background: var(--tinto); }
.escola-atalhos { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.escola-atalhos a { padding: 7px 12px; border-radius: 999px; border: 1px solid #d8c39c; background: #fbf6ea; color: var(--tinto); font-size: .82rem; font-weight: 600; text-decoration: none; }
@media print { .bottom-nav, .topbar, .sim-topo { display: none !important; } }
