.mat-mdc-dialog-container,.mat-dialog-container{max-height:90vh!important}.mat-mdc-dialog-surface{max-height:90vh!important;display:flex!important;flex-direction:column!important}.mat-mdc-dialog-content,.mat-dialog-content{max-height:calc(90vh - 140px)!important;overflow-y:auto!important}.modal-container{background:var(--app-color-surface);border-radius:var(--app-radius-lg);overflow:hidden;box-shadow:0 8px 30px #00000040;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}.title-stack{display:flex;flex-direction:column;gap:4px}.modal-header .title{color:var(--app-color-primary);font-size:20px;margin:0}.modal-header .title .title-text{text-transform:lowercase;display:inline-block}.modal-header .title .title-text:first-letter{text-transform:uppercase}.modal-header .title .title-icon{margin-right:8px;line-height:1}.modal-header .subtitle{margin:0;font-size:14px;color:var(--app-color-muted)}.close-btn{background:none;border:0;font-size:28px;line-height:1;color:#777;cursor:pointer;flex-shrink:0}.modal-body{padding:20px;flex:1 1 auto;overflow-y:auto;max-height:calc(90vh - 140px)}.modal-header,.modal-footer{flex-shrink:0}.form-root{display:flex;flex-direction:column;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}mat-form-field{width:100%}.error{color:#b00020;margin-top:12px}.modal-footer,footer.modal-footer,[mat-dialog-actions].modal-footer{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#fafafa;border-top:1px solid #eee;flex-shrink:0;position:sticky;bottom:0;z-index:10;margin-top:auto}.actions-spacer{flex:1}.modal-footer button{min-height:40px;padding:8px 14px;border-radius:var(--app-radius-md)}.modal-footer button[color=primary],.modal-footer .mat-mdc-unelevated-button{font-weight:700}.modal-footer .mat-mdc-outlined-button,.modal-footer button[mat-stroked-button]{font-weight:600}.modal-footer button[color=warn],.modal-footer .warn-button,.modal-footer .delete-btn{color:#b00020;margin-right:auto}.modal-footer .mat-flat-button,.modal-footer .mat-stroked-button,.modal-footer .mat-button{font-weight:700}.modal-footer .warn-button,.modal-footer button[color=warn]{color:#b00020}.modal-footer .btn-destructive{background:transparent}.modal-container .mat-form-field-appearance-fill .mat-form-field-flex,.modal-container .mat-mdc-form-field .mat-mdc-text-field{background-color:#fff!important}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}.modal-body{padding:16px}}@media (max-width: 767px){.cdk-overlay-pane{max-width:100vw!important;width:100vw!important}.mat-dialog-container,.mat-mdc-dialog-container{border-radius:12px 12px 0 0!important;max-height:90vh!important}.modal-container{border-radius:12px 12px 0 0}.modal-header{padding:14px 16px}.modal-header .title{font-size:18px}.modal-header .subtitle{font-size:13px}.modal-body{padding:14px 16px;max-height:calc(90vh - 140px);overflow-y:auto}.modal-footer{padding:12px 16px;flex-wrap:wrap;gap:8px}.modal-footer button{flex:1 1 auto;min-width:100px}mat-form-field{font-size:16px}mat-form-field input,mat-form-field textarea,mat-form-field select{font-size:16px!important}}@media (max-width: 767px){.master-detail-container{flex-direction:column!important;height:auto!important;max-height:80vh!important}.master-detail-container .list-panel{width:100%!important;max-height:40vh!important;border-right:none!important;border-bottom:1px solid #e0e0e0!important}.master-detail-container .detail-panel{width:100%!important;min-height:200px}}.course-card .compact-field.mat-mdc-form-field{--mdc-outlined-text-field-label-text-color: #2e7d32;--mdc-outlined-text-field-focus-label-text-color: #1b5e20;--mdc-outlined-text-field-hover-label-text-color: #2e7d32}.course-card .compact-field.mat-mdc-form-field .mat-mdc-floating-label,.course-card .compact-field.mat-mdc-form-field .mdc-floating-label{color:#2e7d32!important;-webkit-text-fill-color:#2e7d32!important}.course-card .compact-field.mat-mdc-form-field.mat-focused .mat-mdc-floating-label,.course-card .compact-field.mat-mdc-form-field.mat-focused .mdc-floating-label{color:#1b5e20!important;-webkit-text-fill-color:#1b5e20!important}@media (max-height: 700px){.mat-mdc-dialog-container,.mat-dialog-container{max-height:95vh!important}.mat-mdc-dialog-content,.mat-dialog-content{max-height:calc(95vh - 120px)!important}.modal-body{max-height:calc(95vh - 120px);padding:14px 16px}.modal-header{padding:12px 16px}.modal-footer{padding:10px 16px}}@media (max-height: 550px){.mat-mdc-dialog-container,.mat-dialog-container{max-height:98vh!important}.mat-mdc-dialog-content,.mat-dialog-content{max-height:calc(98vh - 100px)!important}.modal-body{max-height:calc(98vh - 100px);padding:10px 12px}.modal-header{padding:10px 12px}.modal-header .title{font-size:16px}.modal-footer{padding:8px 12px}.modal-footer button{min-height:36px;padding:6px 12px}}html{--mat-sys-background: light-dark(#f9faf3, #121410);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f1f1eb, #2f312d);--mat-sys-inverse-primary: light-dark(#02e600, #026e00);--mat-sys-inverse-surface: light-dark(#2f312d, #e2e3dc);--mat-sys-on-background: light-dark(#1a1c18, #e2e3dc);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #013a00);--mat-sys-on-primary-container: light-dark(#015300, #77ff61);--mat-sys-on-primary-fixed: light-dark(#002200, #002200);--mat-sys-on-primary-fixed-variant: light-dark(#015300, #015300);--mat-sys-on-secondary: light-dark(#ffffff, #263422);--mat-sys-on-secondary-container: light-dark(#3c4b37, #d7e8cd);--mat-sys-on-secondary-fixed: light-dark(#121f0e, #121f0e);--mat-sys-on-secondary-fixed-variant: light-dark(#3c4b37, #3c4b37);--mat-sys-on-surface: light-dark(#1a1c18, #e2e3dc);--mat-sys-on-surface-variant: light-dark(#43483f, #dfe4d7);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#73796e, #8d9387);--mat-sys-outline-variant: light-dark(#c3c8bc, #43483f);--mat-sys-primary: light-dark(#026e00, #02e600);--mat-sys-primary-container: light-dark(#77ff61, #015300);--mat-sys-primary-fixed: light-dark(#77ff61, #77ff61);--mat-sys-primary-fixed-dim: light-dark(#02e600, #02e600);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#54634d, #bbcbb2);--mat-sys-secondary-container: light-dark(#d7e8cd, #3c4b37);--mat-sys-secondary-fixed: light-dark(#d7e8cd, #d7e8cd);--mat-sys-secondary-fixed-dim: light-dark(#bbcbb2, #bbcbb2);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#f9faf3, #121410);--mat-sys-surface-bright: light-dark(#f9faf3, #383a35);--mat-sys-surface-container: light-dark(#eeeee7, #1e201c);--mat-sys-surface-container-high: light-dark(#e8e9e1, #282b26);--mat-sys-surface-container-highest: light-dark(#e2e3dc, #333531);--mat-sys-surface-container-low: light-dark(#f3f4ed, #1a1c18);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0c0f0b);--mat-sys-surface-dim: light-dark(#dadbd3, #121410);--mat-sys-surface-tint: light-dark(#026e00, #02e600);--mat-sys-surface-variant: light-dark(#dfe4d7, #43483f);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2c3229;--mat-sys-neutral10: #1a1c18;--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{--app-color-primary: #177a30;--app-color-primary-hover: #125a24;--app-color-text: #333333;--app-color-muted: #555555;--app-color-background: #f4f7f6;--app-color-surface: #ffffff;--app-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--app-radius-lg: 12px;--app-radius-md: 8px;--app-shadow-lg: 0 6px 20px rgba(0, 0, 0, .08);--app-spacing-sm: 12px;--app-spacing-md: 16px;--app-spacing-lg: 24px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color-scheme:light;background-color:var(--app-color-background);color:var(--app-color-text);font-family:var(--app-font-family);-webkit-font-smoothing:antialiased;line-height:1.5}img{max-width:100%;display:block}button{font-family:inherit}input,textarea,button,select{font:inherit}.app-centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--app-spacing-lg) var(--app-spacing-md);background-color:var(--app-color-background)}.app-auth-card{width:100%;max-width:450px;padding:40px 50px;background-color:var(--app-color-surface);border-radius:var(--app-radius-lg);box-shadow:var(--app-shadow-lg);text-align:center}@media (max-width: 480px){.app-auth-card{padding:30px 24px;margin:0 16px;border-radius:var(--app-radius-md)}.app-auth-logo{width:180px}.app-auth-title{font-size:22px}}.app-auth-logo{width:250px;margin:0 auto 15px}.app-auth-title{margin:0 0 30px;font-size:28px;font-weight:700;color:var(--app-color-primary)}.app-form{display:flex;flex-direction:column;gap:20px}.app-form-field{display:flex;flex-direction:column;text-align:left;gap:8px;color:var(--app-color-muted)}.app-form-field label{font-weight:600}.app-input{padding:14px 12px;font-size:16px;border:1px solid #cccccc;border-radius:var(--app-radius-md);transition:border-color .2s ease,box-shadow .2s ease;background-color:#fff}.app-input:focus,.app-input:focus-visible{outline:none;border-color:var(--app-color-primary);box-shadow:0 0 0 3px #177a3033}.app-primary-button{padding:16px;font-size:16px;font-weight:700;color:#fff;background-color:var(--app-color-primary);border:none;border-radius:var(--app-radius-md);cursor:pointer;transition:background-color .2s ease}.app-primary-button:hover,.app-primary-button:focus-visible{background-color:var(--app-color-primary-hover)}.app-primary-button:focus-visible{outline:3px solid rgba(23,122,48,.35);outline-offset:2px}.app-muted-link{color:var(--app-color-muted);font-size:14px;text-decoration:none;transition:color .2s ease}.app-muted-link:hover{color:var(--app-color-primary)}.mat-snack-bar-container.app-snackbar-green,.mat-mdc-snack-bar-container.app-snackbar-green,.cdk-global-overlay-wrapper .mat-snack-bar-container.app-snackbar-green,.cdk-global-overlay-wrapper .mat-mdc-snack-bar-container.app-snackbar-green{background-color:var(--app-color-primary)!important;color:#fff!important;box-shadow:0 6px 20px #177a3040!important;border-radius:8px!important}.mat-snack-bar-container.app-snackbar-green .mat-simple-snackbar,.mat-mdc-snack-bar-container.app-snackbar-green .mat-simple-snackbar,.mat-snack-bar-container.app-snackbar-green .mat-mdc-snack-bar,.mat-mdc-snack-bar-container.app-snackbar-green .mat-mdc-snack-bar{font-weight:700;color:#fff!important}body .cdk-overlay-container .cdk-global-overlay-wrapper .cdk-overlay-pane .mat-snack-bar-container.app-snackbar-green,body .cdk-overlay-container .cdk-global-overlay-wrapper .cdk-overlay-pane .mat-mdc-snack-bar-container.app-snackbar-green,body .cdk-overlay-container .mat-snack-bar-container.app-snackbar-green,body .cdk-overlay-container .mat-mdc-snack-bar-container.app-snackbar-green{background-color:var(--app-color-primary)!important;background-image:none!important;color:#fff!important}body .cdk-overlay-container .mat-snack-bar-container.app-snackbar-green .mat-simple-snackbar,body .cdk-overlay-container .mat-mdc-snack-bar-container.app-snackbar-green .mat-simple-snackbar,body .cdk-overlay-container .mat-mdc-snack-bar-container.app-snackbar-green .mat-mdc-snack-bar{color:#fff!important}.registrar-actividad-backdrop{background-color:#0009!important}.registrar-actividad-dialog-panel .mat-dialog-container,.registrar-actividad-dialog-panel .mat-mdc-dialog-container,.activity-catalog-dialog-panel .mat-dialog-container,.activity-catalog-dialog-panel .mat-mdc-dialog-container{padding:0!important;border-radius:12px!important;box-shadow:0 8px 30px #00000040!important}.registrar-actividad-dialog-panel .mat-dialog-container,.registrar-actividad-dialog-panel .mat-mdc-dialog-container{max-width:none!important;width:100%!important}.activity-catalog-dialog-panel .mat-dialog-container,.activity-catalog-dialog-panel .mat-mdc-dialog-container{max-width:1400px!important;width:min(95vw,1400px)!important;height:80vh!important}.registrar-actividad-backdrop.cdk-overlay-backdrop{z-index:1000!important}.cdk-global-overlay-wrapper .cdk-overlay-pane{max-width:95vw!important}.cdk-overlay-container .mat-datepicker-content,.cdk-overlay-container .mat-mdc-datepicker-content,.cdk-overlay-container .mat-datepicker-popup,.cdk-overlay-container .mat-mdc-datepicker-popup{z-index:2000!important}.mat-mdc-dialog-container{--mdc-outlined-text-field-label-text-color: #333333;--mdc-outlined-text-field-focus-label-text-color: #1b5e20;--mdc-outlined-text-field-hover-label-text-color: #222222;--mdc-outlined-text-field-disabled-label-text-color: #757575;--mdc-filled-text-field-label-text-color: #333333;--mdc-filled-text-field-focus-label-text-color: #1b5e20;--mdc-filled-text-field-hover-label-text-color: #222222}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{color:#333!important}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label mat-label{color:inherit!important}.course-card .mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{color:#2e7d32!important}.course-card .mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label mat-label{color:inherit!important}
