/* Pickleball Booking Wizard v5.2 — Isolated Styles */

/* Reset namespace */
.pbsw, .pbsw * { box-sizing: border-box !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important; }
.pbsw { max-width: 820px !important; margin: 0 auto !important; padding: 8px 0 56px !important; color: #111827 !important; }
.pbsw a { text-decoration: none !important; }

/* Progress bar */
.pbsw-progress { height: 3px !important; background: #e5e7eb !important; border-radius: 3px !important; margin-bottom: 28px !important; overflow: hidden !important; }
.pbsw-progress-bar { height: 100% !important; background: linear-gradient(90deg,#1a6b3a,#2d8f53) !important; border-radius: 3px !important; transition: width .4s !important; }

/* Step pills */
.pbsw-pills { display: flex !important; align-items: center !important; justify-content: center !important; gap: 0 !important; margin-bottom: 36px !important; }
.pbsw-pill-div { flex: 1 !important; height: 1.5px !important; background: #e5e7eb !important; max-width: 56px !important; }
.pbsw-pill { display: flex !important; align-items: center !important; gap: 7px !important; padding: 5px 14px 5px 5px !important; border-radius: 20px !important; background: #f3f4f6 !important; }
.pbsw-pill-n { width: 26px !important; height: 26px !important; border-radius: 50% !important; background: #d1d5db !important; color: #fff !important; font-size: .72rem !important; font-weight: 800 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.pbsw-pill-l { font-size: .75rem !important; font-weight: 700 !important; color: #9ca3af !important; }
.pbsw-pill-active { background: #e8f5ee !important; }
.pbsw-pill-active .pbsw-pill-n { background: #1a6b3a !important; }
.pbsw-pill-active .pbsw-pill-l { color: #1a6b3a !important; }
.pbsw-pill-done { background: #e8f5ee !important; }
.pbsw-pill-done .pbsw-pill-n { background: #1a6b3a !important; }
.pbsw-pill-done .pbsw-pill-l { color: #1a6b3a !important; }

/* Panels */
.pbsw-panel { display: none !important; animation: pbsFU .26s ease both !important; }
.pbsw-panel-active { display: block !important; }
@keyframes pbsFU { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }

.pbsw-head { text-align: center !important; margin-bottom: 28px !important; }
.pbsw-head h2 { font-size: 1.7rem !important; font-weight: 800 !important; letter-spacing: -.04em !important; margin: 0 0 6px !important; color: #111827 !important; }
.pbsw-head p { font-size: .9rem !important; color: #6b7280 !important; margin: 0 !important; }
.pbsw-nav-row { display: flex !important; align-items: center !important; gap: 10px !important; margin-top: 18px !important; }

/* Type cards */
.pbsw-type-cards { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 18px !important; margin-bottom: 24px !important; }
.pbsw-type-card { background: #fff !important; border-radius: 14px !important; overflow: hidden !important; box-shadow: 0 2px 16px rgba(0,0,0,.08) !important; display: flex !important; flex-direction: column !important; border: 1.5px solid #e5e7eb !important; transition: all .22s !important; cursor: pointer !important; }
.pbsw-type-card:hover { transform: translateY(-5px) !important; box-shadow: 0 8px 28px rgba(0,0,0,.12) !important; border-color: #a5b4fc !important; }
.pbsw-type-top { padding: 30px 24px !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.pbsw-type-emoji { font-size: 3rem !important; filter: drop-shadow(0 2px 6px rgba(0,0,0,.15)) !important; }
.pbsw-type-body { padding: 16px 20px 0 !important; flex: 1 !important; }
.pbsw-type-badge { display: inline-block !important; font-size: .68rem !important; font-weight: 800 !important; padding: 3px 10px !important; border-radius: 20px !important; margin-bottom: 8px !important; text-transform: uppercase !important; letter-spacing: .06em !important; }
.pbsw-type-body h3 { font-size: 1.05rem !important; font-weight: 800 !important; margin: 0 0 5px !important; color: #111827 !important; }
.pbsw-type-body p { font-size: .84rem !important; color: #6b7280 !important; margin: 0 0 12px !important; line-height: 1.55 !important; }
.pbsw-type-foot { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 13px 20px !important; border-top: 1.5px solid #f3f4f6 !important; margin-top: auto !important; }
.pbsw-type-sub { font-size: .78rem !important; color: #9ca3af !important; font-weight: 500 !important; }
.pbsw-select-type-btn { padding: 9px 20px !important; border: none !important; border-radius: 8px !important; color: #fff !important; font-family: inherit !important; font-size: .84rem !important; font-weight: 700 !important; cursor: pointer !important; transition: all .2s !important; }
.pbsw-select-type-btn:hover { filter: brightness(1.1) !important; transform: translateX(2px) !important; }

/* Date grid */
.pbsw-dates-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)) !important; gap: 10px !important; margin-bottom: 22px !important; }
.pbsw-date-card { background: #fff !important; border: 1.5px solid #e5e7eb !important; border-radius: 12px !important; padding: 14px 10px !important; text-align: center !important; cursor: pointer !important; transition: all .2s !important; }
.pbsw-date-card:hover:not(.pbsw-date-blocked) { border-color: #1a6b3a !important; box-shadow: 0 4px 16px rgba(26,107,58,.13) !important; transform: translateY(-3px) !important; }
.pbsw-date-card.pbsw-date-sel { border-color: #1a6b3a !important; background: linear-gradient(135deg,#1a6b3a,#2d8f53) !important; }
.pbsw-date-day { font-size: .6rem !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: .08em !important; color: #9ca3af !important; margin-bottom: 2px !important; }
.pbsw-date-num { font-size: 1.75rem !important; font-weight: 900 !important; letter-spacing: -.04em !important; line-height: 1 !important; color: #111827 !important; }
.pbsw-date-mon { font-size: .6rem !important; font-weight: 700 !important; color: #9ca3af !important; margin-top: 2px !important; text-transform: uppercase !important; }
.pbsw-date-cnt { font-size: .6rem !important; font-weight: 800 !important; color: #1a6b3a !important; margin-top: 6px !important; background: #e8f5ee !important; border-radius: 20px !important; padding: 2px 7px !important; display: inline-block !important; }
.pbsw-date-sel .pbsw-date-day, .pbsw-date-sel .pbsw-date-mon { color: rgba(255,255,255,.65) !important; }
.pbsw-date-sel .pbsw-date-num { color: #fff !important; }
.pbsw-date-sel .pbsw-date-cnt { background: rgba(255,255,255,.2) !important; color: #fff !important; }
.pbsw-date-blocked { cursor: not-allowed !important; background: #fef2f2 !important; border-color: #fecaca !important; opacity: .85 !important; }
.pbsw-date-blocked .pbsw-date-day { color: #f87171 !important; }
.pbsw-date-blocked .pbsw-date-num { color: #ef4444 !important; }
.pbsw-date-blocked .pbsw-date-mon { color: #f87171 !important; }
.pbsw-date-off { font-size: .58rem !important; font-weight: 700 !important; color: #dc2626 !important; margin-top: 5px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; line-height: 1.3 !important; }
.pbsw-blocked-msg { background: #fef2f2 !important; border: 1px solid #fecaca !important; border-radius: 8px !important; padding: 8px 12px !important; font-size: .82rem !important; color: #dc2626 !important; margin-top: 6px !important; display: block !important; }

/* Session cards */
.pbsw-slot-card { background: #fff !important; border-radius: 14px !important; overflow: hidden !important; box-shadow: 0 2px 12px rgba(0,0,0,.08) !important; margin-bottom: 14px !important; border: 1.5px solid #e5e7eb !important; transition: all .2s !important; }
.pbsw-slot-card:hover:not(.pbsw-slot-full) { transform: translateY(-3px) !important; box-shadow: 0 6px 24px rgba(0,0,0,.11) !important; border-color: #c7d2fe !important; }
.pbsw-slot-full { opacity: .62 !important; }

/* Colored band header */
.pbsw-slot-head { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 16px 20px !important; }
.pbsw-slot-head-left { display: flex !important; align-items: center !important; gap: 12px !important; }
.pbsw-slot-time { display: flex !important; flex-direction: column !important; }
.pbsw-time-main { font-size: 1.15rem !important; font-weight: 900 !important; color: #fff !important; line-height: 1.1 !important; letter-spacing: -.02em !important; }
.pbsw-time-end { font-size: .72rem !important; color: rgba(255,255,255,.72) !important; font-weight: 600 !important; margin-top: 1px !important; }
.pbsw-slot-dur-badge { background: rgba(255,255,255,.18) !important; color: #fff !important; font-size: .68rem !important; font-weight: 800 !important; padding: 3px 9px !important; border-radius: 20px !important; letter-spacing: .04em !important; }
.pbsw-slot-status-badge { font-size: .68rem !important; font-weight: 800 !important; padding: 4px 12px !important; border-radius: 20px !important; text-transform: uppercase !important; letter-spacing: .05em !important; }
.pbs-badge-open { background: rgba(255,255,255,.18) !important; color: #fff !important; }
.pbs-badge-full { background: rgba(0,0,0,.22) !important; color: #fff !important; }

/* Card body */
.pbsw-slot-body { padding: 18px 20px 14px !important; }
.pbsw-slot-title { font-size: 1rem !important; font-weight: 700 !important; color: #111827 !important; margin-bottom: 10px !important; line-height: 1.3 !important; }
.pbsw-slot-meta-row { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-bottom: 14px !important; }
.pbsw-meta-chip { display: inline-flex !important; align-items: center !important; gap: 5px !important; background: #f9fafb !important; border: 1px solid #e5e7eb !important; border-radius: 20px !important; padding: 5px 12px !important; font-size: .8rem !important; color: #374151 !important; font-weight: 500 !important; }
.pbsw-slot-note-box { background: #fffbeb !important; border-left: 3px solid #fcd34d !important; border-radius: 0 8px 8px 0 !important; padding: 10px 14px !important; font-size: .8rem !important; color: #78350f !important; line-height: 1.6 !important; margin-bottom: 14px !important; }

/* Capacity bar */
.pbsw-cap-wrap { margin-bottom: 14px !important; }
.pbsw-cap-track { height: 6px !important; background: #e5e7eb !important; border-radius: 99px !important; overflow: hidden !important; margin-bottom: 5px !important; }
.pbsw-cap-fill { height: 100% !important; border-radius: 99px !important; transition: width .4s !important; }
.pbsw-cap-label { display: flex !important; justify-content: space-between !important; font-size: .75rem !important; color: #9ca3af !important; }

/* Players */
.pbsw-players-row { display: flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 2px !important; margin-bottom: 2px !important; }
.pbsw-players-label { font-size: .75rem !important; color: #9ca3af !important; margin-right: 8px !important; font-weight: 600 !important; }
.pbsw-avatar { width: 30px !important; height: 30px !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: .68rem !important; font-weight: 800 !important; color: #fff !important; border: 2.5px solid #fff !important; box-shadow: 0 1px 4px rgba(0,0,0,.14) !important; margin-left: -6px !important; }
.pbsw-avatar:first-of-type { margin-left: 0 !important; }
.pbsw-avatar-open { background: #f3f4f6 !important; color: #9ca3af !important; border: 2px dashed #d1d5db !important; }
.pbsw-no-players { font-size: .8rem !important; color: #9ca3af !important; font-style: italic !important; }
.pbsw-more-open { font-size: .72rem !important; color: #9ca3af !important; margin-left: 8px !important; }

/* Card footer */
.pbsw-slot-foot { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 13px 20px !important; background: #f9fafb !important; border-top: 1.5px solid #e5e7eb !important; }
.pbsw-slot-price-block { display: flex !important; align-items: baseline !important; gap: 3px !important; }
.pbsw-price-num { font-size: 1.5rem !important; font-weight: 900 !important; color: #1a6b3a !important; letter-spacing: -.04em !important; }
.pbsw-price-kd { font-size: .75rem !important; color: #9ca3af !important; }
.pbsw-select-slot-btn { display: flex !important; align-items: center !important; gap: 8px !important; padding: 11px 22px !important; border: none !important; border-radius: 8px !important; background: #1a6b3a !important; color: #fff !important; font-family: inherit !important; font-size: .86rem !important; font-weight: 700 !important; cursor: pointer !important; transition: all .2s !important; white-space: nowrap !important; }
.pbsw-select-slot-btn:hover:not(:disabled) { background: #2d8f53 !important; transform: translateY(-2px) !important; box-shadow: 0 5px 18px rgba(26,107,58,.32) !important; }
.pbsw-btn-arrow { transition: transform .2s !important; display: inline-block !important; }
.pbsw-select-slot-btn:hover:not(:disabled) .pbsw-btn-arrow { transform: translateX(3px) !important; }
.pbsw-btn-full { background: #e5e7eb !important; color: #9ca3af !important; cursor: not-allowed !important; transform: none !important; box-shadow: none !important; }

/* Summary */
.pbsw-summary { background: #fff !important; border: 1.5px solid #e5e7eb !important; border-radius: 14px !important; padding: 22px !important; margin-bottom: 22px !important; box-shadow: 0 2px 10px rgba(0,0,0,.05) !important; }
.pbsw-sum-badge { display: inline-flex !important; align-items: center !important; gap: 6px !important; font-size: .76rem !important; font-weight: 800 !important; padding: 5px 16px !important; border-radius: 20px !important; margin-bottom: 18px !important; text-transform: uppercase !important; letter-spacing: .05em !important; }
.pbsw-sum-rows { display: flex !important; flex-direction: column !important; }
.pbsw-sum-row { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 12px 0 !important; border-bottom: 1.5px solid #f3f4f6 !important; font-size: .9rem !important; }
.pbsw-sum-row:last-child { border-bottom: none !important; }
.pbsw-sum-row > span { color: #6b7280 !important; }
.pbsw-sum-row strong { color: #111827 !important; font-weight: 700 !important; }
.pbsw-sum-total strong { color: #1a6b3a !important; font-size: 1.22rem !important; }

/* Confirm button */
.pbsw-confirm-btn { width: 100% !important; padding: 15px !important; background: linear-gradient(135deg,#1a6b3a,#2d8f53) !important; color: #fff !important; border: none !important; border-radius: 10px !important; font-family: inherit !important; font-size: 1.05rem !important; font-weight: 800 !important; cursor: pointer !important; transition: all .22s !important; display: block !important; }
.pbsw-confirm-btn:hover:not(:disabled) { transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(26,107,58,.35) !important; }
.pbsw-confirm-btn:disabled { opacity: .55 !important; cursor: not-allowed !important; transform: none !important; }

/* Back button */
.pbsw-back-btn { display: inline-flex !important; align-items: center !important; gap: 6px !important; padding: 9px 18px !important; background: #fff !important; border: 1.5px solid #e5e7eb !important; border-radius: 8px !important; font-family: inherit !important; font-size: .86rem !important; font-weight: 600 !important; color: #4b5563 !important; cursor: pointer !important; transition: all .15s !important; }
.pbsw-back-btn:hover { background: #f9fafb !important; }

/* Loading & empty */
.pbsw-loading { display: flex !important; align-items: center !important; gap: 12px !important; padding: 50px !important; justify-content: center !important; color: #9ca3af !important; font-size: .92rem !important; }
.pbsw-spinner { width: 22px !important; height: 22px !important; border: 3px solid #e5e7eb !important; border-top-color: #1a6b3a !important; border-radius: 50% !important; animation: pbsSpin .7s linear infinite !important; flex-shrink: 0 !important; }
@keyframes pbsSpin { to { transform: rotate(360deg); } }
.pbsw-empty { text-align: center !important; padding: 56px 20px !important; }
.pbsw-empty-icon { font-size: 3rem !important; margin-bottom: 14px !important; }
.pbsw-empty p { font-size: .9rem !important; color: #9ca3af !important; line-height: 1.6 !important; }

/* Notes bar */
.pbsw-notes { display: flex !important; flex-wrap: wrap !important; gap: 6px 20px !important; justify-content: center !important; padding: 13px 18px !important; background: #f0fdf4 !important; border: 1.5px solid #bbf7d0 !important; border-radius: 10px !important; font-size: .78rem !important; color: #166534 !important; }

/* Responsive */
@media (max-width: 600px) {
    .pbsw-type-cards { grid-template-columns: 1fr !important; }
    .pbsw-pill-l { display: none !important; }
    .pbsw-dates-grid { grid-template-columns: repeat(3, 1fr) !important; }
    .pbsw-slot-foot { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
    .pbsw-select-slot-btn { justify-content: center !important; }
    .pbsw-head h2 { font-size: 1.45rem !important; }
}

/* Early Bird */
.pbsw-early-badge { background: #fef9c3 !important; color: #854d0e !important; font-size: .68rem !important; font-weight: 800 !important; padding: 2px 8px !important; border-radius: 20px !important; margin-left: 6px !important; }
/* Location link chip */
.pbsw-meta-link { display: inline-flex !important; align-items: center !important; gap: 5px !important; background: #f0fdf4 !important; border: 1px solid #bbf7d0 !important; border-radius: 20px !important; padding: 5px 12px !important; font-size: .8rem !important; color: #166534 !important; font-weight: 600 !important; text-decoration: none !important; }
.pbsw-meta-link:hover { background: #dcfce7 !important; }

/* Quantity selector */
.pbsw-qty-wrap { display: flex !important; align-items: center !important; gap: 10px !important; }
.pbsw-qty-btn { width: 32px !important; height: 32px !important; border-radius: 50% !important; border: 2px solid #e5e7eb !important; background: #fff !important; color: #374151 !important; font-size: 1.1rem !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; transition: all .15s !important; line-height: 1 !important; }
.pbsw-qty-btn:hover { border-color: #1a6b3a !important; color: #1a6b3a !important; background: #e8f5ee !important; }
.pbsw-qty-num { font-size: 1.2rem !important; font-weight: 800 !important; color: #111827 !important; min-width: 24px !important; text-align: center !important; }
