:root{--bg:#000;--fg:#ffffff;--panel:#0f0f0f;--muted:#bfbfbf;--accent:#ffd;--accent-2:#ffd37f;--danger:#b04545}
*{box-sizing:border-box}
.panel.booking{background:#151515;color:var(--fg);padding:12px}
.panel.booking .app{background:transparent;color:var(--fg)}
html,body{height:100%;margin:0;font-family:Inter, Arial, sans-serif;background:transparent;color:var(--fg)}
.app{max-width:1000px;margin:0 auto;padding:0}
.app-header h1{font-size:1.35rem;margin:0}
.subtitle{color:var(--muted);margin-top:6px}
.admin-controls{margin-top:8px;display:flex;gap:8px;align-items:center}
.admin-controls button{background:transparent;border:1px solid rgba(255,255,255,.06);color:var(--fg);padding:6px 10px;border-radius:6px;cursor:pointer}
.admin-controls #adminStatus{font-size:0.85rem}
.calendar-wrap{display:flex;gap:18px;margin-top:12px}
.calendar-sidebar{width:320px;background:#0a0a0a;padding:8px;color:var(--fg)}
.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.month-nav button{background:transparent;border:1px solid rgba(255,255,255,.06);color:var(--fg);padding:6px 10px;border-radius:6px;cursor:pointer}
#monthLabel{font-weight:600}
.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.weekday{text-align:center;color:var(--muted);font-weight:600;font-size:0.9rem;padding:6px 4px}
/* Past dates styling */
.day.past{opacity:.45}
.day.past:hover{cursor:not-allowed}
button.day[disabled]{cursor:not-allowed;opacity:.45}
.day{padding:8px;border-radius:6px;text-align:center;background:transparent;color:var(--muted);cursor:pointer;border:1px solid rgba(255,255,255,.03)}
.day.other{opacity:.3}
.day.today{box-shadow:0 0 0 2px rgba(255,255,255,.03) inset}
.day.selected{background:rgba(255,255,255,.06);color:var(--fg);font-weight:700}
.day.booked{position:relative}
.day.booked::after{content:'';position:absolute;right:6px;top:6px;width:8px;height:8px;background:#ff7b7b;border-radius:50%}
.day.no-slots{opacity:.45}

.booking-panel{flex:1;background:#0a0a0a;border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:10px;color:var(--fg)}
.selection h2{margin:0}
.muted{color:var(--muted)}
.times{background:rgba(255,255,255,.02);padding:8px;border-radius:6px}
.time-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.slot{padding:7px 10px;border-radius:6px;background:transparent;border:1px solid rgba(255,255,255,.06);cursor:pointer;color:var(--fg)}
.slot.taken{background:rgba(255,255,255,.03);color:var(--muted);cursor:not-allowed}
.slot.selected{background:var(--accent-2);color:#000}
.booking-form{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:6px;background:transparent}
.booking-form label{display:flex;flex-direction:column;font-size:0.95rem}
.booking-form input, .booking-form textarea, .booking-form select{margin-top:6px;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:#0b0b0b;color:var(--fg)}
.form-actions{display:flex;gap:8px}
button{padding:8px 12px;border-radius:8px;border:0;background:var(--accent);color:#000;cursor:pointer}
button.danger{background:var(--danger);color:#fff}
.bookings-list ul{list-style:none;padding:0;margin:8px 0 0 0}
.bookings-list li{padding:8px;border-radius:6px;background:rgba(255,255,255,.02);margin-bottom:8px;color:var(--muted)}

@media (max-width:900px){.calendar-wrap{flex-direction:column}.calendar-sidebar{width:100%}}