/* ClickMesa — identidade visual v1 (cores e fontes de identidade-visual/cores.json) */
:root {
  --rosa: #D6125F;
  --rosa-escuro: #B00E4E;
  --rosa-neon: #FF6FA5;
  --roxo: #2B0F4C;
  --amarelo: #FFC23D;
  --verde: #12B5AD;
  --verde-esc: #0B7A75;
  --creme: #FFF7F0;
  --lavanda: #6B6380;
  --borda: #EADFD8;
  --branco: #FFFFFF;
  --erro: #B42318;
  --r-botao: 14px;
  --r-card: 18px;
  --sombra: 0 6px 24px rgba(43, 15, 76, .08);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Nunito", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--roxo);
  background: var(--creme);
}
h1, h2, h3 { font-family: "Fredoka", "Nunito", sans-serif; font-weight: 600; line-height: 1.15; margin: 0 0 .5em; }
h1 { font-size: clamp(1.8rem, 5vw, 2.8rem); }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.15rem; }
a { color: var(--rosa); }
p { margin: 0 0 1em; }
.muted { color: var(--lavanda); }
.small { font-size: .9rem; }

.container { width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 16px; }
main { padding: 24px 0 64px; }

/* Topo */
.topbar { background: var(--branco); border-bottom: 1px solid var(--borda); position: sticky; top: 0; z-index: 10; }
.topbar .container { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 64px; }
.topbar .logo img { height: 36px; display: block; }
.nav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.nav a, .nav button { font: inherit; font-weight: 600; font-size: .95rem; color: var(--roxo); text-decoration: none; background: none; border: 0; padding: 8px 10px; border-radius: 10px; cursor: pointer; }
.nav a:hover, .nav button:hover { background: var(--creme); }
.nav form { margin: 0; }
@media (max-width: 640px) { .nav .hide-sm { display: none; } }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: inherit; font-weight: 800; font-size: 1rem; padding: 12px 20px; border-radius: var(--r-botao); border: 2px solid transparent; background: var(--rosa); color: var(--branco); text-decoration: none; cursor: pointer; transition: background .15s; }
.btn:hover { background: var(--rosa-escuro); }
.btn-ghost { background: transparent; color: var(--rosa); border-color: var(--rosa); }
.btn-whats { background: #1FA855; border-color: #1FA855; color: #fff; }
.invite-banner { background: var(--creme); border: 1px solid var(--borda); border-radius: 12px; padding: 12px 14px; margin-bottom: 16px; }
.invite-banner ul { margin: 6px 0 0; padding-left: 18px; }
.btn-ghost:hover { background: rgba(214, 18, 95, .06); }
.btn-dark { background: var(--roxo); }
.btn-dark:hover { background: #1C0934; }
.btn-sm { padding: 8px 14px; font-size: .9rem; }
.btn-block { width: 100%; }
.btn-link { background: none; border: 0; color: var(--rosa); font: inherit; font-weight: 700; cursor: pointer; padding: 0; text-decoration: underline; }

/* Cards e grade */
.card { background: var(--branco); border-radius: var(--r-card); box-shadow: var(--sombra); padding: 20px; }
.grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.stack > * + * { margin-top: 16px; }
.row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.row.between { justify-content: space-between; }
.two-cols { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 860px) { .two-cols { grid-template-columns: 1.4fr 1fr; } }

/* Hero */
.hero { background: var(--roxo); color: var(--branco); padding: 48px 0 56px; position: relative; overflow: hidden; }
.hero h1 { color: var(--branco); max-width: 640px; }
.hero h1 em { font-style: normal; color: var(--rosa-neon); }
.hero p { color: #E4DCEF; max-width: 560px; font-size: 1.1rem; }
.hero .confete { position: absolute; border-radius: 50%; opacity: .9; }

/* Busca */
.search { margin-top: 24px; background: var(--branco); color: var(--roxo); border-radius: var(--r-card); padding: 16px; display: grid; gap: 12px; grid-template-columns: 1fr; box-shadow: var(--sombra); }
@media (min-width: 760px) { .search { grid-template-columns: 1.5fr minmax(76px, .55fr) 1.2fr 1fr .9fr auto; align-items: end; } }
@media (max-width: 759px) { .search { grid-template-columns: 96px 1fr; } .search > * { grid-column: 1 / -1; } .search > .search-uf, .search > .search-uf + div { grid-column: auto; } }

/* Formulários */
label { display: block; font-weight: 700; font-size: .9rem; margin-bottom: 4px; }
input, select, textarea { width: 100%; font: inherit; color: var(--roxo); background: var(--branco); border: 1.5px solid var(--borda); border-radius: var(--r-botao); padding: 11px 12px; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--rosa); box-shadow: 0 0 0 3px rgba(214, 18, 95, .15); }
textarea { min-height: 96px; resize: vertical; }
.field { margin-bottom: 14px; }
.field-row { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.check { display: flex; gap: 8px; align-items: center; font-weight: 600; }
.check input { width: auto; }
.error { color: var(--erro); font-size: .85rem; margin-top: 4px; }

/* Avisos */
.alert { border-radius: var(--r-botao); padding: 12px 16px; margin-bottom: 16px; font-weight: 600; }
.alert-ok { background: #E3F6F4; color: var(--verde-esc); }
.alert-erro { background: #FDECEA; color: var(--erro); }
.alert-aviso { background: #FFF1D1; color: #7A5200; }

/* Selos de status */
.badge { display: inline-block; font-size: .8rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; background: var(--creme); color: var(--roxo); white-space: nowrap; }
.badge-solicitada { background: #FFF1D1; color: #7A5200; }
.badge-aceita { background: #FFE3EE; color: var(--rosa-escuro); }
.badge-fila { background: #E7F0FF; color: #1D4E89; }
.badge-confirmada, .badge-ativo { background: #E3F6F4; color: var(--verde-esc); }
.badge-recusada, .badge-cancelada, .badge-suspenso { background: #EEEAF2; color: var(--lavanda); }
.badge-concluida { background: var(--roxo); color: var(--branco); }
.badge-pendente { background: #FFF1D1; color: #7A5200; }

/* Card de parceiro */
.partner-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; overflow: hidden; padding: 0; }
.partner-card .cover { height: 120px; background: linear-gradient(135deg, var(--rosa) 0%, var(--roxo) 100%); position: relative; }
.partner-card .cover span { position: absolute; left: 16px; bottom: 12px; }
.partner-card .body { padding: 16px 20px 20px; }
.partner-card .price { font-weight: 800; color: var(--rosa); }

/* Tabelas */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--borda); vertical-align: top; }
th { font-size: .85rem; color: var(--lavanda); font-weight: 700; }

.summary dt { color: var(--lavanda); font-size: .85rem; }
.summary dd { margin: 0 0 10px; font-weight: 700; }
.total { font-family: "Fredoka", sans-serif; font-size: 1.6rem; color: var(--rosa); }

.empty { text-align: center; padding: 40px 16px; color: var(--lavanda); }
.footer { padding: 24px 0 40px; color: var(--lavanda); font-size: .9rem; text-align: center; }
.tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.tabs a { padding: 8px 14px; border-radius: 999px; text-decoration: none; font-weight: 700; color: var(--roxo); background: var(--branco); border: 1.5px solid var(--borda); }
.tabs a.active { background: var(--roxo); color: var(--branco); border-color: var(--roxo); }
details summary { cursor: pointer; font-weight: 700; color: var(--rosa); }

/* Tipos de reserva e forma de pagamento */
.options { display: grid; gap: 8px; }
.option { display: flex; gap: 10px; align-items: center; font-weight: 700; padding: 11px 12px; border: 1.5px solid var(--borda); border-radius: var(--r-botao); cursor: pointer; background: var(--branco); margin: 0; }
.option input { width: auto; accent-color: var(--rosa); }
.option:has(input:checked) { border-color: var(--rosa); background: #FFF0F5; }
.plain-list { margin: 0; padding-left: 18px; }
.plain-list li + li { margin-top: 6px; }
.menu-line { padding: 8px 0; border-bottom: 1px solid var(--borda); flex-wrap: nowrap; }
.menu-line:last-child { border-bottom: 0; }
.menu-picker { max-height: 320px; overflow-y: auto; border: 1.5px solid var(--borda); border-radius: var(--r-botao); padding: 4px 12px; }
.qty { width: 72px; flex: none; padding: 6px 8px; text-align: center; }
.estimate { background: var(--creme); border-radius: var(--r-botao); padding: 12px 14px; margin-bottom: 14px; font-size: .95rem; }
.share { display: flex; gap: 8px; }
.share input { flex: 1; min-width: 0; font-size: .9rem; }
.progress { height: 10px; border-radius: 999px; background: var(--creme); overflow: hidden; margin: 8px 0; }
.progress > span { display: block; height: 100%; background: var(--verde); }
[hidden] { display: none !important; }
.package-box { background: #FFF0F5; border: 1.5px solid #F7C6D9; border-radius: var(--r-botao); padding: 10px 14px; margin: 10px 0; }
.package-values { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .95rem; margin-top: 2px; }
.contract-page { max-width: 820px; margin: 0 auto; }
.contract-text { white-space: pre-line; font-size: .95rem; line-height: 1.6; }
.contract-box { white-space: pre-line; font-size: .88rem; line-height: 1.5; max-height: 260px; overflow-y: auto; border: 1.5px solid var(--borda); border-radius: var(--r-botao); padding: 12px 14px; background: var(--creme); margin: 8px 0 10px; }
.discount { color: var(--verde-esc); }
code { font-size: .85em; background: var(--creme); padding: 1px 5px; border-radius: 6px; }
@media print { .topbar, .footer, .no-print { display: none !important; } body { background: #fff; } .card { box-shadow: none; } }

/* Festas e convidados (v0.5) */
.counters { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.counters .card { padding: 14px 16px; }
.timeline { list-style: none; margin: 10px 0 0; padding: 0 0 0 18px; border-left: 3px solid var(--borda); }
.timeline li { position: relative; padding: 0 0 14px 12px; }
.timeline li::before { content: ""; position: absolute; left: -27px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--branco); border: 3px solid var(--borda); }
.timeline li.step-feito::before { background: var(--verde); border-color: var(--verde); }
.timeline li.step-pulado::before { background: var(--borda); }
.timeline li.step-alerta::before { background: var(--rosa); border-color: var(--rosa); }
.timeline li.step-alerta strong { color: var(--rosa); }
.badge.rsvp-sim { background: #E3F7EC; color: var(--verde-esc); }
.badge.rsvp-nao { background: #FDE7EA; color: #B42344; }
.badge.rsvp-talvez { background: #FFF4D6; color: #8A5A00; }
.badge.rsvp-pendente { background: var(--creme); color: var(--lavanda); }
.guests td.actions { white-space: nowrap; text-align: right; }
.guests td.actions details { display: inline-block; margin-left: 8px; text-align: left; }
.guests td.actions details[open] { display: block; margin: 8px 0 0; }
.supplier { padding: 10px 0; border-bottom: 1px solid var(--borda); }
.supplier:last-of-type { border-bottom: 0; }
tr.muted td { opacity: .6; }

/* Fase C: financeiro, comissões e CRM */
.subtabs { display: flex; gap: 4px; flex-wrap: wrap; margin: -8px 0 18px; border-bottom: 1.5px solid var(--borda); }
.subtabs a { padding: 8px 12px; text-decoration: none; font-weight: 700; font-size: .92rem; color: var(--lavanda); border-bottom: 3px solid transparent; margin-bottom: -1.5px; }
.subtabs a.active { color: var(--rosa); border-bottom-color: var(--rosa); }
.filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px; margin-bottom: 16px; }
.filters select, .filters input { width: auto; flex: 1 1 150px; }
@media (min-width: 860px) { .two-cols.wide-left { grid-template-columns: 2fr 1fr; } }
.money-in { color: var(--verde-esc); font-weight: 700; }
.money-out { color: var(--erro); font-weight: 700; }
.badge.fin-aberto, .badge.com-prevista { background: #FFF1D1; color: #7A5200; }
.badge.fin-vencido { background: #FDE7EA; color: var(--erro); }
.badge.fin-pago, .badge.com-paga { background: #E3F6F4; color: var(--verde-esc); }
.badge.com-liberada { background: #FFE3EE; color: var(--rosa-escuro); }
.badge.fin-cancelado, .badge.fin-estornado, .badge.com-cancelada { background: #EEEAF2; color: var(--lavanda); }
.account-card { display: block; text-decoration: none; color: var(--roxo); border: 2px solid transparent; padding: 14px 16px; }
.account-card:hover { border-color: var(--borda); }
.account-card.selected { border-color: var(--rosa); }
.flow { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; }
.flow-month { flex: 1 0 64px; text-align: center; }
.flow-bars { display: flex; align-items: flex-end; justify-content: center; gap: 3px; height: 160px; border-bottom: 1.5px solid var(--borda); }
.bar { width: 10px; min-height: 2px; border-radius: 4px 4px 0 0; display: block; }
.bar.in-plan, .legend .in-plan { background: #A7E3DF; }
.bar.in, .legend .in { background: var(--verde); }
.bar.out-plan, .legend .out-plan { background: #F7B8CF; }
.bar.out, .legend .out { background: var(--rosa); }
.legend { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 10px; }
.legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; }
.rule { border-bottom: 1px solid var(--borda); padding: 10px 0; }
.rule:last-child { border-bottom: 0; }
.rule summary { cursor: pointer; font-weight: 700; }
.kanban { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 12px; align-items: flex-start; }
.kanban-col { flex: 0 0 250px; background: #F6EEE8; border-radius: var(--r-card); padding: 10px; border-top: 4px solid var(--cor, var(--lavanda)); }
.kanban-col header { padding: 2px 4px 8px; }
.kanban-col .dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--cor, var(--lavanda)); margin-right: 6px; }
.kanban-list { min-height: 60px; display: flex; flex-direction: column; gap: 8px; }
.kanban-card { display: flex; flex-direction: column; gap: 2px; background: var(--branco); border-radius: 12px; padding: 10px 12px; text-decoration: none; color: var(--roxo); box-shadow: 0 1px 3px rgba(43, 15, 76, .08); cursor: grab; }
.kanban-card:hover { box-shadow: var(--sombra); }
.kanban-card.ghost { opacity: .4; }
.new-deal { position: relative; }
.new-deal summary { list-style: none; }
.new-deal summary::-webkit-details-marker { display: none; }
.new-deal[open] > form, .new-deal[open] > .card { position: absolute; right: 0; z-index: 5; width: min(560px, calc(100vw - 32px)); }
.timeline-list { list-style: none; margin: 0; padding: 0; }
.timeline-list li { padding: 10px 0 10px 14px; border-left: 3px solid var(--borda); margin-left: 4px; }
.timeline-list li.done { opacity: .6; }
.timeline-list li.done .body { text-decoration: line-through; }
.stage-row { padding: 8px 0; border-bottom: 1px solid var(--borda); align-items: center; }
.stage-row input:not([type=number]):not([type=color]) { flex: 1 1 160px; width: auto; }
@media (min-width: 1112px) { .kanban { margin-right: calc(540px - 50vw); padding-right: 16px; } }
.two-cols > *, .stack > * { min-width: 0; }
.filters select, .filters input, .filters button { min-width: 0; max-width: 100%; }
.row input { min-width: 0; max-width: 100%; }
.share { display: flex; gap: 8px; } .share input { flex: 1; min-width: 0; }
.field-row > .field { min-width: 0; }
.field-row input { width: 100%; min-width: 0; }

/* v0.7: fotos, logomarca e mapa */
.photo-row { display: grid; grid-template-columns: 140px 1fr; gap: 16px; align-items: start; }
.photo-row img { width: 140px; height: 105px; object-fit: cover; border-radius: 12px; background: var(--borda); }
@media (max-width: 520px) { .photo-row { grid-template-columns: 1fr; } .photo-row img { width: 100%; height: 180px; } }
.photo-upload { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.photo-upload label.btn { cursor: pointer; margin: 0; }
.logo-preview { width: 120px; height: 120px; border-radius: 50%; border: 1px solid var(--borda); background: var(--branco); display: grid; place-items: center; overflow: hidden; margin-bottom: 12px; }
.logo-preview img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.logo-preview span, .partner-logo span { font-family: "Fredoka", sans-serif; font-size: 44px; color: var(--rosa); }
.partner-card .cover { background-size: cover; background-position: center; }
.partner-card .cover.has-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(43, 15, 76, .55)); }
.partner-card .cover span { z-index: 1; }
.partner-card .cover .card-logo { position: absolute; right: 14px; bottom: -22px; width: 52px; height: 52px; border-radius: 50%; background: var(--branco) center/contain no-repeat; border: 3px solid var(--branco); box-shadow: var(--sombra); z-index: 1; }
.partner-head { display: flex; gap: 14px; align-items: center; }
.partner-logo { flex: 0 0 auto; width: 72px; height: 72px; border-radius: 50%; background: var(--branco); border: 1px solid var(--borda); display: grid; place-items: center; overflow: hidden; }
.partner-logo img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.carousel { position: relative; border-radius: var(--r-card); overflow: hidden; background: var(--roxo); }
.carousel-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-track figure { flex: 0 0 100%; margin: 0; scroll-snap-align: start; position: relative; aspect-ratio: 4 / 3; max-height: 460px; }
.carousel-track img { width: 100%; height: 100%; object-fit: cover; display: block; }
.carousel-track figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 16px; color: #fff; font-weight: 700; background: rgba(20, 12, 32, .8); } /* v0.67: faixa sólida */
.carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .9); color: var(--roxo); font-size: 22px; line-height: 1; cursor: pointer; box-shadow: var(--sombra); }
.carousel-btn.prev { left: 10px; } .carousel-btn.next { right: 10px; }
.carousel-dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 6px; }
.carousel-dots button { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, .55); cursor: pointer; }
.carousel-dots button.on { background: #fff; width: 20px; border-radius: 4px; }
.carousel-count { position: absolute; top: 10px; right: 10px; background: rgba(0, 0, 0, .5); color: #fff; font-size: 13px; padding: 2px 10px; border-radius: 99px; }
.map-frame { width: 100%; height: 260px; border: 0; border-radius: 12px; display: block; background: var(--borda); }
.map-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.map-picker { height: 280px; border-radius: 12px; border: 1px solid var(--borda); margin-top: 8px; }

/* Admin: ajustes (segunda linha do menu) e painel inicial */
.subnav { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.subnav a { color: var(--roxo); font-weight: 700; text-decoration: none; border-bottom: 2px solid transparent; padding-bottom: 2px; }
.subnav a.active { border-bottom-color: var(--rosa, var(--roxo)); }
.attention { list-style: none; margin: 0; padding: 0; }
.attention li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--borda); }
.attention li:last-child { border-bottom: 0; }
.attention .n { min-width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; background: #FFF1D1; color: #7A5200; }
.attention .n.zero { background: #E3F6F4; color: var(--verde-esc); }

/* Equipe (v0.10) */

/* Ocasiões (v0.11) */
.occ-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) max-content max-content max-content 56px; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--borda); }
.occ-row .check { white-space: nowrap; }
.nowrap { white-space: nowrap; }
@media (max-width: 640px) { .occ-row { grid-template-columns: 64px minmax(0, 1fr); } .occ-row > :nth-child(n+5) { grid-column: auto; } }

/* Fornecedor que não pode entrar na reserva: só o aviso fica (v0.12) */
#form-reserva[data-blocked] > :not(.estimate):not(.alert):not(input) { display: none; }

/* v0.13: grupos de acesso, avaliações e aniversários */
.perm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px 16px; margin: 14px 0; }
.perm-grid .check { align-items: flex-start; font-weight: 700; }
.perm-grid .check input { margin-top: 3px; }
.stars { color: #F5A524; letter-spacing: 1px; white-space: nowrap; }
.stars .stars-off { color: #E5DDEB; }
.stars.big { font-size: 1.4rem; }
.stars-inline { font-size: .9rem; font-weight: 700; color: inherit; text-decoration: none; white-space: nowrap; }
.partner-card h3 .stars-inline { font-size: .85rem; margin-left: 4px; }
.review-line { padding: 12px 0; border-bottom: 1px solid var(--borda); }
.review-line:first-child { padding-top: 0; }
.review-line:last-child { border-bottom: 0; padding-bottom: 0; }
.review-card { border: 2px solid #FFE3EE; }
.review-prompt { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.star-input { border: 0; padding: 0; margin: 0; display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.star-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-input label { font-size: 2.2rem; line-height: 1; color: #E5DDEB; cursor: pointer; padding: 0 2px; }
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color: #F5A524; }
.star-input input:focus-visible + label { outline: 2px solid var(--rosa); border-radius: 4px; }
.review-summary { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.review-summary .bars { flex: 1; min-width: 200px; max-width: 360px; }
.bar-row { display: grid; grid-template-columns: 36px 1fr 28px; gap: 8px; align-items: center; }
.bar { height: 8px; background: var(--creme); border-radius: 999px; overflow: hidden; }
.bar i { display: block; height: 100%; background: #F5A524; }
.birthday-strip { text-decoration: none; color: inherit; }
.strong { font-weight: 800; color: var(--rosa-escuro); }
.review-card, #avaliacoes { scroll-margin-top: 90px; }
.guests td.actions details[open] form { width: 230px; margin-left: auto; white-space: normal; }
.guests td.actions details[open] form input, .guests td.actions details[open] form select { display: block; width: 100%; }

/* Janela de confirmação (modal) */
.modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal[hidden] { display: none; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(43, 15, 76, .55); animation: modal-fade .15s ease-out; }
.modal-dialog { position: relative; width: 100%; max-width: 440px; background: var(--branco); border-radius: var(--r-card); box-shadow: 0 20px 60px rgba(43, 15, 76, .3); animation: modal-in .18s ease-out; }
.modal-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 0; }
.modal-header h3 { margin: 0; font-size: 1.15rem; }
.modal-x { background: none; border: 0; font-size: 1.6rem; line-height: 1; color: var(--lavanda); cursor: pointer; padding: 0 4px; }
.modal-body { padding: 10px 20px 4px; color: var(--lavanda); }
.modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 16px 20px 18px; }
.btn-danger { background: var(--erro); border-color: var(--erro); color: #fff; }
body.modal-open { overflow: hidden; }
@keyframes modal-fade { from { opacity: 0; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }

/* Central de Ajuda e chamados */
.help-wrap { max-width: 760px; margin: 0 auto; }
.help-search { width: 100%; font-size: 1.05rem; padding: 14px 16px; margin-bottom: 18px; }
.faq-group h2 { font-size: 1.15rem; margin: 22px 0 8px; }
.faq { background: var(--branco); border: 1px solid var(--borda); border-radius: 14px; margin-bottom: 8px; }
.faq summary { cursor: pointer; list-style: none; padding: 14px 44px 14px 16px; font-weight: 700; color: var(--roxo); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--rosa); }
.faq[open] summary::after { content: '–'; }
.faq-answer { padding: 0 16px 12px; }
.faq-answer p { margin: 0 0 8px; }
.faq-vote { display: flex; gap: 10px; align-items: center; margin-top: 6px; }
.help-contact { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 28px; }
.ticket-thread { display: flex; flex-direction: column; gap: 10px; }
.ticket-msg { background: var(--creme); border: 1px solid var(--borda); border-radius: 14px; padding: 10px 14px; max-width: 88%; }
.ticket-msg.from-team { align-self: flex-end; background: #FDE7EF; border-color: #F6C3D6; }
.badge.ticket-aberto { background: #FFF1CC; color: #8A5A00; }
.badge.ticket-respondido { background: #E3ECFF; color: #2C4FA8; }
.badge.ticket-resolvido { background: #DDF5F3; color: var(--verde-esc); }

/* Conversa da reserva (v0.16) */
.chat { display: flex; flex-direction: column; gap: 10px; max-height: 520px; overflow-y: auto; padding: 2px; }
.chat-msg { background: var(--creme); border: 1px solid var(--borda); border-radius: 14px; padding: 10px 14px; max-width: 85%; align-self: flex-start; }
.chat-msg.mine, .chat-msg.other-partner { align-self: flex-end; background: #FDE7EF; border-color: #F6C3D6; }
.chat-form { margin-top: 14px; }
.chat-form textarea { margin-bottom: 8px; }
.inbox-row { display: block; color: inherit; text-decoration: none; }
.inbox-row:hover { border-color: var(--rosa); }
.nav-count { display: inline-block; min-width: 18px; padding: 0 6px; margin-left: 4px; border-radius: 9px; background: var(--rosa); color: #fff; font-size: 12px; line-height: 18px; text-align: center; font-weight: 700; }

/* Identificação do usuário logado (v0.16.1) */
.user-menu { position: relative; }
.user-menu summary { list-style: none; display: flex; align-items: center; gap: 6px; padding: 4px 8px 4px 4px; border-radius: 999px; cursor: pointer; font-weight: 700; color: var(--roxo); border: 1px solid var(--borda); }
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu summary:hover, .user-menu[open] summary { background: var(--creme); }
.user-caret { font-size: .75rem; opacity: .7; }
.avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; color: #fff; font-size: .8rem; font-weight: 800; letter-spacing: .02em; flex: none; }
.avatar-lg { width: 44px; height: 44px; font-size: 1rem; }
.avatar-cliente { background: var(--rosa); }
.avatar-parceiro { background: var(--roxo); }
.avatar-equipe { background: var(--verde-esc); }
.user-panel { position: absolute; right: 0; top: calc(100% + 8px); width: 270px; max-width: calc(100vw - 32px); background: var(--branco); border: 1px solid var(--borda); border-radius: 14px; box-shadow: 0 10px 30px rgba(43,15,76,.15); padding: 8px; z-index: 30; display: flex; flex-direction: column; }
.user-id { display: flex; gap: 10px; align-items: center; padding: 8px 8px 12px; margin-bottom: 4px; border-bottom: 1px solid var(--borda); }
.user-id strong { display: block; color: var(--roxo); line-height: 1.2; overflow-wrap: anywhere; }
.user-email { display: block; font-size: .85rem; color: #6b5b73; overflow-wrap: anywhere; }
.user-role { display: inline-block; margin-top: 4px; font-size: .75rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.role-cliente { background: #fde7f0; color: var(--rosa); }
.role-parceiro { background: #ece5f5; color: var(--roxo); }
.role-equipe { background: #dff5f3; color: var(--verde-esc); }
.user-panel a, .user-panel button { display: block; width: 100%; text-align: left; }
.user-panel form { margin: 0; border-top: 1px solid var(--borda); margin-top: 4px; padding-top: 4px; }
@media (max-width: 640px) { .user-first, .user-caret { display: none; } .user-menu summary { padding: 2px; border-color: transparent; } }

/* Sininho de notificações (v0.17) */
.bell-menu { position: relative; }
.bell-menu summary { list-style: none; position: relative; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; color: var(--roxo); }
.bell-menu summary::-webkit-details-marker { display: none; }
.bell-menu summary:hover, .bell-menu[open] summary { background: var(--creme); }
.bell-count { position: absolute; top: 1px; left: 22px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--rosa); color: #fff; font-size: 10px; font-weight: 800; line-height: 16px; text-align: center; border: 2px solid var(--branco); box-sizing: content-box; }
.bell-count[hidden] { display: none; }
.bell-new .bell-icon { animation: bell-ring .9s ease-in-out 1; transform-origin: 50% 10%; }
@keyframes bell-ring { 20% { transform: rotate(14deg); } 40% { transform: rotate(-12deg); } 60% { transform: rotate(8deg); } 80% { transform: rotate(-4deg); } }
.bell-panel { position: absolute; right: -52px; top: calc(100% + 8px); width: 340px; max-width: calc(100vw - 24px); max-height: min(70vh, 520px); overflow-y: auto; background: var(--branco); border: 1px solid var(--borda); border-radius: 14px; box-shadow: 0 10px 30px rgba(43,15,76,.15); z-index: 30; }
.bell-head { position: sticky; top: 0; background: var(--branco); display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--borda); color: var(--roxo); }
.bell-head form { margin: 0; }
.bell-head button { font: inherit; font-size: .8rem; font-weight: 700; color: var(--verde-esc); background: none; border: 0; padding: 4px 6px; border-radius: 8px; cursor: pointer; }
.bell-item { display: flex; gap: 10px; padding: 12px 14px; text-decoration: none; color: inherit; border-bottom: 1px solid var(--borda); }
.bell-item:hover { background: var(--creme); }
.bell-item.unread { background: #fff3f8; }
.bell-item.unread:hover { background: #fde7f0; }
.bell-dot { flex: none; width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: transparent; }
.bell-item.unread .bell-dot { background: var(--rosa); }
.bell-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bell-text strong { color: var(--roxo); font-size: .92rem; line-height: 1.3; }
.bell-text span { font-size: .85rem; color: #4f4257; overflow-wrap: anywhere; }
.bell-text time { font-size: .75rem; color: #8a7c90; }
.bell-item:not(.unread) .bell-text strong { font-weight: 600; }
.bell-action { display: block; margin: -4px 14px 0 32px; padding: 6px 0 12px; font-size: .85rem; font-weight: 700; color: var(--verde-esc); text-decoration: none; border-bottom: 1px solid var(--borda); }
.bell-action:hover { text-decoration: underline; }
.bell-empty { margin: 0; padding: 18px 14px; color: #6b5b73; font-size: .9rem; }
.bell-all { display: block; padding: 10px 14px; text-align: center; font-weight: 700; font-size: .9rem; color: var(--rosa); text-decoration: none; }
.nav .bell-panel a.bell-item, .nav .bell-panel a.bell-all { border-radius: 0; font-weight: inherit; padding: 12px 14px; }
.nav .bell-panel a.bell-all { color: var(--rosa); font-weight: 700; }
.nav .bell-panel a.bell-item { color: inherit; }
.bell-list { padding: 0; overflow: hidden; }
.bell-list .bell-item:last-child { border-bottom: 0; }
.bell-list > p { padding: 16px; }
@media (max-width: 640px) { .bell-panel { position: fixed; left: 12px; right: 12px; top: 64px; width: auto; max-width: none; } }

/* v0.18.1: Pix do sinal direto para o estabelecimento */
.pix-box { border: 2px solid var(--rosa, #d6145f); border-radius: 16px; padding: 16px; background: #fff; }
.pix-value { font-family: Fredoka, sans-serif; font-size: 2rem; font-weight: 600; color: var(--roxo, #2b0f4c); }
.pix-qr { max-width: 220px; margin: 8px auto; }
.pix-qr svg { width: 100%; height: auto; display: block; }
.pix-copy { width: 100%; font-family: monospace; font-size: .75rem; word-break: break-all; resize: none; margin-bottom: 6px; }

/* v0.19: fila de espera e prazos */
.fila-box { border: 2px dashed #1D4E89; border-radius: 14px; padding: 12px 14px; margin: 8px 0; background: #F3F7FF; }
.prazo { border-left: 4px solid var(--amarelo, #FFC83D); background: #FFF8E6; border-radius: 10px; padding: 8px 12px; margin: 10px 0; }

/* v0.20: convite para ligar os avisos pelo WhatsApp */
.wa-box { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; border: 1px solid #BFE9D2; background: #EFFBF4; border-left: 4px solid #25D366; border-radius: 14px; padding: 12px 14px; margin: 0 0 16px; }
.wa-box .wa-text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 260px; }
.wa-box .wa-actions { display: flex; gap: 8px; align-items: center; flex: 0 1 auto; }
.wa-box .wa-actions input { width: 170px; margin: 0; }
.wa-status-enviado { color: #067647; } .wa-status-erro { color: #B42318; } .wa-status-fila { color: #6B6380; }
.wa-kinds { columns: 2; column-gap: 20px; } .wa-kinds label { break-inside: avoid; }
@media (max-width: 560px) { .wa-kinds { columns: 1; } .wa-box .wa-actions { width: 100%; } .wa-box .wa-actions input { flex: 1; width: auto; } }

/* v0.21: monetização, prêmio do parceiro e fila manual do WhatsApp */
.money-summary { margin: 0; padding-left: 18px; } .money-summary li { margin: 4px 0; }
.money-options { display: flex; flex-direction: column; gap: 8px; margin: 6px 0 10px; }
.money-options label.check { align-items: flex-start; }
.inline-number { display: inline-block; width: 80px; margin: 0 4px; padding: 4px 8px; }
.reward-card { display: flex; flex-direction: column; gap: 2px; border-left: 4px solid var(--verde); margin-bottom: 16px; }
.reward-card .progress { margin-bottom: 0; }
.wa-queue-link { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; margin: 12px 0 0; border-left: 4px solid #25D366; text-decoration: none; color: inherit; }
.wa-queue-item { margin-bottom: 12px; }
.wa-queue-item.wa-sent { opacity: .55; }
.wa-bubble { background: #E7FCE3; border-radius: 12px 12px 12px 4px; padding: 10px 12px; margin: 10px 0; white-space: pre-line; font-size: .95rem; max-width: 560px; }
.wa-status-manual { color: #B54708; } .wa-status-descartado { color: #6B6380; }

/* v0.22: promoções dos parceiros e clientes avulsos */
.badge-promo { background: #FFE3EE; color: var(--rosa-escuro); margin-left: 6px; vertical-align: middle; }
.news-card { margin-top: 16px; border-top: 6px solid var(--rosa); background: #FFF4F8; } /* v0.67: fundo sólido */
.add-client summary { cursor: pointer; list-style: none; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.add-client summary::-webkit-details-marker { display: none; }
.add-client summary strong { color: var(--rosa); }
.add-client[open] summary { margin-bottom: 4px; }

/* Horário de funcionamento com turnos (v0.24) */
.hours-day { display: grid; grid-template-columns: 110px 1fr; gap: 8px; align-items: start; padding: 6px 0; border-bottom: 1px solid var(--borda); }
.hours-day > .check { margin-top: 8px; }
.hours-shifts { display: grid; gap: 6px; justify-items: start; }
.hours-shift { display: grid; grid-template-columns: 1fr auto 1fr 64px; gap: 8px; align-items: center; width: 100%; }
.hours-shift[hidden] { display: none; }
.hours-shift input[type=time] { min-width: 0; }
.hours-day:has(> .check input:not(:checked)) .hours-shifts { opacity: .45; }
@media (max-width: 520px) { .hours-day { grid-template-columns: 1fr; } .hours-day > .check { margin-top: 0; } }

/* v0.26: pré-cadastro por WhatsApp */
.badge-pre-enviado { background: #FFF1D1; color: #7A5200; }
.badge-pre-preenchido { background: #FFE3EE; color: var(--rosa-escuro); }
.badge-pre-cadastrado { background: #E3F6F4; color: var(--verde-esc); }
.badge-pre-descartado { background: #EEEAF2; color: var(--lavanda); }
.prefill-banner { margin-bottom: 16px; }

/* Festa entre amigos (v0.27) */
.amigos-wrap { max-width: 720px; margin: 0 auto; }
.amigos-intro h1 { margin: 8px 0 4px; }
.badge-novo { background: var(--amarelo); color: var(--roxo); }
.wz-steps { list-style: none; display: flex; gap: 8px; padding: 0; margin: 16px 0; counter-reset: wz; }
.wz-steps li { flex: 1; counter-increment: wz; font-weight: 700; font-size: .85rem; color: var(--lavanda); border-top: 4px solid var(--borda); padding-top: 6px; }
.wz-steps li::before { content: counter(wz) ". "; }
.wz-steps li.active { color: var(--rosa); border-color: var(--rosa); }
.wz-steps li.done { color: var(--verde-esc); border-color: var(--verde); cursor: pointer; }
.wz-step { margin-bottom: 16px; }
.wz-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; }
.kind-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 140px), 1fr)); gap: 8px; }
.kind-chip { display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 10px; min-width: 0; overflow-wrap: anywhere; line-height: 1.2; border: 1.5px solid var(--borda); border-radius: var(--r-botao); background: var(--branco); cursor: pointer; font-weight: 700; }
.kind-chip input { position: absolute; opacity: 0; pointer-events: none; }
.kind-chip:has(input:checked) { border-color: var(--rosa); background: #FFF0F5; box-shadow: 0 0 0 3px rgba(214, 18, 95, .12); }
.kind-chip:has(input:focus-visible) { outline: 2px solid var(--rosa); }
.kind-icon { font-size: 1.5rem; line-height: 1; }
.stepper { display: inline-flex; align-items: center; border: 1.5px solid var(--borda); border-radius: var(--r-botao); background: var(--branco); overflow: hidden; }
.stepper input { width: 64px; border: 0; text-align: center; padding: 10px 4px; border-radius: 0; -moz-appearance: textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.stepper input:focus { box-shadow: none; }
.stepper-btn { width: 40px; height: 44px; border: 0; background: var(--creme); color: var(--rosa); font: inherit; font-size: 1.3rem; font-weight: 800; cursor: pointer; }
.stepper-btn:active { background: #FFE3EE; }
.stepper-sm input { width: 44px; padding: 6px 2px; }
.stepper-sm .stepper-btn { width: 34px; height: 38px; font-size: 1.1rem; }
.items-edit { display: grid; gap: 8px; margin-bottom: 12px; }
.item-row { display: grid; grid-template-columns: 28px 1fr auto 72px; gap: 8px; align-items: center; }
.item-row.off .item-name, .item-row.off .item-unit, .item-row.off .stepper { opacity: .4; }
.item-row.off .item-name { text-decoration: line-through; }
.item-on { margin: 0; display: flex; justify-content: center; }
.item-on input { width: 20px; height: 20px; accent-color: var(--rosa); }
.item-row input.item-name, .item-row input.item-unit { padding: 9px 10px; }
@media (max-width: 520px) {
  .item-row { grid-template-columns: 28px auto 1fr; grid-template-areas: "on name name" ". qty unit"; row-gap: 6px; padding-bottom: 10px; border-bottom: 1px solid var(--borda); }
  .item-row .item-on { grid-area: on; } .item-row .item-name { grid-area: name; } .item-row .stepper { grid-area: qty; } .item-row .item-unit { grid-area: unit; max-width: 120px; }
}
.owner-box { background: var(--creme); border-radius: var(--r-card); padding: 16px; margin-top: 8px; }
.owner-box h3 { margin-bottom: 12px; }
.shake { animation: shake .4s; }
@keyframes shake { 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
.amigos-head { display: flex; gap: 16px; align-items: flex-start; }
.amigos-icon { font-size: 2.4rem; line-height: 1; width: 64px; height: 64px; flex: none; display: flex; align-items: center; justify-content: center; background: var(--creme); border-radius: 18px; }
.amigos-note { background: #FFF6DE; border-radius: 12px; padding: 10px 12px; margin: 10px 0 0; white-space: pre-line; }
.amigos-stats { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 12px; font-size: .95rem; }
.amigos-stats span { background: var(--creme); border-radius: 999px; padding: 4px 12px; }
.answer-card { margin-top: 16px; scroll-margin-top: 80px; }
.answer-done { font-size: 1.05rem; }
.rsvp-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 16px; }
.rsvp-seg label { margin: 0; }
.rsvp-seg input { position: absolute; opacity: 0; pointer-events: none; }
.rsvp-seg span { display: block; text-align: center; padding: 14px 6px; border: 2px solid var(--borda); border-radius: var(--r-botao); font-weight: 800; cursor: pointer; background: var(--branco); }
.rsvp-seg input:checked + span { border-color: var(--rosa); background: var(--rosa); color: #fff; }
.rsvp-seg input[value=nao]:checked + span { background: var(--lavanda); border-color: var(--lavanda); }
.rsvp-seg input:focus-visible + span { outline: 2px solid var(--roxo); outline-offset: 2px; }
.companions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.companions label { margin: 0; }
.bring-list { border: 1.5px solid var(--borda); border-radius: var(--r-card); overflow: hidden; }
.bring-group { background: var(--creme); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--lavanda); padding: 6px 14px; }
.bring { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--borda); background: var(--branco); transition: background .15s; }
.bring-group + .bring { border-top: 0; }
.bring.mine { background: #FFF0F5; }
.bring.full { opacity: .6; }
.bring-info { display: flex; flex-direction: column; min-width: 0; }
.bring-toggle { margin: 0; }
.bring-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.bring-toggle span { display: inline-block; padding: 8px 14px; border: 2px solid var(--rosa); color: var(--rosa); border-radius: 999px; font-weight: 800; font-size: .9rem; cursor: pointer; white-space: nowrap; }
.bring-toggle input:checked + span { background: var(--rosa); color: #fff; }
.bring-toggle input:checked + span::before { content: "✓ "; }
.bring-toggle input:focus-visible + span { outline: 2px solid var(--roxo); outline-offset: 2px; }
.other-item { margin: 12px 0; }
.pot-choice { display: flex; gap: 12px; align-items: flex-start; margin: 14px 0 8px; padding: 14px; border: 2px solid var(--borda); border-radius: var(--r-card); cursor: pointer; font-weight: 400; }
.pot-choice input { width: 22px; height: 22px; accent-color: var(--verde); margin-top: 2px; flex: none; }
.pot-choice > span { display: flex; flex-direction: column; }
.pot-choice.on { border-color: var(--verde); background: #EAF8F6; }
.pot-amount { margin-left: 4px; }
.who-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.who-list li { display: flex; gap: 10px; align-items: flex-start; }
.amigos-cta { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; background: var(--roxo); color: #fff; }
.amigos-cta h3 { color: #fff; margin-bottom: 4px; }
.amigos-cta .muted { color: #D9CFE8; }
.share-hero { text-align: center; border: 2px solid var(--verde); margin-bottom: 16px; }
.share-hero-icon { font-size: 2.6rem; }
.share-bar { display: grid; gap: 8px; margin-top: 12px; }
@media (min-width: 640px) { .share-bar { grid-template-columns: auto auto 1fr; align-items: center; } }
.panel-items { margin: 12px 0; }
.panel-item { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--borda); }
.panel-item.covered .panel-item-main > strong { color: var(--verde-esc); }
.panel-item-main .badge { margin-left: 4px; }
.panel-item-main a { margin-left: 6px; }
.panel-item-edit summary { font-size: .85rem; }
.panel-item-edit[open] { flex-basis: 100%; }
.item-edit-form, .add-item-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 8px 0; }
.item-edit-form input[name=name], .add-item-form input[name=name] { flex: 1; min-width: 140px; }
.panel-item:has(.panel-item-edit[open]) { flex-wrap: wrap; }
.guest-rows { list-style: none; margin: 0; padding: 0; }
.guest-rows li { display: flex; gap: 10px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--borda); }
.guest-rows li:last-child { border-bottom: 0; }
.guest-main { flex: 1; min-width: 0; }
.guest-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.pot-status { font-weight: 800; }
.pot-prometida { color: #7A5200; }
.pot-informada { color: var(--rosa); }
.pot-recebida { color: var(--verde-esc); }
.amigos-list { display: grid; gap: 10px; }
.amigos-card { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
.amigos-card-body { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.amigos-card .progress { margin: 6px 0 0; }
.amigos-promo { display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin-bottom: 28px; border-radius: var(--r-card); background: linear-gradient(90deg, #FFF0F5, #FFF6DE); border: 1.5px solid #F6D3E1; text-decoration: none; color: var(--roxo); }
.amigos-promo:hover { border-color: var(--rosa); }
.amigos-promo-icons { font-size: 1.8rem; white-space: nowrap; }
.amigos-promo-text { flex: 1; display: flex; flex-direction: column; }
.amigos-promo-text strong { font-family: "Fredoka", sans-serif; font-size: 1.2rem; font-weight: 600; }
@media (max-width: 560px) { .amigos-promo { flex-wrap: wrap; } .amigos-promo .btn { width: 100%; } .amigos-head { flex-direction: column; } }
.kind-chip input, .rsvp-seg input, .bring-toggle input { width: 1px; height: 1px; }
.kind-chip, .rsvp-seg label, .bring-toggle { position: relative; }

/* v0.28: Deixe com a ClickMesa (festa entre amigos) */
.managed-opt { display: flex; gap: 12px; align-items: flex-start; margin: 16px 0 0; padding: 14px; border: 1.5px dashed var(--rosa); border-radius: var(--r-card); background: #FFF0F5; cursor: pointer; }
.managed-opt input { margin-top: 4px; width: 20px; height: 20px; flex: none; accent-color: var(--rosa); }
.managed-opt > span { display: flex; flex-direction: column; gap: 2px; }
.gestao-card { margin-top: 16px; border: 2px solid var(--rosa); background: #FFF0F5; } /* v0.67: fundo sólido */
.gestao-card.gestao-on { border-color: var(--verde); background: #E9FAF8; }
.gestao-head { display: flex; gap: 12px; align-items: flex-start; }
.gestao-head h2 { margin: 0 0 2px; font-size: 1.25rem; }
.gestao-head p { margin: 0; }
.gestao-icon { font-size: 2rem; line-height: 1; flex: none; }
.gestao-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 4px; }
.chip-static { display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--creme); border: 1px solid var(--borda); font-size: .85rem; font-weight: 700; }
.gestao-form { margin-top: 12px; }
.gestao-form > summary { list-style: none; }
.gestao-form > summary::-webkit-details-marker { display: none; }
.gestao-form[open] > summary { display: none; }
.gestao-form fieldset { border: 0; padding: 0; margin: 0 0 12px; }
.gestao-form legend { font-weight: 800; margin-bottom: 8px; }
.gestao-scope { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); }
.gestao-row { display: flex; gap: 16px; justify-content: space-between; padding: 14px 0; border-top: 1px solid var(--borda); }
.gestao-row-nova { background: #FFF8E6; margin: 0 -16px; padding: 14px 16px; }
.gestao-row-main { min-width: 0; flex: 1; }
.gestao-row-actions { display: flex; flex-direction: column; gap: 6px; align-items: stretch; min-width: 190px; }
.gestao-row-actions form .btn { width: 100%; }
@media (max-width: 640px) { .gestao-row { flex-direction: column; } .gestao-row-actions { min-width: 0; } }

/* v0.28: Indique a ClickMesa */
.indique-faixa { background: var(--roxo); color: #fff; padding: 12px 0; margin-top: 32px; }
.indique-faixa .container { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.indique-faixa strong { font-family: "Fredoka", sans-serif; font-weight: 600; font-size: 1.05rem; }
.indique-faixa-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.indique-faixa .btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .5); }
.indique-faixa + .footer { margin-top: 0; }
.indique-card { display: flex; gap: 14px; align-items: flex-start; border: 1.5px solid var(--borda); }
.indique-card h2 { margin: 0 0 4px; font-size: 1.2rem; }
.indique-card p { margin: 0 0 10px; }
.indique-icon { font-size: 2rem; line-height: 1; flex: none; }
.indique-body { flex: 1; min-width: 0; }
.indique-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.indique-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.indique-opt h2 { margin: 6px 0 4px; }
@media (max-width: 560px) { .indique-faixa .container { justify-content: center; text-align: center; } .indique-faixa-btns { width: 100%; } .indique-faixa-btns .btn { flex: 1; } }

/* v0.28.2: quadro "Quanto custa" na Ajuda */
.help-prices { margin-bottom: 18px; }
.help-prices h2 { font-size: 1.15rem; margin: 0 0 8px; }
.help-prices dl { margin: 0; }
.help-prices dl > div { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 8px 0; border-top: 1px solid var(--borda); }
.help-prices dl > div:first-child { border-top: 0; }
.help-prices dt { font-weight: 700; display: flex; flex-direction: column; gap: 2px; }
.help-prices dt .small { font-weight: 400; }
.help-prices dd { margin: 0; font-weight: 800; color: var(--rosa); text-align: right; max-width: 45%; }
.help-prices dt { flex: 1; }

/* v0.29: política de cancelamento e devolução */
.policy-box { background: var(--creme, #FFF6EE); border-radius: 12px; padding: 12px 14px; margin-top: 8px; }
.policy-tiers { margin: 6px 0 0; padding-left: 18px; font-size: .92rem; }
.policy-tiers li { margin: 2px 0; }
.policy-details { margin-top: 14px; }
.policy-details > summary { cursor: pointer; font-weight: 600; }
.cancel-confirmed { border-top: 1px solid #eee; margin-top: 12px; padding-top: 12px; }
.refund-box { border-left: 4px solid var(--rosa, #d6145f); background: #FFF1F6; border-radius: 10px; padding: 10px 12px; margin-top: 14px; }
.cancel-box textarea { width: 100%; min-width: 200px; }
.policy-pick { display: grid; gap: 8px; margin: 8px 0; }
.policy-pick label.check { align-items: flex-start; }

/* v0.29: pedido de orçamentos */
.quote-wrap { max-width: 760px; margin: 0 auto; }
.quote-card { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; color: inherit; text-decoration: none; }
.quote-answer.is-chosen { outline: 2px solid var(--verde, #1aa36f); }
.quote-price { font-weight: 800; font-size: 1.15rem; white-space: nowrap; color: var(--rosa-escuro, #a80f4a); }
.quote-cta { display: flex; gap: 12px; align-items: center; margin-top: 16px; color: inherit; text-decoration: none; background: #FFF8E6; border: 1px dashed var(--amarelo, #FFC83D); }
.quote-cta:hover { border-style: solid; }

/* v0.29: selos do parceiro */
.partner-badges { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.pbadge { font-size: .74rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #F2EEFF; color: #4b2aa8; white-space: nowrap; }
.pbadge-premio { background: #FFF1C9; color: #7a5200; }
.pbadge-destaque { background: #FFE3EE; color: #a80f4a; }
.pbadge-avaliado { background: #E3F6FF; color: #075985; }
.pbadge-rapido { background: #E6F8EF; color: #166b45; }
.pbadge-promo { background: #E7F7F4; color: #0b6b5c; }
.awards-year h2 { margin-top: 28px; }
.feature-card { background: #FFF8E6; }

/* v0.29: guia de preços */
.price-guide { max-width: 900px; margin: 0 auto; }
.price-hero .total { font-size: 1.8rem; }
.price-range { position: relative; height: 10px; border-radius: 999px; background: #F1E7EC; margin: 14px 0 4px; }
.price-range span { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: var(--rosa, #d6145f); }
.home-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; margin-top: 24px; }
.home-tools .quote-cta { margin-top: 0; }

/* v0.29: lista de presentes */
.gift-list { list-style: none; padding: 0; margin: 0; }
.gift { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid #f0e6ea; flex-wrap: wrap; }
.gift:first-child { border-top: 0; }
.gift.is-done .gift-main strong { color: #777; }
.gift-main { flex: 1; min-width: 180px; }
.gift-main .progress { margin-top: 4px; }
.gift-act { text-align: right; }
.gift-admin { padding: 10px 0; border-top: 1px solid #f0e6ea; }
.gift-who { margin: 4px 0 0 22px; }
.gift-form { border-top: 1px solid #f0e6ea; margin-top: 10px; padding-top: 12px; }
.gift-form input[name=link] { width: 100%; }
.nowrap { white-space: nowrap; }
@media (max-width: 640px) {
    .price-table thead { display: none; }
    .price-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; padding: 12px 0; border-bottom: 1px solid #f0e6ea; }
    .price-table td { border: 0; padding: 0; }
    .price-table td:first-child, .price-table td:nth-child(2) { grid-column: 1 / -1; }
    .price-table td[data-label]::before { content: attr(data-label); display: block; font-size: .78rem; color: var(--muted, #6B6380); }
}
.gift-admin > .row { flex-wrap: nowrap; align-items: flex-start; }

/* v0.56: menu lateral recolhível do Admin e do parceiro (desenho "Menu lateral") */
.app-shell { display: flex; align-items: flex-start; min-height: calc(100vh - 64px); }
.app-main { flex: 1 1 auto; min-width: 0; }
.app-main .container { max-width: 1180px; padding-left: 24px; padding-right: 24px; }
.sidebar { flex: 0 0 248px; width: 248px; position: sticky; top: 64px; height: calc(100vh - 64px); overflow: hidden; background: var(--side); color: var(--side-fg); display: flex; flex-direction: column; transition: width .18s ease, flex-basis .18s ease; font-family: var(--font); }
.sb-ic { width: 20px; flex: 0 0 20px; display: inline-flex; justify-content: center; line-height: 0; }
.sb-ic .ico { width: 19px; height: 19px; }
.sb-label { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sb-brand { display: flex; align-items: center; gap: 10px; padding: 14px; font-weight: 700; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.sb-mark { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 8px; background: var(--accent); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 15px; }
.sb-close { display: none; margin-left: auto; border: 0; background: none; color: var(--side-fg); font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 0 6px; }
.sb-unit, .sb-search { margin: 10px 10px 0; padding: 8px 10px; border-radius: 8px; background: var(--side-hover); display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--side-fg); }
.sb-unit select { background: transparent; border: 0; color: var(--side-fg); font: inherit; font-weight: 700; padding: 0; width: 100%; cursor: pointer; }
.sb-unit select option { color: #1d1a26; }
.sb-search { margin-bottom: 4px; color: var(--side-muted); }
.sb-search label { cursor: pointer; color: var(--side-muted); }
.sb-search input { background: transparent; border: 0; color: var(--side-fg); font: inherit; font-size: 13px; padding: 0; width: 100%; outline: none; }
.sb-search input::placeholder { color: var(--side-muted); }
.sb-search:focus-within { box-shadow: 0 0 0 2px var(--accent); }
.sb-nav { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 8px; display: flex; flex-direction: column; gap: 1px; }
.sb-item, .sb-gh { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; color: var(--side-fg); text-decoration: none; font-size: 14px; cursor: pointer; list-style: none; }
.sb-item:hover, .sb-gh:hover { background: var(--side-hover); color: #fff; }
.sb-item.on { background: var(--side-active); color: #fff; font-weight: 700; }
.sb-gh { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--side-muted); margin-top: 10px; }
.sb-gh::-webkit-details-marker { display: none; }
.sb-gicon { display: none; }
.sb-gcount { display: none; }
.sb-caret { flex: 0 0 auto; line-height: 0; transition: transform .15s; }
.sb-caret .ico { width: 14px; height: 14px; }
.sb-group[open] > .sb-gh .sb-caret { transform: rotate(90deg); }
.sb-sub { padding-left: 14px; }
.sb-count { margin-left: auto; flex: 0 0 auto; font-size: 11px; font-weight: 700; background: var(--bad); color: #fff; border-radius: 99px; padding: 1px 7px; line-height: 16px; }
.sb-count.warn { background: var(--warn); }
.sb-foot { padding: 10px; border-top: 1px solid rgba(255, 255, 255, .08); display: flex; align-items: center; gap: 10px; }
.sb-avatar { background: var(--side-hover); font-size: 13px; }
.sb-who { display: flex; flex-direction: column; line-height: 1.25; color: #fff; font-size: 13px; }
.sb-who form { margin: 0; }
.sb-who button { background: none; border: 0; padding: 0; color: var(--side-muted); font: inherit; font-size: 12px; cursor: pointer; }
.sb-who button:hover { color: #fff; text-decoration: underline; }
.sb-collapse { margin-left: auto; flex: 0 0 auto; background: var(--side-hover); color: var(--side-fg); border: 0; border-radius: 8px; padding: 6px 7px; cursor: pointer; line-height: 0; }
.sb-collapse:hover { color: #fff; }
.sidebar a:focus-visible, .sidebar button:focus-visible, .sidebar summary:focus-visible, .sidebar select:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.sb-open { display: none; align-items: center; gap: 6px; border: 1px solid var(--borda); background: var(--branco); color: var(--roxo); font: inherit; font-weight: 700; padding: 6px 10px; border-radius: 8px; cursor: pointer; }
.sb-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, .4); z-index: 39; }
.page-tabs { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--borda); margin: 0 0 18px; }
.page-tabs a { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; color: var(--lavanda); text-decoration: none; font-weight: 700; font-size: .92rem; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.page-tabs a:hover { color: var(--roxo); }
.page-tabs a.on { color: var(--accent); border-bottom-color: var(--accent); }
.page-tabs .sb-count { margin-left: 2px; }
.has-shell .kanban { margin-right: 0; }
.has-shell .indique-faixa { display: none; }

/* Recolhido (computador): só os ícones, com os contadores. */
@media (min-width: 901px) {
  .sb-mini .sidebar { flex-basis: 64px; width: 64px; }
  .sb-mini .sb-label, .sb-mini .sb-caret { display: none !important; }
  .sb-mini .sb-brand { justify-content: center; padding: 14px 0; }
  .sb-mini .sb-unit, .sb-mini .sb-search { justify-content: center; margin: 10px 8px 0; padding: 8px 0; }
  .sb-mini .sb-nav { padding: 8px 6px; }
  .sb-mini .sb-item, .sb-mini .sb-gh { justify-content: center; padding: 9px 0; position: relative; }
  .sb-mini .sb-gh { height: 1px; padding: 0; margin: 8px 8px; background: rgba(255, 255, 255, .1); overflow: hidden; pointer-events: none; }
  .sb-mini .sb-gh > * { display: none !important; }
  .sb-mini .sb-count { position: absolute; top: 2px; right: 6px; font-size: 10px; padding: 0 5px; line-height: 15px; }
  .sb-mini .sb-foot { flex-direction: column; padding: 10px 0; }
  .sb-mini .sb-collapse { margin: 0 auto; transform: rotate(180deg); }
}
/* Celular e tablet: o menu abre por cima pelo botão Menu. */
@media (max-width: 900px) {
  .sb-open { display: inline-flex; }
  .sidebar { position: fixed; z-index: 40; top: 0; left: 0; height: 100vh; height: 100dvh; width: min(280px, 86vw); transform: translateX(-102%); transition: transform .18s ease; padding-top: env(safe-area-inset-top, 0px); }
  .sb-shown .sidebar { transform: none; }
  .sb-collapse { display: none; }
  .sb-close { display: block; }
  .app-main .container { padding-left: 16px; padding-right: 16px; }
  .topbar .logo img { height: 30px; }
}
@media (prefers-reduced-motion: reduce) { .sidebar, .sb-caret { transition: none; } }
@media print { .sidebar, .sb-open, .sb-backdrop, .page-tabs { display: none !important; } }

/* v0.56: área do cliente mais simples */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.client-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.client-tabs { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 2px solid var(--borda); margin-bottom: 18px; }
.client-tabs a { padding: 9px 14px; font-weight: 700; color: var(--lavanda); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.client-tabs a:hover { color: var(--roxo); }
.client-tabs a.on { color: var(--rosa); border-bottom-color: var(--rosa); }
.next-step { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; border-radius: 14px; padding: 12px 14px; margin: 0 0 14px; background: var(--creme); border: 1px solid var(--borda); }
.next-step .next-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; background: var(--lavanda); }
.next-step .next-text { flex: 1 1 220px; min-width: 0; font-weight: 700; }
.next-step .next-text small { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--lavanda); }
.next-acao { background: var(--accent-soft); border-color: var(--accent-soft); } .next-acao .next-dot { background: var(--rosa); } .next-acao .next-text small { color: var(--rosa-escuro); }
.next-espera { background: #FFF4D6; border-color: #F5E2A8; } .next-espera .next-dot { background: #E8A400; }
.next-ok { background: #E3F5F3; border-color: #BFE6E1; } .next-ok .next-dot { background: var(--verde); } .next-ok .next-text small { color: var(--verde-esc); }
.card > .next-step { margin: -4px -4px 14px; }
.next-party { margin-bottom: 20px; }
.next-party .next-step { margin: 14px 0 0; }
.res-timeline { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 18px; padding: 0; counter-reset: passo; }
.res-timeline li { position: relative; padding-top: 14px; font-size: .82rem; font-weight: 700; color: var(--lavanda); border-top: 4px solid var(--borda); }
.res-timeline li.done { color: var(--roxo); border-top-color: var(--verde); }
.res-timeline li.now { color: var(--rosa-escuro); border-top-color: var(--rosa); }
.coupon-box > summary, .managed-box > summary { cursor: pointer; color: var(--rosa); font-weight: 700; font-size: .92rem; list-style: none; }
.coupon-box > summary::-webkit-details-marker, .managed-box > summary::-webkit-details-marker { display: none; }
.managed-box[open] > summary { margin-bottom: 8px; }
.coupon-box[open] > summary { margin-bottom: 6px; }
.promo-strip { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 20px 0 0; padding: 12px 16px; border-radius: 14px; background: var(--branco); border: 1px dashed var(--borda); }
.promo-strip span { flex: 1 1 220px; min-width: 0; color: var(--lavanda); }
.rsvp-form .options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.rsvp-form .options .option { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 56px; border: 2px solid var(--borda); border-radius: 14px; font-weight: 800; font-size: 1.05rem; cursor: pointer; background: var(--branco); }
.rsvp-form .options .option:has(input:checked) { border-color: var(--rosa); background: var(--accent-soft); color: var(--rosa-escuro); }
.rsvp-more { margin-bottom: 12px; }
.rsvp-more > summary { cursor: pointer; color: var(--lavanda); font-size: .92rem; font-weight: 700; margin-bottom: 8px; }
.reserve-sticky { display: none; }
@media (max-width: 859px) {
  .reserve-sticky { display: block; position: fixed; z-index: 20; left: 16px; right: 16px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); text-align: center; padding: 14px; border-radius: 16px; background: var(--rosa); color: #fff; font-weight: 800; text-decoration: none; box-shadow: 0 8px 24px rgba(214, 18, 95, .35); }
  .partner-layout { padding-bottom: 72px; }
  .res-timeline li { font-size: .74rem; }
}

/* v0.58: tema claro do desenho do menu (DM Sans, cinzas neutros e menu escuro) com o destaque no vermelho da marca
   (#D6125F). O tema escuro (padrão) está em tema-escuro.css, com o mesmo vermelho num tom mais claro. */
:root {
  --font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "DM Mono", ui-monospace, "SFMono-Regular", monospace;
  --accent: #D6125F; --accent-2: #FF6FA5; --accent-soft: #FDE7EF;
  --bad: #c6372f; --warn: #b7791f; --ok: #1f8a5b;
  --side: #211c33; --side-fg: #d9d5e8; --side-muted: #8d87a3; --side-hover: #2d2745; --side-active: #4a1a33;
  --rosa: #D6125F; --rosa-escuro: #B00E4E; --rosa-neon: #FF6FA5;
  --roxo: #1d1a26; --creme: #f6f5f8; --lavanda: #6b6677; --borda: #e4e1ea; --branco: #ffffff;
  --verde: #1f8a5b; --verde-esc: #17694a;
  --r-botao: 8px; --r-card: 12px; --sombra: 0 2px 10px rgba(29, 26, 38, .05);
}
body { font-family: var(--font); background: var(--creme); color: var(--roxo); }
h1, h2, h3, .total, .pix-value, .amigos-promo-text strong, .indique-faixa strong, .hl-num strong, .hl-alert summary b, .hl-funnel strong, .kv strong {
  font-family: var(--font); font-weight: 700; letter-spacing: -.01em;
}
.btn { font-weight: 700; }
.btn-ghost:hover { background: var(--accent-soft); }
.btn-dark:hover { background: #000; }
.tabs a.active { background: var(--accent); border-color: var(--accent); }
.topbar { background: var(--branco); border-bottom-color: var(--borda); }

/* v0.57: escolha do tema no menu do usuário */
.user-panel form.user-theme { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; padding: 8px 10px; }
.user-panel form.user-theme span { flex: 1 0 100%; font-size: .78rem; font-weight: 700; color: var(--lavanda); margin-bottom: 2px; }
.user-panel form.user-theme button { width: auto; flex: 1 1 0; text-align: center; padding: 6px 4px; border: 1px solid var(--borda); border-radius: 8px; background: transparent; color: var(--roxo); font: inherit; font-size: .82rem; cursor: pointer; }
.user-panel form.user-theme button.on { background: var(--accent); border-color: var(--accent); color: #fff; }

/* v0.57: logo clara no tema escuro */
html .topbar .logo .logo-escuro { display: none; }
html[data-tema="escuro"] .topbar .logo .logo-claro { display: none; }
html[data-tema="escuro"] .topbar .logo .logo-escuro { display: block; }

/* v0.59: documentos e fotos do parceiro */
.doc-upload { display: grid; gap: 10px; }
.doc-drop { position: relative; display: grid; place-items: center; gap: 4px; text-align: center; padding: 22px 14px; border: 2px dashed var(--borda); border-radius: var(--r-card); background: var(--creme); cursor: pointer; }
.doc-drop.on, .doc-drop:focus-within { border-color: var(--accent); background: var(--accent-soft); }
.doc-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.doc-drop-ico { font-size: 1.6rem; line-height: 1; color: var(--accent); }
.doc-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.doc-camera { min-height: 44px; }
.doc-preview, .doc-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.doc-preview li { display: flex; align-items: center; gap: 8px; min-width: 0; border: 1px solid var(--borda); border-radius: 10px; padding: 6px 8px; background: var(--branco); }
.doc-preview img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; flex: none; }
.doc-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.doc-bad { color: var(--erro); }
.doc-pdf { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 6px; background: var(--accent-soft); color: var(--accent); font-weight: 800; font-size: .75rem; flex: none; }
.doc-item { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; align-items: start; border: 1px solid var(--borda); border-radius: var(--r-card); padding: 10px; background: var(--branco); min-width: 0; }
.doc-item form { grid-column: 2; margin: 0; }
.doc-thumb { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 8px; overflow: hidden; background: var(--creme); }
.doc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.doc-thumb .doc-pdf { width: 72px; height: 72px; font-size: .9rem; }
.doc-meta { display: grid; gap: 2px; min-width: 0; }
.doc-meta .doc-name { white-space: normal; word-break: break-word; }

/* v0.59: indicação por e-mail */
.indique-email { display: grid; gap: 4px 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); align-items: end; }
.indique-email .btn { min-height: 44px; }

/* v0.59: revisão de responsividade (celular e tablet) */
img, video, iframe, canvas { max-width: 100%; }
@media (max-width: 700px) {
    .new-deal[open] > form, .new-deal[open] > .card { position: static; width: 100%; margin-top: 10px; }
    .new-deal { width: 100%; }
}
.rsvp-form .options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 400px) {
    .rsvp-form .options .option { font-size: .95rem; padding: 0 4px; flex-direction: column; gap: 2px; text-align: center; }
}
.options .option { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 760px) {
    input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { font-size: 16px; max-width: 100%; }
    .table-wrap, .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    main :not(.table-wrap) > table { display: block; max-width: 100%; overflow-x: auto; }
    .modal, dialog { max-width: calc(100vw - 24px); }
    .tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
    .tabs > * { flex: none; }
}
@media (pointer: coarse) {
    .btn, button, select, input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]), .tabs a, .sb-nav a, .sb-group > summary { min-height: 44px; }
    input[type=checkbox], input[type=radio] { min-width: 22px; min-height: 22px; }
}
.contract-vars { table-layout: fixed; width: 100%; }
.contract-vars td { overflow-wrap: anywhere; vertical-align: top; }
.contract-vars td:first-child { width: 48%; }

/* v0.60: botões de entrar com redes sociais (cores de cada marca, legíveis nos dois temas) */
.social-login { display: grid; gap: 10px; margin: 6px 0 16px; }
.social-btn { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 10px 16px; border-radius: var(--r-botao, 12px); font-weight: 700; text-decoration: none; border: 1px solid #dadce0; background: #fff; color: #1f1f1f; }
.social-btn:hover { text-decoration: none; filter: brightness(.97); }
.social-btn svg { width: 20px; height: 20px; flex: none; }
.social-apple { background: #000; color: #fff; border-color: #000; }
.social-facebook { background: #1877F2; color: #fff; border-color: #1877F2; }
html[data-tema="escuro"] .social-apple { background: #fff; color: #000; border-color: #fff; }
.social-ou { display: flex; align-items: center; gap: 10px; color: var(--lavanda); font-size: .85rem; margin-top: 4px; }
.social-ou::before, .social-ou::after { content: ""; flex: 1; height: 1px; background: var(--borda); }

/* v0.60: Pix da plataforma (QR Code, copia e cola e quem recebe cada valor) */
.pix-page { max-width: 980px; }
.pix-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 16px; align-items: start; }
@media (max-width: 760px) { .pix-grid { grid-template-columns: 1fr; } }
.pix-card { display: grid; gap: 10px; }
.pix-valor { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.pix-valor strong { font-size: 1.8rem; }
.pix-qr-img { display: block; width: min(240px, 100%); height: auto; margin: 6px auto; background: #fff; padding: 10px; border-radius: 12px; }
.pix-copia { display: grid; gap: 8px; }
.pix-copia textarea { width: 100%; font-family: Consolas, "Courier New", monospace; font-size: .85rem; word-break: break-all; resize: none; }
.pix-ok { background: var(--accent-soft, #EAF7F6); border-radius: 12px; padding: 12px 14px; }
.pix-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pix-lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding-top: 10px; border-top: 1px solid var(--borda); }
.pix-lista li:first-child { border-top: 0; padding-top: 0; }
.pix-lista em { grid-column: 1 / -1; font-style: normal; font-size: .85rem; color: var(--lavanda); }

/* v0.61: cardápio com seções, ordem (arrastar) e foto por item */
.menu-thumb { width: 56px; height: 56px; flex: none; border-radius: 10px; object-fit: cover; background: var(--creme); }
.menu-thumb-vazia { display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; border: 1px dashed var(--borda); }
.menu-line { gap: 10px; align-items: center; }
.menu-admin { display: grid; gap: 14px; }
.menu-sec { padding-top: 12px; }
.menu-sec-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.menu-sec-head h2 { margin: 0; flex: 1; min-width: 0; font-size: 1.15rem; }
.menu-sec-edit { flex-basis: 100%; }
.menu-handle { cursor: grab; user-select: none; touch-action: none; font-size: 1.3rem; line-height: 1; color: var(--lavanda); padding: 10px 6px; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.menu-list { display: grid; gap: 8px; margin-top: 10px; min-height: 12px; }
.menu-item { border: 1px solid var(--borda); border-radius: var(--r-card, 12px); padding: 6px 12px 8px 4px; background: var(--branco); }
.menu-item-row { display: flex; align-items: center; gap: 10px; }
.menu-item-main { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.menu-item-edit { margin: 4px 0 0 54px; }
.menu-item.ghost, .menu-sec.ghost { opacity: .45; }
@media (max-width: 520px) { .menu-item-edit { margin-left: 8px; } .menu-thumb { width: 48px; height: 48px; } }

/* v0.62: Planos para parceiros */
.planos { max-width: 1100px; margin: 0 auto; }
.planos-hero { text-align: center; max-width: 720px; margin: 8px auto 24px; }
.planos-tag { font-size: .8rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--rosa); margin: 0 0 6px; }
.planos-sub { color: var(--lavanda); font-size: 1.05rem; }
.planos-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; align-items: stretch; }
.plano-card { position: relative; display: flex; flex-direction: column; gap: 8px; }
.plano-card h2 { margin: 0; }
.plano-destaque { border: 2px solid var(--rosa); box-shadow: 0 8px 28px rgba(214, 18, 95, .18); }
.plano-selo { position: absolute; top: -12px; left: 16px; background: var(--rosa); color: #fff; font-size: .75rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; }
html[data-tema="escuro"] .plano-selo { background: #D6125F; color: #fff; }
.plano-pitch { color: var(--lavanda); margin: 0; }
.plano-preco { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.plano-preco strong { font-size: 1.9rem; line-height: 1.1; }
.plano-preco span, .plano-nota { color: var(--lavanda); }
.plano-nota { margin: 0; }
.plano-inclui { margin: 4px 0 8px; padding-left: 20px; flex: 1; }
.plano-inclui li { margin: 4px 0; }
.planos-h2 { margin-top: 32px; }
.planos-tabela td, .planos-tabela th { text-align: center; }
.planos-tabela td:first-child, .planos-tabela th:first-child { text-align: left; }
.plano-col-destaque { color: var(--rosa); }
.planos-faq { display: grid; gap: 10px; }
.planos-faq summary { font-weight: 700; cursor: pointer; min-height: 32px; }
.planos-faq p { margin: 10px 0 0; }
.planos-cta { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.planos-opcoes { display: grid; gap: 10px; margin-bottom: 12px; }
.plano-opcao { padding: 10px 12px; border: 1px solid var(--borda); border-radius: var(--r-card, 12px); }
.plano-escolhido { padding: 8px 10px; border-radius: 10px; background: var(--accent-soft, #FFE6EC); }
@media (max-width: 560px) { .planos-tabela table { font-size: .88rem; } .planos-tabela td:first-child { width: 52%; } .planos-tabela td, .planos-tabela th { padding-left: 6px; padding-right: 6px; } }

/* v0.63: Mensal/Anual e vagas de fundador */
.planos-ciclo { display: flex; justify-content: center; gap: 4px; margin: 0 auto 20px; padding: 4px; border: 1px solid var(--borda); border-radius: 999px; width: fit-content; max-width: 100%; background: var(--branco); }
.planos-ciclo button { border: 0; background: transparent; color: var(--roxo); font: inherit; font-weight: 700; padding: 8px 18px; border-radius: 999px; min-height: 44px; cursor: pointer; }
.planos-ciclo button[aria-pressed="true"] { background: var(--rosa); color: #fff; }
html[data-tema="escuro"] .planos-ciclo button[aria-pressed="true"] { background: #D6125F; }
.planos-economia { font-size: .78rem; font-weight: 800; margin-left: 4px; }
.plano-economia { margin: 0; color: var(--verde-esc, #0B7A75); }
html[data-tema="escuro"] .plano-economia { color: #7dd3ab; }
.plano-vagas { margin: 0; padding: 6px 10px; border-radius: 10px; background: var(--accent-soft, #FFE6EC); width: fit-content; }

/* v0.64: mala direta, tipo de parceiro no CRM e ações da lista de parceiros */
.mala-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; align-items: start; margin-top: 12px; }
.mala-lgpd { font-size: .9rem; margin: 10px 0 14px; }
.mala-email { width: 100%; height: 460px; border: 1px solid var(--borda); border-radius: 12px; background: #fff; }
.mala-sms { background: var(--creme); border: 1px solid var(--borda); border-radius: 14px 14px 14px 4px; padding: 12px 14px; max-width: 320px; white-space: pre-wrap; overflow-wrap: anywhere; }
.sms-prov { border: 1px solid var(--borda); border-radius: 12px; padding: 8px 12px; margin: 0 0 12px; }
.crm-tipo { display: inline-block; margin: 2px 0; font-size: .72rem; }
.partner-actions .btn, .partner-actions form { flex: none; }
@media (max-width: 640px) {
  .mala-tabela thead { display: none; }
  .mala-tabela, .mala-tabela tbody, .mala-tabela tr, .mala-tabela td { display: block; width: 100%; }
  .mala-tabela tr { padding: 10px 0; border-bottom: 1px solid var(--borda); }
  .mala-tabela td { border: 0; padding: 2px 0; }
  .mala-tabela td[data-label] { display: flex; justify-content: space-between; gap: 12px; }
  .mala-tabela td[data-label]::before { content: attr(data-label); color: var(--muted, inherit); opacity: .75; }
}

/* v0.65: implantação de parceiros */
.impl-progress { margin: 14px 0 16px; }
.impl-bar { display: block; height: 8px; border-radius: 99px; background: var(--borda); overflow: hidden; margin: 6px 0 2px; }
.impl-bar > span { display: block; height: 100%; background: var(--verde); border-radius: 99px; transition: width .3s; }
.impl-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 6px; }
.impl-steps a { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; color: inherit; font-size: .75rem; text-align: center; line-height: 1.2; }
.impl-n { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; border: 2px solid var(--borda); background: var(--branco); }
.impl-ok .impl-n { background: var(--verde); border-color: var(--verde); color: #fff; }
.impl-and .impl-n { border-color: var(--amarelo); }
.impl-cur .impl-n { outline: 3px solid var(--rosa); outline-offset: 2px; }
.impl-cur .impl-l { font-weight: 800; color: var(--rosa); }
@media (max-width: 760px) { .impl-steps .impl-l { display: none; } .impl-steps .impl-cur .impl-l { display: none; } }
.impl-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 16px; align-items: start; }
@media (max-width: 900px) { .impl-grid { grid-template-columns: minmax(0, 1fr); } }
.impl-main { min-width: 0; }
.impl input[type=file] { max-width: 100%; min-width: 0; }
.impl .btn:disabled, .impl .btn[aria-disabled=true] { opacity: .5; cursor: not-allowed; }
.impl-aside { display: grid; gap: 12px; position: sticky; top: 76px; }
@media (max-width: 900px) { .impl-aside { position: static; } }
.impl-help ol { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.impl-check ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.impl-check li { display: grid; gap: 2px; padding-bottom: 8px; border-bottom: 1px solid var(--borda); }
.impl-check li a { color: inherit; text-decoration: none; font-weight: 700; }
.impl-chip { display: inline-block; font-size: .7rem; font-weight: 800; padding: 2px 8px; border-radius: 99px; margin-right: 4px; vertical-align: 1px; border: 1px solid var(--borda); }
.impl-ok .impl-chip { background: var(--verde); border-color: var(--verde); color: #fff; }
.impl-and .impl-chip { background: var(--amarelo); border-color: var(--amarelo); color: #2B0F4C; }
.impl-falta { color: var(--erro); }
html[data-tema="escuro"] .impl-falta { color: #ef7b72; }
.impl-block { border-left: 4px solid var(--erro); background: rgba(180, 35, 24, .08); border-radius: 8px; padding: 8px 12px; margin: 10px 0; }
.impl-block ul { margin: 4px 0 0; padding-left: 18px; }
.impl-ready { border-left: 4px solid var(--verde); background: rgba(18, 181, 173, .1); border-radius: 8px; padding: 8px 12px; margin: 10px 0; }
.impl-draft, .impl-missing { border-radius: 8px; padding: 6px 10px; background: rgba(255, 194, 61, .18); }
.impl-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.impl-items { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.impl-items li { display: flex; align-items: center; gap: 10px; justify-content: space-between; border: 1px solid var(--borda); border-radius: 10px; padding: 6px 10px; min-width: 0; }
.impl-items li > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.impl-items img { width: 40px; height: 40px; object-fit: cover; border-radius: 8px; flex: none; }
.impl-nophoto { font-size: .65rem; color: var(--lavanda); border: 1px dashed var(--borda); border-radius: 8px; padding: 10px 4px; flex: none; text-align: center; width: 48px; }
.impl-box { border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; margin: 10px 0; }
.impl-box form { margin-top: 10px; }
.impl-pre { background: var(--creme); border: 1px solid var(--borda); border-radius: 8px; padding: 8px 10px; font-size: .8rem; overflow-x: auto; }
.impl-areas { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; align-items: center; margin-bottom: 10px; }
.impl-areas-check { display: grid; gap: 6px; }
.impl-plans { display: grid; gap: 10px; }
.impl-plan { display: flex; gap: 10px; align-items: flex-start; border: 2px solid var(--borda); border-radius: 12px; padding: 10px 12px; cursor: pointer; }
.impl-plan:has(input:checked) { border-color: var(--rosa); }
.impl-plan input { width: auto; margin-top: 4px; accent-color: var(--rosa); }
.impl-cycle { border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; margin-top: 12px; }
.impl-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.impl-photos figure { margin: 0; }
.impl-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; display: block; }
.impl-photos figcaption { display: flex; gap: 6px; align-items: center; justify-content: space-between; margin-top: 4px; }
.impl-logo { border-radius: 12px; object-fit: cover; }
.impl-review { display: grid; gap: 8px; }
.impl-rev { border: 1px solid var(--borda); border-left-width: 4px; border-radius: 10px; padding: 8px 12px; }
.impl-rev.impl-ok { border-left-color: var(--verde); }
.impl-rev.impl-and, .impl-rev.impl-pend { border-left-color: var(--amarelo); }
.impl-alert { display: block; border-left: 4px solid var(--amarelo); background: rgba(255, 194, 61, .18); border-radius: 10px; padding: 10px 14px; margin: 12px 0; color: inherit; text-decoration: none; }
.impl-filter { margin: 12px 0; }
.impl-list { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.impl-card { display: grid; gap: 6px; color: inherit; text-decoration: none; }
.impl-card.impl-stalled { border-left: 4px solid var(--amarelo); }

/* v0.68: ajudante da festa e motivo de não ir */
.helper-page { max-width: 560px; margin: 0 auto; }
.helper-card { margin-bottom: 14px; }
.helper-list { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.helper-list li { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: center; border: 1px solid var(--borda); border-radius: 12px; padding: 8px 12px; }
.helper-list li > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.decline-reason { display: block; margin-top: 2px; font-style: italic; }

/* v0.69: organizadores, item e mesa por adesão, check-in da festa entre amigos */
.org-list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.org-list li { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: flex-start; border: 1px solid var(--borda); border-radius: 12px; padding: 8px 12px; }
.org-main { min-width: 0; overflow-wrap: anywhere; flex: 1 1 220px; }
.org-task { margin-top: 2px; font-size: .92rem; }
.org-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.org-task-edit form { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.org-task-edit input { flex: 1 1 180px; min-width: 0; }
.org-add, .org-log { margin-top: 8px; }
.adesao-note { border-left: 4px solid var(--verde); background: var(--creme); border-radius: 8px; padding: 8px 12px; margin: 8px 0; }
.adesao-count { margin-top: 6px; }
.adesao-count .total { font-size: 1.4rem; }
.adesao-box { border: 1.5px solid var(--verde); border-radius: 14px; padding: 12px 14px; margin: 16px 0 6px; }
.adesao-opt { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-top: 1px dashed var(--borda); cursor: pointer; }
.adesao-opt input { width: auto; margin-top: 4px; accent-color: var(--verde); }
.badge-adesao { background: var(--verde); color: #fff; }
.adesao-check { display: inline-flex; gap: 4px; align-items: center; }
.item-ad { display: inline-flex; gap: 4px; align-items: center; white-space: nowrap; }
.amigos-checkin .ci-item { background: var(--branco); border: 1px solid var(--borda); border-radius: var(--r-card); padding: 12px 14px; margin-bottom: 8px; }
.amigos-checkin .ci-item.in { border-color: var(--verde); }
.amigos-checkin .ci-go { background: var(--verde); border-color: var(--verde); }

/* v0.70: "Não precisa levar nada" */
.nada-note { border-left: 4px solid var(--verde); background: var(--creme); border-radius: 8px; padding: 8px 12px; margin: 12px 0; }
