:root{--primary:#b76e59;--primary-dark:#8d4939;--soft:#f8f3ef;--paper:#fffdfb;--ink:#282321;--muted:#746c68;--border:#eadfd9;--dark:#2b2523;--shadow:0 22px 60px rgba(74,46,37,.12)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:"DM Sans",sans-serif;line-height:1.6}a{text-decoration:none}.app-navbar{min-height:84px;border-bottom:1px solid var(--border);background:rgba(255,253,251,.94);backdrop-filter:blur(15px)}.navbar-brand,.sidebar-brand{display:flex;align-items:center;gap:.75rem}.navbar-brand>span:last-child,.sidebar-brand>span:last-child{display:grid;line-height:1}.navbar-brand strong,.sidebar-brand strong{letter-spacing:.13em;font-size:.85rem;color:var(--ink)}.navbar-brand small,.sidebar-brand small{margin-top:.35rem;color:var(--primary);font-size:.56rem;letter-spacing:.32em}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));font-family:"Playfair Display",serif;font-size:1.4rem}.nav-link{color:var(--muted);font-weight:700;font-size:.86rem}.btn{border-radius:999px;font-weight:700}.btn-primary-app{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--primary);padding:.75rem 1.35rem;color:#fff;background:var(--primary)}.btn-primary-app:hover{color:#fff;background:var(--primary-dark)}.btn-outline-app{border:1px solid var(--primary);padding:.75rem 1.35rem;color:var(--primary-dark)}.hero{padding:165px 0 95px;background:radial-gradient(circle at 90% 10%,rgba(212,176,76,.17),transparent 25%),linear-gradient(180deg,#fffdfb,#fbf6f2)}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.eyebrow{color:var(--primary-dark);font-size:.7rem;font-weight:800;letter-spacing:.17em}.hero h1,.section h2,.booking-header h1{font-family:"Playfair Display",serif;letter-spacing:-.045em}.hero h1{margin:16px 0 24px;font-size:clamp(3.4rem,6vw,6rem);line-height:.98}.hero h1 em{color:var(--primary);font-style:normal}.hero p{max-width:600px;color:var(--muted);font-size:1.08rem}.hero-actions{display:flex;gap:12px;margin-top:28px}.hero-room{min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;padding:34px;border-radius:180px 180px 28px 28px;color:#fff;background:linear-gradient(145deg,#d9c5b9,#725348);box-shadow:var(--shadow)}.hero-room strong{font-family:"Playfair Display",serif;font-size:2rem}.section{padding:95px 0}.section.soft{background:var(--soft)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:35px}.section-head.centered{display:grid;justify-items:center;text-align:center}.section h2{margin:8px 0 0;font-size:clamp(2.3rem,4vw,4rem)}.cards-grid,.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.room-card,.plan-card{overflow:hidden;border:1px solid var(--border);border-radius:23px;background:#fff;box-shadow:0 12px 36px rgba(60,41,34,.06)}.room-visual{height:220px;display:grid;place-items:center;color:var(--primary-dark);background:var(--soft);font-size:4rem}.room-content,.plan-card{padding:24px}.room-content small,.plan-card small{color:var(--primary);font-weight:800;letter-spacing:.14em}.room-content h3,.plan-card h3{margin:8px 0;font-family:"Playfair Display",serif}.room-content p,.plan-card p{color:var(--muted)}.plan-card>strong{font-size:1.7rem}.booking-page{min-height:100vh;padding:140px 0 80px;background:var(--soft)}.booking-header{margin-bottom:25px}.booking-header h1{margin:8px 0;font-size:3.5rem}.booking-card{padding:30px;border:1px solid var(--border);border-radius:25px;background:#fff;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.booking-card label,.login-card label{display:grid;gap:7px;font-size:.78rem;font-weight:800}.booking-card input,.booking-card select,.booking-card textarea,.login-card input{width:100%;min-height:48px;border:1px solid var(--border);border-radius:13px;padding:.75rem}.full-field{margin:16px 0}.login-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:var(--soft)}.login-card{width:min(420px,100%);display:grid;gap:16px;padding:34px;border:1px solid var(--border);border-radius:25px;background:#fff;box-shadow:var(--shadow)}.login-card .brand-mark{margin:auto}.login-card h1,.login-card p{text-align:center}.flash-wrap{position:fixed;z-index:100;top:95px;left:0;right:0}.app-footer{padding:30px 0;color:rgba(255,255,255,.55);background:var(--dark)}.footer-row{display:flex;justify-content:space-between;gap:20px;font-size:.78rem}.admin-body{background:#f5f6f8}.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:25px 18px;border-right:1px solid #e4e7ec;background:#fff}.sidebar nav{display:grid;gap:5px;margin-top:28px}.sidebar nav a,.sidebar-logout{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:0;border-radius:11px;color:#667085;background:transparent;font-size:.84rem;font-weight:700}.sidebar nav a.active,.sidebar nav a:hover{color:var(--primary-dark);background:#f4e3dd}.sidebar-logout{width:100%}.admin-content{min-width:0;padding:32px}.admin-header{display:flex;align-items:center;justify-content:space-between}.admin-header h1{margin:5px 0;font-size:2rem}.admin-header p{margin:0;color:#667085}.admin-user{display:flex;align-items:center;gap:.7rem;padding:.7rem;border:1px solid #e4e7ec;border-radius:14px;background:#fff}.admin-user>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--primary)}.admin-user div{display:grid}.admin-user small{color:#98a2b3}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:28px 0}.metrics article{display:flex;align-items:center;gap:1rem;padding:19px;border:1px solid #e4e7ec;border-radius:17px;background:#fff}.metrics i{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;color:var(--primary-dark);background:#f4e3dd;font-size:1.2rem}.metrics article div{display:grid}.metrics small{color:#667085}.metrics strong{font-size:1.55rem}.admin-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.admin-card{padding:22px;border:1px solid #e4e7ec;border-radius:19px;background:#fff}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.card-head small{color:var(--primary);font-weight:800;letter-spacing:.14em}.card-head h2{margin:3px 0;font-size:1.2rem}.reservation-row{display:grid;grid-template-columns:55px 8px 1fr auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #eaecf0}.reservation-row>div{display:grid}.reservation-row small{color:#667085}.status{width:8px;height:38px;border-radius:999px;background:#f79009}.status-confirmed{background:#12b76a}.status-cancelled{background:#f04438}.badge-app{padding:.28rem .52rem;border-radius:999px;color:#475467;background:#f2f4f7;font-size:.67rem}.integration-item{display:grid;grid-template-columns:auto 1fr;gap:.8rem;padding:14px 0;border-top:1px solid #eaecf0}.integration-item i{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:var(--primary-dark);background:#f4e3dd}.integration-item div{display:grid}.integration-item small{color:#667085}.online{color:#067647;font-size:.74rem;font-weight:800}.empty{color:#667085}
@media(max-width:1000px){.hero-grid,.admin-grid{grid-template-columns:1fr}.cards-grid,.plans-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.admin-content{padding:20px}.hero-grid,.form-grid{grid-template-columns:1fr}.hero{padding-top:130px}.cards-grid,.plans-grid{grid-template-columns:1fr}.section-head,.admin-header{align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:1fr}.footer-row{flex-direction:column}}

/* =========================================================
   LAYOUT PÚBLICO DUCKY'S BOX
   ========================================================= */

.duckys-navbar {
    min-height: 92px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(183, 110, 89, 0.14);
    background: rgba(255, 253, 251, 0.94);
    backdrop-filter: blur(18px);
    transition:
        min-height 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}

.duckys-navbar.navbar-scrolled {
    min-height: 76px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 10px 35px rgba(60, 41, 34, 0.08);
}

.brand-logo {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    object-fit: contain;
}

.brand-text {
    display: grid;
    line-height: 1;
}

.brand-text strong {
    color: var(--ink);
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.brand-text small {
    margin-top: 7px;
    color: var(--primary);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.38em;
}

.duckys-navbar .nav-link {
    position: relative;
    padding: 0.75rem 0.65rem !important;
    color: #665d59;
    font-size: 0.82rem;
    font-weight: 700;
    transition: color 0.2s ease;
}

.duckys-navbar .nav-link::after {
    position: absolute;
    right: 0.65rem;
    bottom: 6px;
    left: 0.65rem;
    height: 2px;
    border-radius: 999px;
    background: var(--primary);
    content: "";
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s ease;
}

.duckys-navbar .nav-link:hover,
.duckys-navbar .nav-link.active {
    color: var(--primary-dark);
}

.duckys-navbar .nav-link:hover::after,
.duckys-navbar .nav-link.active::after {
    transform: scaleX(1);
}

.btn-duckys {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0.72rem 1.35rem;
    border: 1px solid var(--primary);
    border-radius: 999px;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
        );
    box-shadow: 0 12px 25px rgba(141, 73, 57, 0.2);
    font-size: 0.82rem;
    font-weight: 700;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.btn-duckys:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(141, 73, 57, 0.28);
}

.flash-wrap {
    position: fixed;
    z-index: 1090;
    top: 106px;
    right: 0;
    left: 0;
    pointer-events: none;
}

.app-alert {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
    max-width: 680px;
    margin: 0 auto;
    padding: 16px 18px;
    border: 0;
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(40, 35, 33, 0.15);
    pointer-events: auto;
}

.app-alert .alert-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.72);
    font-size: 1.1rem;
}

.app-alert strong,
.app-alert p {
    display: block;
}

.app-alert p {
    margin: 2px 0 0;
    font-size: 0.84rem;
}

.site-footer {
    position: relative;
    overflow: hidden;
    padding: 72px 0 24px;
    color: rgba(255, 255, 255, 0.7);
    background:
        radial-gradient(
            circle at 10% 0%,
            rgba(183, 110, 89, 0.22),
            transparent 32%
        ),
        #292321;
}

.site-footer::before {
    position: absolute;
    top: -130px;
    right: -120px;
    width: 340px;
    height: 340px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 50%;
    content: "";
}

.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #fff;
}

.footer-logo {
    width: 62px;
    height: 62px;
    object-fit: contain;
}

.brand-copy {
    display: grid;
    line-height: 1.1;
}

.brand-copy strong {
    color: #fff;
    font-size: 0.88rem;
    letter-spacing: 0.12em;
}

.brand-copy small {
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.67rem;
    letter-spacing: 0.08em;
}

.footer-description {
    max-width: 340px;
    margin: 22px 0 0;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.86rem;
    line-height: 1.75;
}

.footer-title {
    display: block;
    margin-bottom: 18px;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.footer-nav,
.footer-contact {
    display: grid;
    gap: 11px;
}

.footer-nav a,
.footer-contact a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: fit-content;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.82rem;
    transition:
        color 0.2s ease,
        transform 0.2s ease;
}

.footer-nav a:hover,
.footer-contact a:hover {
    color: #fff;
    transform: translateX(3px);
}

.footer-contact i {
    color: #d9a796;
}

.social-links {
    display: flex;
    gap: 10px;
}

.social-links a {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 13px;
    color: rgba(255, 255, 255, 0.72);
    background: rgba(255, 255, 255, 0.04);
    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease,
        transform 0.2s ease;
}

.social-links a:hover {
    color: #fff;
    border-color: var(--primary);
    background: var(--primary);
    transform: translateY(-3px);
}

.footer-booking-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    color: #e6b6a6;
    font-size: 0.8rem;
    font-weight: 700;
}

.footer-booking-link:hover {
    color: #fff;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin-top: 55px;
    padding-top: 23px;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.71rem;
}

.footer-bottom strong {
    color: rgba(255, 255, 255, 0.68);
}

.whatsapp-floating {
    position: fixed;
    z-index: 1080;
    right: 24px;
    bottom: 24px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 52px;
    padding: 0 18px;
    border-radius: 999px;
    color: #fff;
    background: #25d366;
    box-shadow: 0 16px 35px rgba(37, 211, 102, 0.3);
    font-size: 0.78rem;
    font-weight: 800;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.whatsapp-floating i {
    font-size: 1.25rem;
}

.whatsapp-floating:hover {
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 20px 42px rgba(37, 211, 102, 0.4);
}

@media (max-width: 991.98px) {
    .duckys-navbar {
        min-height: 78px;
    }

    .brand-logo {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
    }

    .navbar-collapse {
        margin-top: 12px;
        padding: 18px;
        border: 1px solid var(--border);
        border-radius: 18px;
        background: #fff;
        box-shadow: var(--shadow);
    }

    .duckys-navbar .nav-link {
        padding: 0.7rem 0 !important;
    }

    .duckys-navbar .nav-link::after {
        display: none;
    }

    .duckys-navbar .btn-duckys {
        width: 100%;
        margin-top: 8px;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .site-footer {
        padding-top: 55px;
    }

    .whatsapp-floating {
        right: 16px;
        bottom: 16px;
        width: 54px;
        height: 54px;
        padding: 0;
        justify-content: center;
    }

    .whatsapp-floating span {
        display: none;
    }
}
/* Agenda CRUD */
.agenda-header{align-items:flex-start}.agenda-back-link{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;color:#8d6f63;font-size:.72rem;font-weight:700;text-decoration:none}.agenda-alert{border:0;border-radius:13px;font-size:.78rem}.agenda-toolbar{display:grid;gap:18px;padding:18px}
.agenda-date-navigation{display:flex;align-items:center;gap:12px}
.agenda-date-navigation>div{display:grid;min-width:260px}
.agenda-date-navigation small{color:#a07f72;font-size:.6rem;font-weight:800;letter-spacing:.08em}
.agenda-date-navigation strong{color:#40342f;font-size:.88rem}
.agenda-icon-button{display:grid;width:36px;height:36px;place-items:center;border:1px solid #e5dad5;border-radius:10px;color:#6e5a52;background:#fff;text-decoration:none}
.agenda-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(190px,1.4fr) auto;gap:12px;align-items:end}.agenda-filters label,.agenda-field{display:grid;gap:6px}.agenda-filters label>span,.agenda-field>span{color:#65544d;font-size:.66rem;font-weight:800}.agenda-filters input,.agenda-filters select,.agenda-field input,.agenda-field select,.agenda-field textarea{width:100%;min-height:42px;padding:0 11px;border:1px solid #dfd4cf;border-radius:10px;outline:none;background:#fff;color:#40352f;font:inherit;font-size:.75rem}.agenda-field textarea{padding:11px;resize:vertical}.agenda-filters input:focus,.agenda-filters select:focus,.agenda-field input:focus,.agenda-field select:focus,.agenda-field textarea:focus{border-color:#c48670;box-shadow:0 0 0 3px rgba(196,134,112,.12)}.agenda-metrics{margin-top:0}.agenda-list-card{overflow:hidden}.agenda-table{margin:0}.agenda-table thead th{padding:13px 16px;color:#8e7b73;background:#fbf8f7;font-size:.61rem;letter-spacing:.05em;text-transform:uppercase;border-bottom-color:#eee5e1}.agenda-table tbody td{padding:14px 16px;font-size:.72rem;border-color:#f1e9e5}.agenda-time{display:grid}.agenda-time strong{font-size:.9rem;color:#40342f}.agenda-time small{color:#94857e;font-size:.61rem}.agenda-status,.agenda-payment{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:.57rem;font-weight:800}.agenda-status-pending{color:#8a5b12;background:#fff3d7}.agenda-status-confirmed{color:#137047;background:#e7f8ef}.agenda-status-completed{color:#365f8f;background:#eaf2fb}.agenda-status-cancelled{color:#a04940;background:#fdecea}.agenda-status-no_show{color:#6b5a7d;background:#f1ebf7}.agenda-payment-unpaid{color:#8f4a42;background:#fbeceb}.agenda-payment-pending{color:#8a5b12;background:#fff3d7}.agenda-payment-paid{color:#137047;background:#e7f8ef}.agenda-payment-refunded{color:#52606c;background:#edf1f4}.agenda-actions{display:flex;justify-content:flex-end;gap:6px}.agenda-actions form{margin:0}.agenda-action-button{display:grid;width:32px;height:32px;padding:0;place-items:center;border:1px solid #e3d8d3;border-radius:9px;color:#6a574f;background:#fff;text-decoration:none}.agenda-action-button.is-success{color:#16804d;border-color:#c9ead8;background:#f0fbf5}.agenda-action-button.is-danger{color:#ad4a40;border-color:#f0d0cc;background:#fff5f4}.agenda-empty{display:grid;justify-items:center;padding:54px 20px;text-align:center}.agenda-empty i{margin-bottom:12px;color:#c18a76;font-size:2rem}.agenda-empty strong{color:#4d403a}.agenda-empty p{margin:6px 0 16px;color:#94847d;font-size:.72rem}.agenda-form-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:18px}.agenda-form-card{padding-bottom:18px}.agenda-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:18px}.agenda-form-grid-single{grid-template-columns:1fr}.agenda-field-full{grid-column:1/-1}.agenda-new-client{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:14px;border:1px dashed #dfd2cc;border-radius:12px;background:#fcfaf9}.agenda-field small{color:#988a84;font-size:.61rem}.agenda-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.agenda-notes-card{grid-column:1/-1}.agenda-notes-card>.agenda-field{padding:18px}.agenda-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;padding:2px 0 20px}.agenda-search-field{min-width:0}
@media(max-width:1200px){.agenda-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.agenda-form-layout{grid-template-columns:1fr}.agenda-notes-card,.agenda-form-actions{grid-column:auto}}
@media(max-width:760px){.agenda-date-navigation{flex-wrap:wrap}.agenda-date-navigation>div{min-width:180px}.agenda-filters,.agenda-form-grid,.agenda-new-client,.agenda-time-grid{grid-template-columns:1fr}.agenda-field-full{grid-column:auto}.agenda-form-actions{display:grid}.agenda-table{min-width:900px}}
.agenda-date-navigation {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.agenda-current-date {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 280px;
    padding: 0 4px;
}

.agenda-current-date small {
    display: block;
    margin-bottom: 3px;
    color: #667085;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.agenda-current-date strong {
    display: block;
    color: #101828;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}

.agenda-icon-button {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    padding: 0;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    color: #344054;
    background: #ffffff;
    text-decoration: none;
    transition:
        border-color .2s ease,
        background-color .2s ease,
        color .2s ease;
}

.agenda-icon-button:hover {
    border-color: #98a2b3;
    color: #101828;
    background: #f9fafb;
}

.agenda-today-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    margin-left: 4px;
    padding: 0 13px;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    color: #344054;
    background: #ffffff;
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition:
        border-color .2s ease,
        background-color .2s ease,
        color .2s ease;
}

.agenda-today-link:hover {
    border-color: #7f56d9;
    color: #6941c6;
    background: #f9f5ff;
}

@media (max-width: 900px) {
    .agenda-date-navigation {
        flex-wrap: wrap;
    }

    .agenda-current-date {
        min-width: 0;
        flex: 1;
    }

    .agenda-current-date strong {
        font-size: .95rem;
    }

    .agenda-today-link {
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }
}

.whatsapp-floating {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1080;

    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 13px 18px;
    border: 0;
    border-radius: 999px;

    background: #25d366;
    color: #fff;

    font: inherit;
    font-weight: 700;

    box-shadow: 0 14px 34px rgba(17, 24, 39, 0.22);
    cursor: pointer;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.whatsapp-floating:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(17, 24, 39, 0.28);
}

.whatsapp-floating i {
    font-size: 1.35rem;
    line-height: 1;
}

.assistant-chat {
    position: fixed;
    right: 24px;
    bottom: 92px;
    z-index: 1090;

    display: flex;
    flex-direction: column;

    width: min(390px, calc(100vw - 32px));
    height: min(580px, calc(100vh - 130px));

    overflow: hidden;

    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;

    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);

    opacity: 0;
    visibility: hidden;
    transform: translateY(18px) scale(0.97);
    transform-origin: bottom right;

    transition:
        opacity 0.2s ease,
        visibility 0.2s ease,
        transform 0.2s ease;
}

.assistant-chat.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

.assistant-chat-header {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 16px 18px;

    background: linear-gradient(135deg, #173f3f, #246d68);
    color: #fff;
}

.assistant-chat-avatar {
    display: grid;
    place-items: center;

    width: 42px;
    height: 42px;
    flex: 0 0 42px;

    border-radius: 14px;
    background: rgba(255, 255, 255, 0.15);

    font-size: 1.25rem;
}

.assistant-chat-header > div:nth-child(2) {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.assistant-chat-header strong {
    font-size: 0.98rem;
}

.assistant-chat-header small {
    display: flex;
    align-items: center;
    gap: 6px;

    margin-top: 2px;

    color: rgba(255, 255, 255, 0.82);
    font-size: 0.76rem;
}

.assistant-chat-header small span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #70e59a;
}

.assistant-chat-close {
    display: grid;
    place-items: center;

    width: 36px;
    height: 36px;

    border: 0;
    border-radius: 10px;

    background: transparent;
    color: #fff;

    cursor: pointer;
}

.assistant-chat-close:hover {
    background: rgba(255, 255, 255, 0.12);
}

.assistant-chat-body {
    flex: 1;
    overflow-y: auto;

    padding: 18px;

    background:
        radial-gradient(
            circle at top right,
            rgba(37, 109, 104, 0.07),
            transparent 38%
        ),
        #f7f9fb;
}

.assistant-message {
    display: flex;
    margin-bottom: 12px;
}

.assistant-message-user {
    justify-content: flex-end;
}

.assistant-message-content {
    max-width: 82%;

    padding: 11px 14px;

    border-radius: 16px;

    font-size: 0.9rem;
    line-height: 1.45;
}

.assistant-message-content p {
    margin: 0;
}

.assistant-message-content p + p {
    margin-top: 6px;
}

.assistant-message-bot .assistant-message-content {
    border-bottom-left-radius: 5px;
    background: #fff;
    color: #344054;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.07);
}

.assistant-message-user .assistant-message-content {
    border-bottom-right-radius: 5px;
    background: #246d68;
    color: #fff;
}

.assistant-options {
    display: grid;
    gap: 9px;
    margin-top: 16px;
}

.assistant-option {
    display: flex;
    align-items: center;
    gap: 10px;

    width: 100%;
    padding: 11px 13px;

    border: 1px solid #dce5e4;
    border-radius: 13px;

    background: #fff;
    color: #344054;

    text-align: left;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 600;

    cursor: pointer;
}

.assistant-option:hover {
    border-color: #80aaa7;
    background: #f4fbfa;
    color: #1f605c;
}

.assistant-option i {
    color: #246d68;
    font-size: 1.05rem;
}

.assistant-chat-form {
    display: flex;
    align-items: center;
    gap: 10px;

    padding: 13px 14px;

    border-top: 1px solid #e7ecec;
    background: #fff;
}

.assistant-chat-form input {
    min-width: 0;
    flex: 1;

    padding: 11px 14px;

    border: 1px solid #dce3e3;
    border-radius: 999px;

    outline: none;
    font: inherit;
    font-size: 0.88rem;
}

.assistant-chat-form input:focus {
    border-color: #6d9e9a;
    box-shadow: 0 0 0 3px rgba(36, 109, 104, 0.1);
}

.assistant-chat-form button {
    display: grid;
    place-items: center;

    width: 42px;
    height: 42px;
    flex: 0 0 42px;

    border: 0;
    border-radius: 50%;

    background: #246d68;
    color: #fff;

    cursor: pointer;
}

.assistant-chat-form button:hover {
    background: #1b5753;
}

@media (max-width: 575.98px) {
    .whatsapp-floating {
        right: 16px;
        bottom: 16px;
        padding: 14px;
    }

    .whatsapp-floating span {
        display: none;
    }

    .assistant-chat {
        right: 16px;
        bottom: 82px;

        width: calc(100vw - 32px);
        height: min(620px, calc(100vh - 110px));
    }
}

.assistant-actions {
    display: grid;
    gap: 9px;
    margin: 12px 0 16px;
}

.assistant-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    width: 100%;
    padding: 11px 14px;

    border-radius: 13px;

    background: #246d68;
    color: #fff;

    text-decoration: none;
    font-size: 0.86rem;
    font-weight: 700;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.assistant-action:hover {
    background: #1b5753;
    color: #fff;
    transform: translateY(-1px);
}

.assistant-message-typing .assistant-message-content {
    display: flex;
    align-items: center;
    gap: 5px;

    min-width: 56px;
    min-height: 38px;
}

.assistant-message-typing span {
    width: 7px;
    height: 7px;

    border-radius: 50%;
    background: #8a9a99;

    animation: assistantTyping 1.1s infinite ease-in-out;
}

.assistant-message-typing span:nth-child(2) {
    animation-delay: 0.15s;
}

.assistant-message-typing span:nth-child(3) {
    animation-delay: 0.3s;
}

.assistant-chat-form button:disabled,
.assistant-chat-form input:disabled {
    cursor: wait;
    opacity: 0.65;
}

@keyframes assistantTyping {
    0%,
    60%,
    100% {
        transform: translateY(0);
        opacity: 0.45;
    }

    30% {
        transform: translateY(-4px);
        opacity: 1;
    }
}