.bsp{--bsp-ink:#1a1d23;--bsp-muted:#6b7280;--bsp-faint:#9ca3af;--bsp-line:#e8eaee;--bsp-surface:#f6f7f9;--bsp-accent:#1a1d23;--bsp-accent-text:#fff;margin-bottom:16px;font-family:inherit;position:relative}.bsp-title{color:var(--bsp-ink);margin:0 0 10px;font-size:13px;font-weight:750}.bsp-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.bsp-field{min-width:0;position:relative}.bsp-label{color:var(--bsp-muted);margin:0 0 6px;font-size:11px;font-weight:700;display:block}.bsp-trigger{border:1px solid var(--bsp-line);width:100%;min-height:44px;color:var(--bsp-ink);cursor:pointer;text-align:left;background:#fff;border-radius:11px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:650;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.bsp-trigger:hover:not(:disabled){background:#fafbfc;border-color:#cfd3db}.bsp-trigger.is-open{border-color:var(--bsp-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--bsp-accent) 14%, transparent)}.bsp-trigger:disabled{opacity:.5;cursor:not-allowed;background:var(--bsp-surface)}.bsp-trigger-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bsp-trigger-value.is-placeholder{color:var(--bsp-faint);font-weight:600}.bsp-trigger-icon{width:16px;height:16px;color:var(--bsp-faint);flex-shrink:0}.bsp-panel{border:1px solid var(--bsp-line);background:#fff;border-radius:14px;padding:12px;animation:.14s bsp-in;box-shadow:0 12px 40px #1a1d231f,0 2px 8px #1a1d230f}.bsp-panel--portal{z-index:10050;max-height:min(360px,100vh - 24px);position:fixed;overflow:auto}.bsp-panel--portal.is-up{transform-origin:bottom}@keyframes bsp-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.bsp-cal-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.bsp-cal-month{color:var(--bsp-ink);text-transform:capitalize;font-size:13px;font-weight:750}.bsp-nav{border:1px solid var(--bsp-line);width:30px;height:30px;color:var(--bsp-ink);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.bsp-nav:hover:not(:disabled){background:var(--bsp-surface)}.bsp-nav:disabled{opacity:.35;cursor:not-allowed}.bsp-dow{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;display:grid}.bsp-dow span{text-align:center;color:var(--bsp-faint);text-transform:uppercase;letter-spacing:.03em;padding:4px 0;font-size:10px;font-weight:700}.bsp-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.bsp-day{aspect-ratio:1;max-height:36px;color:var(--bsp-ink);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:0;font-family:inherit;font-size:12.5px;font-weight:650}.bsp-day:hover:not(:disabled):not(.is-selected){background:var(--bsp-surface)}.bsp-day.is-outside{visibility:hidden;pointer-events:none}.bsp-day.is-muted,.bsp-day:disabled{color:#c4c8d0;cursor:not-allowed}.bsp-day.is-blocked{color:#fca5a5;text-decoration:line-through}.bsp-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1.5px var(--bsp-line)}.bsp-day.is-selected{background:var(--bsp-accent);color:var(--bsp-accent-text)}.bsp-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:220px;padding-right:2px;display:grid;overflow-y:auto}.bsp-slot{border:1px solid var(--bsp-line);color:var(--bsp-ink);cursor:pointer;background:#fff;border-radius:9px;padding:9px 4px;font-family:inherit;font-size:12.5px;font-weight:700;line-height:1.15}.bsp-slot small{color:var(--bsp-faint);margin-top:2px;font-size:9.5px;font-weight:600;display:block}.bsp-slot:hover:not(:disabled):not(.is-selected){background:var(--bsp-surface)}.bsp-slot.is-selected{background:var(--bsp-accent);border-color:var(--bsp-accent);color:var(--bsp-accent-text)}.bsp-slot.is-selected small{color:color-mix(in srgb, var(--bsp-accent-text) 75%, transparent)}.bsp-slot:disabled{opacity:.4;cursor:not-allowed;background:var(--bsp-surface)}.bsp-empty,.bsp-hint,.bsp-error{margin:8px 0 0;font-size:12px;line-height:1.4}.bsp-empty,.bsp-hint{color:var(--bsp-muted)}.bsp-error{color:#dc2626;font-weight:600}.bsp-panel-empty{text-align:center;color:var(--bsp-muted);padding:16px 8px;font-size:12.5px;font-weight:600}