.page-hero{padding:calc(var(--header-height) + var(--space-4xl)) 0 var(--space-4xl);background:var(--color-surface);text-align:center}.page-hero h1{margin:var(--space-md) 0}.page-hero-text{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto}.schedule-loading{text-align:center;padding:var(--space-4xl);color:var(--color-text-muted)}.loading-spinner{border:3px solid var(--color-border-light);border-top-color:var(--color-primary);width:40px;height:40px;margin:0 auto var(--space-md);border-radius:50%;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.calendar-filters{gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap;align-items:flex-end;display:flex}.filter-group{gap:var(--space-xs);flex-direction:column;display:flex}.filter-group label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.filter-group select{padding:var(--space-sm) var(--space-md);padding-right:var(--space-2xl);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B7355' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm) center;min-width:180px}.filter-group select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #8b73551a}.btn-today{padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm)}.calendar-header{justify-content:center;align-items:center;gap:var(--space-xl);margin-bottom:var(--space-xl);display:flex}.current-month{font-size:var(--text-2xl);text-align:center;min-width:250px;font-weight:600}.nav-btn{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-background);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.nav-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.calendar-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.calendar-weekday{padding:var(--space-md);text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-weight:600}.calendar-day{min-height:100px;padding:var(--space-sm);border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);background:var(--color-background);transition:background var(--transition-fast)}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover,.calendar-day.other-month{background:var(--color-surface)}.calendar-day.other-month .day-number{color:var(--color-text-muted)}.calendar-day.today{background:#8b735514}.calendar-day.today .day-number{background:var(--color-primary);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:28px;height:28px;display:flex}.day-number{font-size:var(--text-sm);color:var(--color-text-primary);margin-bottom:var(--space-xs);font-weight:500}.day-programs{flex-direction:column;gap:2px;display:flex}.program-chip{width:100%;color:var(--color-primary);background:var(--color-accent-light);border-radius:var(--radius-sm);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;transition:all var(--transition-fast);border:none;padding:4px 6px;font-size:10px;font-weight:500;display:block;overflow:hidden}.program-chip:hover{background:var(--color-primary);color:#fff}.program-chip.online{color:#1565c0;background:#e3f2fd}.program-chip.online:hover{color:#fff;background:#1565c0}.program-chip.hybrid{color:#7b1fa2;background:#f3e5f5}.program-chip.hybrid:hover{color:#fff;background:#7b1fa2}.program-chip .mode-indicator{vertical-align:middle;margin-right:4px;display:inline-flex}.mode-badge{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);align-items:center;padding:2px 8px;font-weight:500;display:inline-flex}.mode-badge.in-person{color:#2e7d32;background:#e8f5e9}.mode-badge.online{color:#1565c0;background:#e3f2fd}.mode-badge.hybrid{color:#7b1fa2;background:#f3e5f5}.modal-badges{gap:var(--space-sm);flex-wrap:wrap;display:flex}.calendar-legend{gap:var(--space-xl);margin-top:var(--space-lg);justify-content:center;display:flex}.legend-item{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.legend-dot{border-radius:var(--radius-full);width:12px;height:12px}.today-dot{background:var(--color-primary)}.program-dot{background:var(--color-accent-light);border:2px solid var(--color-primary)}.upcoming-grid{gap:var(--space-md);flex-direction:column;display:flex}.upcoming-card{align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-background);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);display:flex}.upcoming-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translate(4px)}.upcoming-date{background:var(--color-primary);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.date-day{font-size:var(--text-xl);color:#fff;font-weight:700;line-height:1}.date-month{font-size:var(--text-xs);color:#fffc;text-transform:uppercase}.upcoming-info{flex:1}.upcoming-info h3{font-size:var(--text-lg);margin-bottom:var(--space-xs)}.upcoming-meta{gap:var(--space-lg);flex-wrap:wrap;display:flex}.meta-item{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.meta-item svg{color:var(--color-accent)}.upcoming-arrow{color:var(--color-text-muted);transition:transform var(--transition-fast)}.upcoming-card:hover .upcoming-arrow{color:var(--color-primary);transform:translate(4px)}.modal-overlay{z-index:2000;padding:var(--space-lg);background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-background);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;animation:.3s slideUp;position:relative;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{top:var(--space-md);right:var(--space-md);background:var(--color-surface);border-radius:var(--radius-full);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);z-index:1;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.modal-close:hover{background:var(--color-primary);color:#fff}.modal-header{padding:var(--space-2xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border-light)}.program-badge{padding:var(--space-xs) var(--space-md);background:var(--color-accent-light);color:var(--color-primary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);margin-bottom:var(--space-md);font-weight:600;display:inline-block}.modal-header h2{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}.program-date{font-size:var(--text-base);color:var(--color-text-secondary)}.modal-body{padding:var(--space-2xl)}.program-details{gap:var(--space-md);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.detail-row{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.detail-item{align-items:flex-start;gap:var(--space-md);display:flex}.detail-item svg{color:var(--color-accent);flex-shrink:0;margin-top:2px}.detail-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;display:block}.detail-value{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:500;display:block}.program-description{margin-bottom:var(--space-xl)}.program-description h3{font-size:var(--text-base);margin-bottom:var(--space-sm)}.program-description p{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7}.testimonials-carousel{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-xl)}.testimonials-carousel h3{font-size:var(--text-base);margin-bottom:var(--space-lg);text-align:center}.carousel-container{align-items:center;gap:var(--space-md);display:flex}.carousel-btn{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-background);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.carousel-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.carousel-btn:disabled{opacity:.3;cursor:not-allowed}.carousel-content{flex:1;overflow:hidden}.testimonial-slide{text-align:center}.testimonial-slide .quote-icon{color:var(--color-accent-light);margin-bottom:var(--space-sm)}.testimonial-slide .testimonial-text{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md);font-style:italic;line-height:1.7}.testimonial-slide .testimonial-author{flex-direction:column;gap:2px;display:flex}.testimonial-slide .testimonial-author strong{font-size:var(--text-sm);color:var(--color-text-primary)}.testimonial-slide .testimonial-author span{font-size:var(--text-xs);color:var(--color-text-muted)}.carousel-dots{justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);display:flex}.carousel-dot{border-radius:var(--radius-full);background:var(--color-border);cursor:pointer;width:8px;height:8px;transition:all var(--transition-fast);border:none}.carousel-dot.active{background:var(--color-primary);width:24px}.modal-footer{padding:var(--space-xl) var(--space-2xl);border-top:1px solid var(--color-border-light);gap:var(--space-md);flex-wrap:wrap;display:flex}.modal-footer .btn{justify-content:center;align-items:center;gap:var(--space-sm);flex:1;min-width:150px;display:flex}.btn-large{padding:var(--space-md) var(--space-xl)}@media (max-width:1024px){.calendar-day{min-height:80px}.program-chip{padding:3px 5px;font-size:9px}}@media (max-width:768px){.calendar-filters{flex-direction:column;align-items:stretch}.filter-group select{min-width:100%}.btn-today{align-self:flex-start}.calendar-day{min-height:60px;padding:4px}.day-number{font-size:var(--text-xs)}.calendar-day.today .day-number{width:22px;height:22px}.program-chip{padding:2px 4px;font-size:8px}.current-month{font-size:var(--text-lg);min-width:auto}.detail-row{gap:var(--space-md);grid-template-columns:1fr}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}.upcoming-card{flex-wrap:wrap}.upcoming-date{width:50px;height:50px}.date-day{font-size:var(--text-lg)}}@media (max-width:480px){.calendar-weekday{font-size:var(--text-xs);padding:var(--space-sm)}.calendar-day{min-height:50px}.day-programs{display:none}.calendar-day.has-programs:after{content:"";background:var(--color-primary);border-radius:var(--radius-full);width:6px;height:6px;margin-top:2px;display:block}}.btn-add-program{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.admin-badge{align-items:center;gap:var(--space-xs);background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;display:inline-flex}.add-program-modal{max-width:650px}.add-program-form{gap:var(--space-lg);flex-direction:column;display:flex}.add-program-form .form-group{gap:var(--space-sm);flex-direction:column;display:flex}.add-program-form label{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:500}.add-program-form .required{color:#dc2626}.add-program-form .form-row{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.add-program-form input,.add-program-form select,.add-program-form textarea{width:100%;padding:var(--space-md);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.add-program-form input:focus,.add-program-form select:focus,.add-program-form textarea:focus{border-color:var(--color-primary);background:var(--color-background);outline:none;box-shadow:0 0 0 3px #8b73551a}.add-program-form textarea{resize:vertical;min-height:100px}.add-program-form select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B7355' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;padding-right:var(--space-2xl)}.form-error{align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);color:#dc2626;font-size:var(--text-sm);background:#fef2f2;border:1px solid #fecaca;display:flex}.form-error svg{flex-shrink:0}.form-actions{gap:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light);margin-top:var(--space-md);justify-content:flex-end;display:flex}.form-actions .btn{justify-content:center;align-items:center;gap:var(--space-sm);min-width:120px;display:flex}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}.success-message{text-align:center;padding:var(--space-xl)}.success-message .success-icon{width:80px;height:80px;margin:0 auto var(--space-lg);border-radius:var(--radius-full);color:#10b981;background:#ecfdf5;justify-content:center;align-items:center;display:flex}.success-message h3{font-size:var(--text-xl);margin-bottom:var(--space-sm);color:var(--color-text-primary)}.success-message p{color:var(--color-text-secondary)}@media (max-width:768px){.btn-add-program{justify-content:center;width:100%;margin-left:0}.add-program-form .form-row{gap:var(--space-lg);grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}
