html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #0000ef;--mat-sys-on-tertiary-fixed: #00006e;--mat-sys-on-tertiary-fixed-variant: #0000ef;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #343dff;--mat-sys-tertiary-container: #e0e0ff;--mat-sys-tertiary-fixed: #e0e0ff;--mat-sys-tertiary-fixed-dim: #bec2ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--primary-color: #004370;--primary-container: #005b96;--secondary-color: #35618b;--background-color: #f7f9fc;--surface-color: #f7f9fc;--surface-white: #ffffff;--border-subtle: #d9e2ec;--text-main: #1f2933;--text-secondary: #5c6b73;--sidebar-bg: #003b63;--sidebar-active: #005b96;--accent-orange: #f28c28;--padding-card: 20px;--container-gap: 24px;--grid-gutter: 16px}html,body{height:100%;margin:0}body{background-color:var(--background-color);color:var(--text-main);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c7d1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#717781}.flex{display:flex!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.items-center{align-items:center!important}.items-end{align-items:flex-end!important}.justify-between{justify-content:space-between!important}.justify-center{justify-content:center!important}.justify-end{justify-content:flex-end!important}.flex-1{flex:1 1 0%!important}.grid{display:grid!important}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))!important}.col-span-12{grid-column:span 12/span 12!important}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.md\:col-span-2{grid-column:span 2/span 2!important}.md\:col-span-3{grid-column:span 3/span 3!important}.md\:items-end{align-items:flex-end!important}}@media(min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.lg\:col-span-8{grid-column:span 8/span 8!important}.lg\:col-span-4{grid-column:span 4/span 4!important}}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-4{margin-bottom:16px!important}.mb-6{margin-bottom:24px!important}.mb-8{margin-bottom:32px!important}.mb-10{margin-bottom:40px!important}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-4{margin-top:16px!important}.mt-6{margin-top:24px!important}.mt-12{margin-top:48px!important}.mt-auto{margin-top:auto!important}.mr-2{margin-right:8px!important}.ml-auto{margin-left:auto!important}.p-4{padding:16px!important}.p-6{padding:24px!important}.p-padding-card{padding:var(--padding-card, 20px)!important}.px-2{padding-left:8px!important;padding-right:8px!important}.px-3{padding-left:12px!important;padding-right:12px!important}.py-0\.5{padding-top:2px!important;padding-bottom:2px!important}.py-1{padding-top:4px!important;padding-bottom:4px!important}.py-3{padding-top:12px!important;padding-bottom:12px!important}.py-5{padding-top:20px!important;padding-bottom:20px!important}.py-6{padding-top:24px!important;padding-bottom:24px!important}.pb-24{padding-bottom:96px!important}.gap-1{gap:4px!important}.gap-2{gap:8px!important}.gap-3{gap:12px!important}.gap-4{gap:16px!important}.gap-6{gap:24px!important}.gap-8{gap:32px!important}.gap-container-gap{gap:var(--container-gap, 24px)!important}.gap-grid-gutter{gap:var(--grid-gutter, 16px)!important}.w-2{width:8px!important}.h-2{height:8px!important}.w-6{width:24px!important}.h-6{height:24px!important}.w-8{width:32px!important}.h-8{height:32px!important}.w-10{width:40px!important}.h-10{height:40px!important}.w-12{width:48px!important}.w-64{width:256px!important}.w-80{width:320px!important}.w-40{width:160px!important}.w-44{width:176px!important}.w-auto{width:auto!important}.h-12{height:48px!important}.h-screen{height:100vh!important}.min-h-screen{min-height:100vh!important}.border-none{border:none!important}.border-r{border-right:1px solid var(--border-subtle)!important}.border-b{border-bottom:1px solid var(--border-subtle)!important}.border-t{border-top:1px solid var(--border-subtle)!important}.rounded-xl{border-radius:12px!important}.rounded-full{border-radius:9999px!important}.bg-sidebar-bg{background-color:var(--sidebar-bg)!important}.bg-surface-white{background-color:var(--surface-white)!important}.bg-surface-container-low{background-color:#f2f4f780!important}.bg-surface-container-high{background-color:#e6e8eb!important}.bg-success-container{background-color:#dff6dd!important}.bg-primary\/10{background-color:#0043701a!important}.bg-primary\/5{background-color:#0043700d!important}.text-success{color:#107c10!important}.text-text-main{color:var(--text-main)!important}.text-text-secondary,.text-on-surface-variant{color:var(--text-secondary)!important}.text-xs{font-size:12px!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.italic{font-style:italic!important}.uppercase{text-transform:uppercase!important}.tracking-tight{letter-spacing:-.025em!important}.tracking-wide{letter-spacing:.025em!important}.tracking-widest{letter-spacing:.1em!important}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden!important}.space-y-1>*+*{margin-top:4px!important}.space-y-8>*+*{margin-top:32px!important}.space-y-container-gap>*+*{margin-top:var(--container-gap, 24px)!important}.border-success\/20{border:1px solid rgba(16,124,16,.2)!important}.border-primary\/20{border:1px solid rgba(0,67,112,.2)!important}.border-primary\/10{border:1px solid rgba(0,67,112,.1)!important}.material-symbols-outlined{font-family:Material Symbols Outlined!important;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.material-symbols-outlined.text-sm{font-size:18px!important}.material-symbols-outlined.text-xl{font-size:20px!important}.material-symbols-outlined.text-3xl{font-size:30px!important}.w-full{width:100%!important}.bg-primary{background-color:var(--primary-color)!important}.text-surface-white{color:#fff!important}.text-primary{color:var(--primary-color)!important}.px-4{padding-left:16px!important;padding-right:16px!important}.px-6{padding-left:24px!important;padding-right:24px!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}.py-2\.5{padding-top:10px!important;padding-bottom:10px!important}.rounded-lg{border-radius:8px!important}.font-headline-sm{font-weight:600!important;font-size:14px!important}.font-label-md{font-weight:500!important;font-size:12px!important}.hover\:bg-primary-container:hover{background-color:#005b96!important}.hover\:bg-surface-container-low:hover{background-color:var(--surface-container-low)!important}.active\:scale-95:active{transform:scale(.95)!important}.shadow-sm{box-shadow:0 1px 2px #0000000d!important}.border{border:1px solid var(--border-subtle)!important}.border-border-subtle{border-color:var(--border-subtle)!important}.bg-surface-white{background-color:#fff!important}.transition-all{transition:all .2s ease-in-out!important}.transition-colors{transition:color .15s ease-in-out,background-color .15s ease-in-out!important}.chip-blue{background-color:#e0f2fe!important;color:#0369a1!important;border:1px solid #bae6fd!important}.chip-orange{background-color:#ffedd5!important;color:#c2410c!important;border:1px solid #fed7aa!important}.chip-green{background-color:#dcfce7!important;color:#15803d!important;border:1px solid #bbf7d0!important}.admin-page{padding:28px 32px;display:flex;flex-direction:column;gap:22px;max-width:100%;box-sizing:border-box}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-header .admin-title{margin:0 0 4px;font-size:22px;font-weight:700;color:var(--primary-color);letter-spacing:-.01em}.admin-header .admin-subtitle{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .18s}.btn-primary .material-symbols-outlined{font-size:18px}.btn-primary:hover{background:var(--primary-container)}.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border:1px solid var(--border-subtle);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:background .18s}.btn-secondary:hover{background:#f0f4f8}.form-card{background:#fff;border:1px solid var(--border-subtle);border-radius:12px;padding:24px 28px;box-shadow:0 1px 4px #0000000f}.form-card .form-card-title{margin:0 0 20px;font-size:17px;font-weight:700;color:var(--primary-color);padding-bottom:14px;border-bottom:1px solid var(--border-subtle)}.form-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:640px){.form-grid{grid-template-columns:1fr 1fr}}.form-group{display:flex;flex-direction:column;gap:5px}.form-group.full-width{grid-column:1/-1}.form-group label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.form-group label .required{color:#dc2626}.form-group input,.form-group select,.form-group textarea{padding:9px 12px;border:1px solid var(--border-subtle);border-radius:8px;font-size:13px;color:var(--text-main);background:#f7f9fc;outline:none;transition:border-color .18s,box-shadow .18s;font-family:inherit;box-sizing:border-box;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #0043701a;background:#fff}.form-group input.ng-invalid.ng-touched,.form-group select.ng-invalid.ng-touched,.form-group textarea.ng-invalid.ng-touched{border-color:#dc2626}.form-group textarea{resize:vertical;min-height:80px}.form-group .field-error{font-size:11px;color:#dc2626;margin-top:2px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid var(--border-subtle);margin-top:6px;flex-wrap:wrap}.permisos-section .permisos-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);padding-bottom:10px;border-bottom:1px solid var(--border-subtle);margin-bottom:14px}.permisos-section .permisos-grid{display:grid;grid-template-columns:1fr;gap:14px}@media(min-width:640px){.permisos-section .permisos-grid{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.permisos-section .permisos-grid{grid-template-columns:1fr 1fr 1fr}}.permisos-section .permiso-grupo{border:1px solid var(--border-subtle);border-radius:10px;padding:14px;background:#f7f9fc}.permisos-section .permiso-grupo .grupo-titulo{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--primary-color);padding-bottom:8px;border-bottom:1px solid var(--border-subtle);margin-bottom:10px}.permisos-section .permiso-grupo .grupo-titulo .material-symbols-outlined{font-size:16px}.permisos-section .permiso-grupo .permiso-item{display:flex;align-items:flex-start;gap:8px;padding:4px 0;cursor:pointer}.permisos-section .permiso-grupo .permiso-item input[type=checkbox]{width:14px;height:14px;margin-top:2px;accent-color:var(--primary-color);cursor:pointer;flex-shrink:0;padding:0;border:none;background:none;box-shadow:none}.permisos-section .permiso-grupo .permiso-item .permiso-label{font-size:13px;font-weight:500;color:var(--text-main);display:block}.permisos-section .permiso-grupo .permiso-item .permiso-codigo{font-size:10px;font-family:monospace;color:var(--text-secondary);display:block}.loading-box{display:flex;justify-content:center;align-items:center;padding:56px 0;background:#fff;border:1px solid var(--border-subtle);border-radius:12px}.table-card{background:#fff;border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.table-card table{width:100%}.table-card table th.mat-header-cell{background:#f7f9fc;color:var(--text-secondary);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:13px 16px;border-bottom:1px solid var(--border-subtle)}.table-card table td.mat-cell{padding:13px 16px;font-size:13px;color:var(--text-main);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.table-card table tr.mat-row:last-child td.mat-cell{border-bottom:none}.table-card table tr.mat-row:hover td.mat-cell{background:#f7f9fc}.table-card .cell-primary{font-weight:700;color:var(--primary-color)}.table-card .cell-bold{font-weight:600}.table-card .cell-secondary{color:var(--text-secondary)}.table-card .cell-mono{font-family:monospace;font-size:11px;color:var(--text-secondary)}.table-card .cell-center{text-align:center}.table-card .cell-number{text-align:center;font-weight:700}.table-card .actions-cell{display:flex;align-items:center;justify-content:center;gap:4px}.table-card .actions-cell .action-btn{width:30px;height:30px;border:1px solid var(--border-subtle);border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.table-card .actions-cell .action-btn .material-symbols-outlined{font-size:16px}.table-card .actions-cell .action-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.table-card .actions-cell .action-btn.danger:hover{background:#dc2626;color:#fff;border-color:#dc2626}.table-card .actions-cell .action-btn:disabled{opacity:.3;cursor:not-allowed}.table-card .actions-cell .action-btn:disabled:hover{background:transparent;color:var(--text-secondary);border-color:var(--border-subtle)}.table-card .empty-state{display:flex;flex-direction:column;align-items:center;padding:56px 24px;gap:8px;color:var(--text-secondary)}.table-card .empty-state .material-symbols-outlined{font-size:44px;color:#cbd5e1}.table-card .empty-state p{margin:0;font-size:13px}.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700}.chip.chip-activo{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.chip.chip-inactivo{background:#ffedd5;color:#c2410c;border:1px solid #fed7aa}.chip.chip-bloqueado{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.chip.chip-rol{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}
