:root { --creme:#f7f3ec; --papel:#fff; --tinta:#2f3129; --suave:#6b6c60; --oliva:#5d6b4e; --borda:#e2dbcd; --erro:#a4462f; --dourado:#b08d57; }
* { box-sizing: border-box; }
body { margin:0; padding:1.5rem 1.25rem 4rem; background:var(--creme); color:var(--tinta);
  font:300 16px/1.6 'Jost', ui-sans-serif, -apple-system, 'Segoe UI', Roboto, sans-serif; }
[hidden] { display:none !important; }
.caixa { width:min(100%,1120px); margin-inline:auto; }
h1 { font:400 1.9rem/1.2 ui-serif, Georgia, serif; margin:0 0 .25rem; }
.topo { display:flex; flex-wrap:wrap; align-items:baseline; gap:.75rem; margin-bottom:1.25rem; }
.topo .sub { color:var(--suave); font-size:.92rem; flex:1; }
input, button, select, textarea { font:inherit; padding:.6rem .8rem; border:1px solid var(--borda); border-radius:4px; background:var(--papel); color:var(--tinta); }
input { width:100%; }
input[type=checkbox], input[type=radio] { width:auto; }
button { cursor:pointer; }
.primario { background:var(--oliva); color:#fff; border-color:var(--oliva); }
.entrar { max-width:380px; }
.entrar label { display:block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--suave); margin:.8rem 0 .3rem; }
.erro { color:var(--erro); }
.cartao { background:var(--papel); border:1px solid var(--borda); border-radius:6px; padding:1rem 1.1rem; margin-bottom:1.25rem; }
.grade { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:.85rem; }
.grade .cartao { margin:0; }
.grade h3 { margin:0 0 .3rem; font:400 1.2rem/1.2 ui-serif, Georgia, serif; }
.grade p { margin:.15rem 0; color:var(--suave); font-size:.9rem; }
.barra { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; margin-bottom:1rem; }
.barra input[type=search] { width:auto; flex:1; min-width:180px; }
.abas { display:flex; gap:.4rem; }
.abas button.ativa { background:var(--oliva); color:#fff; border-color:var(--oliva); }
.placar { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.85rem; margin-bottom:1.5rem; }
.placar div { background:var(--papel); border:1px solid var(--borda); border-radius:4px; padding:1rem 1.1rem; }
.placar strong { display:block; font:400 2rem/1 ui-serif, Georgia, serif; color:var(--oliva); }
.placar span { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--suave); }
.rolagem { overflow-x:auto; background:var(--papel); border:1px solid var(--borda); border-radius:4px; }
table { border-collapse:collapse; width:100%; font-size:.9rem; }
th, td { padding:.65rem .8rem; text-align:left; border-bottom:1px solid var(--borda); vertical-align:top; }
th { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--suave); font-weight:400; white-space:nowrap; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
.marca { display:inline-block; padding:.1rem .55rem; border-radius:999px; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; }
.marca.confirmado { background:rgba(93,107,78,.14); color:var(--oliva); }
.marca.recusado { background:rgba(164,70,47,.12); color:var(--erro); }
.marca.pendente { background:rgba(107,108,96,.12); color:var(--suave); }
.recado { color:var(--suave); font-style:italic; max-width:26ch; }
.so-padrinhos { display:inline-flex; align-items:center; gap:.4rem; font-size:.9rem; color:var(--suave); }
.mini-ed { margin-left:.35rem; padding:.05rem .45rem; font-size:.75rem; color:var(--suave); }
.mini-ed.remover:hover { border-color:var(--erro); color:var(--erro); }
.editor-campos { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:.6rem; }
.editor-campos label { display:flex; flex-direction:column; font-size:.78rem; color:var(--suave); gap:.25rem; }
.editor-campos label.largo { grid-column:1 / -1; }
.editor-campos label.so { flex-direction:row; align-items:center; }
.editor-campos small { font-weight:400; }
.editor-campos fieldset { grid-column:1 / -1; border:1px solid var(--borda); border-radius:4px; display:flex; flex-wrap:wrap; gap:1rem; }
.presenca-opcoes { display:flex; flex-wrap:wrap; gap:1rem; margin:.5rem 0; }
.presenca-opcoes label { display:inline-flex; align-items:center; gap:.35rem; cursor:pointer; }
.ok { color:var(--oliva); }
@media (max-width:560px) { .editor-campos { grid-template-columns:1fr; } }

/* Folha de impressão (janela aberta pelos botões de lista; sem CSS inline por causa da CSP) */
body.imp { background:#efe9df; padding:0; font-family:Georgia,"Times New Roman",serif; line-height:1.5; }
.imp .folha { max-width:720px; margin:24px auto; background:#fdfbf7; padding:48px 56px; box-shadow:0 2px 20px rgba(0,0,0,.12); border:1px solid #e7ddcf; }
.imp header { text-align:center; border-bottom:1px solid #e7ddcf; padding-bottom:20px; margin-bottom:24px; }
.imp .mono { font-size:30px; letter-spacing:2px; color:var(--dourado); }
.imp .subt { font-size:15px; color:#8a7a6d; margin-top:4px; text-transform:uppercase; letter-spacing:3px; }
.imp .data { font-size:13px; color:#8a7a6d; margin-top:6px; }
.imp .totais { text-align:center; font-size:14px; color:#8a7a6d; margin:0 0 20px; }
.imp .totais strong { color:var(--tinta); }
.imp ol { list-style:none; margin:0; padding:0; }
.imp li { display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px dotted #e7ddcf; }
.imp .n { color:var(--dourado); font-size:13px; min-width:26px; text-align:right; }
.imp .nome { flex:1; font-size:17px; }
.imp .quem { font-size:12.5px; color:#8a7a6d; font-style:italic; margin-top:2px; }
.imp .tag { font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--dourado); border:1px solid var(--dourado); border-radius:10px; padding:1px 7px; margin-left:8px; }
.imp .tag.mesa { background:var(--dourado); color:#fff; }
.imp .tag.semmesa { color:#9a5b4e; border-color:#d9b9af; }
.imp .esperado { width:150px; text-align:center; font-size:15px; }
.imp .esperado small { display:block; color:#8a7a6d; font-size:10.5px; }
.imp .box { width:60px; height:24px; border:1px solid #8a7a6d; border-radius:4px; }
.imp .check { width:28px; height:24px; border:1px solid #8a7a6d; border-radius:4px; }
.imp .cab { border-bottom:1px solid var(--dourado); }
.imp .cab .nome, .imp .cab .esperado, .imp .cab .box, .imp .cab .check { font-size:10.5px; letter-spacing:1px; text-transform:uppercase; color:#8a7a6d; height:auto; border:none; text-align:center; }
.imp .cab .nome { text-align:left; }
.imp .mesa-bloco { break-inside:avoid; margin-bottom:18px; }
.imp .mesa-tit { font-size:18px; color:var(--dourado); border-bottom:1px solid #e7ddcf; padding-bottom:4px; margin-bottom:6px; }
.imp .mesa-tit span { font-size:13px; color:#8a7a6d; }
.imp .mesa-bloco ol { list-style:decimal; padding-left:22px; display:block; }
.imp .mesa-bloco li { display:list-item; padding:2px 0; font-size:15.5px; border:none; }
.imp .semnome { color:#8a7a6d; font-style:italic; }
.imp ol.az li { justify-content:space-between; padding:6px 0; font-size:16px; }
.imp ol.az .m { color:var(--dourado); white-space:nowrap; }
.imp .aviso { background:#f7f0e4; border:1px solid #e7ddcf; border-radius:6px; padding:10px 14px; font-size:13px; color:#8a7a6d; margin-bottom:18px; }
.imp .imprimir { display:block; margin:18px auto; background:var(--dourado); color:#fff; border:none; }
@media print { body.imp { background:#fff; } .imp .folha { box-shadow:none; border:none; margin:0; max-width:none; } .imp .imprimir { display:none; } }

/* aba Config: grupos e listas */
#form-config fieldset { margin:0 0 14px; border:1px solid #e7ddcf; border-radius:8px; padding:10px 14px; }
#form-config legend { color:var(--dourado); font-size:13px; letter-spacing:1px; text-transform:uppercase; padding:0 6px; }
#form-config textarea { width:100%; box-sizing:border-box; }
#form-config .item-lista { align-items:end; border-bottom:1px dotted #e7ddcf; padding:6px 0; }

/* pagamento */
.pg { margin-bottom:14px; }
.pg-status { font-size:15px; margin:6px 0; }
.pg-status[data-status="pago"] { color:#4e6b3e; font-weight:600; }
.pg-status[data-status="pendente"] { color:#9a7a2e; }
.pg-status[data-status="expirado"] { color:#9a5b4e; }
.pg-pix { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; margin-top:10px; }
.pg-qr { width:220px; height:220px; border:1px solid #e7ddcf; border-radius:8px; background:#fff; }
.pg-copia { flex:1; min-width:220px; }
.pg-copia input { width:100%; box-sizing:border-box; font-family:monospace; font-size:12px; margin:4px 0 8px; }
.pg-copia a { display:block; margin-top:8px; font-size:13px; }
