/* =====================================================================
   4Event · painel — preto, dourado e branco
   Base clara (branco quente) para leitura; preto na navegação; dourado só
   para destaque, foco e estados ativos.
   ===================================================================== */
:root {
  --bg: #f6f5f1;          /* fundo do conteúdo */
  --card: #ffffff;
  --ink: #15161a;         /* texto principal */
  --muted: #6f717b;
  --line: #e9e6de;
  --line-2: #f1efe9;
  --brand: #15161a;       /* preto da marca (títulos, botão primário) */
  --brand-2: #2a2b31;
  --nav: #0d0e12;         /* menu lateral */
  --nav-2: #16171d;
  --gold: #b8924a;        /* dourado de destaque */
  --gold-2: #e2c27a;      /* dourado claro (sobre preto) */
  --gold-ink: #8a6a2c;    /* dourado para texto sobre branco */
  --gold-soft: #f7f0e1;
  --ok: #1f7a52;
  --warn: #a8701a;
  --bad: #b4372f;
  --radius: 14px;
  --sombra: 0 1px 2px rgba(17, 18, 22, .04), 0 8px 24px -12px rgba(17, 18, 22, .12);
  --fonte: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --fonte-tit: "Cormorant Garamond", Georgia, serif;
}
* { box-sizing: border-box; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink); font-family: var(--fonte);
  line-height: 1.5; -webkit-font-smoothing: antialiased; font-feature-settings: "cv11", "ss01";
}
h1, h2, h3 { font-family: var(--fonte); font-weight: 650; margin: 0; color: var(--ink); letter-spacing: -.01em; }
h1 { font-size: 1.55rem; line-height: 1.2; }
h2 { font-size: 1.05rem; margin-bottom: 14px; }
h3 { font-size: .95rem; margin: 18px 0 8px; }
a { color: var(--gold-ink); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--ink); }
.muted { color: var(--muted); font-size: .9rem; }
.center { text-align: center; }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
::selection { background: #f0e2c0; }

/* ---------- casco: menu lateral preto + área clara ---------- */
.casco { display: flex; min-height: 100vh; }
.lateral {
  width: 248px; flex-shrink: 0; background: var(--nav); color: rgba(255,255,255,.72);
  position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 18px 12px 28px;
  display: flex; flex-direction: column; gap: 1px; scrollbar-width: thin; scrollbar-color: #2a2b31 transparent;
  border-right: 1px solid #1d1e24;
}
.lat-marca { display: block; padding: 4px 10px 14px; }
.lat-marca img { height: 46px; width: auto; display: block; }
.lat-conta { margin: 0 4px 14px; padding: 10px 12px; border-radius: 10px; background: var(--nav-2); border: 1px solid #23242b; }
.lat-conta small { display: block; font-size: .66rem; text-transform: uppercase; letter-spacing: .14em; color: var(--gold-2); opacity: .85; }
.lat-conta strong { display: block; color: #fff; font-size: .88rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lateral .sec {
  font-size: .64rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: rgba(226,194,122,.7);
  padding: 16px 12px 6px;
}
.lateral a {
  position: relative; padding: 8px 12px; border-radius: 8px; text-decoration: none; color: rgba(255,255,255,.72);
  font-size: .9rem; line-height: 1.35; transition: background .15s, color .15s;
}
.lateral a:hover { background: rgba(255,255,255,.05); color: #fff; }
.lateral a.ativo { background: linear-gradient(90deg, rgba(226,194,122,.16), rgba(226,194,122,.04)); color: #fff; font-weight: 600; }
.lateral a.ativo::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--gold-2); }
.lateral a.lat-volta { color: var(--gold-2); font-weight: 600; margin-bottom: 6px; }
.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topo {
  position: sticky; top: 0; z-index: 20; height: 64px; display: flex; align-items: center; gap: 14px;
  padding: 0 28px; background: rgba(255,255,255,.86); backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--line);
}
.topo-logo { display: none; }
.topo-tit { font-size: .95rem; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topo .grow { flex: 1; }
.topo .quem { display: flex; align-items: center; gap: 10px; font-size: .88rem; color: var(--muted); }
.topo .quem i {
  font-style: normal; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--nav); color: var(--gold-2); font-weight: 600; font-size: .8rem; letter-spacing: .02em; box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--gold-2);
}
.topo .sair { color: var(--ink); text-decoration: none; font-size: .85rem; font-weight: 500; border: 1px solid var(--line); padding: 7px 14px; border-radius: 999px; background: #fff; }
.topo .sair:hover { border-color: var(--ink); }
.menu-btn { display: none; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; padding: 0; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }
.menu-btn span { display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--ink); }
.veu { display: none; }
.conteudo { flex: 1; width: 100%; max-width: 1240px; padding: 28px 28px 48px; }
.conteudo-solo { padding: 20px; }

/* ---------- blocos ---------- */
.cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.cab h1 { position: relative; padding-bottom: 10px; }
.cab h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; border-radius: 2px; background: var(--gold); }
.cab .acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 20px 22px; margin-bottom: 18px; box-shadow: var(--sombra);
}
details.card > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; }
details.card > summary::-webkit-details-marker { display: none; }
details.card > summary::after { content: "+"; margin-left: auto; color: var(--gold-ink); font-size: 1.2rem; line-height: 1; }
details.card[open] > summary::after { content: "–"; }
.card.faixa { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; background: var(--gold-soft); border-color: #ecdcb6; box-shadow: none; }
.card.filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.tabela-wrap { overflow-x: auto; margin: 0 -4px; padding: 0 4px; }

/* ---------- avisos ---------- */
.flash { padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; font-size: .92rem; border: 1px solid; border-left-width: 4px; background: #fff; }
.flash.ok { border-color: #cfe7da; border-left-color: var(--ok); color: #17573b; background: #f3faf6; }
.flash.erro { border-color: #f1d0cc; border-left-color: var(--bad); color: #85291f; background: #fdf4f3; }
.flash.aviso { border-color: #efdcb1; border-left-color: var(--gold); color: #6e4e10; background: #fdf8ec; }

/* ---------- formulários ---------- */
.form label { display: flex; flex-direction: column; gap: 6px; font-size: .82rem; font-weight: 500; color: #4b4d55; }
.form.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.form:not(.grid):not(.linha) { display: flex; flex-direction: column; gap: 16px; }
.form .full, .full { grid-column: 1 / -1; }
input, select, textarea {
  font: inherit; font-size: .94rem; color: var(--ink); background: #fff; border: 1px solid #dcd8ce; border-radius: 10px;
  padding: 10px 12px; width: 100%; min-width: 0; transition: border-color .15s, box-shadow .15s;
}
input:hover, select:hover, textarea:hover { border-color: #c8c3b6; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,146,74,.18); }
input:disabled, select:disabled, textarea:disabled { background: #f4f3ef; color: var(--muted); }
input[type=checkbox], input[type=radio] { width: auto; accent-color: var(--ink); }
input[readonly] { background: #faf9f6; }
.chk { display: inline-flex; flex-direction: row; align-items: center; gap: 8px; color: var(--ink); font-size: .92rem; font-weight: 400; }
.form.linha { display: flex; gap: 10px; align-items: center; margin-top: 14px; flex-wrap: nowrap; }
.form.linha.wrap { flex-wrap: wrap; }
.form.linha input, .form.linha select { flex: 1 1 140px; width: auto; }
.form.linha button { flex: 0 0 auto; }
.linha-dupla { display: flex; gap: 20px; flex-wrap: wrap; }
.linha-dupla > * { min-width: 0; }
.tabela a { color: var(--ink); font-weight: 600; text-decoration: none; }
.tabela a:hover { color: var(--gold-ink); text-decoration: underline; }
.linha-dupla .form.linha { flex: 1 1 280px; }
.inline-form, .inline { display: inline-flex; gap: 6px; align-items: center; }
.inline-form select { width: auto; padding: 6px 8px; }
label.inline { flex-direction: row; align-items: center; color: var(--muted); gap: 6px; }
label.inline input { width: auto; }
.acoes { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
legend { font-size: .82rem; font-weight: 600; color: #4b4d55; padding: 0 6px; }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: var(--brand); color: #fff;
  border: 1px solid var(--brand); padding: 10px 18px; border-radius: 10px; font: inherit; font-size: .9rem; font-weight: 600;
  cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .15s, box-shadow .15s, transform .1s;
}
.btn:hover { background: #000; color: #fff; box-shadow: 0 0 0 3px rgba(184,146,74,.25); }
.btn:active { transform: translateY(1px); }
.btn.sec { background: #fff; color: var(--ink); border-color: #d9d5ca; }
.btn.sec:hover { background: #fff; border-color: var(--ink); box-shadow: none; }
.btn.ouro { background: linear-gradient(135deg, #d9b25e, #efd590); color: #1d1606; border-color: #d2ab59; }
.btn.perigo { background: var(--bad); border-color: var(--bad); }
.btn-full { width: 100%; padding: 12px 18px; }
button.link { background: none; border: 0; color: var(--gold-ink); cursor: pointer; padding: 0; font: inherit; font-size: .88rem; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
button.link:hover { color: var(--ink); }
button.link.perigo, a.perigo { color: var(--bad); }

/* ---------- tabelas ---------- */
.tabela { width: 100%; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; }
.tabela th { text-align: left; font-weight: 600; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; background: #fbfaf7; }
.tabela thead tr th:first-child { border-top-left-radius: 8px; }
.tabela thead tr th:last-child { border-top-right-radius: 8px; }
.tabela th.num { text-align: right; }
.tabela td { padding: 12px; border-bottom: 1px solid var(--line-2); vertical-align: top; }
.tabela tbody tr:hover td { background: #fcfbf8; }
.tabela tr.total td { border-top: 1px solid var(--line); background: #faf8f2; font-weight: 600; }
.tabela tr.destaque td { background: var(--gold-soft); }
.tabela .acoes-linha { white-space: nowrap; display: flex; gap: 12px; align-items: center; }
.acoes-linha form { display: inline; margin: 0; }
.atraso { color: var(--bad); font-weight: 600; }

/* ---------- status ---------- */
.badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-size: .74rem; font-weight: 600; background: #f0eee8; color: #55575f; border: 1px solid transparent; line-height: 1.5; }
.badge.st-orcamento { background: #fdf3dd; color: #8a5a07; }
.badge.st-contrato { background: #15161a; color: var(--gold-2); }
.badge.st-confirmado { background: #e5f4ec; color: #17603f; }
.badge.st-realizado { background: #efeaf8; color: #4f3696; }
.badge.st-pos_festa { background: #e9f0f3; color: #33586a; }
.badge.st-cancelado { background: #f9e5e3; color: #8a2a23; }
.badge.st-pago { background: #e5f4ec; color: #17603f; }
.badge.st-aberto { background: #f0eee8; color: #55575f; }
.badge.st-atrasado { background: #f9e5e3; color: #8a2a23; }

/* ---------- indicadores ---------- */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 20px; }
.kpi { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px 15px; box-shadow: var(--sombra); overflow: hidden; }
.kpi::before { content: ""; position: absolute; left: 18px; top: 0; width: 26px; height: 3px; border-radius: 0 0 3px 3px; background: var(--gold); }
.kpi span { display: block; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 4px 0 6px; }
.kpi strong { display: block; font-size: 1.55rem; font-weight: 650; color: var(--ink); letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.15; }
.kpi strong small { font-size: .78rem; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.kpi.neg::before { background: var(--bad); }
.kpi.neg strong { color: var(--bad); }
.kpi.pos::before { background: var(--ok); }
.kpi.pos strong { color: var(--ok); }

.historico { margin: 0 0 12px; padding-left: 18px; font-size: .9rem; }
.abas { display: flex; gap: 2px; margin-bottom: 18px; flex-wrap: wrap; border-bottom: 1px solid var(--line); }
.abas a { padding: 10px 14px; text-decoration: none; color: var(--muted); border-bottom: 2px solid transparent; font-size: .9rem; font-weight: 500; margin-bottom: -1px; }
.abas a:hover { color: var(--ink); }
.abas a.ativo { color: var(--ink); border-bottom-color: var(--gold); font-weight: 600; }

/* ---------- login / cadastro (fora do sistema) ---------- */
body.fora { background: radial-gradient(ellipse at 50% -10%, rgba(226,194,122,.18), transparent 55%), #0d0e12; min-height: 100vh; }
body.fora .conteudo-solo { padding: 24px 16px; }
body.fora .conteudo-solo > .flash { max-width: 440px; margin: 0 auto 14px; }
.auth-box { max-width: 440px; margin: 7vh auto 40px; background: #fff; border-radius: 20px; padding: 34px 32px 30px; box-shadow: 0 30px 80px rgba(0,0,0,.45); border-top: 3px solid var(--gold-2); }
.auth-logo { display: block; height: 72px; width: auto; margin: 0 auto 4px; }
.auth-box h1 { font-size: 1.6rem; text-align: center; }
.auth-box > .muted:first-of-type { text-align: center; margin: 4px 0 22px; }

/* ---------- agenda ---------- */
.cal-wrap { padding: 4px; overflow-x: auto; }
.cal { display: grid; grid-template-columns: repeat(7, minmax(110px, 1fr)); gap: 6px; min-width: 780px; }
.cal-h { text-align: center; font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 6px 0; }
.cal-d { min-height: 108px; border: 1px solid var(--line); border-radius: 10px; padding: 6px; background: #fff; }
.cal-d.vazio { background: transparent; border-color: transparent; }
.cal-d.hoje { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); }
.cal-n { display: flex; justify-content: space-between; font-size: .78rem; font-weight: 600; color: var(--muted); margin-bottom: 4px; }
.cal-n .mais { text-decoration: none; color: var(--gold-ink); font-weight: 700; padding: 0 4px; }
.cal-ev { display: block; font-size: .74rem; line-height: 1.25; padding: 4px 6px; border-radius: 6px; margin-bottom: 3px; text-decoration: none; color: var(--ink); border-left: 3px solid #999; background: #f3f1ec; overflow: hidden; }
.cal-ev small { display: block; color: var(--muted); }
.cal-ev.st-orcamento { background: #fdf3dd; border-left-color: #d49a1d; }
.cal-ev.st-contrato { background: #f1ede4; border-left-color: #15161a; }
.cal-ev.st-confirmado { background: #e5f4ec; border-left-color: var(--ok); }
.cal-ev.st-realizado, .cal-ev.st-pos_festa { background: #efeaf8; border-left-color: #6a4bc0; }
.cal-ev.bloqueio { background: #eee; border-left-color: #777; color: #555; }

/* contrato impresso */
body.doc { background: #e9e6df; }
.doc-barra { display: flex; justify-content: center; gap: 10px; padding: 14px; }
.doc-pagina { max-width: 820px; margin: 0 auto 30px; background: #fff; padding: 48px 56px; box-shadow: 0 4px 24px rgba(0, 0, 0, .12); }
.doc-cab { text-align: center; border-bottom: 2px solid var(--gold); padding-bottom: 12px; margin-bottom: 20px; }
.doc-cab h1 { font-size: 1.5rem; }
.doc-cab p { margin: 6px 0 0; color: var(--muted); font-size: .9rem; }
.doc-titulo { text-align: center; font-size: 1.05rem; letter-spacing: .06em; margin-bottom: 14px; }
.doc-tab { width: 100%; border-collapse: collapse; font-size: .92rem; }
.doc-tab th, .doc-tab td { border-bottom: 1px solid var(--line); padding: 7px 8px; text-align: left; }
.doc-tab th.num, .doc-tab td.num { text-align: right; }
.doc-tab tr td:first-child:not([colspan]) { color: var(--muted); width: 28%; }
.clausulas { font-size: .9rem; }
.assinaturas { display: flex; gap: 40px; margin: 60px 0 20px; text-align: center; font-size: .88rem; }
.assinaturas div { flex: 1; }
.assinaturas span { display: block; border-top: 1px solid #333; margin-bottom: 6px; }
em.assinado { display: block; font-family: Georgia, serif; font-size: 1.3rem; color: #1d2740; margin-bottom: -4px; }
.assinaturas small { color: var(--muted); }
@media print {
  body.doc { background: #fff; }
  .no-print { display: none !important; }
  .doc-pagina { box-shadow: none; margin: 0; max-width: none; padding: 0; }
}

/* operação */
.progresso { height: 8px; background: #ece9e0; border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.progresso span { display: block; height: 100%; background: var(--ok); }
button.check { width: 24px; height: 24px; border-radius: 6px; border: 2px solid #b8b2a2; background: #fff; cursor: pointer; padding: 0; line-height: 1; color: #fff; font-size: .85rem; }
button.check.on { background: var(--ok); border-color: var(--ok); }
tr.feita td { color: var(--muted); text-decoration: line-through; }
tr.feita td:first-child, tr.feita td:last-child { text-decoration: none; }

/* logística (fase 4) */
.os-acoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.os-acoes .btn { padding: 12px 18px; font-size: 1rem; }
.fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin-bottom: 12px; }
.fotos figure { margin: 0; }
.fotos img { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.fotos figcaption { font-size: .8rem; color: var(--muted); }
.cap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.cap-dia { background: var(--card); border: 1px solid var(--line); border-top: 4px solid var(--ok); border-radius: var(--radius); padding: 12px; display: flex; flex-direction: column; gap: 6px; font-size: .9rem; }
.cap-dia.atencao { border-top-color: var(--gold); }
.cap-dia.lotado { border-top-color: var(--bad); }
.cap-dia.hoje { box-shadow: inset 0 0 0 1px var(--gold); }
.cap-num { font-weight: 600; }
.cap-dia .progresso { margin: 0; }

/* planner impresso */
body.planner { background: #e9e6df; }
.pl-pagina { background: #fff; max-width: 210mm; min-height: 270mm; margin: 0 auto 24px; padding: 12mm; box-shadow: 0 4px 24px rgba(0,0,0,.12); page-break-after: always; font-size: 10.5pt; }
body.planner.a5 .pl-pagina { max-width: 148mm; min-height: 190mm; padding: 8mm; font-size: 9pt; }
.pl-pagina.pl-paisagem { max-width: 297mm; min-height: 190mm; }
.pl-cab { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid var(--gold); padding-bottom: 6px; margin-bottom: 10px; }
.pl-dia { font-family: Georgia, serif; font-size: 2.6rem; color: var(--brand); line-height: 1; }
.pl-mes { font-family: Georgia, serif; font-size: 1.2rem; color: var(--brand); }
.pl-sem { text-transform: uppercase; letter-spacing: .15em; color: var(--muted); font-size: .85rem; }
.pl-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pl-pagina h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--brand); border-bottom: 1px solid var(--line); margin: 12px 0 4px; padding-bottom: 2px; }
.pl-linha { border-bottom: 1px solid #bbb; height: 22px; }
.pl-item { display: flex; gap: 7px; align-items: flex-start; padding: 3px 0; border-bottom: 1px dotted #ccc; line-height: 1.3; }
.pl-chk { flex: 0 0 11px; height: 11px; border: 1.5px solid #555; border-radius: 2px; margin-top: 3px; }
.pl-item small { color: #555; }
.pl-diabox { border: 1px solid #ccc; border-radius: 6px; padding: 6px 8px; margin-bottom: 8px; }
.pl-diatit { border-bottom: 1px solid var(--gold); margin-bottom: 3px; color: var(--brand); }
.pl-mesgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; border-top: 1px solid #999; border-left: 1px solid #999; margin-bottom: 8px; }
.pl-mh { background: #f3efe4; text-align: center; font-size: .75rem; padding: 3px; border-right: 1px solid #999; border-bottom: 1px solid #999; }
.pl-md { min-height: 24mm; border-right: 1px solid #999; border-bottom: 1px solid #999; padding: 2px 3px; font-size: 7.5pt; }
.pl-md.vazio { background: #f7f7f7; }
.pl-me { background: #f0eee8; border-left: 2px solid var(--gold); margin-top: 2px; padding: 0 3px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
@media print {
  body.planner { background: #fff; }
  .pl-pagina { box-shadow: none; margin: 0; padding: 10mm; max-width: none; min-height: 0; }
  body.planner.a5 .pl-pagina { padding: 8mm; }
}
@media (max-width: 800px) { .pl-cols { grid-template-columns: 1fr; } .pl-pagina { padding: 10px; } }

/* roteiro da festa (A4 paisagem) e furação para pasta */
.pl-cols3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; font-size: .92em; }
.pl-2col { columns: 2; column-gap: 10px; }
.pl-obs { background: #faf6e8; border-left: 3px solid var(--gold); padding: 4px 8px; font-size: .9em; }
body.furo-lado .pl-pagina { padding-left: 24mm; }
body.furo-topo .pl-pagina { padding-top: 24mm; }
.pl-furos { display: none; }
@media print {
  body.furo-lado .pl-pagina { padding-left: 24mm; }
  body.furo-topo .pl-pagina { padding-top: 24mm; }
  .pl-furos { display: block; position: fixed; z-index: 5; }
  .pl-furos i { position: absolute; width: 6mm; height: 6mm; border: .3mm solid #aaa; border-radius: 50%; }
  .pl-furos.lado { left: 7mm; top: 0; height: 100%; }
  .pl-furos.lado i:nth-child(1) { top: calc(50% - 43mm); }
  .pl-furos.lado i:nth-child(2) { top: calc(50% + 37mm); }
  .pl-furos.lado.f4 i:nth-child(1) { top: calc(50% - 123mm); }
  .pl-furos.lado.f4 i:nth-child(2) { top: calc(50% - 43mm); }
  .pl-furos.lado.f4 i:nth-child(3) { top: calc(50% + 37mm); }
  .pl-furos.lado.f4 i:nth-child(4) { top: calc(50% + 117mm); }
  .pl-furos.topo { top: 7mm; left: 0; width: 100%; }
  .pl-furos.topo i:nth-child(1) { left: calc(50% - 43mm); }
  .pl-furos.topo i:nth-child(2) { left: calc(50% + 37mm); }
  .pl-furos.topo.f4 i:nth-child(1) { left: calc(50% - 123mm); }
  .pl-furos.topo.f4 i:nth-child(2) { left: calc(50% - 43mm); }
  .pl-furos.topo.f4 i:nth-child(3) { left: calc(50% + 37mm); }
  .pl-furos.topo.f4 i:nth-child(4) { left: calc(50% + 117mm); }
}
@media (max-width: 800px) { .pl-cols3 { grid-template-columns: 1fr; } }
/* ---------- celular ---------- */
@media (max-width: 900px) {
  .lateral { position: fixed; left: 0; top: 0; bottom: 0; z-index: 40; height: 100%; transform: translateX(-100%); transition: transform .22s ease; }
  body.menu-aberto .lateral { transform: none; box-shadow: 10px 0 40px rgba(0,0,0,.35); }
  body.menu-aberto .veu { display: block; position: fixed; inset: 0; z-index: 35; background: rgba(13,14,18,.55); }
  .menu-btn { display: inline-flex; }
  .topo { padding: 0 14px; gap: 10px; height: 60px; }
  .topo-logo { display: block; }
  .topo-logo img { height: 34px; width: auto; display: block; }
  .topo-tit, .topo .quem span { display: none; }
  .conteudo { padding: 18px 14px 40px; }
  .card { padding: 16px; }
  .form.grid { grid-template-columns: 1fr; }
  .form.linha { flex-wrap: wrap; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kpi { padding: 14px; }
  .kpi strong { font-size: 1.2rem; }
  .doc-pagina { padding: 24px 18px; }
  .cab { align-items: flex-start; }
}

/* ---------- páginas públicas (convidado / cliente) ---------- */
body.publico { background: var(--bg); }
.publico-box { max-width: 760px; margin: 0 auto; padding: 18px 16px 40px; }
.publico-marca { text-align: center; font-family: var(--fonte-tit); color: var(--ink); font-size: 1.5rem; font-weight: 700; margin: 10px 0 18px; letter-spacing: .01em; }
.publico-marca::after { content: ""; display: block; width: 34px; height: 2px; background: var(--gold); margin: 8px auto 0; border-radius: 2px; }
.publico-box .abas { margin-top: 4px; }

/* Faixa da demonstração */
.faixa-demo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:10px 16px;border-radius:12px;background:linear-gradient(135deg,#f7ecd0,#fff7e6);border:1px solid #e3cd93;color:#3b2f12;font-size:.9rem}
.faixa-demo a{font-weight:600;color:#1b1406;white-space:nowrap}

/* Fotos (cadastros) */
.foto-campo{display:flex;align-items:center;gap:14px;margin-top:6px;flex-wrap:wrap}
.foto-campo img,.foto-vazia{width:96px;height:96px;border-radius:14px;object-fit:cover;border:1px solid var(--line);background:#f6f4ee;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:.75rem;font-weight:400}
.foto-campo input[type=file]{max-width:100%}
.mini-foto{width:44px;height:44px;border-radius:10px;object-fit:cover;display:block;border:1px solid var(--line);background:#f6f4ee}
.td-foto{width:56px}

/* Modelos de festa (kits) */
.kits{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.kit{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.03);transition:transform .15s,box-shadow .15s,border-color .15s}
.kit:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.08);border-color:var(--gold-2)}
.kit-capa{aspect-ratio:4/3;background:linear-gradient(135deg,#f7f0e1,#fff);display:flex;align-items:center;justify-content:center;font-size:2.4rem;overflow:hidden}
.kit-capa img{width:100%;height:100%;object-fit:cover}
.kit-txt{padding:14px 16px 16px;display:flex;flex-direction:column;gap:3px}
.kit-txt strong{font-size:1.02rem}.kit-txt small{color:var(--muted)}
.kit-num{margin-top:8px;font-size:.84rem;color:var(--muted)}.kit-num b{color:var(--ink)}
.kit-topo{margin:-4px 0 16px}
.kit-topo img{width:100%;max-height:300px;object-fit:cover;border-radius:18px;display:block;margin-bottom:12px}
.kit-atalhos{display:flex;gap:8px;flex-wrap:wrap}
.kit-atalhos a{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;font-size:.86rem;font-weight:500}
.kit-atalhos a:hover{border-color:var(--gold)}
details#dados>summary{cursor:pointer;list-style:none}
details#dados>summary::-webkit-details-marker{display:none}
details#dados>summary::after{content:" +";color:var(--gold)}details#dados[open]>summary{margin-bottom:14px}details#dados[open]>summary::after{content:" −"}
.kit-cab p{margin:4px 0 14px}
.pecas{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.peca{position:relative;display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fdfcf9}
.peca-foto label{display:block;width:84px;height:84px;border-radius:12px;overflow:hidden;cursor:pointer;flex:none;position:relative;background:#f3efe4}
.peca-foto img{width:100%;height:100%;object-fit:cover;display:block}
.peca-foto input{position:absolute;inset:0;opacity:0;cursor:pointer}
.peca-foto .sem{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;font-size:1.4rem;color:var(--muted);border:1.5px dashed #d8cfb8;border-radius:12px}
.peca-foto .sem small{font-size:.7rem;margin-top:2px}
.peca-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.peca-txt strong{font-size:.95rem;line-height:1.25;padding-right:18px}
.peca-txt small{color:var(--muted);font-size:.78rem}
.peca-qtd{display:flex;align-items:center;gap:6px;margin-top:6px}
.peca-qtd input{width:64px;padding:6px 8px;text-align:center;font-weight:700}
.peca-qtd span{font-size:.8rem;color:var(--muted)}
.peca-del{position:absolute;top:4px;right:6px}
.peca-del button{font-size:1.2rem;line-height:1;padding:2px 6px}
.kit-add{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.kit-add details{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card)}
.kit-add summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.kit-add summary::-webkit-details-marker{display:none}
.kit-add summary b::before{content:"+ ";color:var(--gold)}
.kit-add details[open] summary b::before{content:"− "}
.kit-add summary small{color:var(--muted)}
.kit-add details[open] summary{margin-bottom:12px}

/* Eventos em cards no celular */
tr[data-href]{cursor:pointer}
tr[data-href]:hover td{background:#fbf8f0}
@media (max-width:760px){
  .tabela.ev-cards thead{display:none}
  .tabela.ev-cards,.tabela.ev-cards tbody{display:block}
  .tabela.ev-cards tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:14px 16px;margin-bottom:10px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 1px 2px rgba(0,0,0,.03);position:relative}
  .tabela.ev-cards tr:hover td{background:none}
  .tabela.ev-cards td{display:block;padding:0;border:0;background:none}
  .tabela.ev-cards .c-data{grid-column:1;grid-row:1;font-size:.82rem;color:var(--muted)}
  .tabela.ev-cards .c-data br{display:none}
  .tabela.ev-cards .c-st{grid-column:2;grid-row:1;justify-self:end}
  .tabela.ev-cards .c-tit{grid-column:1/-1;grid-row:2;font-size:1.04rem;line-height:1.3;margin:4px 0 2px;padding-right:22px}
  .tabela.ev-cards .c-tit a{color:var(--ink)}
  .tabela.ev-cards .c-cli,.tabela.ev-cards .c-local,.tabela.ev-cards .c-conv{grid-column:1/-1;font-size:.86rem;color:var(--muted)}
  .tabela.ev-cards .c-cli::before{content:"Cliente: "}
  .tabela.ev-cards .c-local::before{content:"Local: "}
  .tabela.ev-cards .c-conv::after{content:" convidados"}
  .tabela.ev-cards .c-val,.tabela.ev-cards .c-rec{grid-column:1/-1;text-align:left;font-size:.86rem}
  .tabela.ev-cards .c-val::before{content:"Valor: ";color:var(--muted)}
  .tabela.ev-cards .c-rec::before{content:"Recebido: ";color:var(--muted)}
  .tabela.ev-cards tr::after{content:"›";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--gold)}
  .card.ev-wrap{background:none;border:0;box-shadow:none;padding:0}
  .card.ev-wrap>h2{padding:0 4px}
}
.peca-txt .falta{color:#b3261e}

/* ===== Listas em cards no celular (assets/cards.js) ===== */
tr.cm-link{cursor:pointer}
tr.cm-link:hover td{background:#fbf8f0}
@media (max-width:760px){
  .tabela.cards-m thead{display:none}
  .tabela.cards-m,.tabela.cards-m tbody{display:block;width:100%}
  .tabela-wrap{overflow-x:visible;margin:0;padding:0}
  .tabela.cards-m tr{display:flex;flex-direction:column;gap:7px;padding:14px 16px;margin:0 0 10px;border:1px solid var(--line);border-radius:16px;background:#fdfcf9;position:relative}
  .card>.tabela.cards-m tr,.card .tabela-wrap>.tabela.cards-m tr{background:#fdfcf9}
  .tabela.cards-m tr:last-child{margin-bottom:0}
  .tabela.cards-m tr.cm-link{padding-right:34px}
  .tabela.cards-m tr.cm-link::after{content:"›";position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:1.5rem;line-height:1;color:var(--gold)}
  .tabela.cards-m tr.cm-link:hover td{background:none}
  .tabela.cards-m td{display:block;padding:0;border:0;background:none;text-align:right;font-size:.9rem;min-width:0;white-space:normal;overflow-wrap:anywhere}
  .tabela.cards-m td::after{content:"";display:table;clear:both}
  .tabela.cards-m td[data-label]::before{content:attr(data-label);float:left;max-width:46%;margin-right:12px;padding-top:2px;text-align:left;color:var(--muted);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
  .tabela.cards-m td[data-label=""]::before{display:none}
  .tabela.cards-m td.cm-tit{order:-1;display:block;text-align:left;font-size:1.02rem;font-weight:600;line-height:1.3;color:var(--ink)}
  .tabela.cards-m td.cm-tit::before{display:none}
  .tabela.cards-m td.cm-tit a{color:var(--ink)}
  .tabela.cards-m td.cm-tit .muted,.tabela.cards-m td.cm-tit small{font-weight:400;font-size:.85rem}
  .tabela.cards-m td.cm-acao{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:8px 12px;text-align:left;margin-top:4px;padding-top:10px;border-top:1px dashed var(--line)}
  .tabela.cards-m td.cm-acao::after{display:none}
  .tabela.cards-m td.cm-acao[data-label]:not([data-label=""])::before{float:none;width:100%;max-width:none;margin:0 0 -2px}
  .tabela.cards-m tr.cm-tem-check{padding-left:54px}
  .tabela.cards-m td.cm-check{position:absolute;left:14px;top:14px}
  .tabela.cards-m td.cm-check::before{display:none}
  .tabela.cards-m td.cm-acao form{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
  .tabela.cards-m td.cm-acao input:not([type=checkbox]):not([type=radio]),.tabela.cards-m td.cm-acao select{max-width:100%;min-width:0}
  .tabela.cards-m td.cm-vazio{display:none}
  .tabela.cards-m td.td-foto{order:-2;display:block}
  .tabela.cards-m td.td-foto::before{display:none}
  .tabela.cards-m td.td-foto .mini-foto{width:64px;height:64px}
  .tabela.cards-m td.td-foto.cm-vazio{display:none}
  .tabela.cards-m tr.cm-vazia{display:block;padding:14px 16px;text-align:left;background:none;border-style:dashed}
  .tabela.cards-m tr.cm-vazia td{display:block;text-align:left}
  .tabela.cards-m tfoot{display:block}
  .tabela.cards-m tfoot tr{background:var(--gold-soft)}
}

/* Módulos da conta (liga/desliga) */
.mods-conta{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.mod-conta{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fdfcf9}
.mod-conta.on{border-color:#cfe8d9;background:#f6fbf8}
.mod-conta p{margin:4px 0 0;font-size:.86rem}
.mod-conta form{flex:none;margin:0}
.interruptor{display:inline-flex;align-items:center;gap:8px;border:1px solid #d9d5ca;background:#fff;border-radius:999px;padding:6px 12px 6px 6px;font:600 .84rem Inter,system-ui,sans-serif;color:var(--ink);cursor:pointer}
.interruptor span{width:34px;height:20px;border-radius:999px;background:#d9d5ca;position:relative;transition:background .2s}
.interruptor span::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:left .2s}
.interruptor.on{border-color:#9fd3b6;color:#1d6b43}
.interruptor.on span{background:#2e9e63}
.interruptor.on span::after{left:16px}

@media (max-width:760px){
  main form.inline-form,main .inline-form{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}
  main .inline-form select{min-width:0;flex:1 1 160px}
  main .btn{max-width:100%;white-space:normal;text-align:center}
}
/* financeiro: lançamentos */
.form label.chk{flex-direction:row;align-items:center}
.lanc-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:4px 0 16px}
.lanc-cab h2{margin:0 0 4px}.lanc-cab p{margin:0}
.lanc-cab .btn{flex:0 0 auto}
.lanc-novo h3{margin-top:0}
.lanc-botoes{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:760px){.lanc-cab{flex-direction:column;align-items:stretch}.lanc-cab .btn{width:100%}.lanc-botoes .btn{flex:1 1 auto}}
[hidden]{display:none!important}
/* ficha de cadastro online */
.cad-ficha h1{margin-bottom:6px}
.cad-sec{font-size:1rem;margin:10px 0 -4px;padding-top:14px;border-top:1px solid var(--line);color:var(--gold-ink, #8a6d2f)}
.cad-ficha .form .cad-sec:first-of-type{border-top:0;padding-top:0}
.cad-atual{margin:0;background:#faf6ec;border-radius:10px;padding:10px 12px;font-size:.9rem}
.cad-lgpd{font-size:.88rem;line-height:1.4;align-items:flex-start!important}
.cad-lgpd input{margin-top:3px;flex:0 0 auto}
.cad-enviar{width:100%;padding:14px}
.cad-ok{text-align:center;padding:18px 4px}
.cad-ok-ic{width:64px;height:64px;border-radius:50%;background:#e7f4ec;color:#1f7a4a;font-size:2rem;display:grid;place-items:center;margin:0 auto 12px}
.ficha-card summary{flex-wrap:wrap}
.ficha-acoes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ficha-dica{font-size:.85rem;margin:12px 0 0}
.cad-cep input{max-width:220px}
/* cobranças */
.cob-filtros{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.cob-filtros a{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);font-size:.88rem}
.cob-filtros a.ativo{background:var(--ink);color:#fff;border-color:var(--ink)}
.cob-alerta{border-left:4px solid var(--gold)}
.cob-alerta p{margin:6px 0 12px}
.cob-criada{border:1px solid #cfe7da;background:#f4fbf7}
.cob-criada h2{margin-top:0}
.cob-acoes-grandes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cob-acoes-grandes .inline-form{margin:0}
.cob-acoes-grandes .link,.cob-acoes-grandes button.link{display:inline-flex;align-items:center;padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none}
.cob-acoes-grandes .cob-wa{background:#1f9d55!important;color:#fff!important;border-color:#1f9d55!important}
.link.cob-wa{color:#17803f;font-weight:600}
.cob-agora{border-left:4px solid #1f9d55}
.cob-agora h3{margin-top:0}
.cob-lista-agora{display:flex;flex-direction:column;gap:8px}
.cob-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px dashed var(--line)}
.cob-item:first-child{border-top:0}
.cob-wa-btn{background:#1f9d55!important;border-color:#1f9d55!important;color:#fff!important;white-space:nowrap}
.btn.mini{padding:7px 12px;font-size:.85rem}
.cob-mais{display:inline-block}
.cob-mais>summary{list-style:none;cursor:pointer;display:inline}
.cob-mais>summary::-webkit-details-marker{display:none}
.cob-mais[open]{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfaf6}
.cob-mais[open]>summary{display:block;margin-bottom:8px}
.cob-mais .inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cob-mais input,.cob-mais select{width:auto;flex:1 1 120px}
.cob-previa{margin:-4px 0 0;font-size:.9rem}
.cob-novo-cli{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#fbfaf6;border-radius:10px;padding:12px}
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}
.cfg-grid .card{margin:0}
.cfg-ajuda{margin-top:12px;font-size:.9rem}
.cfg-ajuda summary{cursor:pointer;color:var(--gold-ink,#8a6d2f)}
.cfg-ajuda ol{padding-left:20px;line-height:1.55}
.cfg-mini{font-size:.85rem;margin:10px 0 0}
.pix-teste{display:flex;gap:16px;align-items:center;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.pix-qr{width:120px;flex:0 0 120px;background:#fff;border-radius:8px}
.pix-qr svg{width:100%;height:auto;display:block}
.pix-qr.grande{width:230px;max-width:70vw;margin:6px auto 10px}
.pag-card{text-align:center}
.pag-rot{margin:0;color:var(--muted);font-size:.9rem}
.pag-card h1{margin:4px 0 6px;font-size:1.35rem}
.pag-valor{font-size:2.2rem;font-weight:700;letter-spacing:-.02em;margin:6px 0 2px;font-variant-numeric:tabular-nums}
.pag-card section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.pag-card section h2{font-size:1.05rem;margin:0 0 6px}
.pix-codigo{width:100%;font-family:ui-monospace,monospace;font-size:.78rem;word-break:break-all;resize:none;margin:8px 0}
.pag-btn{width:100%;padding:14px}
.pag-btn.copiado{background:#1f9d55;border-color:#1f9d55}
.pag-fav{font-size:.82rem;margin:8px 0 0}
.pag-aviso{background:#faf6ec;border-radius:10px;padding:12px}
.pag-pos{display:flex;flex-direction:column;gap:10px;align-items:center}
@media (max-width:760px){
  .cob-novo-cli{grid-template-columns:1fr}
  .cfg-grid{grid-template-columns:1fr}
  .cob-item{align-items:flex-start}
  .pix-teste{align-items:flex-start}
}
.cob-mais>summary{color:var(--gold-ink,#8a6d2f);text-decoration:underline;text-underline-offset:3px;font-weight:500}
.cob-mais>summary.perigo{color:var(--bad)}
.acoes-linha a.link{color:var(--gold-ink,#8a6d2f)}
.tabela a.btn,.tabela a.btn:visited{color:#fff;text-decoration:none}
.tarefa-feita .tarefa-tit{text-decoration:line-through;color:var(--muted)}
.tarefa-feita td{opacity:.75}
.tarefa-feita td:first-child{opacity:1}
/* prospecção / vendedor IA / whatsapp */
.pr-aviso{border-left:4px solid var(--gold);font-size:.92rem;line-height:1.5}
.pr-funil{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.pr-funil a{display:flex;flex-direction:column;align-items:center;min-width:92px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-decoration:none;color:var(--ink);font-size:.8rem}
.pr-funil a b{font-size:1.25rem}
.pr-funil a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pr-chips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.pr-chips a{padding:6px 12px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.85rem;background:#fff}
.pr-chips a span{color:var(--muted);font-size:.78rem}
.pr-chips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pr-filtros{margin:14px 0 6px}
.pr-wamodo{font-size:.85rem}
.pr-card{margin-bottom:12px}
.pr-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.pr-nome{font-weight:650;font-size:1.05rem}
.pr-meta{font-size:.85rem;color:var(--muted);margin-top:3px;line-height:1.5}
.pr-status{width:auto;max-width:150px;flex:0 0 auto}
.pr-msg{width:100%;margin:10px 0 8px;font-size:.92rem}
.pr-acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pr-wa{background:#1f9d55!important;border-color:#1f9d55!important}
.pr-info{font-size:.85rem}
.pr-pesq,.pr-edit{margin-top:10px}
.pr-pesq>summary,.pr-edit>summary{cursor:pointer;font-size:.88rem;color:var(--gold-ink,#8a6d2f)}
.pr-ficha{font-size:.88rem;line-height:1.5;margin:8px 0}
.pr-f-t{font-weight:600;margin-bottom:4px}.pr-f-l span{color:var(--muted)}.pr-f-n{font-size:.8rem;color:var(--muted);margin-top:4px}
.pr-pesq-acao{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:.85rem}
.pr-pesq-acao input[type=file]{width:auto;max-width:100%}
.vd-grid{display:grid;grid-template-columns:minmax(250px,330px) 1fr;gap:16px;align-items:start}
.vd-lista a{display:block;padding:10px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.vd-lista a.on{background:#faf6ec}
.vd-tag{display:inline-block;font-size:.7rem;padding:1px 7px;border-radius:12px;margin-left:4px}
.vd-tag.n{background:var(--bad);color:#fff}
.vd-thread{display:flex;flex-direction:column;gap:8px;max-height:520px;overflow-y:auto;padding:6px;background:#f6f3ec;border-radius:12px;min-height:120px}
.vd-m{max-width:82%;padding:8px 12px;border-radius:12px;font-size:.9rem;line-height:1.45;white-space:pre-wrap}
.vd-m small{display:block;font-size:.7rem;opacity:.6;margin-top:3px}
.vd-m.cliente{align-self:flex-start;background:#fff;border:1px solid var(--line)}
.vd-m.ia{align-self:flex-end;background:#f3e6c4}
.vd-m.voce{align-self:flex-end;background:#dcf3e4}
.vd-m.sistema{align-self:center;background:#f9e5e3;font-size:.8rem}
.vd-resp{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.vd-resp textarea{flex:1}
.vd-acoes{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
details.card>summary strong{font-size:1rem}
.wa-status{border-left:4px solid var(--bad)}.wa-status.ok{border-left-color:#1f9d55}
.wa-passos{padding-left:20px;line-height:1.6}
@media (max-width:760px){
  .vd-grid{grid-template-columns:1fr}
  .pr-top{flex-direction:column}.pr-status{max-width:none;width:100%}
  .pr-funil a{min-width:0;flex:1 1 30%}
  .vd-resp{flex-direction:column;align-items:stretch}
}
/* seletor do visual do painel (menu lateral) */
.lat-tema{margin-top:auto;padding-top:14px}
.lat-tema .sec{display:block}
.lat-tema-op{display:flex;gap:4px;margin:2px 4px 0;padding:4px;border-radius:12px;background:var(--nav-2);border:1px solid #23242b}
.lat-tema-op button{flex:1;border:0;background:transparent;color:rgba(255,255,255,.7);font:inherit;font-size:.8rem;padding:7px 6px;border-radius:9px;cursor:pointer}
.lat-tema-op button.on{background:rgba(226,194,122,.18);color:#fff;font-weight:600}
.lat-tema-op button:hover{color:#fff}
/* menu lateral em grupos recolhidos */
.lat-grupo{display:flex;flex-direction:column}
.lat-grupo>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:rgba(226,194,122,.8);
  padding:12px 12px 10px;margin-top:2px;border-radius:8px;user-select:none}
.lat-grupo>summary::-webkit-details-marker{display:none}
.lat-grupo>summary::after{content:"";width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s;opacity:.8}
.lat-grupo[open]>summary::after{transform:rotate(225deg) translate(-2px,-2px)}
.lat-grupo>summary:hover{background:rgba(255,255,255,.04);color:var(--gold-2)}
.lat-grupo>a{display:block;padding-left:20px}
.lat-grupo[open]{padding-bottom:6px}
/* modelos: sem foto vira linha compacta; no celular, todos em linha com miniatura */
.kit-capa{aspect-ratio:16/9}
.kit.kit-sem-foto{flex-direction:row;align-items:center}
.kit.kit-sem-foto .kit-capa{aspect-ratio:auto;width:64px;height:64px;flex:0 0 64px;margin:12px 0 12px 12px;border-radius:14px;font-size:1.6rem}
.kit.kit-sem-foto .kit-txt{padding:12px 14px}
@media (max-width:760px){
  .kits{grid-template-columns:1fr;gap:10px}
  .kit{flex-direction:row;align-items:center}
  .kit .kit-capa{aspect-ratio:auto;width:76px;height:76px;flex:0 0 76px;margin:10px 0 10px 10px;border-radius:14px;font-size:1.7rem}
  .kit .kit-txt{padding:10px 14px}
  .kit-txt strong{font-size:.98rem}
  .kit-num{margin-top:4px}
}
