.calendario{background:#f5f5f5;min-height:100vh;padding-top:90px}@media(max-width:1280px){.calendario{padding-top:40px}}.calendario__header{background:#0a4952;color:#fff;padding:2rem 3rem}.calendario__header,.calendario__header-top{align-items:center;display:flex;justify-content:center}.calendario__header-top{gap:2rem}.calendario__logo{max-width:140px}.calendario__titulo h1{color:#fff;font-size:2.5rem;font-weight:800;margin:0 0 .5rem}.calendario__titulo p{color:#fff;font-size:1.1rem;margin:0;opacity:.9}.calendario__content{display:grid;gap:2rem;grid-template-columns:300px 1fr;margin:0 auto;max-width:1400px;padding:2rem}.calendario__sidebar{display:flex;flex-direction:column;gap:1.5rem}.calendario__calendar{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:1.5rem}.calendario__calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.calendario__calendar-header h3{color:#1a1a1a;font-size:1.1rem;font-weight:700;margin:0}.calendario__nav-btn{align-items:center;background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .3s;width:36px}.calendario__nav-btn:hover{background:#0a4952;color:#fff}.calendario__nav-btn svg{height:18px;width:18px}.calendario__today-btn{background:#0a4952;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;margin-bottom:1rem;padding:.6rem;transition:all .3s;width:100%}.calendario__today-btn:hover{background:#3d1fa8}.calendario__weekdays{display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem}.calendario__weekdays span{color:#999;font-size:.75rem;font-weight:600;padding:.5rem 0;text-align:center}.calendario__days{display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.calendario__day{align-items:center;aspect-ratio:1;background:none;border:none;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;justify-content:center;position:relative;transition:all .2s}.calendario__day:hover:not(:disabled){background:#f0f0f0}.calendario__day--empty{cursor:default}.calendario__day--today{background:#e8e0ff;color:#0a4952;font-weight:700}.calendario__day--selected{background:#0a4952!important;color:#fff!important;font-weight:700}.calendario__day--has-events .calendario__day-dot{background:#e9b02d;border-radius:50%;bottom:4px;height:5px;left:50%;position:absolute;transform:translate(-50%);width:5px}.calendario__day--selected .calendario__day-dot{background:#fff}.calendario__filters{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:1.5rem}.calendario__filters h4{color:#1a1a1a;font-size:.95rem;font-weight:700;margin:0 0 1rem}.calendario__filter-list{display:flex;flex-direction:column;gap:.5rem}.calendario__filter-btn{align-items:center;background:#f5f5f5;border:none;border-radius:10px;color:#333;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.75rem;padding:.75rem 1rem;transition:all .3s}.calendario__filter-btn:hover{background:#eee}.calendario__filter-btn--active{color:#fff}.calendario__filter-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.calendario__filter-btn--active .calendario__filter-dot{background:#fff!important}.calendario__main{display:flex;flex-direction:column;gap:1.5rem}.calendario__events-header{align-items:center;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;justify-content:space-between;padding:1.5rem 2rem}.calendario__events-header h2{color:#1a1a1a;font-size:1.5rem;font-weight:700;margin:0;text-transform:capitalize}.calendario__events-count{background:#0a4952;border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;padding:.5rem 1rem}.calendario__loading{align-items:center;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:4rem 2rem}.calendario__loading p{color:#666;font-size:.95rem}.spinner{animation:spin-5646cc49 1s linear infinite;border:4px solid rgba(10,73,82,.1);border-radius:50%;border-top-color:#0a4952;height:40px;width:40px}@keyframes spin-5646cc49{to{transform:rotate(1turn)}}.calendario__events-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.calendario__event-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;overflow:hidden;transition:all .3s}.calendario__event-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-6px)}.calendario__event-image{aspect-ratio:1080/1350;background:#1a1a1a;background-position:50%;background-size:cover;cursor:pointer;overflow:hidden;position:relative;width:100%}.calendario__event-image:before{background-image:inherit;background-position:50%;background-size:cover;content:"";filter:blur(20px);inset:-10px;position:absolute;z-index:0}.calendario__event-image:after{background:#0006;content:"";inset:0;position:absolute;z-index:1}.calendario__event-image img{height:100%;-o-object-fit:contain;object-fit:contain;position:relative;transition:transform .3s;width:100%;z-index:2}.calendario__event-card:hover .calendario__event-image img{transform:scale(1.05)}.calendario__event-image-placeholder{align-items:center;background:linear-gradient(135deg,#e5e7eb,#d1d5db);display:flex;height:100%;justify-content:center;width:100%}.calendario__event-image-placeholder svg{color:#9ca3af;height:48px;width:48px}.calendario__event-category{border-radius:20px;box-shadow:0 2px 8px #0003;color:#fff;font-size:.7rem;font-weight:700;left:12px;letter-spacing:.5px;padding:.35rem .75rem;position:absolute;text-transform:uppercase;top:12px;z-index:3}.calendario__event-body{display:flex;flex:1;flex-direction:column;padding:1.25rem}.calendario__event-body h3{color:#1a1a1a;cursor:pointer;font-size:1.1rem;font-weight:700;line-height:1.3;margin:0 0 .75rem;transition:color .3s}.calendario__event-body h3:hover{color:#0a4952}.calendario__event-meta{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.calendario__event-meta-item{align-items:center;color:#666;display:flex;font-size:.8rem;gap:.5rem}.calendario__event-meta-item svg{color:#0a4952;flex-shrink:0;height:14px;width:14px}.calendario__event-summary{color:#666;display:-webkit-box;flex:1;font-size:.85rem;-webkit-line-clamp:3;line-height:1.5;margin:0 0 1rem;-webkit-box-orient:vertical;overflow:hidden}.calendario__event-footer{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.calendario__no-events{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:4rem 2rem;text-align:center}.calendario__no-events svg{color:#ccc;height:80px;margin-bottom:1.5rem;width:80px}.calendario__no-events h3{color:#1a1a1a;font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.calendario__no-events p{color:#666;font-size:1rem;margin:0}@media(max-width:1024px){.calendario__content{gap:1.5rem;padding:1.5rem}.calendario__events-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media(max-width:900px){.calendario__content{grid-template-columns:1fr}.calendario__sidebar{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.calendario__events-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:768px){.calendario__header{padding:1.25rem 1rem}.calendario__header-top{align-items:center;flex-direction:row;gap:1rem;justify-content:flex-start}.calendario__logo{flex-shrink:0;max-width:60px}.calendario__titulo{text-align:left}.calendario__titulo h1{font-size:1.1rem;margin-bottom:.25rem}.calendario__titulo p{font-size:.75rem;line-height:1.3}.calendario__content{gap:1rem;padding:1rem}.calendario__sidebar{grid-template-columns:1fr}.calendario__calendar,.calendario__filters{padding:1.25rem}.calendario__events-header{align-items:flex-start;flex-direction:column;gap:.75rem;padding:1.25rem}.calendario__events-header h2{font-size:1.1rem}.calendario__events-count{font-size:.8rem;padding:.4rem .85rem}.calendario__events-grid{gap:1rem;grid-template-columns:1fr}.calendario__event-card{display:flex;flex-direction:row;overflow:visible}.calendario__event-image{aspect-ratio:1;border-radius:12px 0 0 12px;min-width:120px;width:120px}.calendario__event-body{flex:1;padding:1rem}.calendario__event-body h3{font-size:1rem;margin-bottom:.5rem}.calendario__event-meta{gap:.3rem;margin-bottom:.5rem}.calendario__event-meta-item{font-size:.75rem}.calendario__event-summary{font-size:.8rem;-webkit-line-clamp:2;margin-bottom:.75rem}.calendario__event-footer{flex-direction:column-reverse;gap:.4rem}.calendario__event-links{flex-direction:column;gap:.4rem}.calendario__event-link{font-size:.7rem;padding:.45rem .65rem}.calendario__event-btn{font-size:.75rem;padding:.5rem .85rem}.calendario__no-events{padding:3rem 1.5rem}.calendario__no-events svg{height:60px;width:60px}.calendario__no-events h3{font-size:1.25rem}.calendario__no-events p{font-size:.9rem}}@media(max-width:480px){.calendario__content{padding:.75rem}.calendario__calendar{padding:1rem}.calendario__calendar-header h3{font-size:1rem}.calendario__nav-btn{height:32px;width:32px}.calendario__nav-btn svg{height:16px;width:16px}.calendario__today-btn{font-size:.85rem;padding:.5rem}.calendario__weekdays span{font-size:.7rem}.calendario__day{font-size:.8rem}.calendario__filters{padding:1rem}.calendario__filters h4{font-size:.9rem}.calendario__filter-btn{font-size:.85rem;padding:.65rem .85rem}.calendario__events-header{padding:1rem}.calendario__event-card{flex-direction:column}.calendario__event-image{aspect-ratio:16/9;border-radius:12px 12px 0 0;width:100%}.calendario__event-body{padding:.85rem}.calendario__event-body h3{font-size:.95rem}.calendario__event-meta-item{font-size:.7rem}.calendario__event-summary{font-size:.75rem}}.calendario__event-links{display:flex;flex-direction:row;gap:.5rem}.calendario__event-link{align-items:center;border-radius:6px;color:#fff;display:inline-flex;flex:1;font-size:.75rem;font-weight:600;gap:.4rem;justify-content:center;padding:.5rem .75rem;text-decoration:none;transition:all .3s}.calendario__event-link svg{height:13px;width:13px}.calendario__event-link--bases{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.calendario__event-link--bases:hover{background:linear-gradient(135deg,#8b5cf6,#a78bfa);transform:translateY(-1px)}.calendario__event-link--inscripcion{background:linear-gradient(135deg,#10b981,#059669)}.calendario__event-link--inscripcion:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px)}.calendario__event-btn{background:#0a4952;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:.6rem 1rem;transition:all .3s;width:100%}.calendario__event-btn:hover{background:#083d44;transform:translateY(-2px)}.modal-overlay{align-items:center;background:#000c;display:flex;inset:0;justify-content:center;padding:2rem;position:fixed;z-index:10000}.modal{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:95vw;overflow:hidden;position:relative}.modal__close{align-items:center;background:#00000080;border:none;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:background .3s;width:40px;z-index:10}.modal__close:hover{background:#000000b3}.modal__close svg{color:#fff;height:20px;width:20px}.modal__layout{display:grid;grid-template-columns:auto 1fr}.modal__left{align-items:center;background:#1a1a1a;justify-content:center}.modal__left,.modal__right{display:flex;max-height:85vh}.modal__right{flex-direction:column;max-width:500px;min-width:420px;overflow-y:auto}.modal__header{background:#0a4952;color:#fff;padding:1.5rem}.modal__category{background:#fff3;border-radius:20px;color:#fff;display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:1px;margin-bottom:.75rem;padding:.3rem .85rem;text-transform:uppercase}.modal__header h1,.modal__header h2{color:#fff;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0}.modal__body{flex:1;overflow-y:auto;padding:1.5rem}.modal__body,.modal__info{display:flex;flex-direction:column}.modal__info{gap:1rem;margin-bottom:1.5rem}.modal__info-item{align-items:flex-start;display:flex;gap:.75rem}.modal__info-item svg{color:#0a4952;flex-shrink:0;height:20px;margin-top:2px;width:20px}.modal__info-item div{display:flex;flex-direction:column;gap:.15rem}.modal__info-item strong{color:#999;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.modal__info-item span{color:#333;font-size:.95rem;font-weight:500}.modal__description{flex:1;margin-bottom:1.5rem}.modal__description h3{color:#1a1a1a;font-size:1rem;font-weight:700;margin:0 0 .75rem}.modal__description p{color:#666;font-size:.9rem;line-height:1.7;margin:0;white-space:pre-line}.modal__actions{border-top:1px solid #eee;display:flex;gap:.75rem;margin-top:auto;padding-top:1rem}.modal__action-btn{align-items:center;border-radius:10px;color:#fff;display:flex;flex:1;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.85rem 1rem;text-decoration:none;transition:all .3s}.modal__action-btn svg{height:18px;width:18px}.modal__action-btn--bases{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.modal__action-btn--bases:hover{background:linear-gradient(135deg,#8b5cf6,#a78bfa);transform:translateY(-2px)}.modal__action-btn--inscripcion{background:linear-gradient(135deg,#10b981,#059669)}.modal__action-btn--inscripcion:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px)}.modal-enter-active,.modal-leave-active{transition:opacity .3s}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .3s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{transform:scale(.9)}@media(max-width:1024px){.modal__right{max-width:450px;min-width:380px}}@media(max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:20px 20px 0 0;max-height:90vh;max-width:100%;width:100%}.modal__layout{grid-template-columns:1fr;max-height:90vh}.modal__left{max-height:40vh;min-height:40vh}.modal__carousel-track img{height:auto;max-height:40vh;width:100%}.modal__right{max-height:50vh;max-width:none;min-width:auto}.modal__close{background:#000000b3;height:36px;right:.75rem;top:.75rem;width:36px}.modal__close svg{height:18px;width:18px}.modal__header{padding:1.25rem}.modal__category{font-size:.65rem;padding:.25rem .75rem}.modal__header h1,.modal__header h2{font-size:1.15rem}.modal__body{padding:1.25rem}.modal__info{gap:.85rem;margin-bottom:1.25rem}.modal__info-item svg{height:18px;width:18px}.modal__info-item strong{font-size:.7rem}.modal__info-item span{font-size:.9rem}.modal__description h3{font-size:.95rem}.modal__description p{font-size:.85rem}.modal__actions{flex-direction:column;gap:.5rem}.modal__action-btn{font-size:.85rem;padding:.75rem}.modal__carousel-btn{height:32px;width:32px}.modal__carousel-btn svg{height:16px;width:16px}}@media(max-width:480px){.modal{border-radius:16px 16px 0 0}.modal__left{min-height:35vh}.modal__carousel-track img,.modal__left{max-height:35vh}.modal__close{height:32px;width:32px}.modal__close svg{height:16px;width:16px}.modal__header{padding:1rem}.modal__header h1,.modal__header h2{font-size:1rem}.modal__body{padding:1rem}.modal__info{gap:.75rem}.modal__info-item svg{height:16px;width:16px}.modal__info-item strong{font-size:.65rem}.modal__info-item span{font-size:.85rem}.modal__description h3{font-size:.9rem}.modal__description p{font-size:.8rem}.modal__action-btn{font-size:.8rem;padding:.7rem}.modal__action-btn svg{height:16px;width:16px}.modal__carousel-btn{height:28px;width:28px}.modal__carousel-btn svg{height:14px;width:14px}.modal__carousel-btn--prev{left:6px}.modal__carousel-btn--next{right:6px}.modal__carousel-dots{bottom:8px}.modal__carousel-dot{height:6px;width:6px}}.modal__carousel{position:relative}.modal__carousel,.modal__carousel-track{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.modal__carousel-track img{display:block;height:85vh;max-height:85vh;-o-object-fit:contain;object-fit:contain;width:auto}.modal__carousel-btn{align-items:center;background:#ffffffe6;border:none;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s;width:36px;z-index:10}.modal__carousel-btn:hover{background:#0a4952;color:#fff}.modal__carousel-btn--prev{left:10px}.modal__carousel-btn--next{right:10px}.modal__carousel-btn svg{height:18px;width:18px}.modal__carousel-dots{bottom:12px;display:flex;gap:6px;left:50%;position:absolute;transform:translate(-50%);z-index:10}.modal__carousel-dot{background:#ffffff80;border:none;border-radius:50%;cursor:pointer;height:8px;transition:all .3s;width:8px}.modal__carousel-dot--active{background:#fff;transform:scale(1.2)}
