/* Calendario FCA 10.6.0 · estilos públicos extraídos de PHP */
.cfca-view-selector {
                justify-content: center !important;
                margin-left: auto !important;
                margin-right: auto !important;
                width: fit-content !important;
                max-width: 100% !important;
                display: flex !important;
                flex-wrap: wrap !important;
                gap: 8px !important;
                background: white;
                padding: 6px;
                border-radius: 60px;
                box-shadow: 0 4px 15px rgba(46,125,50,0.15);
                margin-bottom: 25px;
            }
            
            .cfca-container {
                font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
                max-width: 1400px;
                margin: 0 auto;
            }
            
            .cfca-view-btn {
                padding: 12px 24px;
                border: none;
                border-radius: 40px;
                cursor: pointer;
                font-weight: 600;
                transition: all 0.3s;
                background: white;
                color: var(--cfca-color);
                border: 2px solid #e8f5e9;
            }
            
            .cfca-view-btn.active {
                background: var(--cfca-color) !important;
                color: white !important;
                border-color: var(--cfca-color) !important;
                transform: scale(1.02);
                box-shadow: 0 4px 12px rgba(46,125,50,0.3);
            }
            
            .cfca-filters {
                background: linear-gradient(135deg, #ffffff 0%, #f8fdf9 100%);
                padding: 25px;
                border-radius: 24px;
                margin-bottom: 25px;
                border: 1px solid #c8e6c9;
                box-shadow: 0 6px 18px rgba(0,0,0,0.05);
            }
            
            .cfca-filter-group {
                display: flex;
                gap: 10px;
                flex-wrap: wrap;
                margin-bottom: 14px;
                align-items: center;
                justify-content: center;
            }
            
            .cfca-search-wrapper {
                flex: 3;
                min-width: 280px;
                position: relative;
            }
            
            .cfca-search-icon {
                position: absolute;
                left: 15px;
                top: 50%;
                transform: translateY(-50%);
                font-size: 1.05rem;
                color: #6b7280;
            }
            
            .cfca-search-input {
                width: 100%;
                min-height: 54px;
                padding: 11px 16px 11px 44px;
                border: 1px solid #c8e6c9;
                border-radius: 18px;
                font-size: 0.98rem;
                line-height: 1.2;
                transition: all 0.3s;
            }
            
            .cfca-search-input:focus {
                border-color: var(--cfca-color);
                outline: none;
                box-shadow: 0 0 0 3px rgba(46,125,50,0.1);
            }
            
            .cfca-select {
                flex: 1;
                min-width: 160px;
                min-height: 54px;
                padding: 10px 18px;
                border: 1px solid #c8e6c9;
                border-radius: 18px;
                background: white;
                cursor: pointer;
                transition: all 0.3s;
                text-align: center;
                text-align-last: center;
                line-height: 1.2;
            }
            
            .cfca-select:focus {
                border-color: var(--cfca-color);
                outline: none;
            }
            
            .cfca-btn-primary {
                min-height: 54px;
                padding: 10px 24px;
                background: linear-gradient(135deg, var(--cfca-color) 0%, #1b5e20 100%);
                color: white;
                border: none;
                border-radius: 18px;
                cursor: pointer;
                font-weight: 600;
                box-shadow: 0 4px 12px rgba(46,125,50,0.3);
                transition: all 0.3s;
                line-height: 1.1;
            }
            
            .cfca-btn-primary:hover {
                transform: translateY(-2px);
                box-shadow: 0 6px 18px rgba(46,125,50,0.4);
            }
            
            .cfca-btn-secondary {
                min-height: 50px;
                padding: 10px 22px;
                background: white;
                color: var(--cfca-color);
                border: 2px solid var(--cfca-color);
                border-radius: 18px;
                cursor: pointer;
                font-weight: 600;
                transition: all 0.3s;
                line-height: 1.1;
            }
            
            .cfca-btn-secondary:hover {
                background: var(--cfca-color-light);
            }
            
            .cfca-checkbox-group {
                display: flex;
                gap: 12px;
                flex-wrap: wrap;
                align-items: center;
                justify-content: space-between;
                margin-top: 12px;
            }
            
            .cfca-checkbox-label {
                display: flex;
                align-items: center;
                gap: 8px;
                cursor: pointer;
                background: white;
                padding: 7px 14px;
                border-radius: 16px;
                border: 1px solid #c8e6c9;
                transition: all 0.3s;
                line-height: 1.2;
            }
            
            .cfca-checkbox-label:hover {
                background: var(--cfca-color-light);
                border-color: var(--cfca-color);
            }
            
            .cfca-checkbox {
                width: 18px;
                height: 18px;
                accent-color: var(--cfca-color);
            }
            
            .cfca-counter {
                margin-top: 0;
                margin-left: auto;
                padding: 10px 18px;
                background: #eef7ef;
                border-radius: 16px;
                font-size: 0.95rem;
                color: #1f4d2e;
                text-align: right;
                font-weight: 600;
                border: 1px solid #d8ead9;
            }
            
            .cfca-table-container {
                background: white;
                border-radius: 24px;
                overflow: hidden;
                border: 1px solid #e0f2e0;
                box-shadow: 0 10px 30px rgba(0,0,0,0.08);
            }
            
            .cfca-table {
                width: 100%;
                border-collapse: collapse;
                min-width: 1000px;
            }
            
            .cfca-table th {
                background: linear-gradient(135deg, #f3faf4 0%, #e7f3e8 100%);
                color: #1f4d2e;
                padding: 16px 15px;
                text-align: left;
                font-weight: 700;
                border-bottom: 1px solid #d7e7d8;
                letter-spacing: 0.01em;
            }
            
            .cfca-table td {
                padding: 16px 15px;
                border-bottom: 1px solid #e8f5e9;
                color: #2c3e50;
            }
            
            .cfca-table tr {
                cursor: pointer;
                transition: all 0.2s;
            }
            
            .cfca-table tr:hover {
                background: linear-gradient(135deg, #f8fdf8 0%, #f1f8e9 100%);
            }
            
            .cfca-table td:first-child {
                font-weight: 600;
                color: var(--cfca-color);
            }
            
            .cfca-badge {
                padding: 4px 12px;
                border-radius: 30px;
                font-size: 0.85rem;
                display: inline-block;
            }
            
            .cfca-badge-tipo {
                background: #e8f5e9;
                color: var(--cfca-color);
            }
            
            .cfca-badge-fide {
                background: #6a1b9a;
                color: white;
            }
            
            .cfca-badge-fecodaz {
                background: var(--cfca-color);
                color: white;
            }
            
            .cfca-grid {
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
                gap: 25px;
            }
            
            .cfca-card {
                background: white;
                border: 1px solid #e8f5e9;
                border-radius: 24px;
                padding: 25px;
                cursor: pointer;
                transition: all 0.3s;
                box-shadow: 0 5px 20px rgba(0,0,0,0.03);
            }
            
            .cfca-card:hover {
                transform: translateY(-5px);
                box-shadow: 0 15px 30px rgba(46,125,50,0.1);
                border-color: var(--cfca-color);
            }
            
            .cfca-card-title {
                font-weight: 700;
                font-size: 1.3rem;
                color: var(--cfca-color);
                margin-bottom: 15px;
            }
            
            .cfca-card-info {
                color: #4a5568;
                display: flex;
                flex-direction: column;
                gap: 10px;
            }
            
            .cfca-calendar-header {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 18px;
                margin: 0 0 22px;
                padding: 24px 22px;
                background: linear-gradient(135deg,#ffffff 0%,#f7fbf8 72%,#fff7df 100%);
                border: 1px solid #cfe1d2;
                border-radius: 20px;
                box-shadow: 0 12px 28px rgba(15, 67, 33, .08);
            }
            .cfca-btn-mes { min-width: 160px; font-weight: 800; border-radius: 18px; box-shadow: 0 8px 18px rgba(0,0,0,.18); }
            .cfca-calendar-title {
                margin: 0;
                color: #073f22;
                font-size: clamp(2rem, 3vw, 2.8rem);
                font-weight: 900;
                letter-spacing: -.03em;
                text-align: center;
            }
            .cfca-calendar-title:after { content:''; display:block; width:72px; height:4px; margin:10px auto 0; border-radius:99px; background:linear-gradient(90deg,#157a37,#d7b32c); }
            .cfca-weekdays {
                display: grid;
                grid-template-columns: repeat(7, 1fr);
                gap: 8px;
                margin-bottom: 8px;
                text-align: center;
                font-weight: 900;
                color: #fff;
                font-size: 1.05rem;
                background: linear-gradient(135deg,#06451f,#0b6b31);
                border-radius: 16px;
                padding: 10px;
                box-shadow: inset 0 -4px 0 rgba(0,0,0,.14);
            }
            .cfca-weekdays div { padding: 10px 6px; border-radius: 12px; background: rgba(255,255,255,.08); text-shadow: 0 1px 2px rgba(0,0,0,.28); }
            .cfca-calendar-grid {
                display: grid;
                grid-template-columns: repeat(7, 1fr);
                gap: 8px;
                background:#f8fbf8;
                border:1px solid #c9dfcf;
                border-radius:18px;
                padding:8px;
            }
            .cfca-calendar-day {
                min-height: 112px;
                padding: 10px;
                border: 1px solid #c9d8ce;
                border-radius: 12px;
                background:#fff;
                cursor: pointer;
                transition: all 0.2s;
                overflow: hidden;
                box-shadow: inset 0 0 0 1px rgba(255,255,255,.7);
            }
            .cfca-calendar-day:hover {
                transform: translateY(-2px);
                box-shadow: 0 8px 18px rgba(46,125,50,0.18);
                border-color: #0f6b32 !important;
            }
            .cfca-calendar-day.other-month { background: #f2f5f3; opacity: .75; }
            .cfca-calendar-day.today {
                background: linear-gradient(135deg,#0b5f2b,#1d8a3b);
                border: 2px solid #06451f;
                color:#fff;
                font-weight: bold;
            }
            .cfca-calendar-day.today .cfca-calendar-day-number,
            .cfca-calendar-day.today .cfca-calendar-day-name { color:#fff; }
            .cfca-calendar-day-number {
                font-weight: 900;
                margin-bottom: 0;
                color: #07140d;
                font-size: 1.5rem;
                line-height: 1;
                text-align:center;
            }
            .cfca-calendar-day-name { display:block; color:#1f3929; font-size:.85rem; text-align:center; margin-top:4px; font-weight:700; }
            .cfca-calendar-day.has-events { border-color:#88c795; background:#fbfffb; }
            .cfca-calendar-event {
                background: linear-gradient(135deg,#157a37,#0f642c);
                color: white;
                font-size: 0.72rem;
                line-height:1.15;
                padding: 5px 8px;
                border-radius: 999px;
                margin-top: 7px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                text-align:center;
                font-weight:800;
                box-shadow: 0 3px 8px rgba(13,93,42,.22);
            }
            .cfca-elig-card-v2,.cfca-inscripcion-panel-pro{background:#ffffff!important;color:#102617!important;border:1px solid #cfe1d2!important;border-radius:18px!important;box-shadow:0 14px 30px rgba(15,67,33,.08)!important;}
            .cfca-elig-grid-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
            .cfca-elig-grid-v2 label span,.cfca-elig-search-row span{font-weight:800;color:#123d22;display:block;margin-bottom:6px;}
            .cfca-elig-result{margin-top:14px;}
            .cfca-elig-box{border-radius:14px;padding:12px 14px;border:1px solid #d5e6d9;background:#f8fcf8;color:#16281c;}
            .cfca-elig-box.ok{border-color:#95d3a2;background:#eef9f0;}.cfca-elig-box.bad{border-color:#e9aaa5;background:#fff3f1;}.cfca-elig-box.pendiente{border-color:#ead78b;background:#fffbea;}
            @media(max-width:760px){.cfca-calendar-header{flex-direction:column;align-items:stretch}.cfca-btn-mes{width:100%}.cfca-calendar-grid,.cfca-weekdays{gap:5px}.cfca-calendar-day{min-height:86px;padding:7px}.cfca-calendar-day-number{font-size:1.1rem}.cfca-calendar-event{font-size:.64rem;padding:4px 6px}}
            
            .cfca-pagination {
                display: flex;
                justify-content: center;
                gap: 8px;
                padding: 25px;
                background: #fafdfa;
                flex-wrap: wrap;
            }
            
            .cfca-page-btn {
                padding: 10px 18px;
                border: 2px solid #e8f5e9;
                background: white;
                border-radius: 40px;
                cursor: pointer;
                transition: all 0.2s;
                font-weight: 500;
                color: #2c3e50;
            }
            
            .cfca-page-btn:hover,
            .cfca-page-btn.active {
                background: var(--cfca-color);
                color: white;
                border-color: var(--cfca-color);
            }
            
            .cfca-modal {
                display: none;
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                background: rgba(0,0,0,0.7);
                z-index: 10000;
                align-items: center;
                justify-content: center;
                backdrop-filter: blur(8px);
            }
            
            .cfca-modal.active {
                display: flex;
            }
            
            .cfca-modal-content {
                background: white;
                border-radius: 32px;
                max-width: 1000px;
                width: 95%;
                max-height: 90vh;
                overflow-y: auto;
                padding: 35px;
                position: relative;
                box-shadow: 0 30px 80px rgba(0,0,0,0.4);
                animation: modalFadeIn 0.3s;
            }
            

            /* CFCA 7.5.16 entrega8.2 · Modal manipulable */
            .cfca-modal.cfca-window-mode{align-items:flex-start!important;justify-content:flex-start!important;background:rgba(15,23,42,.42)!important;}
            .cfca-modal.cfca-window-mode .cfca-modal-content{position:fixed!important;top:5vh;left:50%;transform:translateX(-50%);padding:0!important;overflow:hidden!important;resize:both;min-width:360px;min-height:260px;max-width:96vw!important;max-height:92vh!important;}
            .cfca-modal.cfca-window-mode .cfca-modal-content.is-dragging{user-select:none;box-shadow:0 34px 90px rgba(0,0,0,.48)!important;}
            .cfca-modal.cfca-window-mode #modal-contenido{padding:22px 28px 16px;max-height:calc(92vh - 118px);overflow:auto;}
            .cfca-modal.cfca-window-mode .cfca-modal-footer-actions{padding:12px 18px!important;background:#f8fafc!important;border-top:1px solid #e2e8f0!important;}
            .cfca-window-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:9px 12px 9px 16px;background:linear-gradient(135deg,#0f5132,#1f7a46);color:#fff;cursor:move;touch-action:none;}
            .cfca-window-title{font-size:14px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
            .cfca-window-actions{display:flex;gap:7px;align-items:center;}
            .cfca-window-btn{width:32px;height:30px;border:0;border-radius:10px;background:rgba(255,255,255,.18);color:#fff;font-size:17px;font-weight:950;cursor:pointer;line-height:1;}
            .cfca-window-btn:hover{background:rgba(255,255,255,.30);}
            .cfca-window-close{background:rgba(220,38,38,.9)!important;}
            .cfca-modal.cfca-window-max .cfca-modal-content{top:10px!important;left:10px!important;right:10px!important;bottom:10px!important;transform:none!important;width:calc(100vw - 20px)!important;height:calc(100vh - 20px)!important;max-width:none!important;max-height:none!important;}
            .cfca-modal.cfca-window-max #modal-contenido{max-height:calc(100vh - 132px)!important;}
            .cfca-modal-minibubble{position:fixed;right:18px;bottom:18px;z-index:10001;border:0;border-radius:999px;background:#0f5132;color:#fff;padding:12px 18px;font-weight:950;box-shadow:0 18px 38px rgba(15,81,50,.32);cursor:pointer;}
            @media(max-width:700px){.cfca-modal.cfca-window-mode .cfca-modal-content{top:8px!important;left:8px!important;right:8px!important;transform:none!important;width:calc(100vw - 16px)!important;min-width:0!important;max-height:94vh!important}.cfca-window-bar{cursor:default}.cfca-window-title{font-size:13px}.cfca-modal.cfca-window-mode #modal-contenido{padding:16px;}}

            @keyframes modalFadeIn {
                from {
                    opacity: 0;
                    transform: translateY(-20px);
                }
                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }
            
            .cfca-modal-close {
                position: absolute;
                top: 20px;
                right: 20px;
                background: #f44336;
                color: white;
                border: none;
                font-size: 28px;
                width: 50px;
                height: 50px;
                border-radius: 50%;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
                box-shadow: 0 6px 15px rgba(244,67,54,0.4);
                z-index: 10001;
                transition: all 0.3s;
            }
            
            .cfca-modal-close:hover {
                transform: scale(1.1);
                background: #d32f2f;
            }
            
            .cfca-modal-section {
                background: #f8fdfa;
                padding: 25px;
                border-radius: 20px;
                margin-bottom: 20px;
                border-left: 6px solid var(--cfca-color);
            }
            
            .cfca-modal-section h3 {
                margin: 0 0 20px 0;
                color: var(--cfca-color);
            }
            
            .cfca-modal-grid {
                display: grid;
                grid-template-columns: 150px 1fr;
                gap: 15px;
            }
            
            .cfca-toast {
                position: fixed;
                bottom: 30px;
                right: 30px;
                background: linear-gradient(135deg, var(--cfca-color) 0%, #1b5e20 100%);
                color: white;
                padding: 16px 30px;
                border-radius: 60px;
                box-shadow: 0 10px 30px rgba(0,0,0,0.3);
                display: none;
                z-index: 10002;
                font-weight: 500;
                animation: slideIn 0.3s;
            }
            
            .cfca-toast.error {
                background: linear-gradient(135deg, #f44336 0%, #c62828 100%);
            }
            
            @keyframes slideIn {
                from {
                    transform: translateX(100%);
                    opacity: 0;
                }
                to {
                    transform: translateX(0);
                    opacity: 1;
                }
            }
            
            .orden-indicador {
                display: inline-block;
                margin-left: 5px;
                font-size: 0.8rem;
                opacity: 0.7;
                font-weight: normal;
            }

            .cfca-enlace-boton {
                display: inline-block;
                padding: 4px 10px;
                margin: 2px;
                border-radius: 20px;
                text-decoration: none;
                font-size: 0.8rem;
                font-weight: 500;
                transition: all 0.2s;
                border: none;
                cursor: pointer;
            }
            
            .cfca-enlace-boton:hover {
                transform: translateY(-2px);
                filter: brightness(1.1);
                box-shadow: 0 3px 8px rgba(0,0,0,0.2);
            }
            
            .cfca-enlace-chess { background: #6a1b9a; color: white; }
            .cfca-enlace-lichess { background: #2e7d32; color: white; }
            .cfca-enlace-web { background: #1565c0; color: white; }
            .cfca-enlace-flyer { background: #e65100; color: white; }
            .cfca-enlace-resolucion { background: #d32f2f; color: white; }
            .cfca-sin-enlaces { color: #999; font-size: 0.8rem; font-style: italic; }
            
            .cfca-resoluciones-section {
                margin-top: 20px;
                padding: 15px;
                background: #fff3e0;
                border-radius: 12px;
                border-left: 4px solid #d32f2f;
            }
            
            .cfca-resolucion-item {
                display: flex;
                align-items: center;
                gap: 10px;
                padding: 10px;
                background: white;
                border-radius: 8px;
                margin-top: 8px;
            }
            
            .cfca-resolucion-link {
                color: #d32f2f;
                text-decoration: none;
                font-weight: 500;
            }
            
            .cfca-resolucion-link:hover {
                text-decoration: underline;
            }

            .cfca-editor{display:grid;gap:20px;}
            .cfca-editor-header{box-shadow:0 12px 30px rgba(20,54,24,.14);}
            .cfca-editor-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;width:100%;}
            .cfca-editor-kicker{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin-bottom:6px;}
            .cfca-editor-title{margin:0;font-size:1.6rem;line-height:1.15;}
            .cfca-editor-subtitle{margin:8px 0 0;opacity:.92;max-width:720px;}
            .cfca-form-panel{border-radius:0 0 20px 20px;box-shadow:0 18px 36px rgba(15,23,42,.06);}
            .cfca-editor-tabs{position:sticky;top:16px;z-index:5;backdrop-filter:blur(8px);border-radius:16px 16px 0 0;}
            .tab-content{scroll-margin-top:88px;}
            .cfca-field-group h3{margin-top:0;margin-bottom:16px;color:#234127;}
            .cfca-table-container{background:#fff;border:1px solid #d8ead9;border-radius:18px;padding:16px;box-shadow:0 12px 26px rgba(15,23,42,.04);}
            .cfca-table thead th{position:sticky;top:0;background:#f7fbf7;z-index:1;}
            #editor-tabla tr.cfca-fila-evento:hover{background:#f8fcf8;}
            #editor-tabla tr.cfca-fila-activa{background:#eef8ef;box-shadow:inset 3px 0 0 #2e7d32;}
            .cfca-search-wrapper{position:sticky;top:94px;z-index:4;background:#fff;padding:10px;border:1px solid #d8ead9;border-radius:16px;box-shadow:0 8px 20px rgba(15,23,42,.04);}
            .cfca-editor-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:10px 0 0;}
            .cfca-editor-stat{background:#f7fbf7;border:1px solid #d8ead9;border-radius:14px;padding:12px 14px;}
            .cfca-editor-stat strong{display:block;font-size:1.2rem;color:#1d4d24;}
            .cfca-editor-stat span{display:block;font-size:.86rem;color:#58705b;}
            .cfca-is-hidden{display:none!important;}
            .cfca-tab-content-title{display:none;margin:0 0 14px;color:#234127;}
            .tab-content.active .cfca-tab-content-title{display:block;}
            @media (max-width: 900px){
                .cfca-editor-hero{flex-direction:column;align-items:flex-start;}
                .cfca-editor-tabs,.cfca-search-wrapper{position:static;}
                .cfca-form-actions-bottom{flex-direction:column;align-items:stretch;}
                .cfca-form-actions-right{width:100%;}
            }


            .cfca-editor-toolbar {
                display:flex;
                flex-wrap:wrap;
                justify-content:space-between;
                gap:12px 16px;
                align-items:center;
                background:#f8fcf8;
                border:1px solid #dceadc;
                border-radius:18px;
                padding:14px 16px;
                margin-top:14px;
                margin-bottom:14px;
            }
            .cfca-editor-filter-row {
                display:flex;
                flex-wrap:wrap;
                gap:10px;
                align-items:center;
            }
            .cfca-filter-chip {
                display:inline-flex;
                align-items:center;
                gap:8px;
                padding:8px 12px;
                border-radius:999px;
                border:1px solid #d7ead8;
                background:#fff;
                color:#1f5f2f;
                font-weight:600;
                cursor:pointer;
                transition:all .18s ease;
            }
            .cfca-filter-chip input { margin:0; accent-color: var(--cfca-color, #2e7d32); }
            .cfca-filter-chip.is-active {
                background:#e9f7eb;
                border-color:#b8dcbc;
                box-shadow:0 8px 18px rgba(46,125,50,.08);
            }
            .cfca-toolbar-btn {
                border:1px solid #d7ead8;
                background:#fff;
                color:#1f5f2f;
                border-radius:999px;
                padding:9px 14px;
                font-weight:700;
                cursor:pointer;
            }
            .cfca-mini-stat {
                display:inline-flex;
                align-items:center;
                gap:8px;
                padding:6px 10px;
                border-radius:999px;
                background:#fff;
                border:1px solid #e3efe4;
                color:#305d37;
            }
            .cfca-mini-stat strong { font-size:1rem; }
            .cfca-mini-stat small { font-size:.82rem; text-transform:lowercase; }
            .cfca-table-container {
                max-height:min(68vh, 900px);
                overflow:auto;
                border-radius:18px;
            }
            .cfca-table { min-width:1100px; }
            .cfca-table thead th {
                position:sticky;
                top:0;
                z-index:4;
                padding:12px 12px;
                font-size:.92rem;
            }
            .cfca-table th:last-child { z-index:5; }
            .cfca-table td {
                padding:8px 10px;
                font-size:.93rem;
            }
            .cfca-title-stack strong {
                display:block;
                font-size:1rem;
                line-height:1.18;
                margin-bottom:2px;
            }
            .cfca-title-stack small,
            .cfca-date-stack small {
                display:block;
                color:#647a68;
                line-height:1.2;
            }
            .cfca-id-chip {
                display:inline-flex;
                align-items:center;
                justify-content:center;
                min-width:34px;
                padding:4px 8px;
                border-radius:999px;
                background:#eef6ef;
                color:#1f5f2f;
                font-weight:700;
                font-size:.84rem;
            }
            .cfca-pill {
                display:inline-flex;
                align-items:center;
                border-radius:999px;
                padding:5px 9px;
                font-size:.8rem;
                font-weight:700;
                white-space:nowrap;
            }
            .cfca-action-stack {
                display:flex;
                flex-direction:column;
                gap:6px;
                min-width:148px;
            }
            .cfca-action-btn {
                width:100%;
                margin:0;
                padding:7px 10px;
                font-size:.84rem;
                line-height:1.15;
                font-weight:700;
            }
            .cfca-pagination {
                display:flex;
                align-items:center;
                justify-content:center;
                flex-wrap:wrap;
                gap:8px;
                padding:12px 14px;
                background:rgba(252,254,252,.96);
                backdrop-filter:blur(8px);
            }
            .cfca-page-summary {
                font-weight:700;
                color:#255b32;
                margin-right:6px;
            }
            .cfca-page-dots {
                display:inline-flex;
                align-items:center;
                justify-content:center;
                min-width:24px;
                color:#64806c;
                font-weight:700;
            }
            @media (max-width: 900px) {
                .cfca-editor-toolbar { align-items:flex-start; }
                .cfca-editor-filter-row--stats { width:100%; }
                .cfca-table-container { max-height:none; }
                .cfca-page-summary { width:100%; text-align:center; margin-right:0; }
            }


            .cfca-suscripcion-panel{
                background:linear-gradient(135deg,#ffffff 0%,#f8fdfa 100%);
                border:2px solid #cfe8d4;
                border-radius:20px;
                padding:24px;
                box-shadow:0 10px 30px rgba(0,0,0,.08);
                margin-bottom:30px;
            }
            .cfca-suscripcion-panel-header{
                text-align:center;
                margin-bottom:22px;
                padding-bottom:18px;
                border-bottom:2px solid #e8f5e9;
            }
            .cfca-suscripcion-panel-header h2{
                margin:0 0 8px;
                color:#1b5e20;
                font-size:1.7rem;
                font-weight:800;
            }
            .cfca-suscripcion-panel-header p{
                margin:0;
                color:#5f7164;
                font-weight:600;
            }
            .cfca-suscripcion-panel-grid{
                display:grid;
                grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
                gap:18px;
                align-items:start;
            }
            .cfca-suscripcion-panel-card{
                background:#fff;
                border:1px solid #e3eee6;
                border-radius:16px;
                padding:18px;
                box-shadow:0 6px 18px rgba(2,6,23,.06);
                min-height:120px;
            }
            @media(max-width:768px){
                .cfca-suscripcion-panel{padding:16px;border-radius:16px;}
                .cfca-suscripcion-panel-grid{grid-template-columns:1fr;}
            }



            /* CFCA 6.9.39 · Toolbar final minimalista + verdes claros FCA */
            .cfca-container{
                --cfca-verde:#15803d;
                --cfca-verde-oscuro:#166534;
                --cfca-verde-claro:#22c55e;
                --cfca-verde-suave:#f0fdf4;
                --cfca-verde-borde:#bbf7d0;
                --cfca-tinta:#102033;
                --cfca-linea:#d8eadf;
                max-width:1460px!important;
                margin:18px auto!important;
                padding:0 18px!important;
            }
            .cfca-view-selector{
                display:flex!important;
                align-items:center!important;
                gap:8px!important;
                margin:0!important;
                padding:10px!important;
                background:linear-gradient(180deg,#ffffff,#f7fcf8)!important;
                border:1px solid var(--cfca-linea)!important;
                border-bottom:0!important;
                border-radius:16px 16px 0 0!important;
                box-shadow:0 8px 22px rgba(21,128,61,.07)!important;
            }
            .cfca-view-selector .cfca-view-btn,
            .cfca-view-selector .cfca-btn-secondary{
                min-height:36px!important;
                padding:8px 14px!important;
                border-radius:10px!important;
                font-size:13px!important;
                font-weight:900!important;
                line-height:1!important;
                box-shadow:none!important;
                border:1px solid #cfe8d6!important;
                background:#fff!important;
                color:var(--cfca-verde-oscuro)!important;
            }
            .cfca-view-selector .cfca-view-btn:hover,
            .cfca-view-selector .cfca-btn-secondary:hover{
                background:var(--cfca-verde-suave)!important;
                border-color:#86efac!important;
                transform:translateY(-1px)!important;
            }
            .cfca-view-selector .cfca-view-btn.active{
                background:linear-gradient(135deg,#16a34a,#15803d)!important;
                color:#fff!important;
                border-color:#15803d!important;
                box-shadow:0 5px 14px rgba(21,128,61,.22)!important;
            }
            .cfca-view-selector .cfca-btn-secondary{margin-left:auto!important;}
            .cfca-filters{
                margin:0!important;
                padding:10px!important;
                background:#ffffff!important;
                border:1px solid var(--cfca-linea)!important;
                border-top:0!important;
                border-radius:0!important;
                box-shadow:none!important;
            }
            .cfca-filter-group,.cfca-compact-line{
                display:flex!important;
                align-items:center!important;
                justify-content:flex-start!important;
                gap:12px!important;
                flex-wrap:nowrap!important;
                margin:0!important;
            }
            .cfca-search-wrapper{
                flex:1 1 520px!important;
                min-width:280px!important;
                max-width:620px!important;
                position:relative!important;
                margin:0!important;
                padding:0!important;
                background:transparent!important;
                border:0!important;
                box-shadow:none!important;
            }
            .cfca-search-icon{left:16px!important;color:var(--cfca-verde)!important;font-size:16px!important;opacity:.95!important;}
            .cfca-search-input{
                height:44px!important;
                min-height:44px!important;
                width:100%!important;
                border:1px solid var(--cfca-linea)!important;
                border-radius:10px!important;
                background:#fff!important;
                box-shadow:inset 0 1px 2px rgba(21,128,61,.04)!important;
                padding:0 14px 0 46px!important;
                font-size:14px!important;
                font-weight:700!important;
                color:var(--cfca-tinta)!important;
            }
            .cfca-search-input::placeholder{color:#6b7f73!important;opacity:1!important;}
            .cfca-calendario-dropdown{position:relative!important;flex:0 0 auto!important;margin:0!important;}
            .cfca-calendario-dropdown summary{
                height:44px!important;
                min-width:150px!important;
                display:flex!important;
                align-items:center!important;
                justify-content:space-between!important;
                gap:10px!important;
                list-style:none!important;
                cursor:pointer!important;
                border:1px solid var(--cfca-linea)!important;
                border-radius:10px!important;
                background:#f8fff9!important;
                color:var(--cfca-verde-oscuro)!important;
                font-weight:900!important;
                font-size:14px!important;
                padding:0 14px!important;
                box-shadow:none!important;
            }
            .cfca-calendario-dropdown summary::-webkit-details-marker{display:none!important;}
            .cfca-calendario-dropdown summary::after{content:'⌄';font-size:18px;line-height:1;color:var(--cfca-verde);margin-left:auto;}
            .cfca-calendario-dropdown[open] summary::after{content:'⌃';}
            .cfca-calendario-dropdown[open] .cfca-calendario-box{display:block!important;}
            .cfca-calendario-box{
                display:none;
                position:absolute;
                left:0;
                top:50px;
                z-index:9999;
                background:#fff;
                border:1px solid #cfe8d6;
                border-radius:12px;
                box-shadow:0 18px 40px rgba(15,23,42,.16);
                padding:14px 16px;
                min-width:245px;
                max-height:480px;
                overflow:auto;
            }
            .cfca-filter-section{padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid #e7f3eb;}
            .cfca-filter-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
            .cfca-filter-title{display:block;margin:0 0 8px;color:var(--cfca-verde-oscuro);font-size:13px;font-weight:950;}
            .cfca-calendario-box label{
                display:flex!important;
                align-items:center!important;
                gap:10px!important;
                width:100%!important;
                border:0!important;
                border-radius:8px!important;
                padding:6px 4px!important;
                background:transparent!important;
                color:var(--cfca-tinta)!important;
                font-size:13px!important;
                font-weight:700!important;
                white-space:nowrap!important;
            }
            .cfca-calendario-box label:hover{background:var(--cfca-verde-suave)!important;}
            .cfca-calendario-box input[type="checkbox"]{width:17px!important;height:17px!important;accent-color:var(--cfca-verde)!important;margin:0!important;}
            .cfca-calendario-box .cfca-select{
                width:100%!important;
                height:36px!important;
                min-height:36px!important;
                margin:4px 0!important;
                border-radius:8px!important;
                border:1px solid var(--cfca-linea)!important;
                background:#fff!important;
                color:var(--cfca-tinta)!important;
                font-size:13px!important;
                font-weight:750!important;
                padding:6px 10px!important;
            }
            #limpiar-filtros{
                height:44px!important;
                min-height:44px!important;
                padding:0 16px!important;
                border:1px solid var(--cfca-linea)!important;
                border-radius:10px!important;
                background:#fff!important;
                color:var(--cfca-verde-oscuro)!important;
                font-size:14px!important;
                font-weight:900!important;
                box-shadow:none!important;
            }
            #limpiar-filtros:hover,.cfca-calendario-dropdown summary:hover,.cfca-search-input:hover,
            .cfca-search-input:focus,.cfca-calendario-dropdown[open] summary{
                border-color:#86efac!important;
                background:var(--cfca-verde-suave)!important;
                outline:none!important;
            }
            .cfca-table-container{margin-top:0!important;border-radius:0 0 16px 16px!important;border-top:0!important;box-shadow:0 10px 26px rgba(21,128,61,.08)!important;}
            .cfca-table th{background:linear-gradient(135deg,#15803d,#166534)!important;color:#fff!important;}
            .cfca-table tbody tr:hover{background:#f0fdf4!important;}
            .cfca-counter,.cfca-hoy-strip,.cfca-active-filters,.cfca-filter-chip,.cfca-filter-tag,.cfca-tipo-chips,.cfca-checkbox-group,.cfca-badge-tipo,.cfca-badge-fecodaz,.cfca-tag-fecodaz,.cfca-advanced-filters{display:none!important;}
            .cfca-hidden-control{display:none!important;}
            @media(max-width:900px){
                .cfca-filter-group,.cfca-compact-line{gap:8px!important;flex-wrap:wrap!important}
                .cfca-search-wrapper{flex:1 1 100%!important;max-width:none!important;min-width:0!important}
                .cfca-calendario-dropdown summary{min-width:0!important;width:100%!important}
                .cfca-calendario-dropdown{flex:1 1 170px!important}
                .cfca-calendario-box{position:absolute!important;left:0;right:auto;min-width:min(92vw,280px)}
                #limpiar-filtros{flex:0 0 auto!important}
                .cfca-view-selector{flex-wrap:wrap!important}
                .cfca-view-selector .cfca-btn-secondary{margin-left:0!important}
            }


/* =========================================================
   CFCA 6.9.41 - FIX buscador dentro de toolbar, sin flotar
   ========================================================= */
.cfca-public-scope .cfca-filters.cfca-filters-compact{
  position:relative!important;
  overflow:visible!important;
  margin:0 0 14px!important;
  padding:10px!important;
}
.cfca-public-scope .cfca-filter-group.cfca-compact-line{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) auto auto!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  margin:0!important;
}
.cfca-public-scope .cfca-filter-group.cfca-compact-line > .cfca-search-wrapper{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  z-index:1!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  flex:unset!important;
  display:block!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  transform:none!important;
}
.cfca-public-scope .cfca-filter-group.cfca-compact-line .cfca-search-input{
  display:block!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0 14px 0 42px!important;
  line-height:42px!important;
  text-align:left!important;
  border-radius:10px!important;
}
.cfca-public-scope .cfca-filter-group.cfca-compact-line .cfca-search-icon{
  position:absolute!important;
  left:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  z-index:2!important;
  pointer-events:none!important;
}
.cfca-public-scope .cfca-calendario-dropdown,
.cfca-public-scope #limpiar-filtros{
  align-self:center!important;
  margin:0!important;
}
.cfca-public-scope .cfca-calendario-dropdown summary,
.cfca-public-scope #limpiar-filtros{
  height:42px!important;
  min-height:42px!important;
  white-space:nowrap!important;
}
@media(max-width:720px){
  .cfca-public-scope .cfca-filter-group.cfca-compact-line{
    grid-template-columns:1fr!important;
  }
  .cfca-public-scope .cfca-calendario-dropdown,
  .cfca-public-scope #limpiar-filtros{
    width:100%!important;
  }
  .cfca-public-scope .cfca-calendario-dropdown summary,
  .cfca-public-scope #limpiar-filtros{
    width:100%!important;
    justify-content:center!important;
  }
}
        

            /* ===== CFCA Agenda 2.0 / RC1 ===== */
            .cfca-agenda-card-v2{
                display:grid!important;
                grid-template-columns:96px 1fr auto;
                align-items:center;
                gap:22px;
                width:100%;
                padding:24px;
                margin:18px 0;
                border-radius:26px;
                background:linear-gradient(135deg,#0f6d46 0%,#08452d 100%)!important;
                color:#fff!important;
                box-shadow:0 18px 42px rgba(0,0,0,.14);
                border:1px solid rgba(255,255,255,.16);
            }
            .cfca-agenda-datebox{
                width:82px;
                min-height:82px;
                border-radius:24px;
                background:#fff;
                color:#0f6d46;
                display:flex;
                flex-direction:column;
                align-items:center;
                justify-content:center;
                box-shadow:0 10px 24px rgba(0,0,0,.18);
            }
            .cfca-agenda-datebox strong{font-size:2rem;line-height:1;color:#0f6d46!important;}
            .cfca-agenda-datebox span{margin-top:6px;font-size:.82rem;font-weight:800;color:#0f6d46!important;}
            .cfca-agenda-content,.cfca-agenda-content *{color:#fff!important;}
            .cfca-agenda-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
            .cfca-agenda-pill,.cfca-agenda-status{
                display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;
                background:#ecfdf5!important;color:#0f6d46!important;font-size:.78rem;font-weight:900;
                letter-spacing:.04em;text-transform:uppercase;
            }
            .cfca-agenda-title{margin:0 0 10px!important;color:#fff!important;font-size:1.35rem!important;line-height:1.25!important;font-weight:900!important;}
            .cfca-agenda-meta{display:flex;gap:16px;flex-wrap:wrap;color:rgba(255,255,255,.92)!important;font-weight:700;}
            .cfca-agenda-meta span{color:rgba(255,255,255,.92)!important;}
            .cfca-agenda-action{
                border:0!important;border-radius:999px!important;padding:12px 20px!important;
                background:#fff!important;color:#0f6d46!important;font-weight:900!important;cursor:pointer;
                box-shadow:0 8px 22px rgba(0,0,0,.16);
            }
            .cfca-agenda-action:hover{transform:translateY(-2px);}
            @media(max-width:780px){
                .cfca-agenda-card-v2{grid-template-columns:72px 1fr;gap:14px;padding:18px;}
                .cfca-agenda-action{grid-column:1 / -1;width:100%;}
                .cfca-agenda-datebox{width:68px;min-height:68px;border-radius:18px;}
            }

/* Suscripciones · estilos extraídos de PHP */
/* =============================================================
   MODAL HORIZONTAL - VERSIÓN FINAL
   ============================================================= */
/* Botones de agregar opciones */
.cfca-btn-add {
    background: #2e7d32;
    color: white;
    border: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(46,125,50,0.3);
    flex-shrink: 0;
    font-size: 20px;
    padding: 0;
    line-height: 1;
}

.cfca-btn-add:hover {
    transform: scale(1.1) rotate(90deg);
    background: #1b5e20;
    box-shadow: 0 4px 12px rgba(46,125,50,0.4);
}

.cfca-btn-add:active {
    transform: scale(0.95);
}

/* Selects mejorados */
.cfca-select {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #c8e6c9;
    border-radius: 12px;
    font-size: 0.95rem;
    background: white;
    cursor: pointer;
    transition: all 0.3s;
}

.cfca-select:focus {
    border-color: #2e7d32;
    outline: none;
    box-shadow: 0 0 0 3px rgba(46,125,50,0.1);
}

/* Inputs mejorados */
.cfca-input {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #c8e6c9;
    border-radius: 12px;
    font-size: 0.95rem;
    transition: all 0.3s;
}

.cfca-input:focus {
    border-color: #2e7d32;
    outline: none;
    box-shadow: 0 0 0 3px rgba(46,125,50,0.1);
}
/* Overlay del modal */
.cfca-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 100000;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.cfca-modal.active {
    display: flex !important;
    opacity: 1;
}

/* Contenedor principal */
.cfca-modal-content {
    background: linear-gradient(145deg, #ffffff, #f8fff8);
    border-radius: 40px;
    max-width: 1300px;
    width: 95%;
    max-height: 90vh;
    position: relative;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.5);
    transform: scale(0.95);
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.cfca-modal.active .cfca-modal-content {
    transform: scale(1);
    opacity: 1;
}

/* Header del modal */
.cfca-modal-header {
    background: linear-gradient(135deg, #2e7d32, #1b5e20);
    padding: 25px 30px;
    color: white;
    text-align: center;
    border-bottom: 4px solid rgba(255, 255, 255, 0.2);
    position: relative;
}

.cfca-modal-header h2 {
    margin: 0;
    font-size: 2rem;
    font-weight: 700;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    line-height: 1.3;
    padding: 0 50px;
}

/* Botón de cerrar */
.cfca-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    font-size: 28px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    z-index: 10001;
    line-height: 1;
}

.cfca-modal-close:hover {
    background: #f44336;
    border-color: #f44336;
    transform: rotate(90deg);
}

/* Cuerpo del modal - Scrollable */
.cfca-modal-body {
    padding: 30px;
    overflow-y: auto;
    max-height: calc(90vh - 180px);
}

/* Grid de 2 columnas */
.cfca-modal-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-bottom: 25px;
}

/* Tarjetas de información */
.cfca-info-card {
    background: white;
    border-radius: 24px;
    padding: 25px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(46, 125, 50, 0.1);
    transition: all 0.3s ease;
}

.cfca-info-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px -12px rgba(46, 125, 50, 0.2);
}

.cfca-card-title {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px dashed rgba(46, 125, 50, 0.2);
}

.cfca-card-title h3 {
    color: #2e7d32;
    font-size: 1.3rem;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(46, 125, 50, 0.05);
    padding: 8px 25px;
    border-radius: 50px;
}

/* Grid interno para la información */
.cfca-inner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
}

.cfca-info-item {
    background: #f8fdfa;
    padding: 15px;
    border-radius: 16px;
    border-left: 4px solid #2e7d32;
    transition: all 0.2s ease;
}

.cfca-info-item:hover {
    background: #e8f5e9;
    transform: translateX(3px);
}

.cfca-info-item .label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #6b7280;
    margin-bottom: 5px;
    display: block;
}

.cfca-info-item .value {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1f2937;
    word-break: break-word;
}

.cfca-info-item .value a {
    color: #2e7d32;
    text-decoration: none;
    border-bottom: 1px dashed #2e7d32;
}

.cfca-info-item .value a:hover {
    border-bottom-style: solid;
}

/* SECCIÓN DE VALIDACIONES - ESTILO CORRECTO (NO BOTONES) */
.cfca-validaciones-section {
    margin: 25px 0;
    padding: 20px 25px;
    background: linear-gradient(135deg, #f5f9f5, #e8f3e8);
    border-radius: 50px;
    border: 1px solid #c8e6c9;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 15px;
    box-shadow: 0 4px 15px rgba(46, 125, 50, 0.1);
}

.cfca-validaciones-titulo {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #1b5e20;
    font-weight: 600;
    font-size: 1.1rem;
}

.cfca-validaciones-titulo span {
    font-size: 1.4rem;
}

.cfca-validaciones-tags {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.cfca-tag-validacion {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 20px;
    border-radius: 40px;
    font-size: 0.95rem;
    font-weight: 500;
    background: white;
    border: 1.5px solid;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.cfca-tag-fide {
    color: #6a1b9a;
    border-color: #6a1b9a;
    background: #f3e5f5;
}

.cfca-tag-fecodaz {
    color: #2e7d32;
    border-color: #2e7d32;
    background: #e8f5e9;
}

/* BOTÓN DE SUSCRIPCIÓN */
.cfca-suscripcion-section {
    margin: 20px 0 25px;
    text-align: center;
}

.cfca-btn-suscripcion {
    background: linear-gradient(135deg, #ff9800, #f57c00);
    color: white;
    border: none;
    padding: 16px 40px;
    border-radius: 60px;
    font-size: 1.2rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 8px 25px rgba(255, 152, 0, 0.4);
    display: inline-flex;
    align-items: center;
    gap: 12px;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.cfca-btn-suscripcion:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 15px 35px rgba(255, 152, 0, 0.5);
    background: linear-gradient(135deg, #f57c00, #ff9800);
}

.cfca-btn-suscripcion:active {
    transform: translateY(0) scale(0.98);
}

.cfca-btn-suscripcion span {
    font-size: 1.5rem;
}

/* Botón de mapa */
.cfca-map-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: white;
    padding: 14px 25px;
    border-radius: 50px;
    color: #2e7d32;
    text-decoration: none;
    font-weight: 600;
    border: 2px solid #2e7d32;
    transition: all 0.3s ease;
    margin-top: 20px;
}

.cfca-map-button:hover {
    background: #2e7d32;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(46, 125, 50, 0.3);
}

/* Enlaces útiles */
.cfca-links-section {
    margin: 25px 0;
    padding: 20px;
    background: #f8fdfa;
    border-radius: 24px;
    text-align: center;
}

.cfca-links-section h4 {
    color: #2e7d32;
    margin: 0 0 15px 0;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.cfca-links-container {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

.cfca-link-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 40px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.cfca-link-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
}

.cfca-link-chess { background: #6a1b9a; color: white; }
.cfca-link-lichess { background: #2e7d32; color: white; }
.cfca-link-web { background: #1565c0; color: white; }
.cfca-link-flyer { background: #e65100; color: white; }
.cfca-link-resolucion { background: #c62828; color: white; }

/* Footer del modal */
.cfca-modal-footer {
    display: flex;
    gap: 15px;
    justify-content: center;
    padding: 20px 30px;
    border-top: 2px solid rgba(46, 125, 50, 0.1);
    background: #fafdfa;
}

.cfca-footer-button {
    padding: 12px 35px;
    border-radius: 50px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
    font-size: 1rem;
}

.cfca-footer-button.print {
    background: white;
    color: #2e7d32;
    border: 2px solid #2e7d32;
}

.cfca-footer-button.print:hover {
    background: #2e7d32;
    color: white;
    transform: translateY(-2px);
}

.cfca-footer-button.share {
    background: linear-gradient(135deg, #2e7d32, #1b5e20);
    color: white;
}

.cfca-footer-button.share:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(46, 125, 50, 0.3);
}

/* Responsive */
@media (max-width: 768px) {
    .cfca-modal-grid-2 {
        grid-template-columns: 1fr;
    }
    
    .cfca-modal-header h2 {
        font-size: 1.5rem;
        padding: 0 20px;
    }
    
    .cfca-validaciones-section {
        flex-direction: column;
        text-align: center;
    }
    
    .cfca-validaciones-tags {
        justify-content: center;
    }
    
    .cfca-modal-footer {
        flex-direction: column;
        padding: 15px;
    }
    
    .cfca-footer-button {
        width: 100%;
    }
	/* =============================================================
   MODAL DE SUSCRIPCIÓN - DISEÑO PREMIUM
   ============================================================= */

/* Overlay del modal */
.cfca-suscripcion-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 200000;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.cfca-suscripcion-modal.active {
    display: flex;
    opacity: 1;
}

/* Contenedor principal */
.cfca-suscripcion-content {
    background: linear-gradient(145deg, #ffffff, #f8fff8);
    border-radius: 48px;
    max-width: 500px;
    width: 95%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 
        0 30px 60px -15px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(46, 125, 50, 0.1) inset;
    transform: scale(0.9) translateY(20px);
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cfca-suscripcion-modal.active .cfca-suscripcion-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}

/* Botón cerrar */
.cfca-suscripcion-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    background: rgba(0, 0, 0, 0.05);
    color: #666;
    border: 2px solid rgba(46, 125, 50, 0.2);
    border-radius: 50%;
    font-size: 28px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    z-index: 10;
    line-height: 1;
}

.cfca-suscripcion-close:hover {
    background: #f44336;
    color: white;
    border-color: #f44336;
    transform: rotate(90deg);
}

/* Cuerpo del modal */
.cfca-suscripcion-body {
    padding: 40px 35px;
}

/* Icono animado */
.cfca-suscripcion-icon {
    text-align: center;
    margin-bottom: 20px;
    position: relative;
    height: 80px;
}

.cfca-bell {
    font-size: 60px;
    display: inline-block;
    animation: bellShake 2s infinite;
}

.cfca-check {
    font-size: 40px;
    position: absolute;
    bottom: 0;
    right: 35%;
    opacity: 0;
    transform: scale(0);
    transition: all 0.5s ease;
}

.cfca-suscripcion-modal.success .cfca-bell {
    animation: none;
    opacity: 0;
    transform: scale(0);
}

.cfca-suscripcion-modal.success .cfca-check {
    opacity: 1;
    transform: scale(1);
}

@keyframes bellShake {
    0%, 100% { transform: rotate(0); }
    10% { transform: rotate(15deg); }
    20% { transform: rotate(-15deg); }
    30% { transform: rotate(10deg); }
    40% { transform: rotate(-10deg); }
    50%, 80% { transform: rotate(0); }
}

/* Título */
.cfca-suscripcion-titulo {
    text-align: center;
    color: #2e7d32;
    font-size: 1.8rem;
    font-weight: 700;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

/* Nombre del evento */
.cfca-suscripcion-evento {
    background: linear-gradient(135deg, #f0f7f0, #e8f3e8);
    padding: 20px;
    border-radius: 60px;
    text-align: center;
    font-size: 1.2rem;
    font-weight: 600;
    color: #1b5e20;
    margin-bottom: 30px;
    border: 2px dashed #2e7d32;
    box-shadow: 0 4px 15px rgba(46, 125, 50, 0.1);
}

/* Opciones de contacto */
.cfca-suscripcion-opciones {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    justify-content: center;
}

.cfca-opcion-contacto {
    flex: 1;
    background: #f5f5f5;
    border-radius: 60px;
    padding: 15px 5px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.cfca-opcion-contacto.active {
    background: linear-gradient(135deg, #2e7d32, #1b5e20);
    color: white;
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(46, 125, 50, 0.3);
    border-color: rgba(255, 255, 255, 0.3);
}

.cfca-opcion-icon {
    font-size: 28px;
    margin-bottom: 5px;
}

.cfca-opcion-texto {
    font-size: 0.9rem;
    font-weight: 600;
}

/* Campos del formulario */
.cfca-campo-email,
.cfca-campo-whatsapp {
    margin-bottom: 25px;
    animation: slideDown 0.5s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cfca-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: #374151;
    font-weight: 500;
    font-size: 0.95rem;
}

.cfca-label-icon {
    font-size: 1.2rem;
}

.cfca-input {
    width: 100%;
    padding: 15px 20px;
    border: 2px solid #c8e6c9;
    border-radius: 60px;
    font-size: 1rem;
    transition: all 0.3s ease;
    background: white;
}

.cfca-input:focus {
    border-color: #2e7d32;
    outline: none;
    box-shadow: 0 0 0 4px rgba(46, 125, 50, 0.1);
}

.cfca-ayuda {
    display: block;
    margin-top: 8px;
    font-size: 0.8rem;
    color: #6b7280;
    margin-left: 15px;
}

/* Opciones de días */
.cfca-dias-container {
    margin-bottom: 25px;
}

.cfca-dias-opciones {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 15px;
}

.cfca-dia-option {
    flex: 1;
    min-width: 70px;
}

.cfca-dia-option input[type="radio"] {
    display: none;
}

.cfca-dia-label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 8px;
    background: #f5f5f5;
    border-radius: 40px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #4b5563;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.cfca-dia-option input[type="radio"]:checked + .cfca-dia-label {
    background: linear-gradient(135deg, #ff9800, #f57c00);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(255, 152, 0, 0.3);
    border-color: rgba(255, 255, 255, 0.3);
}

/* Resumen */
.cfca-suscripcion-resumen {
    background: linear-gradient(135deg, #fff3e0, #ffe0b2);
    padding: 18px 25px;
    border-radius: 60px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 15px;
    border: 2px solid #ffb74d;
}

.cfca-resumen-icon {
    font-size: 28px;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.cfca-resumen-texto {
    font-size: 1rem;
    color: #bf360c;
    font-weight: 500;
}

.cfca-resumen-texto strong {
    color: #e65100;
    font-size: 1.1rem;
}

/* Botón de suscripción */
.cfca-suscripcion-btn {
    width: 100%;
    background: linear-gradient(135deg, #2e7d32, #1b5e20);
    color: white;
    border: none;
    padding: 18px 25px;
    border-radius: 60px;
    font-size: 1.2rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 10px 30px rgba(46, 125, 50, 0.4);
    border: 2px solid rgba(255, 255, 255, 0.2);
    position: relative;
    overflow: hidden;
}

.cfca-suscripcion-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.cfca-suscripcion-btn:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 20px 40px rgba(46, 125, 50, 0.5);
    background: linear-gradient(135deg, #1b5e20, #2e7d32);
}

.cfca-suscripcion-btn:hover::before {
    left: 100%;
}

.cfca-suscripcion-btn:active {
    transform: translateY(0) scale(0.98);
}

.cfca-btn-icon {
    font-size: 1.5rem;
    transition: transform 0.3s ease;
}

.cfca-suscripcion-btn:hover .cfca-btn-icon {
    transform: translateX(8px);
}

/* Mensaje de éxito */
.cfca-suscripcion-exito {
    display: none;
    text-align: center;
    padding: 20px 0;
}

.cfca-suscripcion-modal.success .cfca-suscripcion-form {
    display: none;
}

.cfca-suscripcion-modal.success .cfca-suscripcion-exito {
    display: block;
    animation: fadeInUp 0.6s ease;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cfca-exito-icon {
    font-size: 80px;
    margin-bottom: 20px;
    animation: bounce 1s ease;
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}

.cfca-exito-titulo {
    color: #2e7d32;
    font-size: 2rem;
    margin: 0 0 15px 0;
}

.cfca-exito-texto {
    color: #4b5563;
    font-size: 1.1rem;
    margin-bottom: 30px;
    line-height: 1.6;
}

.cfca-exito-btn {
    background: white;
    color: #2e7d32;
    border: 2px solid #2e7d32;
    padding: 15px 40px;
    border-radius: 60px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.cfca-exito-btn:hover {
    background: #2e7d32;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(46, 125, 50, 0.3);
}

/* Responsive */
@media (max-width: 600px) {
    .cfca-suscripcion-body {
        padding: 30px 20px;
    }
    
    .cfca-suscripcion-titulo {
        font-size: 1.5rem;
    }
    
    .cfca-suscripcion-opciones {
        flex-direction: column;
    }
    
    .cfca-dias-opciones {
        flex-wrap: wrap;
    }
    
    .cfca-dia-option {
        min-width: calc(33.33% - 7px);
    }
}
}

/* Dashboard · estilos extraídos de PHP */
.fca-dash{
          --bg:#f0fdf4;
          --card:#ffffff;
          --ink:#0f172a;
          --muted:#64748b;
          --b:#bbf7d0;
          --pri:#15803d;
          --pri2:#22c55e;
          --warn:#b45309;
          --bad:#b91c1c;
          --shadow:0 14px 32px rgba(2,6,23,.10);
          font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
        }

        .fca-dash-wrap{
          background:linear-gradient(135deg,#f0fdf4,#ffffff);
          border:1px solid var(--b);
          border-radius:22px;
          padding:18px;
          box-shadow:var(--shadow);
          color:var(--ink);
        }

        .fca-dash-head{
          display:flex;
          align-items:center;
          justify-content:space-between;
          gap:12px;
          flex-wrap:wrap;
          margin-bottom:14px;
        }

        .fca-dash-title{
          font-size:1.35rem;
          font-weight:900;
          display:flex;
          align-items:center;
          gap:10px;
        }

        .fca-dash-logo{
          width:42px;
          height:42px;
          border-radius:14px;
          display:flex;
          align-items:center;
          justify-content:center;
          background:linear-gradient(135deg,var(--pri),var(--pri2));
          color:#fff;
          font-weight:900;
        }

        .fca-status{
          font-size:.75rem;
          font-weight:800;
          color:var(--pri);
          background:#dcfce7;
          border:1px solid var(--b);
          padding:4px 9px;
          border-radius:999px;
        }

        .fca-dash-actions{
          display:flex;
          gap:8px;
          flex-wrap:wrap;
        }

        .fca-btn{
          border:1px solid var(--b);
          background:#fff;
          color:var(--pri);
          padding:10px 14px;
          border-radius:14px;
          font-weight:800;
          cursor:pointer;
          transition:.15s;
        }

        .fca-btn:hover{
          transform:translateY(-1px);
          box-shadow:0 10px 18px rgba(2,6,23,.08);
        }

        .fca-btn--pri{
          background:linear-gradient(135deg,var(--pri),var(--pri2));
          color:#fff;
          border-color:transparent;
        }

        .fca-grid{
          display:grid;
          gap:12px;
        }

        .fca-grid.cards{
          grid-template-columns:repeat(12,1fr);
        }

        .fca-card{
          background:#fff;
          border:1px solid var(--b);
          border-radius:18px;
          padding:14px;
          box-shadow:0 8px 18px rgba(2,6,23,.06);
        }

        .fca-card.kpi{
          grid-column:span 4;
          display:flex;
          align-items:center;
          justify-content:space-between;
          gap:10px;
        }

        .fca-kpi-label{
          color:var(--muted);
          font-weight:800;
          font-size:.85rem;
        }

        .fca-kpi-value{
          color:var(--ink);
          font-weight:1000;
          font-size:1.8rem;
          line-height:1;
          margin-top:4px;
        }

        .fca-kpi-sub{
          color:var(--muted);
          font-size:.82rem;
          margin-top:5px;
        }

        .fca-pill{
          font-size:.75rem;
          font-weight:900;
          padding:5px 9px;
          border-radius:999px;
          border:1px solid var(--b);
          background:#ecfeff;
          color:#0e7490;
        }

        .fca-row2{
          grid-template-columns:repeat(12,1fr);
          margin-top:12px;
        }

        .fca-col-7{grid-column:span 7}
        .fca-col-5{grid-column:span 5}

        .fca-section-head{
          display:flex;
          align-items:center;
          justify-content:space-between;
          gap:8px;
          margin-bottom:10px;
        }

        .fca-section-title{
          font-weight:900;
          color:var(--ink);
        }

        .fca-mini{
          color:var(--muted);
          font-size:.84rem;
        }

        .fca-list{
          margin:0;
          padding:0;
          list-style:none;
          display:grid;
          gap:8px;
        }

        .fca-alert{
          display:flex;
          gap:10px;
          align-items:flex-start;
          border:1px solid var(--b);
          border-radius:15px;
          padding:11px;
          background:#fff;
        }

        .fca-alert .icon{
          width:30px;
          height:30px;
          border-radius:11px;
          display:flex;
          align-items:center;
          justify-content:center;
          font-weight:900;
        }

        .fca-alert.warn .icon{background:#ffedd5;color:var(--warn)}
        .fca-alert.bad .icon{background:#fee2e2;color:var(--bad)}
        .fca-alert.ok .icon{background:#dcfce7;color:var(--pri)}

        .fca-alert .txt{flex:1}
        .fca-alert .t{font-weight:900;color:var(--ink)}
        .fca-alert .d{color:var(--muted);font-size:.85rem;margin-top:2px}

        .fca-table{
          width:100%;
          border-collapse:separate;
          border-spacing:0 8px;
        }

        .fca-table th{
          font-size:.78rem;
          color:var(--muted);
          text-align:left;
          padding:0 8px;
        }

        .fca-table td{
          background:#fff;
          border:1px solid var(--b);
          padding:10px 8px;
          vertical-align:top;
        }

        .fca-table tr td:first-child{
          border-top-left-radius:12px;
          border-bottom-left-radius:12px;
        }

        .fca-table tr td:last-child{
          border-top-right-radius:12px;
          border-bottom-right-radius:12px;
        }

        .fca-toast{
          margin-top:10px;
          border-radius:14px;
          padding:10px 12px;
          border:1px solid var(--b);
          display:none;
          font-weight:800;
        }

        .fca-toast.show{display:block}
        .fca-toast.ok{background:#dcfce7;color:var(--pri)}
        .fca-toast.bad{background:#fee2e2;color:var(--bad)}

        .fca-loading{
          opacity:.55;
          pointer-events:none;
        }

        @media(max-width:980px){
          .fca-card.kpi{grid-column:span 6}
          .fca-col-7,.fca-col-5{grid-column:span 12}
        }

        @media(max-width:560px){
          .fca-card.kpi{grid-column:span 12}
          .fca-dash-head{align-items:flex-start}
          .fca-dash-actions{width:100%}
          .fca-btn{flex:1}
        }
