.calendar{background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);overflow:hidden;width:100%}.calendar__header{background:linear-gradient(180deg,var(--bg-secondary) 0,var(--surface-primary) 100%);border-bottom:1px solid var(--border-primary);padding:var(--spacing-3) var(--spacing-4)}.calendar__navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.calendar__month-navigation{display:flex;align-items:center;gap:var(--spacing-4)}.calendar__current-period{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);min-width:160px;text-align:center}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);border-collapse:collapse}.calendar__weekday-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);padding:var(--spacing-2);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.calendar__day{border-right:1px solid var(--border-muted);border-bottom:1px solid var(--border-muted);padding:var(--spacing-1) var(--spacing-2);background:var(--surface-primary);position:relative;transition:var(--transition-fast)}.calendar__day:hover{background:var(--interactive-hover)}.calendar__day:nth-child(7n){border-right:none}.calendar__day--other-month{background:var(--bg-secondary);color:var(--text-disabled)}.calendar__day--today{background:color-mix(in srgb,var(--color-error-dark) 5%,transparent);border-color:var(--brand-red-light)}.calendar__day--selected{background:var(--brand-red-lightest);border-color:var(--brand-red-primary)}.calendar__day-number{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--spacing-2);line-height:1}.calendar__day--other-month .calendar__day-number{color:var(--text-disabled)}.calendar__day--today .calendar__day-number{color:var(--brand-red-primary);font-weight:var(--font-weight-semibold)}.calendar__events{display:flex;flex-direction:column;gap:var(--spacing-1);min-height:50px}.calendar__event{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);line-height:1.3;cursor:pointer;transition:var(--transition-fast)}.calendar__event:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}.calendar__event--masterclass{background:var(--color-info-bg);color:var(--color-info-dark)}.calendar__event--webinar{background:var(--color-success-bg);color:var(--color-success-dark)}.calendar__event--conference{background:var(--brand-red-lightest);color:var(--brand-red-dark)}.calendar__event--workshop{background:var(--color-warning-bg);color:var(--color-warning-dark)}.calendar__event--course{background:var(--bg-tertiary);color:var(--text-primary)}.calendar__event-time{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-1);opacity:.8}.calendar__event-title{display:block;font-weight:var(--font-weight-medium);line-height:1.2}.calendar__event-meta{display:flex;align-items:center;gap:var(--spacing-1);margin-top:var(--spacing-1);font-size:var(--font-size-xs);opacity:.8}.calendar__event-participants{display:inline-flex;align-items:center;gap:var(--spacing-1)}.calendar--mini{border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.calendar--mini .calendar__header{padding:var(--spacing-3) var(--spacing-4)}.calendar--mini .calendar__day{min-height:32px;padding:var(--spacing-1)}.calendar--mini .calendar__day-number{font-size:var(--font-size-xs);text-align:center;margin:0}.calendar--mini .calendar__events{display:none}.calendar--mini .calendar__day--has-events:after{content:"";position:absolute;bottom:var(--spacing-1);left:50%;transform:translateX(-50%);width:4px;height:4px;background:var(--brand-red-primary);border-radius:var(--radius-full)}.calendar__day{min-height:80px;padding:var(--spacing-1)}.calendar__event{font-size:var(--font-size-xs);padding:var(--spacing-1)}.calendar__event-title{overflow:hidden;text-overflow:ellipsis}@media (min-width:640px){.calendar__day{min-height:100px;padding:var(--spacing-2)}.calendar__event{padding:var(--spacing-1) var(--spacing-2)}.calendar__event-title{white-space:normal}.calendar__header{padding:var(--spacing-5) var(--spacing-6)}}@media (min-width:1024px){.calendar__day{min-height:120px;padding:var(--spacing-3)}.calendar__event{font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3)}.calendar__events{gap:var(--spacing-2)}.calendar__header{padding:var(--spacing-6)}}@media (min-width:1280px){.calendar__day{min-height:140px;padding:var(--spacing-4)}.calendar__events{gap:var(--spacing-2);min-height:100px}}@media (min-width:1536px){.calendar__day{min-height:160px;padding:var(--spacing-5)}.calendar__events{gap:var(--spacing-3);min-height:120px}.calendar__event{padding:var(--spacing-2) var(--spacing-4)}.calendar__event-meta{gap:var(--spacing-2)}}.calendar__legend{padding:var(--spacing-3) var(--spacing-4);background:var(--bg-secondary);border-top:1px solid var(--border-primary)}.calendar__legend-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin:0 0 var(--spacing-3) 0}.calendar__legend-items{display:flex;flex-wrap:wrap;gap:var(--spacing-3)}.calendar__legend-item{display:flex;align-items:center;gap:var(--spacing-2)}.calendar__legend-color{width:12px;height:12px;border-radius:var(--radius-sm);border:1px solid var(--border-alpha-medium)}.calendar__legend-color--masterclass{background:var(--color-info)}.calendar__legend-color--webinar{background:var(--color-success)}.calendar__legend-color--conference{background:var(--brand-red-primary)}.calendar__legend-color--workshop{background:var(--color-warning)}.calendar__legend-color--course{background:var(--text-muted)}.calendar__legend-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.calendar__loading{display:flex;align-items:center;justify-content:center;min-height:400px;flex-direction:column;gap:var(--spacing-4)}.calendar__loading-text{font-size:var(--font-size-lg);color:var(--text-secondary)}.calendar__empty{display:flex;align-items:center;justify-content:center;min-height:400px;flex-direction:column;gap:var(--spacing-4);padding:var(--spacing-8);text-align:center}.calendar__empty.js-hidden,.calendar__loading.js-hidden{display:none}.calendar__empty-icon{width:64px;height:64px;color:var(--icon-muted);margin-bottom:var(--spacing-2)}.calendar__empty-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin:0 0 var(--spacing-2) 0}.calendar__empty-text{font-size:var(--font-size-base);color:var(--text-secondary);margin:0 0 var(--spacing-6) 0;max-width:400px}.calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-primary);background:var(--surface-primary)}.calendar__toolbar-left{display:flex;align-items:center;gap:var(--spacing-3)}.calendar__filters{display:flex;align-items:center;gap:var(--spacing-2)}.calendar__format-filters{display:flex;align-items:center;gap:var(--spacing-3)}.calendar__toolbar-right{display:flex;align-items:center;gap:var(--spacing-3)}.calendar__search{width:220px}.calendar__count{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}@media (max-width:639px){.calendar__format-filters{flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-3)}.calendar__toolbar-right{flex-direction:column;align-items:stretch}.calendar__search{width:100%}.calendar__count{text-align:center}}@media (max-width:639px){.calendar__header{padding:var(--spacing-3) var(--spacing-4)}.calendar__navigation{flex-direction:column;gap:var(--spacing-3)}.calendar__month-navigation{flex-direction:row;justify-content:center;align-items:center;gap:var(--spacing-3)}.calendar__current-period{font-size:var(--font-size-base);min-width:auto}.calendar__toolbar{flex-direction:column;align-items:stretch;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4)}.calendar__toolbar-left{justify-content:center}.calendar__day{min-height:60px;padding:var(--spacing-1)}.calendar__events{min-height:40px;gap:1px}.calendar__event{padding:2px var(--spacing-1);font-size:var(--font-size-2xs)}.calendar__event-time{display:none}.calendar__event-meta{display:none}.calendar__legend{padding:var(--spacing-3) var(--spacing-4)}.calendar__legend-items{gap:var(--spacing-2)}}@media (min-width:640px) and (max-width:1023px){.calendar__day{min-height:90px}.calendar__event{cursor:pointer;touch-action:manipulation}}.calendar__day:focus{outline:2px solid var(--brand-red-primary);outline-offset:-2px;z-index:1}.calendar__event:focus{outline:2px solid var(--brand-red-primary);outline-offset:1px;z-index:2}.calendar__event-indicator{position:absolute;top:var(--spacing-1);right:var(--spacing-1);width:6px;height:6px;border-radius:var(--radius-full);background:var(--brand-red-primary)}.calendar__day--has-many-events .calendar__event-indicator{background:var(--color-warning)}.calendar__day--fully-booked .calendar__event-indicator{background:var(--color-error)}.calendar__more-events{padding:var(--spacing-1) var(--spacing-2);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--text-secondary);text-align:center;cursor:pointer;transition:var(--transition-fast)}.calendar__more-events:hover{background:var(--interactive-active);color:var(--text-primary)}