@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans: "IBM Plex Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "IBM Plex Sans Variable", -apple-system, "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--ease-default: cubic-bezier(.4, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(.23, 1, .32, 1);--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1400px;--navbar-height: 64px;--sidebar-width: 240px;--z-dropdown: 1100;--z-sticky: 1000;--z-overlay: 900;--z-modal: 1200;--z-toast: 1300}:root,:root[data-theme=light]{--color-primary: #1B6B3A;--color-primary-hover: #155E32;--color-primary-light: #E6F4EC;--color-primary-dark: #175C33;--color-secondary: #2D8653;--color-secondary-hover: #267648;--color-secondary-light: #EAF6F1;--color-accent: #C9A227;--color-accent-hover: #B8921F;--color-accent-light: #FEF3C7;--color-accent-dark: #92700F;--gradient-brand: linear-gradient(135deg, #175C33 0%, #1B6B3A 50%, #2D8653 100%);--gradient-hero: linear-gradient(135deg, #071A0E 0%, #175C33 40%, #1B6B3A 100%);--gradient-card: linear-gradient(135deg, rgba(27,107,58,.06) 0%, rgba(45,134,83,.06) 100%);--gradient-accent: linear-gradient(135deg, #C9A227 0%, #E8B84B 100%);--color-surface-0: #f2f7f3;--color-surface-1: #ffffff;--color-surface-2: #edf5f0;--color-surface-3: #ddeae2;--color-text-primary: #0f172a;--color-text-secondary: #334155;--color-text-tertiary: #64748b;--color-text-disabled: #94a3b8;--color-text-inverse: #ffffff;--color-text-accent: #1B6B3A;--color-border: #e2e8f0;--color-border-focus: #1B6B3A;--color-border-strong: #cbd5e1;--color-success: #16a34a;--color-success-light: #f0fdf4;--color-success-dark: #14532d;--color-warning: #d97706;--color-warning-light: #fffbeb;--color-warning-dark: #7c2d12;--color-error: #dc2626;--color-error-light: #fef2f2;--color-error-dark: #7f1d1d;--color-info: #2563eb;--color-info-light: #eff6ff;--color-info-dark: #1e3a8a;--shadow-xs: 0 1px 2px 0 rgba(0,0,0,.05);--shadow-sm: 0 1px 3px 0 rgba(0,0,0,.08), 0 1px 2px -1px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.08), 0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.08), 0 8px 10px -6px rgba(0,0,0,.04);--shadow-2xl: 0 25px 50px -12px rgba(0,0,0,.2);--shadow-brand: 0 4px 20px rgba(27,107,58,.25);--shadow-brand-lg: 0 8px 40px rgba(27,107,58,.35);--color-overlay: rgba(15,23,42,.6);--c-verde: #1B6B3A;--c-verde2: #2D8653;--c-azul: #2563eb;--c-rojo: #dc2626;--c-dorado: #C9A227}:root[data-theme=dark]{--color-primary: #2db85f;--color-primary-hover: #26a052;--color-primary-light: #0a2016;--color-primary-dark: #4ade80;--color-secondary: #3ecf75;--color-secondary-hover: #33b864;--color-secondary-light: #0d2018;--color-accent: #e8c56a;--color-accent-hover: #d4b055;--color-accent-light: #2a1e00;--color-accent-dark: #fde68a;--gradient-brand: linear-gradient(135deg, #2db85f 0%, #3ecf75 100%);--gradient-hero: linear-gradient(135deg, #020B05 0%, #071A0E 40%, #175C33 100%);--gradient-card: linear-gradient(135deg, rgba(45,184,95,.12) 0%, rgba(62,207,117,.12) 100%);--gradient-accent: linear-gradient(135deg, #e8c56a 0%, #fde68a 100%);--color-surface-0: #0e1612;--color-surface-1: #192420;--color-surface-2: #222f28;--color-surface-3: #2c3d33;--color-text-primary: #e8f0ea;--color-text-secondary: #a8c0af;--color-text-tertiary: #6a8f74;--color-text-disabled: #3d5544;--color-text-inverse: #0e1612;--color-text-accent: #4ade80;--color-border: #2c4238;--color-border-focus: #4ade80;--color-border-strong: #3a5545;--color-success: #34d399;--color-success-light: #112318;--color-success-dark: #a7f3d0;--color-warning: #fbbf24;--color-warning-light: #221a0a;--color-warning-dark: #fde68a;--color-error: #f87171;--color-error-light: #231111;--color-error-dark: #fecaca;--color-info: #60a5fa;--color-info-light: #101828;--color-info-dark: #bfdbfe;--shadow-xs: 0 1px 2px 0 rgba(0,0,0,.5);--shadow-sm: 0 1px 3px 0 rgba(0,0,0,.6), 0 1px 2px -1px rgba(0,0,0,.5);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.6), 0 2px 4px -2px rgba(0,0,0,.5);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.7), 0 4px 6px -4px rgba(0,0,0,.6);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.75), 0 8px 10px -6px rgba(0,0,0,.65);--shadow-2xl: 0 25px 50px -12px rgba(0,0,0,.9);--shadow-brand: 0 4px 20px rgba(45,184,95,.35);--shadow-brand-lg: 0 8px 40px rgba(45,184,95,.5);--color-overlay: rgba(0,0,0,.78);--c-verde: #4ade80;--c-verde2: #86efac;--c-azul: #60a5fa;--c-rojo: #f87171;--c-dorado: #fbbf24}:root[data-high-contrast=true][data-theme=light]{--color-text-primary: #000000;--color-text-secondary: #111111;--color-border: #000000;--color-surface-1: #ffffff}:root[data-high-contrast=true][data-theme=dark]{--color-text-primary: #ffffff;--color-text-secondary: #f0f0f0;--color-border: #ffffff;--color-surface-1: #000000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-regular);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-surface-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-slow) var(--ease-default),color var(--duration-slow) var(--ease-default)}*:not(.no-transition){transition-property:background-color,border-color,color;transition-duration:var(--duration-slow);transition-timing-function:var(--ease-default)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--color-text-primary)}p{line-height:var(--leading-relaxed);color:var(--color-text-secondary)}a{color:var(--color-text-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-default)}a:hover{color:var(--color-primary-hover)}img{display:block;max-width:100%;height:auto}button{font-family:var(--font-sans);cursor:pointer}input,textarea,select{font-family:var(--font-sans)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}:root{--transition-speed: var(--duration-base);--transition-timing: var(--ease-default);--color-bg-primary: var(--color-surface-1);--color-bg-secondary: var(--color-surface-0);--color-bg-tertiary: var(--color-surface-3);--color-bg-hover: rgba(27, 107, 58, .06);--gradient-primary: var(--gradient-brand)}:root[data-theme=dark]{--color-bg-primary: var(--color-surface-1);--color-bg-secondary: var(--color-surface-0);--color-bg-tertiary: var(--color-surface-3);--color-bg-hover: rgba(76, 175, 118, .08)}input,textarea,select{background-color:var(--color-bg-primary);color:var(--color-text-primary);border-color:var(--color-border)}table{background-color:var(--color-bg-primary);color:var(--color-text-primary)}th{background-color:var(--color-bg-tertiary)}.card,[class*=-card],.modal,.modal-content{background-color:var(--color-bg-primary);color:var(--color-text-primary);border-color:var(--color-border)}:root[data-theme=dark] .empty-state,:root[data-theme=dark] .page-card,:root[data-theme=dark] .content-card,:root[data-theme=dark] .list-container,:root[data-theme=dark] .results-container{background-color:var(--color-surface-1);color:var(--color-text-primary);border-color:var(--color-border)}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] h3{color:var(--color-text-primary)}.page-container{width:100%;max-width:100%;padding:var(--space-8) var(--space-6);box-sizing:border-box}@media(max-width:768px){.page-container{padding:var(--space-6) var(--space-4)}}.page-header{margin-bottom:var(--space-8)}.page-header h1{font-size:var(--text-4xl);font-weight:var(--font-extrabold);color:var(--color-text-primary);margin-bottom:var(--space-2);font-family:var(--font-display)}.page-header p{font-size:var(--text-lg);color:var(--color-text-tertiary);max-width:600px}@media(max-width:768px){.page-header h1{font-size:var(--text-3xl)}}.section-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-display)}.section-title:after{content:"";height:2px;flex:1;background:linear-gradient(90deg,var(--color-primary) 0%,transparent 100%);border-radius:var(--radius-full);opacity:.4}.grid-responsive{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--space-6)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}@media(max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid-2,.grid-3,.grid-4,.grid-responsive{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:1;border-radius:var(--radius-lg);border:2px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn:not(:disabled):active{transform:scale(.97)}.btn-primary{background:var(--gradient-brand);color:#fff;box-shadow:var(--shadow-brand)}.btn-primary:not(:disabled):hover{box-shadow:var(--shadow-brand-lg);filter:brightness(1.05)}.btn-secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:not(:disabled):hover{background:var(--color-primary-light)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.btn-ghost:not(:disabled):hover{background:var(--color-surface-2);color:var(--color-primary-dark)}.btn-outline{background:transparent;color:var(--color-primary);border-color:var(--color-border-strong)}.btn-outline:not(:disabled):hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:not(:disabled):hover{background:var(--color-error-dark)}.btn-success{background:var(--color-success);color:#fff}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-md)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base);border-radius:var(--radius-xl)}.btn-xl{padding:var(--space-5) var(--space-10);font-size:var(--text-lg);border-radius:var(--radius-xl)}.btn-icon{padding:var(--space-2);width:36px;height:36px;border-radius:var(--radius-md)}.btn-full{width:100%}.card{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;min-width:0;transition:box-shadow var(--duration-base) var(--ease-default),border-color var(--duration-base) var(--ease-default),transform var(--duration-base) var(--ease-default)}.card-hover:hover{box-shadow:var(--shadow-xl);border-color:var(--color-primary);transform:translateY(-3px)}.card>.table-container:only-child{border-radius:inherit}.card>.table-container:first-child{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.card>.table-container:last-child{border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.card-header h2,.card-header h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-surface-2)}.form-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}.form-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.form-label .required{color:var(--color-error)}.form-control{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);background:var(--color-surface-1);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);outline:none;transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default);appearance:none}.form-control::placeholder{color:var(--color-text-disabled)}.form-control:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #4ade802e}.form-control:disabled{opacity:.6;cursor:not-allowed;background:var(--color-surface-2)}.form-control.error{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441f}textarea.form-control{resize:vertical;min-height:100px}select.form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:20px;padding-right:var(--space-10);cursor:pointer}.form-hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.form-error{font-size:var(--text-xs);color:var(--color-error)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.badge-primary{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-danger{background:var(--color-error-light);color:var(--color-error-dark)}.badge-info{background:var(--color-info-light);color:var(--color-info-dark)}.badge-neutral,.badge-default{background:var(--color-surface-3);color:var(--color-text-tertiary)}.badge[data-area=MUSICA]{background:#1565c018;color:#1565c0;border-color:#1565c028}.badge[data-area=DANZA]{background:#880e4f18;color:#880e4f;border-color:#880e4f28}.badge[data-area=TEATRO]{background:#4a148c18;color:#4a148c;border-color:#4a148c28}.badge[data-area=ARTES_PLASTICAS]{background:#e6510018;color:#e65100;border-color:#e6510028}.badge[data-area=ARTES_VISUALES]{background:#00695c18;color:#00695c;border-color:#00695c28}.badge[data-area=CIRCO]{background:#1b5e2018;color:#1b5e20;border-color:#1b5e2028}.badge[data-area=LEOB]{background:#4e342e18;color:#4e342e;border-color:#4e342e28}.badge[data-area=OTRA]{background:#37474f18;color:#37474f;border-color:#37474f28}:root[data-theme=dark] .badge[data-area=MUSICA]{background:#1565c030;color:#93c5fd;border-color:#93c5fd28}:root[data-theme=dark] .badge[data-area=DANZA]{background:#88002030;color:#f9a8d4;border-color:#f9a8d428}:root[data-theme=dark] .badge[data-area=TEATRO]{background:#4a008030;color:#c4b5fd;border-color:#c4b5fd28}:root[data-theme=dark] .badge[data-area=ARTES_PLASTICAS]{background:#c4300030;color:#fdba74;border-color:#fdba7428}:root[data-theme=dark] .badge[data-area=ARTES_VISUALES]{background:#00695c30;color:#5eead4;border-color:#5eead428}:root[data-theme=dark] .badge[data-area=CIRCO]{background:#1a4a2030;color:#86efac;border-color:#86efac28}:root[data-theme=dark] .badge[data-area=LEOB]{background:#4e342e30;color:#d7b9a8;border-color:#d7b9a828}:root[data-theme=dark] .badge[data-area=OTRA]{background:#37474f30;color:#b0bec5;border-color:#b0bec528}.table-container{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-surface-1);box-shadow:var(--shadow-sm);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:480px}.data-table thead{background:var(--color-surface-2);border-bottom:2px solid var(--color-border)}.data-table thead th{padding:var(--space-3) var(--space-4);text-align:left;font-size:11px;font-weight:var(--font-bold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-default)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface-2)}.data-table tbody td{padding:var(--space-3) var(--space-4);color:var(--color-text-primary);vertical-align:middle}.data-table th.col-name,.data-table td.col-name{min-width:120px}.data-table th.col-shrink,.data-table td.col-shrink,.data-table th.col-badge,.data-table td.col-badge{width:1%;white-space:nowrap}.data-table th.col-num,.data-table td.col-num{width:1%;white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums}.data-table td.no-wrap{white-space:nowrap;min-width:120px}@media(max-width:640px){.data-table:is(.apilable,[data-apilable]){min-width:0}.data-table:is(.apilable,[data-apilable]) thead{display:none}.data-table:is(.apilable,[data-apilable]) :is(tbody,tr,td){display:block;width:100%;min-width:0;box-sizing:border-box}.data-table:is(.apilable,[data-apilable]) tr{padding:var(--space-3) var(--space-4)}.data-table:is(.apilable,[data-apilable]) td{padding:4px 0;text-align:left!important;white-space:normal;overflow-wrap:anywhere}.data-table:is(.apilable,[data-apilable]) td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:11px;font-weight:var(--font-bold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.06em}.data-table[data-apilable] td[data-label]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.data-table[data-apilable] td[data-label]:before{margin:0;flex-shrink:0}.data-table[data-apilable] td[data-label]:not(:first-child)>*{text-align:right}.data-table[data-apilable] td:first-child{display:block;padding-bottom:var(--space-2)}.data-table[data-apilable] td:first-child:before{display:none}.data-table:is(.apilable,[data-apilable]) td:empty{display:none}.data-table:is(.apilable,[data-apilable]) textarea.form-control{font-size:16px;min-height:9em}}.data-table .solo-movil{display:none}@media(max-width:640px){.data-table th.oculta-movil,.data-table td.oculta-movil{display:none}.data-table .solo-movil{display:block;margin-top:2px}.data-table--compacta{min-width:0}.data-table--compacta td.col-name,.data-table--compacta th.col-name,.data-table--compacta td.no-wrap{min-width:0;white-space:normal}.data-table--compacta td,.data-table--compacta th{padding:var(--space-2) var(--space-3)}}.data-table td .form-control{width:auto}.data-table th.col-action,.data-table td.col-action{width:1%;white-space:nowrap;padding-left:var(--space-2);padding-right:var(--space-2)}.data-table td a{color:var(--color-primary);text-decoration:none;font-weight:600}.data-table td a:hover{text-decoration:underline}.table-link{color:var(--color-primary);font-weight:600;cursor:pointer;text-decoration:none;background:none;border:none;padding:0;font-family:inherit;font-size:inherit;line-height:inherit}.table-link:hover{text-decoration:underline}.cell-main{font-weight:600;color:var(--color-text-primary)}.cell-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium);border:1px solid transparent}.alert-success{background:var(--color-success-light);color:var(--color-success-dark);border-color:var(--color-success)}.alert-warning{background:var(--color-warning-light);color:var(--color-warning-dark);border-color:var(--color-warning)}.alert-error{background:var(--color-error-light);color:var(--color-error-dark);border-color:var(--color-error)}.alert-info{background:var(--color-info-light);color:var(--color-info-dark);border-color:var(--color-info)}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-16) var(--space-8);color:var(--color-text-tertiary)}.spinner{display:inline-block;flex-shrink:0;box-sizing:border-box;width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}.spinner-sm{width:20px;height:20px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-20) var(--space-8);text-align:center}.empty-state-icon{font-size:3.5rem;margin-bottom:var(--space-4);opacity:.4}.empty-state h3{font-size:var(--text-xl);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-state p{font-size:var(--text-base);color:var(--color-text-tertiary);max-width:400px;margin-bottom:var(--space-6)}.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4);animation:fadeIn var(--duration-base) var(--ease-out);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-container{background:var(--color-surface-1);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp var(--duration-base) var(--ease-out)}.modal-header{padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--color-surface-1);z-index:10}.modal-header h2{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin:0}.modal-body{padding:var(--space-6) var(--space-8)}.modal-footer{padding:var(--space-5) var(--space-8);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-3);background:var(--color-surface-2)}.modal-close{background:none;border:none;font-size:var(--text-xl);color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.modal-close:not(:disabled):active{transform:scale(.92)}.modal-close:hover{background:var(--color-surface-2);color:var(--color-text-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.anim-stagger>*:nth-child(1){animation-delay:0ms}.anim-stagger>*:nth-child(2){animation-delay:60ms}.anim-stagger>*:nth-child(3){animation-delay:.12s}.anim-stagger>*:nth-child(4){animation-delay:.18s}.anim-stagger>*:nth-child(5){animation-delay:.24s}.anim-stagger>*:nth-child(6){animation-delay:.3s}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}label:has(>input.sr-only:focus-visible){outline:2px solid var(--color-primary);outline-offset:2px}.text-primary{color:var(--color-text-primary)!important}.text-secondary{color:var(--color-text-secondary)!important}.text-tertiary{color:var(--color-text-tertiary)!important}.text-accent{color:var(--color-primary)!important}.text-success{color:var(--color-success)!important}.text-warning{color:var(--color-warning)!important}.text-error{color:var(--color-error)!important}.bg-surface-1{background:var(--color-surface-1)!important}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.divider{height:1px;background:var(--color-border);margin:var(--space-6) 0}.avatar{border-radius:var(--radius-full);overflow:hidden;background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);color:#fff;flex-shrink:0}.avatar-sm{width:32px;height:32px;font-size:var(--text-sm)}.avatar-md{width:48px;height:48px;font-size:var(--text-lg)}.avatar-lg{width:64px;height:64px;font-size:var(--text-2xl)}.avatar img{width:100%;height:100%;object-fit:cover}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-8)}.admin-header-text h1{font-size:var(--text-3xl);font-weight:var(--font-extrabold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.admin-header-text p{color:var(--color-text-tertiary);font-size:var(--text-base)}.admin-filters{background:var(--color-surface-1);padding:var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);border:1px solid var(--color-border)}@media(max-width:768px){input,textarea,select,.form-control{font-size:16px!important}}@media(max-width:768px){.modal-overlay{padding:0;align-items:flex-end}.modal-container{max-width:100%!important;width:100%;max-height:92vh;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow-y:auto;overflow-x:hidden}.modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-footer{position:sticky;bottom:0;background:var(--color-surface-1);z-index:2;box-shadow:0 -2px 8px #00000014}}@media(max-width:768px){.btn,.btn-sm,button:not(.spinner):not(:disabled){min-height:40px}.btn:not(.btn-sm):not(.btn-icon),button.btn-primary,button.btn-outline{min-height:44px;padding-left:var(--space-4);padding-right:var(--space-4)}.nav-item,.badge[onclick],.table-link{min-height:36px;display:inline-flex;align-items:center}}@media(max-width:768px){.table-container{margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));border-radius:0}.data-table{font-size:var(--text-sm)}.table-container:after{content:"";position:sticky;right:0;top:0;width:20px;height:100%;background:linear-gradient(to right,transparent,rgba(0,0,0,.05));pointer-events:none;display:block}}@media(max-width:768px){.admin-header{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.admin-header-text h1{font-size:var(--text-2xl)!important}.admin-header>div:last-child{width:100%;flex-wrap:wrap}}@media(max-width:768px){.filter-bar select,.filter-bar input{min-width:100%;width:100%}}@media(max-width:768px){.topbar{padding:var(--space-3) var(--space-4)!important;min-height:56px}.topbar .menu-btn{min-width:44px;min-height:44px;display:flex!important;align-items:center;justify-content:center;font-size:20px}}@media(max-width:640px){.pagination,.pagination-container{flex-direction:column;gap:var(--space-2);align-items:stretch}.pagination>*,.pagination-container>*{justify-content:center}}@media(max-width:480px){div[style*="minmax(110px"],div[style*="minmax(140px"],div[style*="minmax(160px"]{grid-template-columns:repeat(2,1fr)!important}}.dashboard-tabs::-webkit-scrollbar{display:none}.dashboard-tabs{-ms-overflow-style:none}.clase-asistencia-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:var(--space-5)}@media(max-width:768px){.clase-asistencia-grid{grid-template-columns:1fr;gap:var(--space-4)}}.recharts-responsive-container{min-width:0!important}.recharts-wrapper{max-width:100%}@media(max-width:640px){.recharts-cartesian-axis-tick text{font-size:10px}.recharts-legend-item-text{font-size:11px!important}}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-width:22px;flex-shrink:0;cursor:pointer;accent-color:var(--color-primary)}input[type=checkbox]{appearance:none;-webkit-appearance:none;margin:0;display:inline-grid;place-content:center;border-radius:6px;border:2px solid var(--color-text-tertiary);background:var(--color-surface-1);transition:background-color .12s ease,border-color .12s ease}input[type=checkbox]:before{content:"";width:12px;height:12px;background:#fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0);transition:transform .12s ease}input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover:not(:disabled){border-color:var(--color-primary)}input[type=checkbox]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer}.tabs-desborde{position:sticky;top:0;z-index:5;background:var(--color-surface-0)}.tabs-scroller{scrollbar-width:none;-ms-overflow-style:none}.tabs-scroller::-webkit-scrollbar{display:none}.tabs-flecha{position:absolute;top:0;bottom:1px;width:30px;z-index:2;border:none;background:var(--color-surface-0);color:var(--color-text-secondary);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.tabs-flecha-izq{left:0}.tabs-flecha-der{right:0}.tabs-flecha:hover{color:var(--color-primary)}@media(max-width:768px){.config-shell{flex-direction:column!important;gap:var(--space-4)!important}.config-nav{width:100%!important;position:static!important;display:flex;flex-wrap:wrap;gap:4px}.config-nav>button{width:auto!important;flex:0 0 auto;white-space:nowrap;border-left:none!important}.config-shell>div{min-width:0}}@media(max-width:768px){.page-container [style*="max-width: 400px"],.page-container [style*="max-width: 420px"],.page-container [style*="max-width: 480px"],.page-container [style*="max-width: 500px"]{max-width:100%!important}}.desplegable>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-1);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:600}.desplegable>summary::-webkit-details-marker{display:none}.desplegable>summary:after{content:"";width:7px;height:7px;margin-left:var(--space-1);border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s ease}.desplegable[open]>summary:after{transform:translateY(2px) rotate(-135deg)}.desplegable[open]>summary{margin-bottom:var(--space-3)}.mapa-lienzo{transition:opacity var(--duration-base) var(--ease-out)}.mapa-lienzo.cargando{opacity:.55}.mapa-municipio{transition:fill-opacity var(--duration-base) var(--ease-out),fill var(--duration-fast) var(--ease-out)}.mapa-municipio.atenuado{fill:var(--color-border);fill-opacity:1}.mapa-municipio.resaltado{stroke:var(--color-text-primary);stroke-width:2px}.mapa-resalte{filter:drop-shadow(0 2px 4px rgb(0 0 0 / .28));pointer-events:none}.mapa-tarjeta{animation:mapa-tarjeta-entra .16s var(--ease-out)}@keyframes mapa-tarjeta-entra{0%{opacity:0;transform:translateY(4px) scale(.98)}}.mapa-leyenda-fila{border-radius:var(--radius-md);padding:2px 6px;margin:0 -6px;transition:background-color var(--duration-fast) var(--ease-out)}.mapa-leyenda-fila:hover{background:var(--color-surface-2)}@media(prefers-reduced-motion:reduce){.mapa-lienzo,.mapa-municipio,.mapa-leyenda-fila{transition:none}.mapa-tarjeta{animation:none}}#root{width:100%;min-height:100vh}.login-page{width:100vw;min-height:100vh}.app-shell{display:flex;min-height:100vh;background:var(--color-surface-0);overflow-x:hidden}@supports (overflow-x: clip){.app-shell{overflow-x:clip}}.sidebar{width:var(--sidebar-width);height:100vh;height:100dvh;background:var(--marca-barra, linear-gradient(175deg, #1D6E3F 0%, #175C33 45%, #104A26 100%));border-right:none;display:flex;flex-direction:column;position:fixed;top:0;left:0;z-index:calc(var(--z-sticky) + 2);transition:transform var(--duration-base) var(--ease-default);box-shadow:2px 0 24px #00000047;overflow:hidden}.sidebar-logo{flex-shrink:0;padding:var(--space-6);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:var(--space-3)}.sidebar-logo-icon{width:40px;height:40px;border-radius:var(--radius-lg);background:#ffffff26;display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);color:#fff;font-weight:var(--font-extrabold);font-family:var(--font-display);flex-shrink:0;border:1px solid rgba(255,255,255,.2)}.sidebar-logo-text h2{font-size:var(--text-base);font-weight:var(--font-extrabold);color:#fff;line-height:1.2}.sidebar-logo-text span{font-size:var(--text-xs);color:#ffffff8c;font-weight:var(--font-regular)}.sidebar-nav{flex:1 1 0;min-height:0;padding:var(--space-4) var(--space-3);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--space-1);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background-color:#ffffff2e;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background-color:#ffffff52}.nav-section-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:#ffffff61;text-transform:uppercase;letter-spacing:.08em;padding:var(--space-3) var(--space-3) var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium);color:#ffffffad;text-decoration:none;transition:all var(--duration-fast) var(--ease-default);cursor:pointer;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:#ffffff17;color:#fffffff2}.nav-item.active{background:linear-gradient(90deg,#fff3,#ffffff12);color:#fff;font-weight:var(--font-semibold);box-shadow:none;border-left:3px solid rgba(255,255,255,.92);padding-left:calc(var(--space-3) - 3px)}.nav-item-icon{font-size:var(--text-lg);flex-shrink:0;width:22px;text-align:center;display:inline-flex;align-items:center;justify-content:center}.sidebar-footer{flex-shrink:0;padding:var(--space-4) var(--space-3);border-top:1px solid rgba(255,255,255,.1);background:#0000001f}.sidebar-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--duration-fast) var(--ease-default)}.sidebar-user:hover{background:#ffffff17}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:var(--text-xs);color:#ffffff7a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;display:flex;flex-direction:column;min-width:0;overflow-x:hidden}@supports (overflow-x: clip){.main-content{overflow-x:clip}}.topbar{height:var(--navbar-height);background:var(--color-surface-1);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.topbar-left{display:flex;align-items:center;gap:var(--space-4)}.topbar-breadcrumb{font-size:var(--text-sm);color:var(--color-text-tertiary)}.topbar-breadcrumb strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.topbar-theme-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);color:var(--color-text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-base);transition:all var(--duration-fast) var(--ease-default)}.topbar-theme-btn:hover{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.content-area{flex:1;padding:0}.topbar .menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;font-size:20px;cursor:pointer}.sidebar-overlay{display:none;position:fixed;inset:0;background:var(--color-overlay);z-index:calc(var(--z-sticky) + 1);overscroll-behavior:contain;touch-action:none}@media(max-width:1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.visible{display:block}.main-content{margin-left:0}.topbar .menu-btn{display:flex}}.login-page{min-height:100vh;display:flex;align-items:stretch;background:var(--color-surface-0)}.login-hero{flex:1;background:var(--gradient-hero);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16);color:#fff}.login-hero h1{font-size:var(--text-4xl);font-family:var(--font-display);font-weight:var(--font-extrabold);color:#fff;margin-bottom:var(--space-4);line-height:1.15}.login-hero p{font-size:var(--text-lg);color:#ffffffbf;max-width:400px;text-align:center;line-height:var(--leading-relaxed)}.login-form-panel{width:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-10);background:var(--color-surface-1)}.login-form-panel h2{font-size:var(--text-2xl);font-weight:var(--font-extrabold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.login-form-panel .subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-8)}.login-form{width:100%}@media(max-width:768px){.login-hero{display:none}.login-form-panel{width:100%;padding:var(--space-8) var(--space-6)}}
