:root{--ct-azul:#005f8f;--ct-naranja:#ff7f11;--ct-verde:#3A9F6B;--ct-morado:#8B5CF6;--ct-rosa:#EC4899;--ct-rojo:#EF4444;--ct-bg-light:#f8f9fa;--ct-text-dark:#212529;--ct-text-light:#6c757d;--ct-border:#dee2e6}.ct-calendar-wrapper *{box-sizing:border-box}.ct-calendar-wrapper{max-width:1200px;margin:40px auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#fff0;position:relative;clear:both;width:100%;overflow:visible!important}.ct-calendar-wrapper::before,.ct-calendar-wrapper::after{content:'';display:table;clear:both}.ct-calendar-header{background:radial-gradient(circle at 0% 0%,rgb(59 130 246 / .22),transparent 60%),radial-gradient(circle at 100% 0%,rgb(56 189 248 / .24),transparent 55%),linear-gradient(135deg,#ffffff,#f0f9ff);color:#0f172a!important;padding:30px;border-radius:10px;margin-bottom:30px;text-align:center;box-shadow:0 4px 6px rgb(15 23 42 / .12);overflow:visible!important}.ct-calendar-header h2{margin:0 0 10px 0!important;font-size:2rem!important;font-weight:700!important;color:#0f172a!important;line-height:1.2!important}.ct-calendar-header p{margin:0!important;opacity:.95;font-size:1.1rem!important;color:#1f2933!important;line-height:1.4!important}.ct-calendar-logo{display:block;margin:0 auto 12px auto;width:170px;max-width:70%;height:auto}.ct-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;background:#fff;border-radius:8px;box-shadow:0 2px 4px rgb(0 0 0 / .1)}.ct-nav-btn{background:var(--ct-azul);color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;font-size:16px;transition:background 0.3s}.ct-nav-btn:hover{background:var(--ct-verde)}.ct-current-month{font-size:1.5rem;font-weight:600;color:var(--ct-text-dark)}.ct-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;padding:15px;background:#fff;border-radius:8px;box-shadow:0 2px 4px rgb(0 0 0 / .1);justify-content:center;align-items:center}.ct-filter-btn{padding:8px 16px;border:2px solid var(--ct-border);background:#fff;color:var(--ct-text-dark);border-radius:20px;cursor:pointer;transition:all 0.3s;font-size:14px;font-weight:500}.ct-filter-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgb(0 0 0 / .1)}.ct-filter-btn.active{background:var(--ct-azul);color:#fff;border-color:var(--ct-azul)}#ct-calendar-container{position:relative;transition:opacity 0.3s ease;width:100%;overflow:visible!important}#ct-calendar-container.loading{opacity:.6;pointer-events:none;position:relative}#ct-calendar-container.loading::after{content:'';position:absolute;top:50%;left:50%;width:50px;height:50px;margin:-25px 0 0 -25px;border:4px solid var(--ct-border);border-top-color:var(--ct-azul);border-radius:50%;animation:spin 1s linear infinite;z-index:1000}@keyframes spin{to{transform:rotate(360deg)}}.ct-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px rgb(0 0 0 / .1);margin-bottom:20px;width:100%;clear:both;position:relative;overflow:visible!important}.ct-calendar-day-name{text-align:center;padding:10px 5px;font-weight:600!important;color:var(--ct-azul)!important;background:var(--ct-bg-light);border-radius:5px;font-size:14px!important;line-height:1.2!important;margin:0!important}.ct-calendar-day-name.ct-weekend-header{background:#e8f4f8;color:#0369a1!important}.ct-calendar-day{min-height:120px;padding:10px;border:1px solid var(--ct-border);border-radius:5px;position:relative;background:white!important;transition:all 0.3s;display:block;overflow:visible!important}.ct-calendar-day.ct-weekend{background:#f8f9fa!important}.ct-calendar-day.ct-holiday{background:linear-gradient(135deg,rgb(239 68 68 / .08) 0%,rgb(239 68 68 / .05) 100%)!important;border-color:rgb(239 68 68 / .3)}.ct-calendar-day.ct-holiday .ct-day-number{color:#dc2626!important;font-weight:700!important}.ct-calendar-day:hover{box-shadow:0 4px 8px rgb(0 0 0 / .1);transform:translateY(-2px)}.ct-calendar-day.ct-other-month{opacity:.3;background:#f5f5f5!important}.ct-calendar-day.ct-today{background:linear-gradient(135deg,rgb(0 95 143 / .1) 0%,rgb(58 159 107 / .1) 100%)!important;border-color:var(--ct-azul);border-width:2px}.ct-day-number{font-size:14px!important;font-weight:600!important;color:var(--ct-text-dark)!important;margin:0 0 5px 0!important;padding:0!important;line-height:1.2!important;display:flex;align-items:center;gap:4px}.ct-holiday-name{font-size:12px;display:inline-block}.ct-event-card{background:#fff;border-left:4px solid var(--ct-azul);padding:8px;margin-bottom:5px;border-radius:4px;cursor:pointer;transition:all 0.3s;position:relative;-webkit-tap-highlight-color:#fff0}.ct-event-card:hover{transform:translateX(3px);box-shadow:0 2px 8px rgb(0 0 0 / .15)}.ct-event-card[data-event-type="EXPOSICIONES"]{border-left-color:var(--ct-morado)}.ct-event-card[data-event-type="DEPORTE"]{border-left-color:var(--ct-verde)}.ct-event-card[data-event-type="MUSICA"]{border-left-color:var(--ct-azul)}.ct-event-card[data-event-type="CULTURA"]{border-left-color:var(--ct-naranja)}.ct-event-card[data-event-type="TEATRO Y DANZA"]{border-left-color:var(--ct-rosa)}.ct-event-card[data-event-type="FIESTAS Y TRADICIONES"]{border-left-color:var(--ct-rojo)}.ct-event-title{font-size:13px;font-weight:600;color:var(--ct-text-dark);margin:0 0 3px 0;line-height:1.3}.ct-event-time{font-size:11px;color:var(--ct-text-light);margin:0}.ct-event-tooltip{position:fixed!important;z-index:999999!important;background:#fff;border:1px solid var(--ct-border);border-radius:8px;padding:15px;min-width:250px;max-width:300px;box-shadow:0 8px 24px rgb(0 0 0 / .35);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all 0.3s ease;pointer-events:none}.ct-event-tooltip.ct-tooltip-active{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.ct-event-card.ct-card-active{position:relative;z-index:1000;transform:translateX(3px);box-shadow:0 4px 12px rgb(0 0 0 / .2)}.ct-tooltip-title{font-size:16px;font-weight:600;color:var(--ct-text-dark);margin:0 0 10px 0}.ct-tooltip-type{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;margin-bottom:10px}.ct-tooltip-description{font-size:14px;color:var(--ct-text-light);margin:0 0 10px 0;line-height:1.5}.ct-tooltip-footer{font-size:12px;color:var(--ct-text-light);padding-top:10px;border-top:1px solid var(--ct-border)}@media (max-width:768px){#ct-calendar-container{position:relative}.ct-scroll-hint{position:absolute;top:45%;width:32px;height:32px;border-radius:999px;background:var(--ct-azul);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 10px 22px rgb(15 23 42 / .45);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .15s ease;z-index:20;cursor:pointer}.ct-scroll-hint-left{left:8px}.ct-scroll-hint-right{right:8px}.ct-scroll-hint.is-visible{opacity:1;pointer-events:auto}.ct-scroll-hint.is-visible:active{transform:scale(.94)}}{.ct-event-card{padding:10px;min-height:50px;display:flex;flex-direction:column;justify-content:center}.ct-event-tooltip{min-width:280px;max-width:90vw}.ct-event-card{margin-bottom:8px}.ct-event-card:hover{transform:none}.ct-event-card.ct-card-active{transform:none;box-shadow:0 6px 16px rgb(0 0 0 / .25)}}@media (max-width:768px){#ct-calendar-container{position:relative}.ct-scroll-hint{position:absolute;top:45%;width:32px;height:32px;border-radius:999px;background:var(--ct-azul);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 10px 22px rgb(15 23 42 / .45);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .15s ease;z-index:20;cursor:pointer}.ct-scroll-hint-left{left:8px}.ct-scroll-hint-right{right:8px}.ct-scroll-hint.is-visible{opacity:1;pointer-events:auto}.ct-scroll-hint.is-visible:active{transform:scale(.94)}}{.ct-calendar-wrapper{padding:10px;max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}#ct-calendar-container{width:100%;max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}.ct-calendar-header{background:radial-gradient(circle at 0% 0%,rgb(59 130 246 / .22),transparent 60%),radial-gradient(circle at 100% 0%,rgb(56 189 248 / .24),transparent 55%),linear-gradient(135deg,#ffffff,#f0f9ff);color:#0f172a!important;padding:30px;border-radius:10px;margin-bottom:30px;text-align:center;box-shadow:0 4px 6px rgb(15 23 42 / .12);overflow:visible!important}.ct-calendar-header h2{margin:0 0 10px 0!important;font-size:2rem!important;font-weight:700!important;color:#0f172a!important;line-height:1.2!important}.ct-calendar-grid{gap:5px;padding:10px;grid-template-columns:repeat(7,minmax(92px,1fr));width:max(100%, 720px);max-width:none;overflow:visible}.ct-calendar-day-name,.ct-calendar-day{min-width:0}.ct-calendar-day{min-height:80px;padding:5px}.ct-day-number{font-size:12px}.ct-event-title{font-size:11px;word-break:normal;overflow-wrap:anywhere;hyphens:manual;white-space:normal}.ct-event-time{font-size:10px}.ct-filters{gap:5px;padding:10px}.ct-filter-btn{font-size:12px;padding:6px 12px}.ct-event-tooltip{display:none!important;visibility:hidden!important;opacity:0!important}}@media (max-width:480px){.ct-calendar-day-name{font-size:12px;padding:5px}.ct-current-month{font-size:1.2rem}.ct-nav-btn{padding:8px 12px;font-size:14px}}.ct-event-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgb(0 0 0 / .7);z-index:10000;overflow-y:auto}.ct-event-modal.active{display:flex;align-items:center;justify-content:center}.ct-modal-content{background:#fff;max-width:800px;width:90%;border-radius:10px;padding:30px;position:relative}.ct-modal-close{position:absolute;top:15px;right:15px;font-size:24px;cursor:pointer;background:none;border:none;color:var(--ct-text-light)}body.modal-open{overflow:hidden}