:root{--sfb-navy:#0a1628;--sfb-gold:#c9a84c;--sfb-gold-light:#e8c97a;--sfb-white:#fff;--sfb-grey:#f7f8fa;--sfb-text:#1a2535;}
.sfb-booking-widget{font-family:'DM Sans',sans-serif;max-width:900px;margin:0 auto;color:var(--sfb-text);}
.sfb-tabs-nav{display:flex;gap:4px;border-bottom:2px solid var(--sfb-navy);}
.sfb-tab-btn{background:none;border:none;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;color:#666;border-radius:8px 8px 0 0;}
.sfb-tab-btn.sfb-active{background:var(--sfb-navy);color:var(--sfb-gold);}
.sfb-min-notice{background:linear-gradient(135deg,#0a1628,#132040);color:rgba(255,255,255,.8);padding:12px 20px;font-size:13px;border-left:4px solid var(--sfb-gold);margin:0;}
.sfb-min-notice strong{color:var(--sfb-gold);}
.sfb-tab-content{display:none;padding:24px;background:#fff;border:1px solid rgba(0,0,0,.08);border-top:none;border-radius:0 0 12px 12px;}
.sfb-tab-content.sfb-active{display:block;}
.sfb-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.sfb-cal-header h3{font-size:18px;font-weight:700;color:var(--sfb-navy);text-transform:capitalize;}
.sfb-cal-prev,.sfb-cal-next{background:var(--sfb-navy);color:var(--sfb-gold);border:none;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px;}
.sfb-cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;}
.sfb-cal-days-header span{text-align:center;font-size:11px;font-weight:600;color:#999;text-transform:uppercase;padding:4px 0;}
.sfb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.sfb-cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;font-size:13px;border:2px solid transparent;transition:all .2s;}
.sfb-cal-day.sfb-empty{background:transparent;}
.sfb-cal-day.sfb-past-day{background:#f0f0f0;color:#ccc;}
.sfb-cal-day.sfb-today{border-color:var(--sfb-navy);}
.sfb-cal-day.sfb-has-session{background:var(--sfb-navy);color:#fff;cursor:pointer;}
.sfb-cal-day.sfb-has-session:hover{background:#1e2f50;transform:scale(1.05);}
.sfb-cal-day.sfb-session-start{background:var(--sfb-gold)!important;color:var(--sfb-navy)!important;font-weight:700;}
.sfb-cal-day.sfb-session-full{background:#e0e0e0!important;color:#999!important;cursor:not-allowed!important;}
.sfb-cal-day.sfb-session-closed{background:#ffe0e0!important;color:#cc0000!important;cursor:not-allowed!important;}
.sfb-cal-day-num{font-weight:700;font-size:15px;}
.sfb-cal-day-label{font-size:9px;opacity:.8;}
.sfb-cal-legend{display:flex;gap:16px;margin-top:12px;font-size:12px;color:#666;flex-wrap:wrap;}
.sfb-legend-available::before{content:"■";color:var(--sfb-gold);margin-right:4px;}
.sfb-legend-full::before{content:"■";color:#ccc;margin-right:4px;}
.sfb-legend-closed::before{content:"■";color:#ffaaaa;margin-right:4px;}
.sfb-session-card{border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:20px;margin-bottom:12px;display:flex;align-items:center;gap:20px;transition:box-shadow .2s;}
.sfb-session-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);}
.sfb-session-date-box{background:var(--sfb-navy);color:#fff;border-radius:10px;padding:12px 16px;text-align:center;min-width:76px;flex-shrink:0;}
.sfb-session-date-box .sfb-day{font-size:26px;font-weight:700;line-height:1;color:var(--sfb-gold);}
.sfb-session-date-box .sfb-month{font-size:11px;text-transform:uppercase;opacity:.7;}
.sfb-session-info{flex:1;}
.sfb-session-info h4{margin:0 0 6px;font-size:15px;color:var(--sfb-navy);}
.sfb-session-meta{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;}
.sfb-session-meta span{font-size:11px;background:var(--sfb-grey);padding:3px 10px;border-radius:20px;}
.sfb-progress{background:#eee;border-radius:4px;height:6px;margin-top:8px;overflow:hidden;}
.sfb-progress-fill{background:var(--sfb-gold);height:6px;border-radius:4px;transition:width .4s;}
.sfb-session-right{text-align:right;flex-shrink:0;}
.sfb-session-price{font-size:22px;font-weight:700;color:var(--sfb-navy);}
.sfb-session-places{font-size:12px;color:#999;margin-top:2px;}
.sfb-btn-reserve{background:var(--sfb-gold);color:var(--sfb-navy);border:none;padding:10px 20px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer;margin-top:8px;transition:all .2s;}
.sfb-btn-reserve:hover{background:var(--sfb-gold-light);transform:translateY(-1px);}
.sfb-badge-full{background:#ffeeee;color:#cc0000;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;display:inline-block;margin-top:8px;}
.sfb-badge-closed{background:#fff3e0;color:#e65100;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;display:inline-block;margin-top:8px;}
/* MODAL */
.sfb-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;}
.sfb-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);}
.sfb-modal-content{position:relative;background:#fff;border-radius:16px;padding:32px;max-width:540px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.3);}
.sfb-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:#999;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.sfb-modal-close:hover{background:#f0f0f0;}
.sfb-modal-content h2{margin:0 0 16px;color:var(--sfb-navy);}
.sfb-session-recap{background:var(--sfb-grey);border-radius:10px;padding:14px;margin-bottom:12px;border-left:4px solid var(--sfb-gold);font-size:13px;}
.sfb-session-recap p{margin:3px 0;}
.sfb-min-modal-notice{background:#e8f4fd;border-radius:8px;padding:10px 14px;font-size:12px;color:#0073aa;margin-bottom:16px;border-left:3px solid #0073aa;}
.sfb-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.sfb-form-group{margin-bottom:14px;}
.sfb-form-group label{display:block;font-size:12px;font-weight:600;color:var(--sfb-navy);margin-bottom:5px;}
.sfb-form-group input,.sfb-form-group textarea{width:100%;padding:10px 14px;border:1px solid rgba(0,0,0,.15);border-radius:8px;font-size:14px;font-family:inherit;box-sizing:border-box;}
.sfb-form-group input:focus,.sfb-form-group textarea:focus{outline:none;border-color:var(--sfb-gold);}
.sfb-price-recap{background:var(--sfb-navy);color:#fff;border-radius:10px;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;margin:14px 0;font-size:14px;}
.sfb-total-price{font-size:22px;color:var(--sfb-gold);font-weight:700;}
.sfb-btn-book{width:100%;background:var(--sfb-gold);color:var(--sfb-navy);border:none;padding:14px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;}
.sfb-btn-book:hover{background:var(--sfb-gold-light);}
.sfb-btn-book:disabled{background:#ddd;color:#999;cursor:not-allowed;}
.sfb-form-notice{font-size:11px;color:#999;text-align:center;margin-top:10px;}
.sfb-booking-error{background:#ffeeee;border:1px solid #ffcccc;border-radius:8px;padding:12px;color:#cc0000;font-size:13px;margin-top:10px;}
.sfb-booking-success{background:#eeffee;border:1px solid #ccffcc;border-radius:8px;padding:12px;color:#006600;font-size:13px;margin-top:10px;}
.sfb-loading{text-align:center;padding:40px;color:#999;}
.sfb-error{color:#cc0000;font-size:13px;}
@media(max-width:640px){.sfb-session-card{flex-wrap:wrap;}.sfb-session-right{width:100%;text-align:left;}.sfb-form-row{grid-template-columns:1fr;}.sfb-modal-content{padding:20px;}}
