:root{--event-lb-bg:#6366f126;--event-lb-color:#6366f1;--event-lb-dots:#818cf8;--event-external-bg:#f59e0b26;--event-external-color:#f59e0b;--event-external-dots:#fbbf24;--event-class-bg:#ec489926;--event-class-color:#ec4899;--event-class-dots:#f472b6;--calendar-border:#e2e8f0;--calendar-header-bg:#f8fafc}.events-container{max-width:1000px;min-height:calc(100vh - 80px);margin:60px auto;padding:1.5rem}.events-header{justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;display:flex}.events-title-section h1{background:linear-gradient(135deg,#e53e3e,#805ad5);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.25rem;font-size:2.25rem;font-weight:800}.events-title-section p{color:#718096;font-size:1rem}.calendar-controls{align-items:center;gap:1.5rem;display:flex}.view-toggle{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;padding:.25rem;display:flex}.view-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.view-btn.active{color:#1a202c;background:#fff;box-shadow:0 4px 12px #0000000d}.calendar-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:24px;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000000a}.calendar-nav{background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.current-month{color:#1a202c;font-size:1.25rem;font-weight:700}.nav-btns{gap:.75rem;display:flex}.nav-btn{cursor:pointer;color:#4a5568;background:#fff;border:1px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.nav-btn:hover{background:#f8fafc;border-color:#cbd5e0}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.weekday-header{text-align:center;color:#94a3b8;text-transform:uppercase;letter-spacing:.1em;background:#f8fafc;border-bottom:1px solid #f1f5f9;padding:.75rem;font-size:.75rem;font-weight:600}.calendar-day{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;min-height:100px;padding:.5rem;transition:background .2s;position:relative}.calendar-day:nth-child(7n){border-right:none}.calendar-day.other-month{background:#fafafa}.calendar-day.today{background:#e53e3e05}.day-number{color:#4a5568;text-align:center;border-radius:50%;width:28px;height:28px;margin-bottom:.75rem;font-weight:600;line-height:28px;display:inline-block}.calendar-day.today .day-number{color:#fff;background:#e53e3e}.day-events{flex-direction:column;gap:4px;display:flex}.event-item{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:6px;padding:4px 8px;font-size:.75rem;font-weight:600;transition:transform .1s,filter .1s;overflow:hidden}.event-item:hover{filter:brightness(.95);transform:translateY(-1px)}.event-lb{background:var(--event-lb-bg);color:var(--event-lb-color);border-left:3px solid var(--event-lb-color)}.event-external{background:var(--event-external-bg);color:var(--event-external-color);border-left:3px solid var(--event-external-color)}.event-class{background:var(--event-class-bg);color:var(--event-class-color);border-left:3px solid var(--event-class-color)}.agenda-list{flex-direction:column;gap:2rem;padding:2rem;display:flex}.agenda-day-group{grid-template-columns:120px 1fr;gap:2rem;display:grid}.agenda-date{text-align:right}.agenda-date h3{color:#1a202c;font-size:1.5rem;font-weight:800}.agenda-date p{color:#718096;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}.agenda-events{flex-direction:column;gap:1rem;display:flex}.agenda-event-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:1.25rem;transition:all .2s;display:flex}.agenda-event-card:hover{background:#fff;border-color:#cbd5e0;transform:translate(4px);box-shadow:0 4px 12px #0000000d}.event-info h4{color:#1a202c;margin-bottom:.25rem;font-size:1.1rem;font-weight:700}.event-meta{color:#718096;gap:1rem;font-size:.85rem;display:flex}.event-badge{text-transform:uppercase;border-radius:20px;padding:4px 12px;font-size:.7rem;font-weight:700}.modal-overlay{z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.event-modal{background:#fff;border-radius:24px;width:100%;max-width:600px;animation:.3s cubic-bezier(.4,0,.2,1) modalIn;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-banner{height:12px}.modal-content{padding:2.5rem;position:relative}.close-modal{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:1.5rem;right:1.5rem}.modal-header h2{margin-bottom:1.5rem;font-size:2rem;font-weight:800;line-height:1.2}.detail-grid{grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem;display:grid}.detail-item h5{color:#94a3b8;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:.75rem}.detail-item p{color:#1a202c;align-items:center;gap:.5rem;font-weight:600;display:flex}.modal-description{color:#4a5568;margin-bottom:2.5rem;line-height:1.7}.modal-actions{border-top:1px solid #f1f5f9;gap:1rem;padding-top:2rem;display:flex}.btn-register{color:#fff;cursor:pointer;background:#e53e3e;border:none;border-radius:12px;flex:2;padding:1rem;font-weight:700;transition:all .2s}.btn-ical{color:#4a5568;cursor:pointer;background:#f1f5f9;border:none;border-radius:12px;flex:1;padding:1rem;font-weight:600}.category-legend{background:#fff;border:1px solid #e2e8f0;border-radius:16px;gap:1.5rem;width:fit-content;margin-bottom:1.5rem;padding:1rem 1.5rem;display:flex}.legend-item{color:#4a5568;align-items:center;gap:.75rem;font-size:.9rem;font-weight:600;display:flex}.dot{border-radius:50%;width:12px;height:12px}@media (max-width:768px){.events-header{flex-direction:column;align-items:flex-start}.calendar-grid{font-size:.8rem}.weekday-header{padding:.5rem;font-size:.6rem}.calendar-day{min-height:80px;padding:.4rem}.event-item{padding:2px 4px;font-size:.6rem}.category-legend{flex-direction:column;gap:.75rem;width:100%}}
