/* Lista "Monte sua festa" nas páginas da Loja online: as mesmas regras do catálogo, com as cores da loja. */
:root { --rose: var(--cor); --rose-dark: var(--cor-escura); --line: #eadfda; --muted: #6c625f; --ink: #26211f; --paper: var(--fundo); --admin-bg: #f4ece8; --shadow: 0 18px 50px rgba(91, 51, 39, .14); }
.festa-dialog .button.primary { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; border: 0; border-radius: 10px; color: #fff; background: var(--cor); font: inherit; font-weight: 700; cursor: pointer; }
.festa-abrir { bottom: 84px; }
/* "Monte sua festa": botão no card, botão flutuante e a janela da lista */
.festa-add {
    min-height: 38px;
    padding: 0 12px;
    border: 1px dashed var(--rose);
    border-radius: 8px;
    color: var(--rose-dark);
    background: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}
.festa-add-grande { border-style: dashed; }
.festa-abrir {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 40;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 52px;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--rose);
    box-shadow: var(--shadow);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}
.festa-abrir[hidden] { display: none; }
.festa-abrir b { display: grid; min-width: 26px; height: 26px; place-items: center; border-radius: 999px; color: var(--rose-dark); background: #fff; }
.festa-abrir.pulou { animation: festa-pulo .5s; }
@keyframes festa-pulo { 50% { transform: scale(1.12); } }
.festa-dialog { width: min(560px, calc(100% - 24px)); max-height: calc(100% - 24px); padding: 0; border: 0; border-radius: 16px; box-shadow: var(--shadow); }
.festa-dialog::backdrop { background: rgba(38, 33, 31, .5); }
.festa-form { display: grid; gap: 14px; padding: 20px; }
.festa-form header { display: flex; align-items: center; justify-content: space-between; }
.festa-form h2 { margin: 0; }
.festa-fechar { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--admin-bg); cursor: pointer; font-size: 1.4rem; }
.festa-dica, .festa-vazia { margin: 0; color: var(--muted); }
.festa-lista { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.festa-lista li { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; }
.festa-lista li div { display: grid; }
.festa-lista small { color: var(--muted); }
.festa-lista select { min-height: 36px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.festa-lista button { width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--admin-bg); cursor: pointer; font-size: 1.1rem; }
.festa-modo { font-weight: 700; color: var(--rose-dark); }
.festa-montagem { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 10px; background: var(--paper); border: 1px solid var(--line); cursor: pointer; }
.festa-montagem input { flex: none; width: 20px; height: 20px; min-height: 0; margin: 2px 0 0; padding: 0; accent-color: var(--rose); }
.festa-montagem span { display: grid; }
.festa-montagem small { color: var(--muted); }
.festa-campos { display: grid; gap: 10px; }
.festa-campos label { display: grid; gap: 4px; font-weight: 700; font-size: .9rem; }
.festa-campos input, .festa-campos textarea { min-height: 42px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-weight: 400; }
.festa-erro { margin: 0; padding: 10px 12px; border-radius: 8px; color: #7f1d1d; background: #fdecea; }
.festa-enviar { width: 100%; }

