.calendar-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:16px;padding:24px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.calendar-title{font-size:20px;font-weight:600}.calendar-controls{gap:8px;display:flex}.calendar-btn{background:var(--color-hover);color:var(--color-text);cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-weight:500;transition:all .2s}.calendar-btn:hover,.calendar-btn.active{background:var(--color-gold);color:var(--color-black)}.calendar-grid{box-sizing:border-box;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;transition:all .15s;display:grid}.calendar-grid>*{flex:1!important;width:100%!important;min-width:0!important;max-width:100%!important}.calendar-grid:not(.week-view){grid-template-columns:repeat(7,1fr)!important}.calendar-grid:not(.week-view)>.calendar-day-header,.calendar-grid:not(.week-view)>.calendar-day{width:100%!important;min-width:0!important}.calendar-day-header{text-align:center;color:var(--color-text-secondary);text-transform:uppercase;box-sizing:border-box;width:100%;padding:8px;font-size:12px;font-weight:600}.calendar-day{background:var(--color-hover);cursor:pointer;box-sizing:border-box;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;padding:8px;transition:background-color .15s,border-color .15s,transform .15s;display:flex;position:relative;overflow:hidden}.calendar-day:not(.week-day){aspect-ratio:1/.75;min-height:unset;height:auto}.calendar-day:not(.week-day) .calendar-day-number{z-index:1;margin:0;font-size:14px;font-weight:500;position:absolute;top:8px;left:8px}.calendar-day.week-day:hover{background:#c7b2991a;border:1px solid #2a2a2a;transform:scale(1.02)}.calendar-day:not(.week-day):hover{background:#c7b2990d;border:1px solid #2a2a2a}.calendar-day.today:hover{border:2px solid #c7b299!important}.calendar-day-number{font-size:14px;font-weight:500;transition:all .15s}.calendar-day.other-month,.calendar-day.other-month .calendar-day-number{opacity:.3}.calendar-day[title]:hover:after{content:attr(title);color:#e5e5e5;white-space:nowrap;z-index:1000;pointer-events:none;background:#1a1a1a;border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.calendar-day[title]:hover:before{content:"";z-index:1000;pointer-events:none;border:5px solid #0000;border-top-color:#1a1a1a;margin-bottom:2px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.calendar-day.past-date{opacity:.7;filter:none}.calendar-day.past-date .calendar-day-number{opacity:.7;color:var(--color-text-secondary)}.calendar-day.today{background:var(--color-hover)!important;border:2px solid #c7b299!important}.calendar-day.today:hover{background:#c7b2990d!important;border:2px solid #c7b299!important}.today-number{justify-content:center;align-items:center;color:#0a0a0a!important;background-color:#c7b299!important;border-radius:50%!important;width:28px!important;height:28px!important;font-weight:700!important;display:inline-flex!important}.calendar-day.today:not(.week-day) .calendar-day-number.today-number{position:absolute;top:6px;left:6px}.calendar-day.week-day.today .calendar-day-number.today-number{margin-bottom:4px}.calendar-day.week-day.very-busy{border-left:3px solid #c7b299}.calendar-day.week-day.very-busy.today{border:2px solid #c7b299;border-left-width:3px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popupSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.calendar-day.week-day.busy-level-1:before{content:"";pointer-events:none;z-index:0;background:#ffffff08;border-radius:8px;position:absolute;inset:0}.calendar-day.week-day.busy-level-2:before{content:"";pointer-events:none;z-index:0;background:#ffffff0f;border-radius:8px;position:absolute;inset:0}.calendar-day.week-day.busy-level-3:before{content:"";pointer-events:none;z-index:0;background:#ffffff1a;border-left:3px solid #c7b299;border-radius:8px;position:absolute;inset:0}.calendar-day.busy-level-1-month:before{content:"";pointer-events:none;z-index:0;background:#ffffff08;border-radius:8px;position:absolute;inset:0}.calendar-day.busy-level-2-month:before{content:"";pointer-events:none;z-index:0;background:#ffffff0f;border-radius:8px;position:absolute;inset:0}.calendar-day.busy-level-3-month:before{content:"";pointer-events:none;z-index:0;background:#ffffff1a;border-radius:8px;position:absolute;inset:0}.calendar-day.busy-level-1-month:before,.calendar-day.busy-level-2-month:before,.calendar-day.busy-level-3-month:before{display:none!important}.calendar-day>*{z-index:1;position:relative}.calendar-day:not(.week-day) .calendar-day-number{z-index:2}.month-appointments-list{flex-direction:column;flex:1;gap:2px;width:100%;min-height:0;margin-top:28px;display:flex;overflow:hidden}.month-appointment-info{color:#e5e5e5;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#c7b29933;border-left:3px solid #c7b299;border-radius:4px;padding:3px 6px;font-size:13px;font-weight:500;line-height:1.3;transition:background .2s;overflow:hidden}.month-appointment-info:hover{background:#c7b29959}.month-appointment-more{color:#888;cursor:pointer;white-space:nowrap;padding:2px 6px;font-size:12px;font-weight:500;transition:color .2s}.month-appointment-more:hover{color:#c7b299}.appointment-dots{display:none}.appointment-dot{background:var(--color-gold);border-radius:50%;width:6px;height:6px}.calendar-grid.week-view{grid-template-rows:auto 1fr;gap:12px;width:100%;min-height:350px;grid-template-columns:repeat(7,1fr)!important}.calendar-grid.week-view>*{width:100%!important;min-width:0!important;max-width:100%!important}.calendar-day.week-day{aspect-ratio:unset;box-sizing:border-box;border:2px solid var(--color-border);background:var(--color-card);border-radius:12px;flex-direction:column;align-items:flex-start;width:100%;height:280px;min-height:280px;padding:20px 16px;display:flex;position:relative;overflow:hidden}.calendar-day.week-day:hover{border-color:var(--color-gold);background:#c7b2990d}.calendar-day.week-day.today{background:var(--color-card)!important;border:2px solid #c7b299!important}.calendar-day.week-day.today:hover{background:#c7b2990d!important;border:2px solid #c7b299!important}.calendar-day.week-day.today.busy-level-1:before,.calendar-day.week-day.today.busy-level-2:before,.calendar-day.week-day.today.busy-level-3:before{display:none!important}.calendar-day.week-day.past-date{opacity:.5;filter:grayscale(.3)}.week-appointments{flex:1;width:100%;margin-top:8px}.appointment-item{border-left:4px solid var(--color-gold);color:var(--color-text);white-space:normal;background:#c7b29926;border-radius:8px;flex-direction:column;gap:2px;max-height:60px;margin-bottom:8px;padding:8px 12px;font-size:13px;font-weight:500;line-height:1.3;transition:all .2s;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000001a}.appointment-item:hover{background:#c7b29940;transform:translateY(-1px);box-shadow:0 2px 4px #00000026}.appointment-item.last-visible{margin-bottom:20px;position:relative}.appointment-item.last-visible:after{content:"";z-index:1;background:#c7b2994d;border-radius:1px;height:2px;position:absolute;bottom:-18px;left:0;right:0}.appointment-more{color:#888;cursor:pointer;text-align:center;border:1px dashed var(--color-border);background:#c7b2990d;border-radius:4px;margin-top:4px;padding:4px 8px;font-size:12px;transition:all .2s}.appointment-more:hover{color:#e5e5e5;background:#c7b2991a;border-color:#c7b299}.appointment-time{color:var(--color-gold);font-size:12px;font-weight:600}.appointment-client{color:var(--color-text-secondary);text-overflow:ellipsis;font-size:11px}.calendar-day.week-day .appointment-dots{display:none}.calendar-day.week-day .calendar-day-number{margin-bottom:4px;font-size:16px;font-weight:600}.calendar-day.week-day .calendar-day-number.today-number{justify-content:center;align-items:center;color:#0a0a0a!important;background-color:#c7b299!important;border-radius:50%!important;width:28px!important;height:28px!important;font-weight:700!important;display:inline-flex!important}.appointment-popup-overlay{z-index:1000;background:0 0;animation:.15s fadeIn;position:fixed;inset:0}.appointment-popup{z-index:1001;background:#141414;border:1px solid #2a2a2a;border-radius:12px;width:280px;padding:16px;animation:.15s popupSlideIn;box-shadow:0 4px 20px #00000080}.popup-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.popup-client-name{color:#e5e5e5;font-size:16px;font-weight:600}.popup-close{color:#888;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1;transition:color .2s}.popup-close:hover{color:#e5e5e5}.popup-time{color:#c7b299;margin-bottom:4px;font-size:14px;font-weight:500}.popup-service{color:#888;margin-bottom:8px;font-size:13px}.popup-pricing{border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a;margin-bottom:8px;padding:8px 0}.popup-price-row{color:#888;justify-content:space-between;padding:2px 0;font-size:13px;display:flex}.popup-price-row.remaining{color:#c7b299;font-weight:600}.popup-status{margin-bottom:12px}.popup-status .status-badge{text-transform:capitalize;border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.popup-status .status-badge.scheduled{color:#6b8e6b;background:#4a5d4a4d}.popup-status .status-badge.available{color:#c7b299;background:#c7b29933}.popup-status .status-badge.cancelled{color:#ef4444;background:#ef444433}.popup-view-details{color:#c7b299;cursor:pointer;background:0 0;border:1px solid #2a2a2a;border-radius:8px;width:100%;padding:8px;font-size:13px;font-weight:500;transition:all .2s}.popup-view-details:hover{background:#1a1a1a;border-color:#c7b299}.month-appointment-info{cursor:pointer;transition:color .2s}.month-appointment-info:hover{color:#c7b299}.appointment-item{cursor:pointer}.week-empty-day{color:#555;text-align:center;margin-top:40px;padding:8px 0;font-size:13px;font-style:italic}.expanded-day-popup{max-height:350px;overflow-y:auto}.expanded-day-list{margin-top:8px}.expanded-day-item{cursor:pointer;border-left:3px solid #c7b299;border-radius:6px;align-items:center;gap:8px;margin-bottom:4px;padding:8px;transition:background .2s;display:flex}.expanded-day-item:hover{background:#1a1a1a}.expanded-day-time{color:#c7b299;min-width:70px;font-size:12px;font-weight:600}.expanded-day-client{color:#e5e5e5;font-size:13px;font-weight:500}.expanded-day-service{color:#888;margin-left:auto;font-size:12px}.month-appointment-info.apt-confirmed{color:#e5e5e5!important;background:#4a5d4a!important;border-left-color:#6b8e6b!important}.month-appointment-info.apt-confirmed:hover{background:#5a7a5a!important}.month-appointment-info.apt-pending{color:#e5e5e5!important;background:#8b7355!important;border-left-color:#b89b6f!important}.month-appointment-info.apt-pending:hover{background:#a0886a!important}.appointment-item.apt-confirmed{color:#e5e5e5!important;background:#4a5d4a!important;border-left-color:#6b8e6b!important}.appointment-item.apt-confirmed:hover{background:#5a7a5a!important}.appointment-item.apt-pending{color:#e5e5e5!important;background:#8b7355!important;border-left-color:#b89b6f!important}.appointment-item.apt-pending:hover{background:#a0886a!important}.expanded-day-item.apt-confirmed{border-left-color:#6b8e6b!important}.expanded-day-item.apt-pending{border-left-color:#b89b6f!important}
