.pdf-ticket-grid {
    grid-template-columns: 1fr;
    gap: 5mm;
}

.printable-ticket {
    position: relative;
    width: 100%;
    min-height: 70mm;
    padding: 18px 22px 34px;
    overflow: hidden;
    border: 1px solid rgba(195, 172, 95, .55);
    border-left: 5px solid var(--gold);
}

.ticket-info {
    min-width: 0;
    flex: 1 1 auto;
}

.ticket-info h2 {
    margin-bottom: 3px;
    font-size: clamp(1.25rem, 3vw, 1.7rem);
}

.ticket-family {
    display: block;
    overflow: hidden;
    color: #706b5c;
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ticket-event-name {
    display: block;
    margin-top: 12px;
    font: 700 1rem Georgia, serif;
}

.ticket-event-details {
    display: grid;
    gap: 3px;
    margin: 7px 0 9px;
    font-size: .75rem;
}

.ticket-event-details > div {
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 7px;
}

.ticket-event-details dt {
    color: #8c7938;
    font-weight: 800;
}

.ticket-event-details dd {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.printable-ticket .qr-code svg {
    width: min(46mm, 164px);
    height: min(46mm, 164px);
}

.ticket-footer {
    position: absolute;
    right: 22px;
    bottom: 9px;
    left: 22px;
    padding-top: 7px;
    border-top: 1px solid #d8d1be;
    color: #8c7938;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
}

button:disabled {
    cursor: wait;
    opacity: .65;
}

.attendance-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.attendance-list legend {
    padding: 0 6px;
    color: var(--gold);
    font: 700 1.15rem Georgia, serif;
}

.attendance-list > p {
    margin: -4px 0 4px;
}

.attendance-person {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #1d1e20;
}

.attendance-options {
    display: flex;
    gap: 8px;
}

.attendance-choice {
    display: block;
    cursor: pointer;
}

.attendance-choice input {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    opacity: 0;
}

.attendance-choice span {
    display: inline-flex;
    min-width: 58px;
    justify-content: center;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-2);
}

.attendance-choice input:checked + span {
    border-color: var(--gold);
    background: var(--gold);
    color: #1c180d;
}

.attendance-choice input:focus-visible + span {
    outline: 3px solid rgba(195, 172, 95, .25);
    outline-offset: 2px;
}

@media (max-width: 560px) {
    .printable-ticket {
        min-height: 70mm;
        padding: 14px 14px 32px;
        flex-direction: row;
        align-items: center;
    }

    .printable-ticket .qr-code {
        align-self: center;
    }

    .printable-ticket .qr-code svg {
        width: 96px;
        height: 96px;
    }

    .ticket-event-details > div {
        grid-template-columns: 52px minmax(0, 1fr);
    }

    .ticket-footer {
        right: 14px;
        left: 14px;
    }

    .attendance-person {
        align-items: stretch;
        flex-direction: column;
    }

    .attendance-options,
    .attendance-choice,
    .attendance-choice span {
        flex: 1;
    }
}

/* Cadastro individual de convidados e acompanhamento de WhatsApp */
.guest-register{border:1px solid var(--line);border-radius:14px;padding:18px;background:rgba(255,255,255,.018)}
.compact-row{margin-bottom:14px}.compact-row h2{margin:.2rem 0}.individual-table{border:1px solid var(--line);border-radius:12px;overflow:hidden}.individual-table-head,.individual-row{display:grid;grid-template-columns:48px minmax(220px,1fr) auto;gap:10px;align-items:center;padding:10px 12px}.individual-table-head{background:#1a1b1d;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.individual-row{border-top:1px solid var(--line)}.individual-row:first-child{border-top:0}.guest-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-2);color:var(--gold);font-weight:800}.guest-total{margin-top:12px;color:var(--muted)}.guest-total strong{color:var(--gold)}.delivery-table{min-width:1120px}.delivery-error-row td{padding-top:0;color:#ffb5b5}.delivery-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:850px){.delivery-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.individual-table-head{display:none}.individual-row{grid-template-columns:38px 1fr}.individual-row .remove-guest{grid-column:2}.delivery-metrics{grid-template-columns:1fr}}

/* Ajuda contextual e manual */
.page-help-button{position:fixed;right:22px;bottom:22px;z-index:900;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(195,172,95,.7);border-radius:50%;background:var(--gold,#c3ac5f);color:#17130a;font-size:1.35rem;font-weight:900;box-shadow:0 12px 34px rgba(0,0,0,.28);cursor:pointer}.page-help-button:hover{transform:translateY(-1px)}
.page-help-overlay[hidden]{display:none}.page-help-overlay{position:fixed;inset:0;z-index:950;display:flex;justify-content:flex-end;background:rgba(5,5,6,.72);backdrop-filter:blur(3px)}.page-help-panel{width:min(470px,calc(100% - 24px));height:100%;overflow:auto;padding:28px;background:#17181a;border-left:1px solid var(--line,#353638);box-shadow:-18px 0 55px rgba(0,0,0,.35)}.page-help-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.page-help-head span{display:block;color:var(--gold,#c3ac5f);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.page-help-head h2{margin:.3rem 0 0;font-size:1.55rem}.page-help-close{border:1px solid var(--line,#353638);border-radius:50%;width:38px;height:38px;background:#222326;color:#fff;font-size:1.45rem;cursor:pointer}.page-help-panel>p{color:var(--muted,#aaa);line-height:1.6}.page-help-steps{display:grid;gap:12px;padding-left:26px;margin:22px 0}.page-help-steps li{padding-left:6px;line-height:1.55}.page-help-steps li::marker{color:var(--gold,#c3ac5f);font-weight:800}.page-help-footer{padding-top:20px;border-top:1px solid var(--line,#353638)}body.help-open{overflow:hidden}.public-manual-link{text-align:center;margin-top:24px}.public-manual-link a{color:var(--gold,#c3ac5f)}
@media(max-width:600px){.page-help-button{right:14px;bottom:14px;width:44px;height:44px}.page-help-panel{width:100%;padding:22px}}

/* Lista de convidados / geração de PDF */
.guest-list-tools .section-title-row{align-items:center}
.guest-list-total{min-width:150px;text-align:right;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.guest-list-total strong{display:block;color:var(--gold);font:700 2rem/1 Georgia,serif}
.guest-list-total span{display:block;margin-top:5px;color:var(--muted);font-size:.78rem}
.guest-list-preview{overflow:hidden}
.guest-list-table{min-width:640px}
.guest-list-table th:first-child,.guest-list-table td:first-child{width:42%}
.guest-list-table td{vertical-align:top}
.guest-list-table .guest-family-cell{vertical-align:middle;font-weight:800;color:var(--gold);background:rgba(195,172,95,.045)}
.report-filter-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:18px}.report-filter-field{flex:1 1 230px;min-width:210px;margin:0}.report-phone-option{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.018);font-size:.8rem}.report-phone-option input{width:18px;height:18px;margin:0;accent-color:var(--gold)}
@media(max-width:560px){.guest-list-tools .section-title-row{align-items:flex-start}.guest-list-total{text-align:left;width:100%}.guest-list-tools .toolbar .btn{width:100%}.report-filter-form{align-items:stretch}.report-filter-field{min-width:100%;flex-basis:100%}.report-filter-form>.btn{width:100%}.report-phone-option{width:100%}}


.ticket-manual-code {
    display: block;
    margin-top: 8px;
    font-size: .78rem;
    letter-spacing: .02em;
}
.ticket-manual-code strong { white-space: nowrap; }

/* Caixa de entrada WhatsApp - API Oficial */
.whatsapp-page-head{margin-bottom:18px}
.wa-api-status{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#202124;color:var(--muted);font-size:.78rem;font-weight:800;white-space:nowrap}
.wa-api-status i,.wa-live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgba(232,117,117,.12)}
.wa-api-status.is-online{color:#a9e8c2}.wa-api-status.is-online i,.wa-live-dot{background:var(--green);box-shadow:0 0 0 3px rgba(85,197,138,.12)}
.wa-inbox{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);height:calc(100vh - 190px);min-height:610px;max-height:860px;overflow:hidden;background:#1d1e20}
.wa-sidebar{min-width:0;min-height:0;height:100%;overflow:hidden;border-right:1px solid var(--line);background:#191a1c;display:flex;flex-direction:column}
.wa-sidebar-head{min-height:64px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#222326}
.wa-sidebar-head>div{display:flex;flex-direction:column}.wa-sidebar-head strong{font-size:1rem}.wa-sidebar-head small{color:var(--muted);font-size:.72rem;margin-top:2px}
.wa-search-wrap{padding:10px 12px;border-bottom:1px solid var(--line)}.wa-search-wrap input{height:38px;padding:8px 12px;border-radius:9px;background:#24262a;font-size:.84rem}
.wa-conversation-list{min-height:0;height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;flex:1 1 0}.wa-conversation.is-search-hidden{display:none!important}.wa-search-empty{min-height:120px}
.wa-conversation{appearance:none;width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.055);background:transparent;color:var(--text);display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;padding:12px 13px;text-align:left;cursor:pointer}
.wa-conversation:hover,.wa-conversation.is-active{background:#292b2f}.wa-conversation:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.wa-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#3d4146,#2c2f33);color:var(--gold);font-weight:900;flex:0 0 auto;border:1px solid rgba(255,255,255,.07)}
.wa-conversation-copy{min-width:0}.wa-conversation-top,.wa-conversation-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.wa-conversation-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.wa-conversation-top time{flex:0 0 auto;color:var(--muted);font-size:.63rem}.wa-conversation-bottom{margin-top:4px;color:var(--muted);font-size:.76rem}.wa-conversation-bottom>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-conversation-copy>small{display:block;margin-top:3px;color:#777a7d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.66rem}
.wa-unread{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--green);color:#101813;font-size:.68rem}
.wa-empty-list{padding:38px 20px;text-align:center;color:var(--muted)}.wa-empty-list strong{display:block;color:var(--text);margin-bottom:6px}.wa-empty-list span{font-size:.8rem}
.wa-chat{min-width:0;min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(circle at 12% 20%,rgba(195,172,95,.035),transparent 25%),#202124}
.wa-chat-header{min-height:64px;padding:10px 16px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line);background:#292b2e}.wa-chat-contact{min-width:0;display:flex;flex-direction:column;flex:1}.wa-chat-contact strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-chat-contact small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.72rem}.wa-event-link{margin-left:auto}.wa-mobile-back{display:none;border:0;background:transparent;color:var(--text);font-size:2rem;line-height:1;padding:0 5px;cursor:pointer}
.wa-messages{min-height:0;height:0;flex:1 1 0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:22px clamp(14px,3vw,34px);display:flex;flex-direction:column;gap:7px;scroll-behavior:smooth}
.wa-chat-placeholder{margin:auto;text-align:center;color:var(--muted);max-width:360px}.wa-placeholder-icon{font-size:2.3rem;filter:grayscale(.35)}.wa-chat-placeholder h2{font:700 1.45rem Georgia,serif;color:var(--text);margin:10px 0 5px}.wa-chat-placeholder p{margin:0}
.wa-bubble{max-width:min(72%,640px);padding:9px 11px 7px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.14);overflow-wrap:anywhere}.wa-bubble.is-incoming{align-self:flex-start;background:#303236;border-top-left-radius:4px}.wa-bubble.is-outgoing{align-self:flex-end;background:#514a30;border-top-right-radius:4px}.wa-bubble-text{white-space:normal;font-size:.88rem;line-height:1.45}.wa-bubble footer{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap;margin-top:4px;color:#aaa;font-size:.61rem}.wa-message-status{text-transform:capitalize}.wa-bubble.is-outgoing .wa-message-status{color:#d8c477}.wa-message-retry{border:1px solid rgba(255,213,104,.45);border-radius:999px;padding:3px 8px;background:rgba(0,0,0,.16);color:#f7df94;font-size:.62rem;font-weight:700;line-height:1.2;font-family:inherit;cursor:pointer}.wa-message-retry:hover:not(:disabled){background:rgba(255,213,104,.12);border-color:rgba(255,213,104,.7)}.wa-message-retry:disabled{opacity:.55;cursor:wait}
.wa-media-preview{display:block;margin-bottom:7px;overflow:hidden;border-radius:8px;background:#111}.wa-media-preview img{display:block;max-width:360px;width:100%;max-height:360px;object-fit:contain}.wa-bubble audio{width:min(320px,100%);height:38px}.wa-bubble video{display:block;max-width:360px;width:100%;max-height:360px;border-radius:8px;background:#111}.wa-document{display:flex;align-items:center;gap:8px;padding:10px;margin-bottom:7px;border-radius:8px;background:rgba(0,0,0,.2);color:#f4e7b3;font-size:.8rem;font-weight:800}
.wa-composer-wrap{border-top:1px solid var(--line);background:#292b2e}.wa-window-status{padding:6px 14px;text-align:center;font-size:.69rem;border-bottom:1px solid rgba(255,255,255,.05)}.wa-window-status.is-open{color:#9cddb6;background:rgba(85,197,138,.065)}.wa-window-status.is-closed{color:#efb0b0;background:rgba(232,117,117,.07)}
.wa-attachment-preview{display:flex;align-items:center;gap:10px;margin:9px 12px 0;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#202225}.wa-attachment-preview[hidden]{display:none}.wa-attachment-thumb{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:8px;background:#151617;font-size:1.35rem;overflow:hidden}.wa-attachment-thumb img{width:100%;height:100%;object-fit:cover}.wa-attachment-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.wa-attachment-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.wa-attachment-copy small{color:var(--muted);font-size:.68rem}.wa-attachment-remove{border:0;background:transparent;color:#ccc;font-size:1.35rem;cursor:pointer;padding:4px 8px}.wa-composer{display:flex;align-items:flex-end;gap:10px;padding:10px 12px}.wa-composer textarea{min-height:42px;max-height:128px;resize:none;padding:10px 12px;background:#202225;border-radius:11px;line-height:1.35}.wa-composer textarea:disabled{opacity:.5}.wa-attach,.wa-send{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border:0;border-radius:50%;cursor:pointer}.wa-attach{background:#202225;color:#d8d9dc;border:1px solid var(--line);transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.wa-attach:hover:not(:disabled){background:#303236;border-color:#666a70;color:#fff;transform:translateY(-1px)}.wa-attach svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.wa-attachment-thumb svg{width:22px;height:22px;fill:none;stroke:#cfd1d4;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.wa-send{background:var(--gold);color:#1b180e;font-size:1.1rem;font-weight:900}.wa-attach:disabled,.wa-send:disabled{opacity:.45;cursor:not-allowed}.wa-composer-hint{padding:0 14px 6px;color:var(--muted);font-size:.62rem}.wa-composer-feedback{min-height:0;padding:0 14px 0;color:#ffb5b5;font-size:.72rem}.wa-composer-feedback:not(:empty){padding-bottom:8px}
@media(min-width:701px){.wa-conversation-list,.wa-messages{overflow-y:scroll;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#6a6d73 #202225}.wa-conversation-list::-webkit-scrollbar,.wa-messages::-webkit-scrollbar{width:12px}.wa-conversation-list::-webkit-scrollbar-track,.wa-messages::-webkit-scrollbar-track{background:#202225}.wa-conversation-list::-webkit-scrollbar-thumb,.wa-messages::-webkit-scrollbar-thumb{background:#6a6d73;border:2px solid #202225;border-radius:999px}.wa-conversation-list::-webkit-scrollbar-thumb:hover,.wa-messages::-webkit-scrollbar-thumb:hover{background:#74777d}}
@media(max-width:900px){.wa-inbox{grid-template-columns:320px minmax(0,1fr);height:calc(100vh - 165px);min-height:560px}.wa-bubble{max-width:82%}}
@media(max-width:700px){.whatsapp-page-head{display:none}.wa-inbox{display:block;height:calc(100vh - 150px);min-height:520px;border-radius:14px}.wa-sidebar,.wa-chat{height:100%}.wa-chat{display:none}.wa-inbox.is-chat-open .wa-sidebar{display:none}.wa-inbox.is-chat-open .wa-chat{display:flex}.wa-mobile-back{display:block}.wa-event-link{padding:6px 9px}.wa-chat-header{padding-left:8px}.wa-bubble{max-width:90%}.wa-messages{padding:15px 10px}.wa-media-preview img,.wa-bubble video{max-width:280px}.wa-composer textarea{font-size:16px}}

/* WhatsApp API - monitoramento de uso/rate limit */
.wa-api-summary{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.wa-api-rate{display:inline-flex;align-items:center;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#202124;color:var(--muted);font-size:.72rem;font-weight:750;white-space:nowrap}
.wa-api-rate.is-warning{color:#ffd978;border-color:rgba(255,193,7,.34);background:rgba(255,193,7,.07)}

/* Portaria externa */
.gate-access-card{max-width:520px}.gate-code-form input{text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:1.15rem}.gate-public-head{margin-bottom:20px}.gate-public-head form{margin:0}.gate-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.gate-metric{padding:17px 18px}.gate-metric span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.gate-metric strong{display:block;margin-top:4px;color:var(--gold);font:700 2rem/1 Georgia,serif}.gate-section-title{margin-bottom:14px}.gate-section-title h2{margin:.2rem 0 0}.gate-list-card{margin-top:22px}.gate-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.gate-list-status{margin:12px 0 8px;font-size:.82rem}.gate-guest-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.gate-guest{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 2px;border-bottom:1px solid var(--line)}.gate-guest.is-present{opacity:.76}.gate-guest-copy{min-width:0;display:flex;flex-direction:column}.gate-guest-copy strong{overflow-wrap:anywhere}.gate-guest-copy span{color:var(--muted);font-size:.82rem}.gate-guest-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}.gate-list-empty{min-height:110px}.gate-manual-notice{margin-top:0}.gate-manual-notice .notice{margin:0}
@media(max-width:640px){.gate-metrics{grid-template-columns:repeat(3,1fr);gap:7px}.gate-metric{padding:12px 10px;text-align:center}.gate-metric span{font-size:.62rem}.gate-metric strong{font-size:1.55rem}.gate-search-row{grid-template-columns:1fr}.gate-search-row .btn{width:100%}.gate-guest{align-items:flex-start;flex-direction:column}.gate-guest-actions{width:100%;justify-content:space-between}.gate-guest-actions .btn{flex:1}.gate-public-head form,.gate-public-head .btn{width:100%}}

