:root{--cal-gold: #f4a830;--cal-gold-dim: rgba(244, 168, 48, .12);--cal-gold-glow: rgba(244, 168, 48, .25);--cal-bg: #1a1710;--cal-surface: #211e18;--cal-surface-hover: #2a2620;--cal-border: rgba(244, 168, 48, .18);--cal-text: #f0ece4;--cal-text-muted: #8a826e;--cal-text-dim: #4a4438;--cal-green: #4caf7d;--cal-green-dim: rgba(76, 175, 125, .12);--cal-amber: #f4a830;--cal-amber-dim: rgba(244, 168, 48, .1);--cal-red: #e05555;--cal-red-dim: rgba(224, 85, 85, .08);--cal-radius: 12px;--cal-day-radius: 9px}.availability-calendar{font-family:DM Sans,sans-serif;padding:18px 16px 16px;background:var(--cal-bg);border-radius:var(--cal-radius);color:var(--cal-text);border:1px solid var(--cal-border);overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px}.calendar-title{font-family:Playfair Display,serif;font-size:1rem;font-weight:700;color:var(--cal-gold);text-align:center;flex:1;letter-spacing:.01em}.calendar-nav{display:contents}.calendar-nav button{background:var(--cal-surface);border:1px solid var(--cal-border);border-radius:8px;width:34px;height:34px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--cal-text-muted);font-size:1.1rem;transition:border-color .2s ease,background .2s ease,color .2s ease;flex-shrink:0}.calendar-nav button:hover:not(:disabled){border-color:var(--cal-gold);background:var(--cal-gold-dim);color:var(--cal-gold)}.calendar-nav button:disabled{opacity:.25;cursor:not-allowed}.calendar-month-summary{display:flex;gap:6px;margin-bottom:12px;padding:7px 10px;background:var(--cal-surface);border-radius:8px;border:1px solid var(--cal-border)}.month-summary-item{display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--cal-text-muted);font-weight:600}.month-summary-sep{color:var(--cal-text-dim);font-size:9px}.month-summary-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.month-summary-dot.green{background:var(--cal-green)}.month-summary-dot.amber{background:var(--cal-amber)}.month-summary-dot.red{background:var(--cal-red)}.month-summary-count{font-weight:800;color:var(--cal-text)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:5px}.weekday{text-align:center;font-size:9.5px;font-weight:700;color:var(--cal-text-dim);text-transform:uppercase;letter-spacing:.06em;padding:4px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-day{position:relative;aspect-ratio:1;border:1.5px solid transparent;border-radius:var(--cal-day-radius);padding:3px;cursor:pointer;background:var(--cal-surface);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.calendar-day:hover:not(.disabled):not(.full):not(.past){border-color:var(--cal-gold);background:var(--cal-surface-hover);box-shadow:0 0 0 1px var(--cal-gold-dim);z-index:1}.calendar-day.empty{background:transparent;border-color:transparent;cursor:default}.day-number{font-weight:700;font-size:.83rem;color:var(--cal-text);line-height:1}.day-status-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.day-capacity{font-size:7.5px;font-weight:700;opacity:.65;line-height:1;letter-spacing:-.02em}.calendar-day.available{background:var(--cal-green-dim);border-color:transparent}.calendar-day.limited{background:var(--cal-amber-dim);border-color:transparent}.calendar-day.full{background:var(--cal-red-dim);cursor:not-allowed;border-color:transparent;opacity:.65}.calendar-day.available:hover:not(.disabled){border-color:var(--cal-green);box-shadow:0 0 0 1px #4caf7d26}.calendar-day.limited:hover:not(.disabled){border-color:var(--cal-amber);box-shadow:0 0 0 1px var(--cal-gold-dim)}.calendar-day.available .day-status-dot{background:var(--cal-green)}.calendar-day.limited .day-status-dot{background:var(--cal-amber)}.calendar-day.full .day-status-dot{background:var(--cal-red)}.calendar-day.available .day-capacity{color:var(--cal-green);opacity:.8}.calendar-day.limited .day-capacity{color:var(--cal-amber);opacity:.8}.calendar-day.past{opacity:.18;cursor:not-allowed;background:transparent;border-color:transparent}.calendar-day.disabled{opacity:.22;cursor:not-allowed}.calendar-day.selected{background:var(--cal-gold)!important;border-color:var(--cal-gold)!important;box-shadow:0 0 0 3px var(--cal-gold-dim),0 4px 12px #f4a8304d!important}.calendar-day.selected .day-number,.calendar-day.selected .day-capacity{color:#0f0d09!important;font-weight:800!important;opacity:1!important}.calendar-day.selected .day-status-dot{background:#0f0d0980!important}.calendar-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;gap:10px;color:var(--cal-text-muted);font-size:12px}.spinner{width:22px;height:22px;border:2px solid var(--cal-border);border-top-color:var(--cal-gold);border-radius:50%;animation:spin .7s linear infinite}.calendar-legend{margin-top:14px;padding-top:12px;border-top:1px solid var(--cal-border);display:flex;align-items:center;justify-content:space-between;gap:8px}.legend-title{font-size:9.5px;font-weight:700;text-transform:uppercase;color:var(--cal-text-dim);letter-spacing:.07em;white-space:nowrap}.legend-items{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--cal-text-muted);font-weight:500}.legend-color{width:7px;height:7px;border-radius:50%;flex-shrink:0}.legend-color.available{background:var(--cal-green)}.legend-color.limited{background:var(--cal-amber)}.legend-color.full{background:var(--cal-red)}@keyframes spin{to{transform:rotate(360deg)}}.availability-status{border-radius:12px;padding:14px 16px;border:1px solid rgba(244,168,48,.2);background:#f4a8300a;transition:border-color .3s ease,background .3s ease}.availability-status.loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:72px;border-color:#f4a8301f;background:#f4a83008}.availability-status.loading .spinner{width:16px;height:16px;border:2px solid rgba(244,168,48,.2);border-top-color:#f4a830;border-radius:50%;animation:as-spin .6s linear infinite}.availability-status.loading p{color:#8a826e;font-size:12px;margin:0}.availability-status.error{background:#e055550f;border-color:#e0555540;padding:10px 14px}.availability-status.error p{color:#e05555;margin:0;font-size:12px}.availability-status.available{border-color:#4caf7d4d;background:#4caf7d0d}.availability-status.full{border-color:#e055554d;background:#e055550d}.availability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.availability-header h3{margin:0;font-size:10px;font-weight:700;color:#8a826e;text-transform:uppercase;letter-spacing:.08em}.status-badge{display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.status-badge .badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;animation:as-pulse 2s ease infinite}.status-badge.open{background:#4caf7d24;color:#4caf7d;border:1px solid rgba(76,175,125,.28)}.status-badge.open .badge-dot{background:#4caf7d}.status-badge.full{background:#e055551f;color:#e05555;border:1px solid rgba(224,85,85,.28)}.status-badge.full .badge-dot{background:#e05555;animation:none}.capacity-section{margin-bottom:8px}.capacity-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:5px;color:#8a826e}.capacity-label .numbers{font-weight:700;color:#f0ece4;font-size:11px}.progress-bar{height:5px;background:#f4a8301a;border-radius:3px;overflow:hidden}.progress-fill{height:100%;transition:width .4s ease;border-radius:3px}.status-message{margin-top:6px}.status-message p{margin:0;font-size:11px;color:#8a826e;line-height:1.4}.status-message .warning{color:#f4a830;font-weight:600;margin-top:4px}.fully-booked{margin-top:6px;padding:8px 10px;background:#e0555514;border-radius:7px;border:1px solid rgba(224,85,85,.18)}.fully-booked p{margin:0;font-size:11px;color:#e05555}@keyframes as-spin{to{transform:rotate(360deg)}}@keyframes as-pulse{0%,to{opacity:1}50%{opacity:.4}}
