:root{
  --bik-f:#E6007E;--bik-l:#32FF00;--bik-ink:#171717;--bik-muted:#687078;
  --bik-line:#e8e4e7;--bik-bg:#fbf9fa;--bik-soft:#fff5fa;--bik-soft2:#f5f7f6;
  --bik-radius:20px;--bik-shadow:0 18px 50px rgba(32,18,26,.07)
}
*{box-sizing:border-box}
.bik-cal-page{font-family:Verdana,Arial,sans-serif;background:linear-gradient(180deg,#fff 0,#fbf9fa 24%,#f8f7f8 100%);min-height:70vh;color:var(--bik-ink);padding:48px 18px 72px}
.bik-cal-hero,.bik-cal-shell{max-width:1120px;margin:0 auto}
.bik-cal-hero{margin-bottom:26px;padding:20px 4px 2px}
.bik-cal-kicker{font-size:11px;letter-spacing:.12em;font-weight:800;margin:0 0 10px;color:#555}
.bik-cal-hero h1{color:var(--bik-f);font-size:clamp(34px,5vw,56px);line-height:1.02;margin:0 0 12px;letter-spacing:-.035em}
.bik-cal-hero p{max-width:760px;line-height:1.65;color:var(--bik-muted);margin:0;font-size:16px}
.bik-cal-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.bik-cal-hero-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border-radius:999px;text-decoration:none;font-weight:800;font-size:13px;background:#111;color:#fff}
.bik-cal-hero-action.primary{background:var(--bik-f)}
.bik-cal-hero-action:hover,.bik-cal-hero-action:focus-visible{background:var(--bik-l);color:#000;outline:none}
.bik-cal-shell{background:rgba(255,255,255,.96);border:1px solid var(--bik-line);border-radius:24px;box-shadow:var(--bik-shadow);padding:22px}
.bik-cal-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;border-bottom:1px solid var(--bik-line);padding-bottom:18px}
.bik-cal-nav,.bik-cal-view-switch{display:flex;gap:8px;flex-wrap:wrap}.bik-cal-view-switch{justify-content:flex-end}
.bik-cal-btn{appearance:none;border:0;border-radius:999px;background:var(--bik-f);color:#fff;min-height:42px;padding:10px 15px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.bik-cal-btn.secondary{background:#1e1e1e}.bik-cal-btn:hover,.bik-cal-btn:focus-visible{background:var(--bik-l);color:#000;outline:none}.bik-cal-btn.is-active{box-shadow:0 0 0 3px rgba(230,0,126,.14)}
.bik-cal-month{color:var(--bik-f);font-size:23px;margin:0;text-align:center;letter-spacing:-.02em}
.bik-cal-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 0 18px}
.bik-cal-filters label{font-weight:800;font-size:12px;color:#3d3d3d}.bik-cal-filters select{border:1px solid var(--bik-line);border-radius:12px;min-height:42px;padding:9px 12px;font:inherit;background:#fff;outline:none}.bik-cal-filters select:focus{border-color:var(--bik-f);box-shadow:0 0 0 3px rgba(230,0,126,.1)}
.bik-cal-source{font-size:11px;color:var(--bik-muted);margin:0 0 0 auto}.bik-cal-status{padding:24px;text-align:center;color:var(--bik-muted)}
.bik-cal-day-hint{margin:0 0 12px;color:var(--bik-muted);font-size:12px;text-align:right}
.bik-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.bik-cal-weekday{font-size:11px;font-weight:800;text-align:center;padding:8px 4px;color:#747474;text-transform:uppercase;letter-spacing:.04em}
.bik-cal-day{min-height:128px;padding:10px;border:1px solid #efebee;border-radius:14px;background:#fff;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .15s ease}
.bik-cal-day.is-out{background:#faf9fa;color:#a8a2a6}.bik-cal-day.is-today{border-color:var(--bik-l);box-shadow:inset 0 0 0 1px var(--bik-l)}
.bik-cal-day.has-content{cursor:pointer}.bik-cal-day.has-content:hover,.bik-cal-day.has-content:focus-visible{background:#fffafd;border-color:#efb8d5;box-shadow:0 8px 22px rgba(65,32,50,.08);outline:none;transform:translateY(-1px)}
.bik-cal-daynum{font-weight:800;font-size:13px;margin-bottom:8px}.bik-cal-day.is-today .bik-cal-daynum{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:var(--bik-l);color:#000}
.bik-cal-day-summary{display:flex;align-items:flex-start;gap:6px;border-radius:9px;padding:7px 8px;margin:0 0 6px;font-size:11px;font-weight:800;line-height:1.28}
.bik-cal-day-summary span:last-child{min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bik-cal-day-summary.is-activity{background:var(--bik-soft);color:#3f1930}.bik-cal-day-summary.is-appointment{background:var(--bik-soft2);color:#232323;border:1px solid #e7eae8}
.bik-cal-dot{width:8px;height:8px;border-radius:50%;background:var(--bik-f);flex:0 0 auto;margin-top:3px}.bik-cal-person{font-size:9px;color:#111;line-height:1.2;margin-top:1px}.bik-cal-day.is-out .bik-cal-day-summary{opacity:.48}
.bik-cal-list{display:grid;gap:12px}.bik-cal-card{border:1px solid var(--bik-line);border-radius:16px;padding:17px;background:#fff;display:grid;grid-template-columns:120px 1fr auto;gap:16px;align-items:center;transition:box-shadow .15s ease,transform .15s ease}.bik-cal-card:hover{box-shadow:0 10px 28px rgba(30,20,25,.07);transform:translateY(-1px)}.bik-cal-card-date{font-weight:800;color:var(--bik-f);line-height:1.5}.bik-cal-card h3{font-size:17px;margin:0 0 5px}.bik-cal-card p{font-size:13px;color:var(--bik-muted);margin:0;line-height:1.5}
.bik-cal-pill{display:inline-block;font-size:10px;font-weight:800;border:1px solid var(--bik-line);border-radius:999px;padding:5px 8px;margin:5px 4px 0 0;background:#fafafa}.bik-cal-empty{border:1px dashed var(--bik-line);border-radius:14px;padding:30px;text-align:center;color:var(--bik-muted);background:#fcfbfc}
.bik-cal-booking-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid #eed8e5;border-radius:17px;padding:17px 18px;margin-bottom:13px;background:linear-gradient(135deg,#fff8fc 0,#fff 75%)}.bik-cal-booking-banner strong{display:block;margin-bottom:4px;color:#2b1823}.bik-cal-booking-banner span{display:block;color:var(--bik-muted);font-size:12px;line-height:1.5}
/* Modal centrado: se conserva el comportamiento validado en 2B5 */
.bik-cal-dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:min(720px,calc(100% - 28px));max-height:calc(100vh - 32px);overflow:auto;border:0;border-radius:24px;padding:0;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.24);z-index:10000}.bik-cal-dialog::backdrop{background:rgba(20,15,18,.58);backdrop-filter:blur(2px)}.bik-cal-dialog-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border:0;border-radius:50%;background:#191919;color:#fff;font-size:22px;cursor:pointer;z-index:2}.bik-cal-dialog-close:hover,.bik-cal-dialog-close:focus-visible{background:var(--bik-l);color:#000;outline:none}
.bik-cal-dialog-content{padding:32px}.bik-cal-dialog-content>h2{color:var(--bik-f);padding-right:46px;margin:0 0 8px;font-size:clamp(25px,4vw,36px);line-height:1.12;letter-spacing:-.025em}.bik-cal-dialog-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:20px 0}.bik-cal-dialog-meta div{padding:13px 14px;background:#faf8f9;border:1px solid #f0ecee;border-radius:12px;line-height:1.45}.bik-cal-dialog-meta strong{font-size:11px;color:#747078;text-transform:uppercase;letter-spacing:.04em}.bik-cal-dialog-desc{line-height:1.7;color:#4c4b4d;margin:18px 0}.bik-cal-safe-link{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;background:var(--bik-f);color:#fff!important;text-decoration:none;border-radius:999px;padding:11px 15px;font-weight:800}.bik-cal-safe-link:hover{background:var(--bik-l);color:#000!important}
.bik-cal-dialog-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.bik-cal-reserve-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--bik-f);color:#fff!important;text-decoration:none;border-radius:999px;padding:11px 17px;font-weight:800}.bik-cal-reserve-link:hover,.bik-cal-reserve-link:focus-visible{background:var(--bik-l);color:#000!important;outline:none}.bik-cal-reg-note{display:inline-block;border:1px solid var(--bik-line);border-radius:999px;padding:10px 13px;font-weight:800;background:#f8f7f8;font-size:12px}.bik-cal-reg-note.is-full{background:#fff3f4;color:#8c1e29;border-color:#f2c9ce}
.bik-cal-day-detail{padding-top:28px}.bik-cal-day-head{padding-right:48px;margin-bottom:20px}.bik-cal-day-kicker{display:block;font-size:10px;letter-spacing:.12em;font-weight:800;color:#706a6e;margin-bottom:7px}.bik-cal-day-head h2{margin:0;color:var(--bik-f);font-size:clamp(25px,4vw,36px);letter-spacing:-.025em}.bik-cal-day-section{border-top:1px solid var(--bik-line);padding-top:21px;margin-top:21px}.bik-cal-day-section h3{font-size:16px;margin:0 0 13px}.bik-cal-section-heading{display:flex;justify-content:space-between;gap:14px;align-items:baseline}.bik-cal-text-link{font-size:12px;font-weight:800;color:var(--bik-f);text-decoration:none}.bik-cal-text-link:hover,.bik-cal-text-link:focus-visible{color:#000;text-decoration:underline;outline:none}.bik-cal-day-cards,.bik-cal-appointments{display:grid;gap:10px}.bik-cal-day-empty{margin:0;padding:15px;border:1px dashed var(--bik-line);border-radius:12px;color:var(--bik-muted);font-size:13px;line-height:1.5;background:#fafafa}.bik-cal-day-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:15px;border:1px solid var(--bik-line);border-radius:15px;background:#fff}.bik-cal-day-card.is-activity{border-left:5px solid var(--bik-f);background:linear-gradient(90deg,#fff8fc 0,#fff 24%)}.bik-cal-day-card-time{display:inline-block;font-size:12px;font-weight:800;color:var(--bik-f);margin-bottom:5px}.bik-cal-day-card h4,.bik-cal-appointment-card h4{margin:0 0 5px;font-size:16px}.bik-cal-day-card p,.bik-cal-appointment-card p{margin:0;color:var(--bik-muted);font-size:12px;line-height:1.5}.bik-cal-mini-action{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:9px 13px;background:var(--bik-f);color:#fff!important;text-decoration:none;font:inherit;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}.bik-cal-mini-action.secondary{background:#222}.bik-cal-mini-action:hover,.bik-cal-mini-action:focus-visible{background:var(--bik-l);color:#000!important;outline:none}.bik-cal-appointment-card{padding:15px;border:1px solid #e3e8e5;border-radius:15px;background:#f8faf9}.bik-cal-appointment-desc{margin-top:7px!important}.bik-cal-slots{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.bik-cal-slot{display:inline-flex;align-items:center;justify-content:center;min-width:66px;min-height:42px;padding:9px 12px;border-radius:999px;background:#fff;color:#171717!important;border:1px solid #d8dedb;font-size:12px;font-weight:800;text-decoration:none}.bik-cal-slot:hover,.bik-cal-slot:focus-visible{background:var(--bik-l);border-color:var(--bik-l);color:#000!important;outline:none}.bik-cal-back{appearance:none;border:0;background:transparent;color:#333;padding:0;margin:0 0 13px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.bik-cal-back:hover,.bik-cal-back:focus-visible{color:var(--bik-f);outline:none}
@media(max-width:780px){
  .bik-cal-page{padding:28px 12px 48px}.bik-cal-hero{padding-top:8px}.bik-cal-shell{padding:13px;border-radius:18px}.bik-cal-toolbar{grid-template-columns:1fr;justify-items:center}.bik-cal-nav,.bik-cal-view-switch{justify-content:center}.bik-cal-source{width:100%;margin:0}.bik-cal-grid-wrap{overflow-x:auto;padding-bottom:4px}.bik-cal-grid{min-width:760px}.bik-cal-day{min-height:110px}.bik-cal-card{grid-template-columns:1fr}.bik-cal-card .bik-cal-btn{justify-self:start}.bik-cal-dialog{width:calc(100% - 22px);max-height:calc(100vh - 22px);border-radius:20px}.bik-cal-dialog-content{padding:24px 18px}.bik-cal-dialog-meta{grid-template-columns:1fr}.bik-cal-day-hint{text-align:left}.bik-cal-booking-banner{align-items:flex-start;flex-direction:column}.bik-cal-day-card{grid-template-columns:1fr}.bik-cal-day-card-action{justify-self:start}.bik-cal-section-heading{align-items:flex-start;flex-direction:column}.bik-cal-slots{gap:7px}.bik-cal-slot{min-width:62px}.bik-cal-hero-action{flex:1 1 180px}
}
