:root{--calendar-bg:var(--bg-primary);--calendar-border:var(--border-light);--calendar-hover:var(--bg-tertiary);--training-color:var(--color-training);--individual-color:var(--color-individual);--opengym-color:var(--color-opengym)}.calendar-container{background:var(--calendar-bg);border-radius:12px;border:1px solid var(--calendar-border);overflow:hidden;box-shadow:var(--shadow-md)}.calendar-header{padding:1.5rem;border-bottom:1px solid var(--calendar-border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.calendar-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.view-switcher{display:flex;gap:.5rem}.calendar-body{padding:1.5rem}@media(min-width:1400px) and (orientation:landscape){.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.day-column-header{text-align:center;padding:.5rem;background:var(--calendar-hover);border-radius:6px;margin-bottom:.5rem;border:1px solid var(--calendar-border)}.day-column-header.today{background:var(--text-primary);color:#fff}.day-weekday{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;color:var(--text-secondary)}.day-column-header.today .day-weekday{color:rgba(255,255,255,.9)}.day-date-number{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.day-column-header.today .day-date-number{color:#fff}.day-events{display:flex;flex-direction:column;gap:.4rem;min-height:200px}.event-card-compact{border-radius:4px;padding:.5rem;border-left:3px solid;background:var(--calendar-hover);transition:all .2s;cursor:pointer;font-size:.75rem}.event-card-compact:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.event-card-compact.training{border-left-color:var(--training-color)}.event-card-compact.individual{border-left-color:var(--individual-color)}.event-card-compact.opengym{border-left-color:var(--opengym-color)}.event-time-compact{font-weight:600;color:var(--text-primary);margin-bottom:.25rem;font-size:.7rem}.event-title-compact{display:flex;flex-direction:column;font-size:.75rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-title-compact .event-leader{font-size:.65rem;color:var(--text-muted);font-weight:400;font-style:italic}.event-title-compact .event-desc{font-size:.7rem;color:var(--text-secondary);font-weight:400}.empty-day{text-align:center;padding:.75rem .25rem;color:var(--text-secondary);font-size:.7rem}}.week-list,.events-list{display:flex;flex-direction:column;gap:.75rem}.day-section{margin-bottom:2rem}.day-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid var(--calendar-border)}.day-date{font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1}.day-name{font-size:1.125rem;font-weight:500;color:var(--text-secondary)}.event-card{border-radius:8px;padding:1rem;border-left:4px solid;background:var(--calendar-hover);transition:all .2s;cursor:pointer}.event-card:hover{box-shadow:var(--shadow-md);transform:translateX(4px)}.event-card.training{border-left-color:var(--training-color)}.event-card.individual{border-left-color:var(--individual-color)}.event-card.opengym{border-left-color:var(--opengym-color)}.event-time{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.event-title{display:flex;flex-direction:column;font-size:1rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.event-title .event-leader{font-size:.75rem;color:var(--text-muted);font-weight:400;font-style:italic}.event-title .event-desc{font-size:.875rem;color:var(--text-secondary);font-weight:400}.event-type{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;margin-top:.5rem}.event-type.training{background:rgba(194,14,26,.1);color:var(--training-color)}.event-type.individual{background:rgba(128,128,128,.1);color:var(--individual-color)}.event-type.opengym{background:rgba(194,182,14,.1);color:var(--opengym-color)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.empty-state-icon{font-size:3rem;margin-bottom:1rem}@media(max-width:768px){.calendar-header{flex-direction:column;align-items:stretch}.view-switcher{justify-content:stretch}.day-date{font-size:1.5rem}.day-name{font-size:1rem}}