.bsn-public-container { padding: 10px 0; font-family: 'Segoe UI', system-ui, sans-serif; color: #334155; }
.floating-card { background: #ffffff; border-radius: var(--bsn-radius); padding: 35px; box-shadow: 0 10px 40px rgba(0, 21, 41, 0.08); border: 1px solid rgba(0,0,0,0.03); }

.compact-calendar { max-width: 480px; margin: 0 auto; font-size: 0.95em; }
.modern-calendar-wrap { display: block; padding: 15px; background: #fff; border-radius: var(--bsn-radius); box-shadow: 0 4px 20px rgba(0,0,0,0.04); border: 1px solid #e2e8f0; width: 100%; box-sizing: border-box; min-height: 380px; }

.fc { font-family: 'Segoe UI', system-ui, sans-serif !important; letter-spacing: normal !important; }
.fc-theme-standard td, .fc-theme-standard th { border: none !important; }
.fc-theme-standard .fc-scrollgrid { border: none !important; }
.fc-col-header-cell-cushion { padding: 10px 0 !important; font-weight: 600; color: #64748b; text-transform: uppercase; font-size: 12px; letter-spacing: 0.5px !important; }

.fc-toolbar-title { font-size: 1.4rem !important; color: var(--bsn-primary) !important; font-weight: 700 !important; text-transform: capitalize; letter-spacing: 0 !important; line-height: 1.2 !important; }
.fc .fc-button-primary { background-color: var(--bsn-primary) !important; border: none !important; border-radius: 8px !important; box-shadow: 0 2px 4px rgba(0,0,0,0.1); padding: 8px 16px !important; text-transform: capitalize;}
.fc .fc-button-primary:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.fc .fc-button-primary:focus { box-shadow: none !important; }

.fc-daygrid-day-frame { border-radius: 12px; margin: 2px; transition: all 0.2s ease; border: 1px solid transparent; min-height: 45px !important; display: flex; align-items: center; justify-content: center;}
.fc .fc-daygrid-day-number { color: #334155; font-weight: 600; padding: 0 !important; display: block; width: 100%; text-align: center; }

.bsn-day-available .fc-daygrid-day-frame { cursor: pointer; background-color: #ffffff; }
.bsn-day-available:hover .fc-daygrid-day-frame { background-color: #f8fafc; border-color: #e2e8f0; }

.bsn-day-disabled .fc-daygrid-day-frame { background-color: #f1f5f9; cursor: not-allowed; }
.bsn-day-disabled .fc-daygrid-day-number { color: #94a3b8; text-decoration: line-through; opacity: 0.6; font-weight: 400; }

.bsn-day-selected { background-color: var(--bsn-primary) !important; border-color: var(--bsn-primary) !important; box-shadow: 0 4px 10px rgba(0,0,0,0.15); transform: scale(1.05); }
.bsn-day-selected .fc-daygrid-day-number { color: #ffffff !important; }

.fc-day-today .fc-daygrid-day-frame { border: 2px dashed #bae6fd; }
.bsn-day-selected.fc-day-today .fc-daygrid-day-frame { border: none; } 

.bsn-label { display: block; margin-bottom: 8px; font-weight: 700; color: #0f172a; font-size: 15px; }
.bsn-input { width: 100%; padding: 14px 15px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; box-sizing: border-box; font-size: 15px; transition: all 0.3s; }
select.bsn-input { height: auto; min-height: 50px; }
.bsn-input:focus { border-color: var(--bsn-primary); background: #fff; outline: none; box-shadow: 0 0 0 3px rgba(0,21,41,0.05); }
.file-input { padding: 10px; background: #fff; border: 1px dashed #cbd5e1; cursor: pointer; }

.bsn-btn-submit { background: var(--bsn-primary); color: white; border: none; padding: 15px 24px; border-radius: 8px; cursor: pointer; font-weight: 700; width: 100%; font-size: 16px; transition: transform 0.2s, box-shadow 0.2s; }
.bsn-btn-submit:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0,21,41,0.2); }
.bsn-btn-submit:disabled { background: #94a3b8; cursor: not-allowed; transform: none; box-shadow: none; }

.bsn-slots-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 12px; margin-top: 15px; }
.slot-btn { padding: 12px 10px; text-align: center; border-radius: 8px; cursor: pointer; background: #fff; border: 1px solid #e2e8f0; font-weight: 700; transition: all 0.2s; color: #0f172a; }
.slot-btn:hover:not(.slot-occupied) { border-color: var(--bsn-primary); color: var(--bsn-primary); box-shadow: 0 4px 10px rgba(0,0,0,0.05); transform: translateY(-1px); }
.slot-selected { background: var(--bsn-primary) !important; color: white !important; border-color: var(--bsn-primary) !important; }
.slot-occupied { background: #fef2f2; color: #ef4444; text-decoration: line-through; cursor: not-allowed; opacity: 0.6; border-color:#fee2e2; pointer-events: none; }

.bsn-tooltip-public { position: relative; }
.bsn-tooltip-public:hover::after { content: attr(data-tip); position: absolute; bottom: 100%; left: 0; background: #0f172a; color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; z-index: 1000; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }

.bsn-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.6); backdrop-filter: blur(4px); z-index: 9999; display: flex; align-items: center; justify-content: center; }
.bsn-modal-content { background: #fff; border-radius: var(--bsn-radius); padding: 30px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }