.calendar-wrapper{max-width:960px;margin:0 auto}.calendar-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}.calendar-nav h3{min-width:220px;text-align:center;font-size:var(--text-3xl);color:var(--dark)}.calendar-nav-btn{width:48px;height:48px;border-radius:var(--radius-round);background:var(--primary);color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--duration-normal) var(--ease-out);border:none;font-size:var(--text-xl);box-shadow:0 4px 16px #e8762b4d}.calendar-nav-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 8px 24px #e8762b66}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.calendar-day-label{text-align:center;font-family:var(--font-heading);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:1px;color:var(--gray-400);padding:var(--space-md) 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-cell{min-height:120px;background:var(--white);border-radius:var(--radius-sm);padding:var(--space-sm);position:relative;transition:all var(--duration-normal) var(--ease-out);border:1px solid var(--gray-100)}.calendar-cell.other-month{background:var(--gray-50);opacity:.5}.calendar-cell.today{border-color:var(--primary);box-shadow:inset 0 0 0 2px var(--primary)}.calendar-cell-date{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--gray-400);margin-bottom:var(--space-xs)}.calendar-cell.today .calendar-cell-date{color:var(--primary);font-weight:800}.calendar-event{display:block;margin-top:var(--space-xs);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:all var(--duration-normal) var(--ease-out);text-decoration:none;color:inherit}.calendar-event:hover{transform:scale(1.03);box-shadow:var(--shadow-md)}.calendar-event-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-sm);display:block}.calendar-event-info{padding:6px 8px;background:var(--primary);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.calendar-event-title{font-family:var(--font-heading);font-size:.7rem;font-weight:700;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-detail-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;display:none;align-items:center;justify-content:center;padding:var(--space-xl)}.event-detail-overlay.active{display:flex}.event-detail-card{background:var(--white);border-radius:var(--radius-lg);max-width:500px;width:100%;overflow:hidden;box-shadow:var(--shadow-xl);animation:modalPop .4s var(--ease-spring)}@keyframes modalPop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.event-detail-img{width:100%;aspect-ratio:16/9;object-fit:cover}.event-detail-body{padding:var(--space-2xl)}.event-detail-body h3{margin-bottom:var(--space-sm)}.event-detail-body .event-date{font-size:var(--text-sm);color:var(--primary);font-weight:600;margin-bottom:var(--space-lg)}.event-detail-body p{color:var(--gray-500);font-size:var(--text-base);line-height:1.8;margin-bottom:var(--space-xl)}.event-detail-actions{display:flex;gap:var(--space-md)}.event-detail-actions .btn{flex:1;justify-content:center}.event-detail-close{position:absolute;top:var(--space-lg);right:var(--space-lg);width:40px;height:40px;border-radius:var(--radius-round);background:#ffffffe6;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;z-index:10;transition:all var(--duration-fast) var(--ease-out)}.event-detail-close:hover{background:var(--white);box-shadow:var(--shadow-md)}.event-detail-close svg{width:20px;height:20px;stroke:var(--dark);stroke-width:2.5}@media(max-width:768px){.calendar-cell{min-height:80px;padding:4px}.calendar-event-info{padding:3px 5px}.calendar-event-title{font-size:.6rem}.calendar-nav h3{font-size:var(--text-xl);min-width:160px}.calendar-event-img{aspect-ratio:1}}@media(max-width:480px){.calendar-cell{min-height:60px}.calendar-day-label{font-size:.65rem}.calendar-event-img{display:none}}
