:root {
           --bg-principal: #0D0D0C;
           --bg-card: rgba(22, 22, 20, 0.7);
           --bg-input: #1A1A17;
           --bronze-premium: #C5A059;
           --bronze-hover: #E5C17A;
           --verde-operacional: #2E5A44;
           --verde-vibrante: #10B981;
           --verde-oliva: #6E8256;
           --terracota-sol: #E0823F;
           --texto-branco: #F4F4F3;
           --texto-cinza: #8E8E8A;
           --borda: rgba(197, 160, 89, 0.12);
           --borda-foco: rgba(197, 160, 89, 0.4);
           --curva: 12px;
           --transicao: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
       }

       * {
           margin: 0;
           padding: 0;
           box-sizing: border-box;
           font-family: 'Plus Jakarta Sans', sans-serif;
           -webkit-tap-highlight-color: transparent;
       }

       html, body {
           background-color: var(--bg-principal);
           color: var(--texto-branco);
           min-height: 100vh;
           width: 100%;
           overflow-x: hidden;
           letter-spacing: -0.2px;
       }

       .fade-in {
           animation: fadeIn 0.35s ease-out forwards;
       }

       @keyframes fadeIn {
           from { opacity: 0; transform: translateY(10px); }
           to { opacity: 1; transform: translateY(0); }
       }

       .hidden {
           display: none !important;
       }

       /* HEADER STICKY */
       .main-header {
           position: sticky;
           top: 0;
           z-index: 100;
           background: rgba(13, 13, 12, 0.85);
           backdrop-filter: blur(20px);
           -webkit-backdrop-filter: blur(20px);
           border-bottom: 1px solid var(--borda);
           padding: 16px 20px;
           display: flex;
           justify-content: space-between;
           align-items: center;
       }

       .logo h1 {
           font-family: 'Oswald', sans-serif;
           font-size: 1.4rem;
           font-weight: 700;
           text-transform: uppercase;
           letter-spacing: 1.5px;
           color: var(--texto-branco);
       }

       .logo span {
           color: var(--bronze-premium);
           font-weight: 400;
           font-size: 1rem;
       }

       .status-conexao-badge {
           font-size: 0.65rem;
           font-weight: 700;
           text-transform: uppercase;
           letter-spacing: 0.5px;
           padding: 5px 10px;
           border-radius: 20px;
           display: inline-flex;
           align-items: center;
           gap: 6px;
       }
       .sc-online { background: rgba(110, 130, 86, 0.12); color: #A2B98A; border: 1px solid rgba(110, 130, 86, 0.25); }
       .sc-offline { background: rgba(224, 130, 63, 0.12); color: var(--terracota-sol); border: 1px solid rgba(224, 130, 63, 0.25); }

       /* CONTENT WRAPPER */
       .content-wrapper {
           padding: 24px 16px;
           max-width: 600px;
           margin: 0 auto;
           width: 100%;
       }

       .card {
           background: var(--bg-card);
           border: 1px solid var(--borda);
           border-radius: var(--curva);
           padding: 24px;
           margin-bottom: 24px;
           box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
           backdrop-filter: blur(10px);
           -webkit-backdrop-filter: blur(10px);
       }

       .card h2 {
           font-family: 'Oswald', sans-serif;
           font-size: 1.4rem;
           font-weight: 600;
           text-transform: uppercase;
           letter-spacing: 1px;
           color: var(--bronze-premium);
           margin-bottom: 18px;
           border-bottom: 1px dashed var(--borda);
           padding-bottom: 10px;
           display: flex;
           align-items: center;
           gap: 10px;
       }

       /* FORM ELEMENTS & ÍCONES BRANCOS */
       .input-group {
           margin-bottom: 18px;
           width: 100%;
           display: flex;
           flex-direction: column;
       }

       .input-group label {
           display: flex;
           align-items: flex-end;
           font-size: 0.72rem;
           font-weight: 700;
           text-transform: uppercase;
           letter-spacing: 0.8px;
           margin-bottom: 8px;
           color: var(--texto-cinza);
           min-height: 2.2em; /* Garante alinhamento visual se o texto quebrar linha */
       }

       .input-group input, .input-group select, .input-group textarea {
           width: 100%;
           height: 48px;
           padding: 0 14px;
           background-color: var(--bg-input);
           border: 1px solid var(--borda);
           border-radius: 8px;
           color: var(--texto-branco);
           font-size: 0.95rem;
           transition: var(--transicao);
       }

       .input-group textarea {
           height: auto;
           padding: 14px;
       }

       input[type="date"]::-webkit-calendar-picker-indicator,
       input[type="time"]::-webkit-calendar-picker-indicator {
           filter: invert(1);
           cursor: pointer;
       }

       .input-group input:focus, .input-group select:focus, .input-group textarea:focus {
           border-color: var(--bronze-premium);
           outline: none;
           box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.15);
       }

       .form-row-double {
           display: grid;
           grid-template-columns: repeat(2, 1fr);
           gap: 10px;
           width: 100%;
           align-items: flex-end; /* Garante alinhamento exato dos campos na base */
       }

       .form-row-triple {
           display: grid;
           grid-template-columns: repeat(3, 1fr);
           gap: 10px;
           width: 100%;
           align-items: flex-end;
       }

       /* BANNER TOLERÂNCIA */
       .banner-alerta {
           background: rgba(224, 130, 63, 0.08);
           border: 1px solid rgba(224, 130, 63, 0.3);
           border-left: 4px solid var(--terracota-sol);
           padding: 16px;
           border-radius: 8px;
           margin-bottom: 20px;
           display: flex;
           gap: 12px;
           align-items: flex-start;
       }

       .banner-alerta i {
           color: var(--terracota-sol);
           font-size: 1.2rem;
           margin-top: 2px;
       }

       .banner-alerta p {
           font-size: 0.82rem;
           color: var(--texto-branco);
           line-height: 1.4;
       }

       /* BOTÕES */
       .btn-action {
           width: 100%;
           padding: 16px;
           background-color: var(--bronze-premium);
           border: none;
           border-radius: 8px;
           color: var(--bg-principal);
           font-size: 0.95rem;
           font-weight: 700;
           text-transform: uppercase;
           letter-spacing: 1px;
           cursor: pointer;
           transition: var(--transicao);
           box-shadow: 0 4px 15px rgba(197, 160, 89, 0.2);
           display: flex;
           justify-content: center;
           align-items: center;
           gap: 10px;
           text-decoration: none;
       }

       .btn-action:hover {
           background-color: var(--bronze-hover);
           transform: translateY(-1px);
           box-shadow: 0 6px 20px rgba(197, 160, 89, 0.3);
       }

       .btn-whatsapp {
           background-color: #25D366;
           color: #000;
           box-shadow: 0 4px 15px rgba(37, 211, 102, 0.2);
       }

       .btn-whatsapp:hover {
           background-color: #20BA5A;
           box-shadow: 0 6px 20px rgba(37, 211, 102, 0.3);
       }

       .btn-secundario {
           background-color: transparent;
           color: var(--texto-branco);
           border: 1px solid var(--borda-foco);
           box-shadow: none;
       }

       .btn-secundario:hover {
           background-color: rgba(255, 255, 255, 0.05);
           color: var(--bronze-hover);
       }

       /* COMPROVANTE (RECIBO) */
       .recibo-card {
           background: #141412;
           border: 1px dashed var(--bronze-premium);
           border-radius: var(--curva);
           padding: 24px;
           position: relative;
           box-shadow: 0 10px 30px rgba(0,0,0,0.6);
       }

       .recibo-header {
           text-align: center;
           border-bottom: 1px dashed var(--borda);
           padding-bottom: 16px;
           margin-bottom: 16px;
       }

       .recibo-header h3 {
           font-family: 'Oswald', sans-serif;
           font-size: 1.6rem;
           color: var(--bronze-premium);
           letter-spacing: 1px;
           text-transform: uppercase;
       }

       .recibo-codigo {
           font-size: 0.75rem;
           color: var(--texto-cinza);
           letter-spacing: 1px;
           margin-top: 4px;
       }

       .recibo-linha {
           display: flex;
           justify-content: space-between;
           margin-bottom: 12px;
           font-size: 0.88rem;
       }

       .recibo-linha .rotulo {
           color: var(--texto-cinza);
       }

       .recibo-linha .valor {
           color: var(--texto-branco);
           font-weight: 600;
           text-align: right;
       }

       .recibo-destaque {
           color: var(--bronze-premium) !important;
       }

       .wsp-float {
           position: fixed;
           bottom: 20px;
           right: 20px;
           background-color: #25D366;
           color: white;
           width: 60px;
           height: 60px;
           border-radius: 50px;
           display: flex;
           justify-content: center;
           align-items: center;
           font-size: 30px;
           box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
           z-index: 999;
           text-decoration: none;
           transition: var(--transicao);
       }

       .wsp-float:hover {
           transform: scale(1.1);
           background-color: #20BA5A;
       }

       @media (max-width: 480px) {
           .form-row-double { grid-template-columns: 1fr; }
           .form-row-triple { grid-template-columns: 1fr; }
       }

/* ============================================================
   ÁREA ADMINISTRATIVA
   ============================================================ */

.logo-admin-trigger {
    cursor: pointer;
    user-select: none;
}

.logo-admin-trigger:active {
    transform: scale(0.98);
}

#secao-admin {
    width: 100%;
}

.admin-header-card {
    background:
        radial-gradient(circle at top right, rgba(197,160,89,0.10), transparent 35%),
        var(--bg-card);
    border: 1px solid var(--borda);
    border-radius: var(--curva);
    padding: 22px;
    margin-bottom: 16px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.35);
}

.admin-eyebrow,
.admin-calendar-caption {
    display: block;
    color: var(--bronze-premium);
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.admin-header-card h2,
.admin-calendar-top h3,
.admin-list-heading h3 {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.admin-header-card h2 {
    margin-top: 5px;
    font-size: 1.65rem;
}

.admin-header-card p {
    color: var(--texto-cinza);
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 5px;
}

.admin-close-btn,
.admin-calendar-nav button,
.admin-pin-close {
    border: 1px solid var(--borda);
    background: rgba(0,0,0,0.28);
    color: var(--texto-branco);
    cursor: pointer;
    transition: var(--transicao);
}

.admin-close-btn {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    flex: 0 0 auto;
}

.admin-close-btn:hover,
.admin-calendar-nav button:hover,
.admin-pin-close:hover {
    color: var(--bronze-hover);
    border-color: var(--borda-foco);
    background: rgba(197,160,89,0.08);
}

.admin-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.admin-stat {
    background: var(--bg-card);
    border: 1px solid var(--borda);
    border-radius: 10px;
    padding: 15px 10px;
    text-align: center;
}

.admin-stat-number {
    display: block;
    font-family: 'Oswald', sans-serif;
    color: var(--bronze-premium);
    font-size: 1.55rem;
    line-height: 1;
}

.admin-stat-label {
    display: block;
    color: var(--texto-cinza);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-size: 0.58rem;
    font-weight: 700;
    margin-top: 6px;
}

.admin-calendar-card,
.admin-list-card {
    margin-bottom: 16px;
}

.admin-calendar-top,
.admin-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.admin-calendar-top h3,
.admin-list-heading h3 {
    color: var(--texto-branco);
    font-size: 1.25rem;
    margin-top: 4px;
}

.admin-calendar-nav {
    display: flex;
    align-items: center;
    gap: 6px;
}

.admin-calendar-nav button {
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 8px;
    font-size: 0.72rem;
    font-weight: 700;
}

.admin-calendar-nav button:nth-child(2) {
    color: var(--bronze-premium);
}

.admin-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    padding-bottom: 14px;
    border-bottom: 1px dashed var(--borda);
    margin-bottom: 14px;
}

.admin-calendar-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--texto-cinza);
    font-size: 0.62rem;
    font-weight: 600;
}

.legend-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    display: inline-block;
}

.legend-selected { background: var(--bronze-premium); }
.legend-reserva { background: var(--verde-vibrante); }
.legend-feriado { background: var(--terracota-sol); }

.admin-calendar {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}

.admin-weekday {
    text-align: center;
    color: var(--texto-cinza);
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 5px 0 7px;
}

.admin-day {
    position: relative;
    min-height: 58px;
    border: 1px solid rgba(255,255,255,0.045);
    border-radius: 9px;
    background: rgba(0,0,0,0.20);
    color: #5f5f5b;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: default;
    transition: var(--transicao);
}

.admin-day.empty {
    border-color: transparent;
    background: transparent;
}

.admin-day.valid {
    color: var(--texto-branco);
    cursor: pointer;
}

.admin-day.valid:hover {
    border-color: var(--borda-foco);
    background: rgba(197,160,89,0.08);
    transform: translateY(-1px);
}

.admin-day.feriado {
    border-color: rgba(224,130,63,0.35);
}

.admin-day.selected {
    background: rgba(197,160,89,0.15);
    border-color: var(--bronze-premium);
    box-shadow: inset 0 0 0 1px rgba(197,160,89,0.12);
}

.admin-day-number {
    font-size: 0.82rem;
    font-weight: 700;
}

.admin-day-label {
    color: var(--terracota-sol);
    font-size: 0.48rem;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.4px;
}

.admin-day-reservas {
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 20px;
    background: var(--verde-operacional);
    color: #dff4e8;
    font-size: 0.48rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-count-badge {
    flex: 0 0 auto;
    background: rgba(197,160,89,0.10);
    border: 1px solid rgba(197,160,89,0.20);
    color: var(--bronze-hover);
    border-radius: 20px;
    padding: 6px 9px;
    font-size: 0.62rem;
    font-weight: 800;
}

.admin-search {
    position: relative;
    margin-bottom: 15px;
}

.admin-search i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--bronze-premium);
}

.admin-search input {
    width: 100%;
    height: 44px;
    padding: 0 14px 0 40px;
    border-radius: 8px;
    border: 1px solid var(--borda);
    background: var(--bg-input);
    color: var(--texto-branco);
    outline: none;
}

.admin-search input:focus {
    border-color: var(--bronze-premium);
    box-shadow: 0 0 0 3px rgba(197,160,89,0.12);
}

.admin-reservas-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.admin-reserva-card {
    background: rgba(0,0,0,0.22);
    border: 1px solid var(--borda);
    border-radius: 10px;
    padding: 14px;
}

.admin-reserva-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.admin-reserva-nome {
    color: var(--texto-branco);
    font-size: 0.92rem;
    font-weight: 700;
}

.admin-reserva-client-head {
    min-width: 0;
}

.admin-reserva-telefone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    color: var(--bronze-hover);
    font-size: 0.70rem;
    font-weight: 700;
    text-decoration: none;
}

.admin-reserva-telefone:hover {
    color: var(--bronze-premium);
    text-decoration: underline;
}

.admin-reserva-telefone.sem-telefone {
    color: var(--texto-cinza);
    font-weight: 500;
}

.admin-reserva-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.admin-edit-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 1px solid var(--borda);
    background: rgba(197,160,89,0.07);
    color: var(--bronze-premium);
    cursor: pointer;
    transition: var(--transicao);
}

.admin-edit-icon:hover {
    color: var(--bronze-hover);
    border-color: var(--borda-foco);
    background: rgba(197,160,89,0.15);
    transform: translateY(-1px);
}

.admin-reserva-horario {
    color: var(--bronze-premium);
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    white-space: nowrap;
}

.admin-reserva-info {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
    margin-top: 11px;
}

.admin-reserva-item {
    color: var(--texto-cinza);
    font-size: 0.68rem;
    line-height: 1.4;
}

.admin-reserva-item strong {
    color: var(--texto-branco);
    font-weight: 700;
}

.admin-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    padding: 5px 8px;
    border-radius: 20px;
    font-size: 0.56rem;
    font-weight: 800;
    text-transform: uppercase;
}

.admin-status.reservada {
    color: #b8e8cb;
    background: rgba(16,185,129,0.10);
    border: 1px solid rgba(16,185,129,0.20);
}

.admin-status.ocupada {
    color: #f1c58f;
    background: rgba(224,130,63,0.10);
    border: 1px solid rgba(224,130,63,0.20);
}

.admin-obs {
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px dashed var(--borda);
    color: var(--texto-cinza);
    font-size: 0.68rem;
    line-height: 1.45;
}

.admin-empty {
    padding: 30px 15px;
    text-align: center;
    color: var(--texto-cinza);
    border: 1px dashed var(--borda);
    border-radius: 9px;
}

.admin-empty i {
    display: block;
    color: var(--bronze-premium);
    font-size: 1.5rem;
    margin-bottom: 8px;
}

.admin-empty strong {
    display: block;
    color: var(--texto-branco);
    font-size: 0.8rem;
    margin-bottom: 4px;
}

.admin-empty span {
    font-size: 0.68rem;
}

.admin-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.admin-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.78);
    backdrop-filter: blur(8px);
}

.admin-edit-box {
    position: relative;
    width: 100%;
    max-width: 620px;
    max-height: min(90vh, 760px);
    overflow-y: auto;
    padding: 26px;
    border-radius: 14px;
    border: 1px solid var(--borda-foco);
    background: #141412;
    box-shadow: 0 25px 80px rgba(0,0,0,0.65);
    animation: fadeIn 0.25s ease-out;
}

.admin-edit-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-right: 35px;
    margin-bottom: 20px;
}

.admin-edit-heading .admin-pin-icon {
    margin: 0;
    flex: 0 0 auto;
}

.admin-edit-heading h3 {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    color: var(--texto-branco);
    letter-spacing: 0.8px;
    margin-top: 3px;
}

.admin-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.admin-edit-field {
    min-width: 0;
}

.admin-edit-field.admin-edit-full {
    grid-column: 1 / -1;
}

.admin-edit-field label {
    display: block;
    color: var(--texto-cinza);
    font-size: 0.64rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.admin-edit-field input,
.admin-edit-field select,
.admin-edit-field textarea {
    width: 100%;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--bg-input);
    color: var(--texto-branco);
    outline: none;
    font-family: inherit;
    font-size: 0.78rem;
}

.admin-edit-field input,
.admin-edit-field select {
    height: 44px;
    padding: 0 12px;
}

.admin-edit-field textarea {
    min-height: 80px;
    padding: 11px 12px;
    resize: vertical;
    line-height: 1.4;
}

.admin-edit-field input:focus,
.admin-edit-field select:focus,
.admin-edit-field textarea:focus {
    border-color: var(--bronze-premium);
    box-shadow: 0 0 0 3px rgba(197,160,89,0.12);
}

.admin-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 15px;
}

.admin-edit-cancel {
    min-height: 44px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid var(--borda);
    background: transparent;
    color: var(--texto-cinza);
    cursor: pointer;
    font-weight: 700;
    font-size: 0.68rem;
}

.admin-edit-cancel:hover {
    color: var(--texto-branco);
    border-color: var(--borda-foco);
}

.admin-edit-save {
    margin-top: 0;
}

.admin-edit-error {
    margin-top: 8px;
    text-align: right;
}

.admin-pin-box {
    position: relative;
    width: 100%;
    max-width: 360px;
    padding: 28px;
    border-radius: 14px;
    border: 1px solid var(--borda-foco);
    background: #141412;
    box-shadow: 0 25px 80px rgba(0,0,0,0.65);
    text-align: center;
    animation: fadeIn 0.25s ease-out;
}

.admin-pin-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    border-radius: 8px;
}

.admin-pin-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 12px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bronze-premium);
    background: rgba(197,160,89,0.10);
    border: 1px solid rgba(197,160,89,0.20);
}

.admin-pin-box h3 {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    color: var(--texto-branco);
    letter-spacing: 0.8px;
}

.admin-pin-box p {
    color: var(--texto-cinza);
    font-size: 0.75rem;
    margin: 6px 0 16px;
}

.admin-pin-input {
    width: 100%;
    height: 48px;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--bg-input);
    color: var(--texto-branco);
    text-align: center;
    font-size: 1.15rem;
    letter-spacing: 5px;
    outline: none;
    margin-bottom: 7px;
}

.admin-pin-input:focus {
    border-color: var(--bronze-premium);
    box-shadow: 0 0 0 3px rgba(197,160,89,0.12);
}

.admin-pin-error {
    min-height: 18px;
    color: #ef9a9a;
    font-size: 0.65rem;
    font-weight: 700;
    margin-bottom: 5px;
}

@media (max-width: 480px) {
    .admin-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-calendar {
        gap: 3px;
    }

    .admin-day {
        min-height: 52px;
    }

    .admin-day-number {
        font-size: 0.76rem;
    }

    .admin-calendar-top,
    .admin-list-heading {
        align-items: flex-start;
    }

    .admin-calendar-top {
        flex-direction: column;
    }

    .admin-calendar-nav {
        width: 100%;
        justify-content: space-between;
    }

    .admin-calendar-nav button {
        flex: 1;
    }

    .admin-reserva-info {
        grid-template-columns: 1fr 1fr;
    }

    .admin-reserva-top {
        align-items: flex-start;
    }

    .admin-reserva-card-actions {
        gap: 5px;
    }

    .admin-reserva-horario {
        font-size: 0.88rem;
    }

    .admin-edit-box {
        padding: 20px 15px;
        max-height: 94vh;
    }

    .admin-edit-grid {
        grid-template-columns: 1fr;
    }

    .admin-edit-field.admin-edit-full {
        grid-column: auto;
    }

    .admin-edit-actions {
        flex-direction: column-reverse;
    }

    .admin-edit-cancel,
    .admin-edit-save {
        width: 100%;
    }
}


/* ============================================================
   CALENDÁRIO DO CLIENTE — COMPONENTE PRÓPRIO
   ============================================================ */
.client-date-group{width:100%;margin-bottom:18px}
.client-calendar-card{
    width:100%;
    background:#121211;
    border:1px solid var(--borda);
    border-radius:12px;
    padding:18px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.02),0 8px 25px rgba(0,0,0,.22);
}
.client-calendar-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding-bottom:14px;
    border-bottom:1px dashed var(--borda);
}
.client-calendar-caption{
    display:block;
    color:var(--bronze-premium);
    font-size:.64rem;
    line-height:1.15;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.9px;
    margin-bottom:4px;
}
.client-calendar-head h3{
    font-family:'Oswald',sans-serif;
    color:var(--texto-branco);
    font-size:1.5rem;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:.7px;
}
.client-calendar-nav{
    display:flex;
    align-items:center;
    gap:6px;
    flex-shrink:0;
}
.client-calendar-nav button{
    height:36px;
    min-width:36px;
    padding:0 10px;
    border:1px solid var(--borda);
    border-radius:8px;
    background:#10100f;
    color:var(--texto-branco);
    font:700 .68rem 'Plus Jakarta Sans',sans-serif;
    cursor:pointer;
    transition:var(--transicao);
}
.client-calendar-nav button:hover{
    color:var(--bronze-hover);
    border-color:var(--borda-foco);
    background:rgba(197,160,89,.08);
}
.client-calendar-nav button:disabled{opacity:.35;cursor:not-allowed}
.client-calendar-legend{
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    padding:12px 0 14px;
}
.client-calendar-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--texto-cinza);
    font-size:.59rem;
    font-weight:600;
}
.client-legend-dot{
    width:7px;height:7px;border-radius:50%;display:inline-block;flex:none;
}
.client-legend-dot.selected{background:var(--bronze-premium)}
.client-legend-dot.reserva{background:var(--verde-vibrante)}
.client-legend-dot.feriado{background:var(--terracota-sol)}
.client-calendar-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:5px;
}
.client-weekday{
    min-width:0;
    text-align:center;
    padding:4px 0 7px;
    color:var(--texto-cinza);
    font-size:.54rem;
    font-weight:800;
    text-transform:uppercase;
}
.client-day{
    appearance:none;
    -webkit-appearance:none;
    position:relative;
    min-width:0;
    min-height:55px;
    padding:7px 3px;
    border:1px solid rgba(255,255,255,.045);
    border-radius:9px;
    background:#10100f;
    color:#555550;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    font:700 .76rem 'Plus Jakarta Sans',sans-serif;
    cursor:not-allowed;
    transition:var(--transicao);
}
.client-day.empty{
    visibility:hidden;
    pointer-events:none;
    border-color:transparent;
    background:transparent;
}
.client-day.valid{
    color:var(--texto-branco);
    cursor:pointer;
}
.client-day.valid:hover{
    border-color:var(--borda-foco);
    background:rgba(197,160,89,.07);
    transform:translateY(-1px);
}
.client-day.today:not(.selected){
    border-color:rgba(197,160,89,.25);
}
.client-day.selected{
    color:var(--texto-branco);
    background:rgba(197,160,89,.14);
    border-color:var(--bronze-premium);
    box-shadow:inset 0 0 0 1px rgba(197,160,89,.10);
}
.client-day.feriado:not(.selected){
    border-color:rgba(224,130,63,.28);
}
.client-day-number{line-height:1}
.client-day-label{
    color:var(--terracota-sol);
    font-size:.43rem;
    line-height:1;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.35px;
}
.client-day-reservas{
    min-width:17px;
    height:17px;
    padding:0 4px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--verde-operacional);
    color:#dff4e8;
    font-size:.47rem;
    line-height:1;
    font-weight:800;
}
.client-day.past:not(.valid){opacity:.52}

@media(max-width:480px){
    .client-calendar-card{padding:16px 14px}
    .client-calendar-head{gap:8px}
    .client-calendar-head h3{font-size:1.32rem}
    .client-calendar-nav button{height:34px;min-width:34px;padding:0 8px}
    .client-calendar-grid{gap:3px}
    .client-day{min-height:52px;border-radius:8px;padding:6px 2px}
    .client-weekday{font-size:.50rem}
    .client-day-number{font-size:.72rem}
    .client-day-label{font-size:.40rem}
}


/* ============================================================
   POLIMENTO VISUAL — CELEIRO RURAL
   Mantém a paleta original bronze/dourado.
   ============================================================ */
.connection-status-hidden{display:none !important;}
.main-header{
    min-height:88px;
    justify-content:center;
    padding:12px 18px;
    background:rgba(13,13,12,.78);
    box-shadow:0 10px 35px rgba(0,0,0,.18);
    position:sticky;
}
.main-header::after{
    content:"";position:absolute;left:50%;bottom:-1px;width:110px;height:1px;
    transform:translateX(-50%);
    background:linear-gradient(90deg,transparent,var(--bronze-premium),transparent);opacity:.75;
}
.logo-admin-trigger{
    display:flex;justify-content:center;align-items:center;width:100%;min-height:62px;
    cursor:pointer;transition:transform .35s cubic-bezier(.22,1,.36,1),filter .35s ease;
}
.logo-admin-trigger:hover{transform:translateY(-1px);filter:drop-shadow(0 8px 20px rgba(197,160,89,.12));}
.brand-logo{width:170px;height:68px;object-fit:contain;object-position:center;display:block;transition:transform .45s cubic-bezier(.22,1,.36,1);}
.logo-admin-trigger:hover .brand-logo{transform:scale(1.025)}
.receipt-logo{width:72px;height:44px;object-fit:contain;vertical-align:middle;}
.recibo-header h3{display:flex;align-items:center;gap:8px;}
.card{position:relative;overflow:visible;transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .3s ease,box-shadow .35s ease;}
.card:hover{border-color:rgba(197,160,89,.20);box-shadow:0 16px 48px rgba(0,0,0,.45),0 0 0 1px rgba(197,160,89,.025);}
.input-group input,.input-group textarea,.custom-select-trigger{transition:border-color .25s ease,box-shadow .25s ease,background .25s ease,transform .25s ease;}
.input-group input:hover,.input-group textarea:hover,.custom-select-trigger:hover{border-color:rgba(197,160,89,.28);}
.btn-action{position:relative;overflow:hidden;}
.btn-action::after{content:"";position:absolute;inset:0;transform:translateX(-110%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.14),transparent);transition:transform .55s ease;}
.btn-action:hover::after{transform:translateX(110%);}

/* ============================================================
   SELECTS PERSONALIZADOS — HORÁRIO E MESA
   ============================================================ */
.native-custom-select{position:absolute !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important;overflow:hidden !important;}
.custom-select{position:relative;width:100%;z-index:20;}
.custom-select.is-open{z-index:1000;}
.custom-select-trigger{
    width:100%;height:48px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;
    border:1px solid var(--borda);border-radius:9px;background:linear-gradient(180deg,#1b1b18,#181815);
    color:var(--texto-branco);font:500 .95rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;text-align:left;outline:none;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.custom-select-trigger i{font-size:.72rem;color:var(--texto-cinza);transition:transform .25s ease,color .25s ease;}
.custom-select.is-open .custom-select-trigger{border-color:var(--bronze-premium);box-shadow:0 0 0 3px rgba(197,160,89,.12);background:#1c1c19;}
.custom-select.is-open .custom-select-trigger i{transform:rotate(180deg);color:var(--bronze-hover);}
.custom-select-trigger.placeholder{color:#a2a29d;}
.custom-select-menu{
    position:absolute;left:0;right:0;top:calc(100% + 7px);max-height:250px;overflow:auto;padding:6px;
    border:1px solid rgba(197,160,89,.28);border-radius:10px;background:#151513;
    box-shadow:0 18px 45px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.025);
    opacity:0;visibility:hidden;transform:translateY(-5px) scale(.99);transform-origin:top center;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}
.custom-select.is-open .custom-select-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
.custom-select-option{
    width:100%;min-height:42px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;
    border:0;border-radius:7px;background:transparent;color:#eee;font:500 .9rem 'Plus Jakarta Sans',sans-serif;text-align:left;cursor:pointer;
    transition:background .18s ease,color .18s ease,transform .18s ease;
}
.custom-select-option:hover{background:rgba(197,160,89,.10);color:#fff;transform:translateX(2px);}
.custom-select-option.selected{background:rgba(197,160,89,.16);color:var(--bronze-hover);font-weight:700;}
.custom-select-option.disabled{color:#686863;cursor:not-allowed;}
.custom-select-menu::-webkit-scrollbar{width:7px}.custom-select-menu::-webkit-scrollbar-track{background:#10100f;border-radius:10px}.custom-select-menu::-webkit-scrollbar-thumb{background:#3a3935;border-radius:10px}.custom-select-menu::-webkit-scrollbar-thumb:hover{background:#56534d}

/* ============================================================
   POP-UP — GRUPOS ACIMA DE 30
   ============================================================ */
.group-limit-modal{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:20px;}
.group-limit-modal.hidden{display:none !important;}
.group-limit-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:popupBackdropIn .22s ease forwards;}
.group-limit-box{position:relative;width:min(440px,100%);padding:28px 24px 22px;border:1px solid rgba(197,160,89,.32);border-radius:18px;background:linear-gradient(145deg,#1a1a17,#121211);box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 45px rgba(197,160,89,.08);text-align:center;animation:groupPopupIn .42s cubic-bezier(.22,1,.36,1) forwards;}
.group-limit-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:9px;border:1px solid var(--borda);background:#10100f;color:#aaa;cursor:pointer;transition:.25s ease;}
.group-limit-close:hover{color:#fff;border-color:var(--borda-foco);background:rgba(197,160,89,.10);transform:rotate(4deg);}
.group-limit-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:16px;display:grid;place-items:center;background:rgba(197,160,89,.12);border:1px solid rgba(197,160,89,.28);color:var(--bronze-hover);font-size:1.45rem;box-shadow:0 10px 30px rgba(197,160,89,.08);}
.group-limit-eyebrow{display:block;color:var(--bronze-premium);font:700 .66rem 'Plus Jakarta Sans',sans-serif;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:7px;}
.group-limit-box h3{font:700 1.45rem 'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px;color:var(--texto-branco);}
.group-limit-box p{color:var(--texto-cinza);font-size:.83rem;line-height:1.55;margin:0 auto 16px;max-width:360px;}
.group-limit-total{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:5px 0 18px;padding:12px 14px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid var(--borda);}
.group-limit-total strong{color:var(--bronze-hover);font:700 1.7rem 'Oswald',sans-serif;}
.group-limit-total span{color:var(--texto-cinza);font-size:.72rem;font-weight:700;text-transform:uppercase;}
.group-limit-whatsapp{display:flex!important;width:100%;justify-content:center;align-items:center;gap:9px;background:#10B981!important;border-color:#34D399!important;color:#fff!important;text-decoration:none!important;box-shadow:0 12px 30px rgba(16,185,129,.18);}
.group-limit-whatsapp:hover{background:#059669!important;transform:translateY(-1px);}
.group-limit-secondary{margin-top:11px;background:transparent;border:0;color:var(--texto-cinza);font-size:.72rem;font-weight:700;cursor:pointer;padding:8px 12px;transition:.2s ease;}
.group-limit-secondary:hover{color:var(--texto-branco);}
body.modal-open{overflow:hidden;}
@keyframes popupBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes groupPopupIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:600px){
    .main-header{min-height:78px;padding:9px 14px;}
    .brand-logo{width:150px;height:58px;}
    .custom-select-menu{max-height:220px;}
    .custom-select-option{min-height:44px;font-size:.88rem;}
    .group-limit-box{padding:25px 18px 18px;border-radius:16px;}
    .group-limit-box h3{font-size:1.28rem;}
}
@media(max-width:360px){.brand-logo{width:132px;height:52px}.card{padding:19px 15px}.custom-select-trigger{font-size:.88rem}}
