:root{--cbl-violet-50:#f5f3ff;--cbl-violet-100:#ede9fe;--cbl-violet-200:#ddd6fe;--cbl-violet-300:#c4b5fd;--cbl-violet-400:#a78bfa;--cbl-violet-500:#8b5cf6;--cbl-violet-600:#7c3aed;--cbl-violet-700:#6d28d9;--cbl-violet-800:#5b21b6;--cbl-violet-900:#4c1d95;--cbl-gradient-brand:linear-gradient(135deg,#2b7fff,#8b5cf6);--cbl-gray-50:#f9fafb;--cbl-gray-100:#f3f4f6;--cbl-gray-200:#e5e7eb;--cbl-gray-300:#d1d5db;--cbl-gray-400:#9ca3af;--cbl-gray-500:#6b7280;--cbl-gray-600:#4b5563;--cbl-gray-700:#374151;--cbl-gray-800:#1f2937;--cbl-gray-900:#111827;--cbl-success:#16a34a;--cbl-success-bg:#dcfce7;--cbl-success-text:#15803d;--cbl-warning:#d97706;--cbl-warning-bg:#fef3c7;--cbl-warning-text:#b45309;--cbl-danger:#dc2626;--cbl-danger-bg:#fee2e2;--cbl-danger-text:#b91c1c;--cbl-info:#2563eb;--cbl-info-bg:#dbeafe;--cbl-info-text:#1d4ed8;--cbl-primary:var(--cbl-violet-600);--cbl-primary-hover:var(--cbl-violet-500);--cbl-primary-active:var(--cbl-violet-700);--cbl-primary-tint:var(--cbl-violet-100);--cbl-primary-ring:var(--cbl-violet-200);--cbl-surface-2:var(--cbl-gray-50);--cbl-surface-sunken:var(--cbl-gray-100);--cbl-border:var(--cbl-gray-200);--cbl-border-strong:var(--cbl-gray-300);--cbl-text:var(--cbl-gray-900);--cbl-text-muted:var(--cbl-gray-500);--cbl-text-subtle:var(--cbl-gray-400);--cbl-overlay:rgba(0,0,0,0.4);--cbl-font-display:"Sora",system-ui,-apple-system,sans-serif;--cbl-font-body:"Inter",system-ui,-apple-system,sans-serif;--cbl-text-xs:0.75rem;--cbl-text-sm:0.875rem;--cbl-text-base:1rem;--cbl-text-lg:1.125rem;--cbl-text-xl:1.25rem;--cbl-text-2xl:1.5rem;--cbl-text-3xl:1.875rem;--cbl-radius-sm:6px;--cbl-radius-md:8px;--cbl-radius-lg:12px;--cbl-radius-xl:16px;--cbl-radius-full:9999px;--cbl-space-1:4px;--cbl-space-2:8px;--cbl-space-3:12px;--cbl-space-4:16px;--cbl-space-5:20px;--cbl-space-6:24px;--cbl-space-8:32px;--cbl-shadow-sm:0 1px 2px rgba(15,23,42,0.06);--cbl-shadow-card:0 1px 2px rgba(15,23,42,0.04),0 4px 12px rgba(15,23,42,0.04);--cbl-shadow-card-hover:0 1px 2px rgba(124,58,237,0.05),0 8px 24px rgba(124,58,237,0.08);--cbl-shadow-modal:0 20px 60px -20px rgba(15,23,42,0.35)}[data-theme=dark]{--cbl-primary:var(--cbl-violet-500);--cbl-primary-hover:var(--cbl-violet-400);--cbl-primary-active:var(--cbl-violet-600);--cbl-primary-tint:rgba(139,92,246,0.15);--cbl-primary-ring:rgba(139,92,246,0.4);--cbl-bg:#0a0a0f;--cbl-surface:rgba(255,255,255,0.04);--cbl-surface-2:rgba(255,255,255,0.06);--cbl-surface-sunken:rgba(0,0,0,0.3);--cbl-border:rgba(255,255,255,0.1);--cbl-border-strong:rgba(255,255,255,0.2);--cbl-text:rgba(255,255,255,0.92);--cbl-text-muted:rgba(255,255,255,0.55);--cbl-text-subtle:rgba(255,255,255,0.35);--cbl-overlay:rgba(0,0,0,0.6);--cbl-success-bg:rgba(22,163,74,0.15);--cbl-success-text:#4ade80;--cbl-warning-bg:rgba(217,119,6,0.15);--cbl-warning-text:#fbbf24;--cbl-danger-bg:rgba(220,38,38,0.15);--cbl-danger-text:#f87171;--cbl-info-bg:rgba(37,99,235,0.15);--cbl-info-text:#60a5fa;--cbl-shadow-card:0 1px 2px rgba(0,0,0,0.3),0 4px 12px rgba(0,0,0,0.3);--cbl-shadow-card-hover:0 8px 24px rgba(139,92,246,0.18);--cbl-shadow-modal:0 20px 60px -20px rgba(0,0,0,0.7)}.cbl-root,.cbl-scope{color:var(--cbl-text)}.cbl-btn,.cbl-root,.cbl-scope{font-family:var(--cbl-font-body)}.cbl-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--cbl-space-2);font-weight:600;line-height:1;border:1px solid transparent;border-radius:var(--cbl-radius-lg);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cbl-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--cbl-primary-ring)}.cbl-btn:disabled,.cbl-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.cbl-btn--sm{font-size:var(--cbl-text-xs);padding:6px 12px;border-radius:var(--cbl-radius-md)}.cbl-btn--md{font-size:var(--cbl-text-sm);padding:10px 16px}.cbl-btn--lg{font-size:var(--cbl-text-base);padding:12px 22px}.cbl-btn--block{display:flex;width:100%}.cbl-btn--primary{background:var(--cbl-primary);color:var(--cbl-on-primary);box-shadow:var(--cbl-shadow-sm)}.cbl-btn--primary:hover:not(:disabled){background:var(--cbl-primary-hover)}.cbl-btn--primary:active:not(:disabled){background:var(--cbl-primary-active)}.cbl-btn--secondary{background:var(--cbl-surface);color:var(--cbl-text);border-color:var(--cbl-border)}.cbl-btn--secondary:hover:not(:disabled){border-color:var(--cbl-border-strong);background:var(--cbl-surface-2)}.cbl-btn--ghost{background:transparent;color:var(--cbl-text-muted)}.cbl-btn--ghost:hover:not(:disabled){background:var(--cbl-surface-sunken);color:var(--cbl-text)}.cbl-btn--danger{background:var(--cbl-danger);color:#fff}.cbl-btn--danger:hover:not(:disabled){background:var(--cbl-danger-text)}.cbl-field{display:flex;flex-direction:column;gap:6px}.cbl-label{font-size:var(--cbl-text-xs);font-weight:600;color:var(--cbl-text-muted)}.cbl-label__req{color:var(--cbl-danger);margin-left:2px}.cbl-hint{font-size:var(--cbl-text-xs);color:var(--cbl-text-subtle)}.cbl-hint--error{color:var(--cbl-danger-text)}.cbl-input,.cbl-select,.cbl-textarea{font-family:var(--cbl-font-body);font-size:var(--cbl-text-sm);color:var(--cbl-text);background:var(--cbl-surface);border:1px solid var(--cbl-border);border-radius:var(--cbl-radius-lg);padding:10px 12px;width:100%;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.cbl-input::placeholder,.cbl-textarea::placeholder{color:var(--cbl-text-subtle)}.cbl-input:focus,.cbl-select:focus,.cbl-textarea:focus{outline:none;border-color:var(--cbl-primary);box-shadow:0 0 0 3px var(--cbl-primary-ring)}.cbl-input:disabled,.cbl-select:disabled,.cbl-textarea:disabled{opacity:.5;cursor:not-allowed;background:var(--cbl-surface-sunken)}.cbl-input--error,.cbl-select--error,.cbl-textarea--error{border-color:var(--cbl-danger)}.cbl-input--error:focus,.cbl-textarea--error:focus{box-shadow:0 0 0 3px var(--cbl-danger-bg)}.cbl-textarea{resize:vertical;min-height:84px;line-height:1.5}.cbl-select{padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}.cbl-card{background:var(--cbl-surface);border:1px solid var(--cbl-border);border-radius:var(--cbl-radius-xl);box-shadow:var(--cbl-shadow-card);overflow:hidden}.cbl-card--hover{transition:box-shadow .2s ease,transform .2s ease}.cbl-card--hover:hover{box-shadow:var(--cbl-shadow-card-hover);transform:translateY(-2px)}.cbl-card__header{padding:var(--cbl-space-5) var(--cbl-space-6);border-bottom:1px solid var(--cbl-border)}.cbl-card__title{font-family:var(--cbl-font-display);font-size:var(--cbl-text-lg);font-weight:600;color:var(--cbl-text);margin:0}.cbl-card__subtitle{font-size:var(--cbl-text-sm);color:var(--cbl-text-muted);margin:4px 0 0}.cbl-card__body{padding:var(--cbl-space-6)}.cbl-card__footer{padding:var(--cbl-space-4) var(--cbl-space-6);border-top:1px solid var(--cbl-border);background:var(--cbl-surface-2);display:flex;gap:var(--cbl-space-2);justify-content:flex-end}.cbl-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--cbl-font-body);font-size:var(--cbl-text-xs);font-weight:600;line-height:1;padding:5px 10px;border-radius:var(--cbl-radius-full);white-space:nowrap}.cbl-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.cbl-badge--neutral{background:var(--cbl-gray-100);color:var(--cbl-gray-600)}.cbl-badge--primary{background:var(--cbl-primary-tint);color:var(--cbl-primary)}.cbl-badge--success{background:var(--cbl-success-bg);color:var(--cbl-success-text)}.cbl-badge--warning{background:var(--cbl-warning-bg);color:var(--cbl-warning-text)}.cbl-badge--danger{background:var(--cbl-danger-bg);color:var(--cbl-danger-text)}.cbl-badge--info{background:var(--cbl-info-bg);color:var(--cbl-info-text)}.cbl-modal__overlay{position:absolute;inset:0;background:var(--cbl-overlay);display:flex;align-items:center;justify-content:center;padding:var(--cbl-space-4)}.cbl-modal{position:relative;width:100%;max-width:460px;background:var(--cbl-surface);border:1px solid var(--cbl-border);border-radius:var(--cbl-radius-xl);box-shadow:var(--cbl-shadow-modal);display:flex;flex-direction:column;max-height:100%;overflow:hidden}.cbl-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--cbl-space-4);padding:var(--cbl-space-4) var(--cbl-space-6);border-bottom:1px solid var(--cbl-border)}.cbl-modal__title{font-family:var(--cbl-font-display);font-size:var(--cbl-text-lg);font-weight:600;margin:0;color:var(--cbl-text)}.cbl-modal__close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--cbl-radius-md);background:transparent;color:var(--cbl-text-subtle);cursor:pointer;transition:background .15s ease,color .15s ease}.cbl-modal__close:hover{background:var(--cbl-surface-sunken);color:var(--cbl-text)}.cbl-modal__body{padding:var(--cbl-space-6);overflow-y:auto;color:var(--cbl-text);font-size:var(--cbl-text-sm)}.cbl-modal__footer{display:flex;gap:var(--cbl-space-2);justify-content:flex-end;padding:var(--cbl-space-4) var(--cbl-space-6);border-top:1px solid var(--cbl-border)}.cbl-stat{background:var(--cbl-surface);border:1px solid var(--cbl-border);border-radius:var(--cbl-radius-xl);box-shadow:var(--cbl-shadow-card);padding:var(--cbl-space-5);display:flex;flex-direction:column;gap:6px}.cbl-stat__top{display:flex;align-items:center;justify-content:space-between;gap:var(--cbl-space-3)}.cbl-stat__label{font-size:var(--cbl-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--cbl-text-muted)}.cbl-stat__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--cbl-radius-lg);background:var(--cbl-primary-tint);color:var(--cbl-primary)}.cbl-stat__value{font-family:var(--cbl-font-display);font-size:var(--cbl-text-3xl);font-weight:700;color:var(--cbl-text);line-height:1.1}.cbl-stat__delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--cbl-text-xs);font-weight:600}.cbl-stat__delta--up{color:var(--cbl-success-text)}.cbl-stat__delta--down{color:var(--cbl-danger-text)}.cbl-stat__delta-note{color:var(--cbl-text-subtle);font-weight:500}.cbl-tabs__list{display:flex;gap:var(--cbl-space-2);border-bottom:1px solid var(--cbl-border)}.cbl-tabs__tab{font-family:var(--cbl-font-body);font-size:var(--cbl-text-sm);font-weight:600;color:var(--cbl-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;padding:10px 4px;margin-bottom:-1px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.cbl-tabs__tab:hover{color:var(--cbl-text)}.cbl-tabs__tab--active{color:var(--cbl-primary);border-bottom-color:var(--cbl-primary)}.cbl-tabs__panel{padding-top:var(--cbl-space-4)}.cbl-table,.cbl-tabs__panel{font-size:var(--cbl-text-sm);color:var(--cbl-text)}.cbl-table{width:100%;border-collapse:collapse}.cbl-table thead th{text-align:left;font-size:var(--cbl-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--cbl-text-muted);padding:10px 14px;background:var(--cbl-surface-2)}.cbl-table tbody td,.cbl-table thead th{border-bottom:1px solid var(--cbl-border)}.cbl-table tbody td{padding:12px 14px}.cbl-table tbody tr:last-child td{border-bottom:none}.cbl-table tbody tr{transition:background .12s ease}.cbl-table--hover tbody tr:hover{background:var(--cbl-surface-2)}.cbl-table__wrap{border:1px solid var(--cbl-border);border-radius:var(--cbl-radius-xl);overflow:hidden}.cbl-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--cbl-radius-full);background:var(--cbl-primary-tint);color:var(--cbl-primary);font-family:var(--cbl-font-display);font-weight:600;overflow:hidden;flex-shrink:0}.cbl-avatar__img{width:100%;height:100%;object-fit:cover}.cbl-avatar--sm{width:28px;height:28px;font-size:var(--cbl-text-xs)}.cbl-avatar--md{width:40px;height:40px;font-size:var(--cbl-text-sm)}.cbl-avatar--lg{width:56px;height:56px;font-size:var(--cbl-text-lg)}.cbl-checkbox{gap:var(--cbl-space-2);cursor:pointer;font-size:var(--cbl-text-sm);color:var(--cbl-text);-webkit-user-select:none;-moz-user-select:none;user-select:none}.cbl-checkbox,.cbl-checkbox__box{display:inline-flex;align-items:center}.cbl-checkbox__box{width:18px;height:18px;border:1px solid var(--cbl-border-strong);border-radius:var(--cbl-radius-sm);background:var(--cbl-surface);justify-content:center;color:#fff;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.cbl-checkbox__box svg{opacity:0;transform:scale(.6);transition:opacity .12s ease,transform .12s ease}.cbl-checkbox--checked .cbl-checkbox__box{background:var(--cbl-primary);border-color:var(--cbl-primary)}.cbl-checkbox--checked .cbl-checkbox__box svg{opacity:1;transform:scale(1)}.cbl-checkbox--disabled{opacity:.5;cursor:not-allowed}.cbl-toggle{display:inline-flex;align-items:center;gap:var(--cbl-space-3);cursor:pointer;font-size:var(--cbl-text-sm);color:var(--cbl-text);-webkit-user-select:none;-moz-user-select:none;user-select:none}.cbl-toggle__track{position:relative;width:40px;height:22px;border-radius:var(--cbl-radius-full);background:var(--cbl-gray-300);transition:background .18s ease;flex-shrink:0}.cbl-toggle__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .18s cubic-bezier(.22,1,.36,1)}.cbl-toggle--on .cbl-toggle__track{background:var(--cbl-primary)}.cbl-toggle--on .cbl-toggle__thumb{transform:translateX(18px)}.cbl-toggle--disabled{opacity:.5;cursor:not-allowed}.cbl-tooltip{position:relative;display:inline-flex}.cbl-tooltip__bubble{bottom:calc(100% + 8px);background:var(--cbl-gray-900);color:#fff;font-size:var(--cbl-text-xs);font-weight:500;line-height:1.3;padding:6px 10px;border-radius:var(--cbl-radius-md);white-space:nowrap;box-shadow:var(--cbl-shadow-card);z-index:10}.cbl-tooltip__bubble,.cbl-tooltip__bubble:after{position:absolute;left:50%;transform:translateX(-50%)}.cbl-tooltip__bubble:after{content:"";top:100%;border:5px solid transparent;border-top:5px solid var(--cbl-gray-900)}:root{--cbl-primary:#0f5ca8;--cbl-primary-hover:#1470c4;--cbl-primary-active:#0b4880;--cbl-primary-tint:#e6f0f9;--cbl-primary-ring:rgba(15,92,168,.28);--cbl-on-primary:#ffffff;--cbl-success:#2f9e6b;--cbl-success-bg:#e4f5ec;--cbl-success-text:#1c7a4e;--cbl-warning:#e2661a;--cbl-warning-bg:#fdeee3;--cbl-warning-text:#b04b0e;--cbl-danger:#c8342c;--cbl-danger-bg:#fbe9e7;--cbl-danger-text:#a52a23;--cbl-info:#0f5ca8;--cbl-info-bg:#e6f0f9;--cbl-info-text:#0b4880;--cbl-text:#16232f;--cbl-text-muted:#55677a;--cbl-text-subtle:#5f7386;--cbl-bg:#ffffff;--cbl-surface:#ffffff;--cbl-surface-2:#f5f8fb;--cbl-surface-sunken:#eaf0f6;--cbl-border:#dbe4ec;--cbl-border-strong:#c3d1de;--suma-azul-900:#0a3c6e;--suma-celeste:#4799b9;--suma-naranja:#e2661a;--suma-arena:#f7f4ef;--suma-azul-alumnos:#326e9e;--suma-celeste-fuerte:#4799b9;--suma-naranja-fuerte:#b04b0e;--suma-amarillo:#e6e456;--suma-indigo:#576ae4;--suma-rosa:#dd5b76;--suma-rosa-fuerte:#dd5b76;--suma-rosa-tint:#fbedf0}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--cbl-font-body);font-size:16px;color:var(--cbl-text);-webkit-font-smoothing:antialiased}a{color:var(--cbl-primary);text-decoration:none}a:not(.cbl-btn):hover{color:var(--cbl-primary-hover)}h1,h2,h3,h4{font-family:var(--cbl-font-display);margin:0}:root{--suma-rosa:#68a3ed;--suma-rosa-fuerte:#68a3ed;--suma-rosa-tint:#e8f1fc}