:root{
  --zm-teal:#08b6b6; --zm-teal-dark:#087d78; --zm-green:#19796f; --zm-gold:#c8aa6e;
  --zm-purple:#9b4fbc; --zm-lilac:#f4e9fb; --zm-bg:#f7fbfb; --zm-ink:#132323;
  --zm-shadow:0 18px 45px rgba(10,80,78,.12);
}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,#d9fbf8 0%,#fff 42%,#f2e1fb 100%);color:var(--zm-ink);min-height:100vh;}
.navbar-zm{background:rgba(255,255,255,.86);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.06)}
.logo-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:var(--zm-shadow)}
.hero{border-radius:32px;background:linear-gradient(135deg,rgba(8,182,182,.92),rgba(25,121,111,.96)),url('../img/pattern.svg');color:#fff;box-shadow:var(--zm-shadow);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;right:-90px;bottom:-90px;width:280px;height:280px;border-radius:50%;background:rgba(200,170,110,.36)}
.card-zm{border:0;border-radius:24px;background:rgba(255,255,255,.92);box-shadow:var(--zm-shadow)}
.btn-zm{background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));border:0;color:#fff;font-weight:700;border-radius:15px;padding:.74rem 1rem}.btn-zm:hover{color:#fff;filter:brightness(.95)}
.btn-gold{background:var(--zm-gold);border:0;color:#fff;font-weight:700;border-radius:15px}.btn-outline-zm{border:1px solid var(--zm-teal);color:var(--zm-teal-dark);border-radius:15px;font-weight:700}.btn-outline-zm:hover{background:var(--zm-teal);color:#fff}
.badge-soft{background:#e7fbfa;color:var(--zm-teal-dark);border:1px solid #c9f3f1}.partner-card{transition:.2s transform,.2s box-shadow}.partner-card:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(8,125,120,.18)}
.avatar{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,#e4fffd,#fff);display:grid;place-items:center;color:var(--zm-teal-dark);font-size:1.5rem}.sidebar{background:rgba(255,255,255,.9);border-radius:24px;box-shadow:var(--zm-shadow);padding:1rem;position:sticky;top:1rem}.sidebar a{display:flex;gap:.6rem;padding:.75rem .8rem;border-radius:14px;color:#334;text-decoration:none;font-weight:650}.sidebar a:hover,.sidebar a.active{background:#e7fbfa;color:var(--zm-teal-dark)}
.stat{border-radius:22px;padding:1rem;background:#fff;box-shadow:var(--zm-shadow)}.stat b{font-size:1.65rem}.form-control,.form-select{border-radius:14px;padding:.78rem}.table{vertical-align:middle}.table thead th{color:#087d78}.slot{border:1px solid #d6f4f2;border-radius:16px;padding:.85rem;background:#fff}.slot input{display:none}.slot:has(input:checked){outline:3px solid rgba(8,182,182,.25);border-color:var(--zm-teal);background:#effffd}.footer-mini{font-size:.9rem;color:#486}.search-panel{margin-top:-34px;position:relative;z-index:3}.mobile-bottom{position:sticky;bottom:0;z-index:10;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:0 -10px 25px rgba(0,0,0,.08);padding:.65rem;border-radius:18px 18px 0 0}
@media(max-width:768px){.hero{border-radius:0 0 30px 30px}.display-5{font-size:2rem}.sidebar{position:static}.hide-mobile{display:none!important}.card-zm{border-radius:20px}.container{padding-left:14px;padding-right:14px}}

.sidebar-note{display:block;padding:.75rem 1rem;color:#6c757d;font-size:.95rem;border-radius:14px;background:rgba(255,255,255,.45);margin:.2rem 0;}
.form-text{font-size:.82rem;color:#667085;}

/* Calendário público de agendamento */
.calendar-box{border:1px solid #d6f4f2;border-radius:22px;background:linear-gradient(180deg,#ffffff,#f6fffe);padding:1rem;box-shadow:0 10px 28px rgba(8,125,120,.08)}
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;color:var(--zm-teal-dark)}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}
.calendar-weekdays span{text-align:center;font-size:.78rem;color:#6b7280;font-weight:700;padding:.25rem 0}
.calendar-day{min-height:58px;border:1px solid #edf2f2;border-radius:15px;background:#f8fafc;color:#8b949e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;transition:.18s ease;padding:.35rem;font-size:.95rem}
.calendar-day small{font-size:.65rem;line-height:1.05;font-weight:700}
.calendar-empty{background:transparent;border:0}
.calendar-day.available{background:linear-gradient(135deg,#0fbf7f,#0aa66e);color:#fff;border-color:#0aa66e;box-shadow:0 10px 22px rgba(10,166,110,.22);cursor:pointer}
.calendar-day.available:hover{transform:translateY(-2px);filter:brightness(.98)}
.calendar-day.selected{outline:3px solid rgba(200,170,110,.55);border-color:var(--zm-gold)}
.calendar-day.today:not(.available){border-color:var(--zm-teal);color:var(--zm-teal-dark);background:#eafffd}
.calendar-day.disabled-day{cursor:not-allowed;opacity:.72}
.slot-button{border:1px solid #cdeeed;border-radius:16px;background:#fff;padding:.85rem .5rem;color:var(--zm-teal-dark);font-weight:700;transition:.18s ease;box-shadow:0 8px 20px rgba(8,125,120,.07)}
.slot-button:hover,.slot-button.active{background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));color:#fff;border-color:var(--zm-teal);transform:translateY(-2px)}
.booking-client-box{border-top:1px dashed #cdeeed;margin-top:.6rem;padding-top:1rem}
@media(max-width:480px){.calendar-day{min-height:48px;border-radius:12px;font-size:.85rem}.calendar-day small{display:none}.calendar-weekdays,.calendar-grid{gap:.28rem}.calendar-box{padding:.75rem}.slot-button{padding:.7rem .35rem;font-size:.9rem}}

/* Refinamento visual do parceiro e do calendário público */
.partner-hero-card{position:relative;overflow:hidden}
.partner-hero-card:after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(8,182,182,.18) 0%, rgba(8,182,182,0) 70%);pointer-events:none}
.partner-meta-list{display:grid;gap:.8rem}
.partner-meta-item{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border:1px solid #ebf6f6;background:linear-gradient(180deg,#fff,#fbffff);border-radius:18px}
.partner-meta-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:#e7fbfa;color:var(--zm-teal-dark);flex:0 0 38px}
.partner-description{padding:1rem 1.05rem;background:linear-gradient(180deg,#ffffff,#fbfefe);border:1px solid #edf6f6;border-radius:18px;line-height:1.65}
.booking-panel{position:sticky;top:1rem}
.booking-kicker{display:inline-block;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--zm-teal-dark);background:#e8fbfa;padding:.35rem .6rem;border-radius:999px;margin-bottom:.65rem}
.booking-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.booking-summary-item{padding:1rem .75rem;border-radius:18px;background:linear-gradient(180deg,#f7fffe,#ffffff);border:1px solid #dff4f2;text-align:center}
.booking-summary-item strong{display:block;font-size:1.15rem;color:var(--zm-teal-dark)}
.booking-summary-item span{display:block;font-size:.86rem;color:#5d6975}
.booking-step-card{border:1px solid #e4f4f3;border-radius:22px;background:linear-gradient(180deg,#fff,#fbffff);padding:1rem;box-shadow:0 10px 28px rgba(8,125,120,.05)}
.booking-step-title{display:flex;align-items:center;gap:.65rem;font-size:1rem;font-weight:800;color:#193434;margin-bottom:.9rem}
.step-badge{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));color:#fff;font-size:.9rem;box-shadow:0 8px 18px rgba(8,125,120,.18)}
.selected-date-panel{padding:.9rem 1rem;border-radius:18px;background:linear-gradient(135deg,#edfdfa,#f7fffe);border:1px solid #cfeeed}
.selected-date-main{display:flex;align-items:center;gap:.85rem;color:var(--zm-teal-dark)}
.selected-date-main i{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#dff8f5;font-size:1.15rem}
.selected-date-main strong{display:block;font-size:1rem;color:#153434}
.selected-date-main span{display:block;font-size:.9rem;color:#587070}
.time-slots-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}

.calendar-box{border:1px solid #ddf4f2;border-radius:24px;background:linear-gradient(180deg,#ffffff,#f8fffe);padding:1rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 14px 26px rgba(8,125,120,.05)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.85rem}
.calendar-month-wrap{text-align:center;flex:1}
.calendar-month-wrap strong{display:block;font-size:1.05rem;color:#183233}
.calendar-month-wrap small{display:block;color:#71808d;font-size:.8rem;margin-top:.18rem}
.calendar-nav{width:40px;height:40px;border-radius:14px;border:1px solid #cceeed;background:#fff;color:var(--zm-teal-dark);display:grid;place-items:center;transition:.18s ease;box-shadow:0 6px 16px rgba(8,125,120,.07)}
.calendar-nav:hover{background:var(--zm-teal);border-color:var(--zm-teal);color:#fff}
.calendar-legend{display:flex;flex-wrap:wrap;gap:.85rem 1rem;padding:.2rem 0 .7rem 0;color:#687684;font-size:.82rem}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem;vertical-align:middle}
.legend-dot.available{background:#0bb36f}
.legend-dot.selected{background:var(--zm-gold)}
.legend-dot.muted{background:#d8dee5}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}
.calendar-weekdays span{text-align:center;font-size:.75rem;color:#7a8591;font-weight:800;padding:.25rem 0;text-transform:uppercase;letter-spacing:.04em}
.calendar-day{min-height:74px;border:1px solid #ebf1f4;border-radius:18px;background:#f8fafb;color:#7f8b97;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.35rem;transition:.18s ease;padding:.7rem .55rem;text-align:left}
.calendar-day .day-number{font-weight:800;font-size:1.05rem;line-height:1}
.calendar-day .day-slots{font-size:.66rem;line-height:1.1;font-weight:700;border-radius:999px;padding:.22rem .42rem;background:rgba(255,255,255,.82);color:inherit}
.calendar-day .day-slots.muted{background:#eef2f4;color:#a0a8b0}
.calendar-empty{background:transparent;border:0;box-shadow:none}
.calendar-day.available{background:linear-gradient(160deg,#13bf84,#0ca36f);color:#fff;border-color:#0ca36f;box-shadow:0 12px 24px rgba(10,166,110,.18);cursor:pointer}
.calendar-day.available:hover{transform:translateY(-2px);filter:brightness(.98)}
.calendar-day.selected{outline:3px solid rgba(200,170,110,.52);border-color:var(--zm-gold)}
.calendar-day.today:not(.available){border-color:#c8ece7;background:#effcfa;color:#0a817a}
.calendar-day.disabled-day{cursor:not-allowed;opacity:.9}
.slot-button{border:1px solid #d6efed;border-radius:18px;background:linear-gradient(180deg,#fff,#fbffff);padding:.95rem .9rem;color:#133536;font-weight:700;transition:.18s ease;box-shadow:0 8px 20px rgba(8,125,120,.06);display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left}
.slot-button .slot-time{font-size:1rem;color:var(--zm-teal-dark)}
.slot-button .slot-range{font-size:.82rem;color:#70808a}
.slot-button:hover,.slot-button.active{background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));color:#fff;border-color:var(--zm-teal);transform:translateY(-2px)}
.slot-button:hover .slot-time,.slot-button:hover .slot-range,.slot-button.active .slot-time,.slot-button.active .slot-range{color:#fff}

@media(max-width:991px){.booking-panel{position:static}}
@media(max-width:576px){
  .booking-summary{grid-template-columns:1fr}
  .time-slots-grid{grid-template-columns:1fr}
  .calendar-weekdays,.calendar-grid{gap:.35rem}
  .calendar-day{min-height:64px;padding:.5rem .4rem;border-radius:14px}
  .calendar-day .day-number{font-size:.95rem}
  .calendar-day .day-slots{font-size:.58rem;padding:.18rem .35rem}
  .calendar-month-wrap small{display:none}
  .calendar-nav{width:36px;height:36px;border-radius:12px}
  .partner-meta-item{padding:.75rem .85rem}
}

/* Layout estilo agenda/meeting */
.scheduler-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;border:1px solid #e8f1f3;border-radius:26px;background:linear-gradient(180deg,#fff,#fbfdfd);overflow:hidden}
.scheduler-left,.scheduler-right{padding:1.2rem}
.scheduler-left{border-right:1px solid #eef3f5}
.scheduler-topline{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
.scheduler-top-item{padding:.55rem .8rem;border-radius:999px;background:#f3fbfb;border:1px solid #d9eeee;color:#466;display:flex;align-items:center;gap:.45rem;font-size:.86rem}
.scheduler-top-item strong{color:var(--zm-teal-dark);font-size:.96rem}
.scheduler-nav-row{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}
.scheduler-title-wrap{flex:1;min-width:0}
.scheduler-title-wrap strong{display:block;font-size:1.15rem;color:#1c2d2f}
.scheduler-title-wrap small{display:block;color:#74818c;font-size:.83rem;margin-top:.16rem}
.scheduler-nav-btn{width:42px;height:42px;border-radius:14px;border:1px solid #d9e8ee;background:#fff;color:#47656d;display:grid;place-items:center;transition:.18s ease;box-shadow:0 6px 18px rgba(32,65,78,.06)}
.scheduler-nav-btn:hover{background:#f3fbfb;color:var(--zm-teal-dark);border-color:#cbe8e4}
.scheduler-weekdays,.scheduler-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}
.scheduler-weekdays{margin-bottom:.55rem}
.scheduler-weekdays span{text-align:center;font-size:.78rem;color:#7b8794;font-weight:700;padding:.15rem 0}
.scheduler-grid{align-items:start}
.scheduler-day-empty{height:54px}
.scheduler-day-btn{position:relative;height:54px;border:1px solid #e3eaef;background:#f9fbfc;border-radius:999px;display:grid;place-items:center;color:#94a0ab;font-weight:700;transition:.18s ease}
.scheduler-day-btn:hover:not(:disabled){transform:translateY(-1px)}
.scheduler-day-btn.available{background:#e9f4fb;border-color:#d4e7f6;color:#5a7287;cursor:pointer}
.scheduler-day-btn.available .scheduler-day-number{color:#61778a}
.scheduler-day-btn.selected{background:linear-gradient(135deg,#1787d8,#0d70c0);border-color:#0d70c0;color:#fff;box-shadow:0 10px 24px rgba(13,112,192,.22)}
.scheduler-day-btn.selected .scheduler-day-number{color:#fff}
.scheduler-day-btn.today:not(.selected){outline:2px solid #d7eaef}
.scheduler-day-btn.disabled-day{cursor:not-allowed;opacity:.86}
.scheduler-day-number{font-size:1rem;line-height:1}
.scheduler-day-indicator{position:absolute;right:6px;bottom:6px;width:8px;height:8px;border-radius:50%;background:#22a062;box-shadow:0 0 0 2px #fff}
.scheduler-day-btn.selected .scheduler-day-indicator{background:#fff;box-shadow:none}
.scheduler-legend{display:flex;flex-wrap:wrap;gap:.8rem 1rem;margin-top:1rem;color:#70808c;font-size:.82rem}
.legend-circle{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem;vertical-align:middle}
.legend-circle.available{background:#cfe4f5;border:1px solid #b2d4ee}
.legend-circle.selected{background:#1787d8}
.legend-circle.muted{background:#e5eaef}
.scheduler-day-heading{font-size:1.1rem;font-weight:800;color:#1b2d34;margin-bottom:.25rem}
.scheduler-day-subtitle{font-size:.88rem;color:#74808c;margin-bottom:1rem}
.scheduler-slots-list{display:flex;flex-direction:column;gap:.65rem;max-height:420px;overflow:auto;padding-right:.2rem}
.scheduler-slot-btn{width:100%;border:1.5px solid #90c0e6;background:#fff;border-radius:14px;padding:.78rem .95rem;text-align:center;display:flex;flex-direction:column;gap:.12rem;color:#1578ca;font-weight:700;box-shadow:0 6px 18px rgba(21,120,202,.06);transition:.18s ease}
.scheduler-slot-btn:hover,.scheduler-slot-btn.active{background:linear-gradient(135deg,#1787d8,#0d70c0);border-color:#0d70c0;color:#fff;transform:translateY(-1px)}
.scheduler-slot-main{font-size:1rem;line-height:1.1}
.scheduler-slot-sub{font-size:.78rem;opacity:.8;font-weight:600}
.scheduler-empty-state{min-height:250px;border:1px dashed #dbe5eb;border-radius:18px;background:#fafcfd;color:#7b8996;display:grid;place-items:center;text-align:center;padding:1rem}
.scheduler-empty-state i{font-size:2rem;color:#a5b4c0;margin-bottom:.4rem;display:block}
.booking-step-card{border:1px solid #e9f1f2;border-radius:22px;background:linear-gradient(180deg,#fff,#fbffff);padding:1rem;box-shadow:0 10px 28px rgba(8,125,120,.05)}
.booking-step-title{display:flex;align-items:center;gap:.65rem;font-size:1rem;font-weight:800;color:#193434;margin-bottom:.9rem}
.step-badge{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));color:#fff;font-size:.9rem;box-shadow:0 8px 18px rgba(8,125,120,.18)}

@media(max-width:991px){
  .scheduler-shell{grid-template-columns:1fr}
  .scheduler-left{border-right:0;border-bottom:1px solid #eef3f5}
  .scheduler-slots-list{max-height:none}
}
@media(max-width:576px){
  .scheduler-left,.scheduler-right{padding:1rem}
  .scheduler-weekdays,.scheduler-grid{gap:.35rem}
  .scheduler-day-btn{height:44px}
  .scheduler-day-empty{height:44px}
  .scheduler-day-number{font-size:.92rem}
  .scheduler-topline{gap:.45rem}
  .scheduler-top-item{font-size:.77rem;padding:.45rem .6rem}
  .scheduler-nav-btn{width:38px;height:38px;border-radius:12px}
  .scheduler-title-wrap strong{font-size:1rem}
  .scheduler-title-wrap small{display:none}
  .scheduler-day-heading{font-size:1rem}
}


/* Micro-animações e acabamento premium */
.card-zm,.scheduler-shell,.scheduler-slot-btn,.scheduler-day-btn,.btn-zm,.btn-outline-zm{transition:all .22s ease}
.partner-hero-card,.booking-panel{animation:fadeSlideUp .45s ease both}
.scheduler-shell{animation:fadeSlideUp .55s ease both}
.scheduler-slot-btn{animation:fadeScaleIn .28s ease both}
@keyframes fadeSlideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeScaleIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
.scheduler-slots-list::-webkit-scrollbar{width:8px}
.scheduler-slots-list::-webkit-scrollbar-thumb{background:#d2e5f3;border-radius:999px}
.scheduler-slots-list::-webkit-scrollbar-track{background:#f3f8fb;border-radius:999px}

/* Calendário premium clássico para agendamento público */
.calendar-premium-wrap{border:1px solid #e7eff0;border-radius:26px;background:linear-gradient(180deg,#ffffff 0%,#f9fdfd 100%);padding:1.1rem;box-shadow:0 16px 34px rgba(14,71,69,.08)}
.calendar-premium-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.8rem}
.calendar-premium-titlebox{text-align:center;flex:1}
.calendar-premium-titlebox strong{display:block;font-size:1.16rem;color:#193637}
.calendar-premium-titlebox small{display:block;color:#71808d;font-size:.82rem;margin-top:.12rem}
.cal-nav-btn{width:42px;height:42px;border-radius:14px;border:1px solid #d7ece9;background:#fff;color:#167a73;display:grid;place-items:center;transition:.2s ease;box-shadow:0 8px 18px rgba(8,125,120,.08)}
.cal-nav-btn:hover{background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));color:#fff;border-color:transparent;transform:translateY(-1px)}
.calendar-premium-legend{display:flex;gap:.8rem 1rem;flex-wrap:wrap;font-size:.82rem;color:#6e7f8a;margin-bottom:.95rem}
.legend-pill{display:inline-block;width:18px;height:10px;border-radius:999px;margin-right:.38rem;vertical-align:middle}
.legend-green{background:linear-gradient(135deg,#34c759,#17a34a)}
.legend-red{background:linear-gradient(135deg,#ff7b7b,#f25252)}
.legend-outline{background:#fff;border:2px solid #c8aa6e;height:10px}
.calendar-premium-weekdays,.calendar-premium-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}
.calendar-premium-weekdays{margin-bottom:.45rem}
.calendar-premium-weekdays span{text-align:center;font-size:.77rem;font-weight:800;color:#6d7e87;text-transform:uppercase;letter-spacing:.03em}
.calendar-premium-day{min-height:72px;border:0;border-radius:18px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:.7rem .65rem;text-align:left;transition:all .22s ease;position:relative;overflow:hidden}
.calendar-premium-day .day-num{font-size:1rem;font-weight:800;line-height:1}
.calendar-premium-day .day-note{font-size:.69rem;line-height:1.15;font-weight:700;opacity:.95}
.calendar-premium-day.is-open{background:linear-gradient(160deg,#47cf6f 0%,#1fa856 100%);color:#fff;box-shadow:0 14px 26px rgba(31,168,86,.22);cursor:pointer}
.calendar-premium-day.is-open:hover{transform:translateY(-2px) scale(1.02);filter:brightness(.98)}
.calendar-premium-day.is-open:before{content:"";position:absolute;right:-16px;top:-18px;width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.14)}
.calendar-premium-day.is-closed{background:linear-gradient(160deg,#ffdede 0%,#ffb3b3 100%);color:#8e3434;box-shadow:0 10px 18px rgba(242,82,82,.10);cursor:not-allowed}
.calendar-premium-day.is-closed .day-note{color:#8e3434}
.calendar-premium-day.is-selected{outline:3px solid rgba(200,170,110,.75);transform:translateY(-2px)}
.calendar-premium-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),0 0 0 2px rgba(8,182,182,.18)}
.calendar-blank{background:transparent!important;box-shadow:none!important;padding:0;min-height:72px;visibility:hidden}
.selected-day-card{border:1px solid #dfeeee;background:linear-gradient(135deg,#eefcfa,#ffffff);border-radius:22px;padding:1rem 1.1rem;box-shadow:0 12px 24px rgba(8,125,120,.06)}
.selected-day-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.selected-day-top small{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#6c8080;font-weight:800;margin-bottom:.2rem}
.selected-day-top strong{display:block;font-size:1rem;color:#183334}
.selected-day-badge{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .75rem;border-radius:999px;background:#e8faf2;color:#198754;border:1px solid #ccefd8;font-size:.82rem;font-weight:800;white-space:nowrap}
.calendar-slots-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.calendar-slot-btn{border:1.5px solid #cde9df;border-radius:18px;background:linear-gradient(180deg,#ffffff,#f9fffc);padding:.95rem .85rem;text-align:left;display:flex;flex-direction:column;gap:.1rem;box-shadow:0 10px 18px rgba(14,90,66,.06);transition:.22s ease;color:#16543f}
.calendar-slot-btn .slot-main{font-size:1.02rem;font-weight:800;color:#146d52}
.calendar-slot-btn .slot-sub{font-size:.8rem;color:#6f847d;font-weight:700}
.calendar-slot-btn:hover,.calendar-slot-btn.active{background:linear-gradient(135deg,var(--zm-teal),var(--zm-green));border-color:transparent;transform:translateY(-2px);box-shadow:0 16px 24px rgba(8,125,120,.18);color:#fff}
.calendar-slot-btn:hover .slot-main,.calendar-slot-btn:hover .slot-sub,.calendar-slot-btn.active .slot-main,.calendar-slot-btn.active .slot-sub{color:#fff}
.calendar-empty-state{grid-column:1/-1;border:1px dashed #d7ebea;border-radius:18px;min-height:140px;background:#fbfefe;color:#73838d;display:grid;place-items:center;text-align:center;padding:1rem}
.calendar-empty-state i{display:block;font-size:1.95rem;color:#a6b8c2;margin-bottom:.4rem}

@media(max-width:576px){
  .calendar-premium-wrap{padding:.85rem}
  .calendar-premium-weekdays,.calendar-premium-grid{gap:.35rem}
  .calendar-premium-day,.calendar-blank{min-height:60px;border-radius:14px;padding:.5rem .45rem}
  .calendar-premium-day .day-num{font-size:.92rem}
  .calendar-premium-day .day-note{font-size:.57rem}
  .calendar-premium-titlebox small{display:none}
  .calendar-slots-grid{grid-template-columns:1fr}
  .selected-day-top{flex-direction:column;align-items:flex-start}
}
