:root{--color-primary-dark: #0a1e3f;--color-primary-blue: #1e3a5f;--color-primary-light: #2a4d7a;--color-accent-cyan: #00d4ff;--color-accent-cyan-light: #00e8ff;--color-accent-teal: #00a8cc;--color-accent-magenta: #ff006e;--color-accent-pink: #ff4d7d;--color-neutral-white: #ffffff;--color-neutral-light: #f5f7fa;--color-neutral-gray: #8b95a5;--color-neutral-dark: #1a2332;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--shadow-xl: 0 12px 24px rgba(0, 0, 0, .25);--gradient-hero: linear-gradient(135deg, #0a1e3f 0%, #1e3a5f 50%, #00a8cc 100%);--gradient-hero-dark: linear-gradient(135deg, #0a1e3f 0%, #2a4d7a 100%);--gradient-accent: linear-gradient(90deg, #ff006e 0%, #ff4d7d 100%)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{font-family:var(--font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-neutral-white);color:var(--color-neutral-dark)}code{font-family:var(--font-family-mono)}.layout-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.layout-content{flex:1;overflow-y:auto;display:flex;flex-direction:column}.language-switcher{display:flex;align-items:center;border:1px solid rgba(255,255,255,.4);border-radius:4px;overflow:hidden}.language-switcher__btn{padding:.3rem .6rem;font-size:.75rem;font-weight:600;letter-spacing:.5px;color:#fff9;background:none;border:none;cursor:pointer;transition:background-color .2s ease,color .2s ease}.language-switcher__btn:hover{background-color:#ffffff1a}.language-switcher__btn--active{color:var(--color-neutral-white);background-color:#fff3}.language-switcher__divider{width:1px;height:1.2rem;background-color:#ffffff4d}.home{flex:1;display:flex;flex-direction:column;background-color:var(--color-neutral-light)}.home-demo-banner{display:flex;align-items:center;gap:10px;padding:10px 24px;background:#fff3cd;color:#664d03;font-size:14px;font-weight:500;border-bottom:1px solid #ffecb5}.home-demo-banner__badge{font-size:11px;font-weight:700;letter-spacing:.5px;background:#664d03;color:#fff3cd;padding:2px 8px;border-radius:4px;flex-shrink:0}.home-hero{position:relative;height:400px;display:flex;align-items:center;padding:0 var(--spacing-2xl);color:var(--color-neutral-white);overflow:hidden}.home-hero-image-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.home-hero-image{width:100%;height:100%;object-fit:cover;object-position:center}.home-hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#0a1e3fe6,#0a1e3f66);z-index:1}.home-hero-content{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%}.home-hero-title{font-size:3rem;font-weight:800;line-height:1.1;margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:-1px}.home-hero-accent{color:#fff;display:block}.home-hero-subtitle{font-size:1.25rem;font-weight:400;line-height:1.5;max-width:500px;opacity:.9}.home-access-code{margin-top:28px;max-width:400px}.home-access-code__field{display:flex;gap:8px}.home-access-code__input{flex:1;padding:12px 16px;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff1a;color:#fff;font-size:15px;outline:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:border-color .2s ease}.home-access-code__input::placeholder{color:#ffffff80}.home-access-code__input:focus{border-color:#fff9}.home-access-code__input--error{border-color:#ff6b6b}.home-access-code__button{padding:12px 24px;border:none;border-radius:8px;background:#fff;color:#1a1a2e;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s ease}.home-access-code__button:hover:not(:disabled){opacity:.9}.home-access-code__button:disabled{opacity:.5;cursor:not-allowed}.home-access-code__error{margin:8px 0 0;font-size:14px;color:#ff6b6b}.home-content{flex:1;padding:var(--spacing-2xl);background-color:var(--color-neutral-white)}.home-description{max-width:1200px;margin:0 auto var(--spacing-md);width:100%}.home-description h2{font-size:2rem;color:var(--color-primary-dark);margin-bottom:var(--spacing-md)}.home-description p{font-size:1rem;color:var(--color-neutral-gray);line-height:1.8;margin-bottom:var(--spacing-sm)}.home-description-highlight{color:var(--color-accent-teal);font-weight:600}.home-features{max-width:1200px;margin:0 auto;width:100%}.home-features h3{font-size:1.5rem;color:var(--color-primary-dark);margin-bottom:var(--spacing-md);font-weight:700;text-align:center}.home-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl);margin-bottom:0}.home-card{background:var(--color-neutral-white);padding:var(--spacing-xl);border-radius:8px;display:flex;flex-direction:column;border:1px solid var(--color-neutral-light-gray, #e2e8f0);transition:all .2s ease}.home-card:hover{border-color:var(--color-primary-blue);box-shadow:var(--shadow-sm)}.home-card:nth-child(1){background-color:#00a8cc0a}.home-card:nth-child(2){background-color:#1e3a5f0a}.home-card:nth-child(3){background-color:#ff006e0a}.home-card-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:var(--spacing-md);font-weight:700;background:var(--color-neutral-light)}.home-card:nth-child(1) .home-card-icon{color:var(--color-accent-teal)}.home-card:nth-child(2) .home-card-icon{color:var(--color-primary-blue)}.home-card:nth-child(3) .home-card-icon{color:var(--color-accent-magenta)}.home-card-title{position:relative;z-index:1;font-size:1.25rem;font-weight:700;color:var(--color-primary-dark);margin-bottom:var(--spacing-sm)}.home-card-description{position:relative;z-index:1;font-size:.95rem;color:var(--color-neutral-gray);line-height:1.6;flex:1;margin-bottom:var(--spacing-md)}@media(max-width:768px){.home-hero{padding:var(--spacing-md) var(--spacing-lg)}.home-hero-title{font-size:1.5rem}.home-hero-subtitle{font-size:.95rem}.home-content{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md)}.home-description h2{font-size:1.4rem}.home-features h3{font-size:1.2rem}.home-cards-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.home-card{padding:var(--spacing-lg)}}@media(max-width:480px){.home-hero{padding:var(--spacing-md) var(--spacing-md)}.home-hero-title{font-size:1.3rem}.home-hero-subtitle{font-size:.9rem}.home-content{padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm)}.home-description h2{font-size:1.2rem}.home-features h3{font-size:1rem}.home-card-title{font-size:1.1rem}.home-card-description{font-size:.9rem}}.auth-container{display:flex;flex:1;background-color:#1e40af;align-items:center;justify-content:center;color:#fff}.auth-content{text-align:center}.auth-wrapper{position:relative}.auth-loader-outer{animation:spin 1s linear infinite;border-radius:9999px;height:4rem;width:4rem;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;margin-left:auto;margin-right:auto;margin-bottom:1.5rem}.auth-loader-inner{position:absolute;inset:0;border-radius:9999px;height:4rem;width:4rem;border:4px solid rgba(147,197,253,.2);border-right-color:#93c5fd;margin-left:auto;margin-right:auto;animation:spin 1.5s linear infinite reverse}.auth-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.auth-message{color:#bfdbfe}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.overview{padding:32px 24px}.overview__header{margin-bottom:32px}.overview__title{font-size:26px;font-weight:600;color:#1a1a1a;margin:0 0 6px}.overview__subtitle{font-size:15px;color:#6c757d;margin:0}.overview__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:40px}.overview-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;background:#fff;border:1px solid #e9ecef;border-radius:10px;box-shadow:0 1px 4px #0000000f;position:relative;text-decoration:none;color:inherit}.overview-card--active{cursor:pointer;transition:box-shadow .2s ease,transform .15s ease}.overview-card--active:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.overview-card--placeholder{opacity:.55}.overview-card__badge{position:absolute;top:10px;right:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6c757d;background-color:#f1f3f5;padding:2px 8px;border-radius:10px}.overview-card__icon{width:36px;height:36px;color:#007bff}.overview-card__icon--muted{color:#adb5bd}.overview-card__icon svg{width:100%;height:100%}.overview-card__value{font-size:32px;font-weight:700;color:#1a1a1a;line-height:1}.overview-card__value--muted{color:#adb5bd}.overview-card__label{font-size:14px;font-weight:500;color:#6c757d}.overview__quick-links{margin-top:8px}.overview__section-title{font-size:18px;font-weight:600;color:#1a1a1a;margin:0 0 16px}.overview__links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.overview-quick-link{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff;border:1px solid #e9ecef;border-radius:8px;text-decoration:none;color:#343a40;font-size:15px;font-weight:500;transition:background-color .15s ease,box-shadow .15s ease}.overview-quick-link:hover{background-color:#f8f9fa;box-shadow:0 2px 6px #0000000f}.overview-quick-link--disabled{opacity:.45;cursor:default}.overview-quick-link--disabled:hover{background-color:#fff;box-shadow:none}.overview-quick-link__badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:#6c757d;background-color:#f1f3f5;padding:2px 8px;border-radius:8px;white-space:nowrap}.overview-quick-link__arrow{width:18px;height:18px;color:#adb5bd;flex-shrink:0}@media(max-width:768px){.overview{padding:20px 16px}.overview__cards{grid-template-columns:repeat(2,1fr)}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:1000px;width:95%;max-height:90vh;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e0e0e0}.modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#333}.modal-close-button{background:none;border:none;font-size:1.5rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.modal-close-button:hover{background-color:#f0f0f0;color:#333}.modal-body{padding:2rem;overflow-y:auto;flex:1}@media(max-width:600px){.modal-content{width:95%;max-height:95vh}.modal-header{padding:1rem 1.5rem}.modal-body{padding:1.5rem}.modal-title{font-size:1.1rem}}.loading-message{border:1px solid #90caf9;color:#1976d2;background-color:#e3f2fd;flex-shrink:0;margin:0;font-size:1rem;text-align:center;border-radius:.5rem;padding:1rem 2rem}.empty-state{padding:1rem 2rem;border-radius:.5rem;text-align:center;font-size:1rem;margin:0;flex-shrink:0;background-color:#f5f5f5;color:#666;border:1px solid #ddd}.error-message{padding:1rem 2rem;border-radius:.5rem;text-align:center;font-size:1rem;margin:0;flex-shrink:0;background-color:#ffebee;color:#c62828;border:1px solid #ef5350}.program-form{width:100%}.program-form__field{margin-bottom:20px}.program-form__label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.program-form__input,.program-form__textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.program-form__input:focus,.program-form__textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.program-form__input--error,.program-form__textarea--error{border-color:#dc3545}.program-form__input--error:focus,.program-form__textarea--error:focus{box-shadow:0 0 0 3px #dc35451a}.program-form__input:disabled,.program-form__textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.program-form__textarea{resize:vertical;min-height:100px}.program-form__field-error{display:block;margin-top:6px;font-size:13px;color:#dc3545}.program-form__actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.program-form__button{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.program-form__button:disabled{opacity:.6;cursor:not-allowed}.program-form__button--cancel{background-color:#f8f9fa;color:#6c757d;border:1px solid #ddd}.program-form__button--cancel:hover:not(:disabled){background-color:#e2e6ea}.program-form__button--submit{background-color:#007bff;color:#fff}.program-form__button--submit:hover:not(:disabled){background-color:#0056b3}@media(max-width:768px){.program-form__actions{flex-direction:column-reverse}.program-form__button{width:100%}}.programs-page{padding:24px;max-width:1200px;margin:0 auto}.programs-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.programs-page__title{font-size:28px;font-weight:600;color:#1a1a1a;margin:0}.programs-page__fab{position:fixed;bottom:32px;right:32px;width:64px;height:64px;background-color:#007bff;color:#fff;border:none;border-radius:50%;font-size:32px;font-weight:300;cursor:pointer;box-shadow:0 4px 12px #007bff66;transition:all .3s ease;z-index:100;display:flex;align-items:center;justify-content:center;line-height:1}.programs-page__fab:hover:not(:disabled){background-color:#0056b3;transform:scale(1.1);box-shadow:0 6px 20px #007bff99}.programs-page__fab:active:not(:disabled){transform:scale(.95)}.programs-page__fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 2px 8px #0003}.programs-page__content{background:#fff;border-radius:8px;padding:32px;box-shadow:0 2px 8px #0000001a}.programs-table{width:100%;border-collapse:collapse}.programs-table__header{text-align:left;padding:12px 16px;font-weight:600;color:#495057;font-size:13px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #dee2e6;white-space:nowrap}.programs-table__header--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.programs-table__header--sortable:hover{color:#007bff}.programs-table__row{border-bottom:1px solid #e9ecef;transition:background-color .15s ease}.programs-table__row:hover{background-color:#f8f9fa}.programs-table__cell{padding:14px 16px;font-size:14px;color:#495057;vertical-align:middle}.programs-table__cell--name{font-weight:500;color:#1a1a1a}.programs-table__link{color:#007bff;text-decoration:none;font-weight:500}.programs-table__link:hover{text-decoration:underline;color:#0056b3}.programs-table__cell--description{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.programs-table__cell--actions{white-space:nowrap}.programs-table__action-btn{padding:6px 12px;margin-right:8px;font-size:13px;border:1px solid #dee2e6;border-radius:4px;background:#fff;color:#495057;cursor:pointer;transition:all .15s ease}.programs-table__action-btn:hover:not(:disabled){background-color:#f8f9fa;border-color:#007bff;color:#007bff}.programs-table__action-btn:disabled{opacity:.5;cursor:not-allowed}.programs-table__action-btn--danger:hover:not(:disabled){border-color:#dc3545;color:#dc3545}@media(max-width:768px){.programs-page{padding:16px}.programs-page__header{flex-direction:column;align-items:flex-start;gap:16px}.programs-page__content{padding:16px;overflow-x:auto}}.skill-domain-form{display:flex;flex-direction:column;gap:16px}.skill-domain-form__field{display:flex;flex-direction:column;gap:6px}.skill-domain-form__label{font-size:14px;font-weight:500;color:#495057}.skill-domain-form__input{padding:10px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;color:#495057;transition:border-color .15s ease}.skill-domain-form__input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff26}.skill-domain-form__input--error{border-color:#dc3545}.skill-domain-form__field-error{font-size:12px;color:#dc3545}.skill-domain-form__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.skill-domain-form__button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.skill-domain-form__button:disabled{opacity:.6;cursor:not-allowed}.skill-domain-form__button--cancel{background-color:#e9ecef;color:#495057}.skill-domain-form__button--cancel:hover:not(:disabled){background-color:#dee2e6}.skill-domain-form__button--submit{background-color:#007bff;color:#fff}.skill-domain-form__button--submit:hover:not(:disabled){background-color:#0069d9}.required{color:#dc3545}.operational-skill-form{display:flex;flex-direction:column;gap:16px}.operational-skill-form__field{display:flex;flex-direction:column;gap:6px}.operational-skill-form__label{font-size:14px;font-weight:500;color:#495057}.operational-skill-form__input{padding:10px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;color:#495057;transition:border-color .15s ease}.operational-skill-form__input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff26}.operational-skill-form__input--error{border-color:#dc3545}.operational-skill-form__textarea{padding:10px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;color:#495057;font-family:inherit;resize:vertical;transition:border-color .15s ease}.operational-skill-form__textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff26}.operational-skill-form__textarea--error{border-color:#dc3545}.operational-skill-form__field-error{font-size:12px;color:#dc3545}.operational-skill-form__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.operational-skill-form__button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.operational-skill-form__button:disabled{opacity:.6;cursor:not-allowed}.operational-skill-form__button--cancel{background-color:#e9ecef;color:#495057}.operational-skill-form__button--cancel:hover:not(:disabled){background-color:#dee2e6}.operational-skill-form__button--submit{background-color:#007bff;color:#fff}.operational-skill-form__button--submit:hover:not(:disabled){background-color:#0069d9}.professional-practice-form{display:flex;flex-direction:column;gap:16px}.professional-practice-form__field{display:flex;flex-direction:column;gap:6px}.professional-practice-form__label{font-size:14px;font-weight:500;color:#495057}.professional-practice-form__input{padding:10px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;color:#495057;transition:border-color .15s ease}.professional-practice-form__input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff26}.professional-practice-form__input--error{border-color:#dc3545}.professional-practice-form__textarea{padding:10px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;color:#495057;font-family:inherit;resize:vertical;transition:border-color .15s ease}.professional-practice-form__textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff26}.professional-practice-form__textarea--error{border-color:#dc3545}.professional-practice-form__field-error{font-size:12px;color:#dc3545}.professional-practice-form__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.professional-practice-form__button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.professional-practice-form__button:disabled{opacity:.6;cursor:not-allowed}.professional-practice-form__button--cancel{background-color:#e9ecef;color:#495057}.professional-practice-form__button--cancel:hover:not(:disabled){background-color:#dee2e6}.professional-practice-form__button--submit{background-color:#007bff;color:#fff}.professional-practice-form__button--submit:hover:not(:disabled){background-color:#0069d9}.assign-module-form{display:flex;flex-direction:column;gap:16px}.assign-module-form__field{display:flex;flex-direction:column;gap:6px;flex:1}.assign-module-form__label{font-size:14px;font-weight:500;color:#495057}.assign-module-form__select{padding:10px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;color:#495057;background-color:#fff;transition:border-color .15s ease;cursor:pointer}.assign-module-form__select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff26}.assign-module-form__select--error{border-color:#dc3545}.assign-module-form__field-error{font-size:12px;color:#dc3545}.assign-module-form__row{display:flex;gap:16px}.assign-module-form__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.assign-module-form__button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.assign-module-form__button:disabled{opacity:.6;cursor:not-allowed}.assign-module-form__button--cancel{background-color:#e9ecef;color:#495057}.assign-module-form__button--cancel:hover:not(:disabled){background-color:#dee2e6}.assign-module-form__button--submit{background-color:#007bff;color:#fff}.assign-module-form__button--submit:hover:not(:disabled){background-color:#0069d9}.program-detail{padding:24px;max-width:1200px;margin:0 auto}.program-detail__header{margin-bottom:32px}.program-detail__back-link{display:inline-block;margin-bottom:16px;color:#007bff;text-decoration:none;font-size:14px}.program-detail__back-link:hover{text-decoration:underline}.program-detail__title{font-size:28px;font-weight:600;color:#1a1a1a;margin:0 0 8px}.program-detail__description{font-size:15px;color:#495057;margin:0 0 8px;line-height:1.5}.program-detail__meta{font-size:14px;color:#6c757d;margin:0}.program-detail__not-found{font-size:16px;color:#6c757d}.program-detail__section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.program-detail__section-title{font-size:22px;font-weight:600;color:#1a1a1a;margin:0}.program-detail__add-button{padding:8px 16px;background-color:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.program-detail__add-button:hover{background-color:#0069d9}.program-detail__modules-section{background:#fff;border-radius:8px;padding:32px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.program-modules-grouped{display:flex;flex-direction:column;gap:24px}.program-modules-year-group__title{font-size:16px;font-weight:600;color:#495057;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid #e9ecef}.program-modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.program-module-card{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #e9ecef;border-radius:8px;border-left:4px solid #6c757d;background-color:#fafbfc;transition:box-shadow .15s ease}.program-module-card:hover{box-shadow:0 2px 8px #00000014}.program-module-card--professional_school{border-left-color:#007bff}.program-module-card--inter_enterprise{border-left-color:#28a745}.program-module-card__header{display:flex;justify-content:space-between;align-items:center}.program-module-card__identifier{font-size:16px;font-weight:700;color:#343a40}.program-module-card__semester{font-size:12px;font-weight:500;color:#6c757d;background-color:#e9ecef;padding:2px 8px;border-radius:12px}.program-module-card__title{font-size:14px;color:#495057;line-height:1.4}.program-module-card__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.program-module-card__type{font-size:12px;color:#6c757d;text-transform:lowercase}.program-module-card__unassign{padding:4px 10px;background-color:#fff5f5;color:#dc3545;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .15s ease}.program-module-card__unassign:hover{background-color:#ffe0e0}.program-detail__skill-domains{background:#fff;border-radius:8px;padding:32px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.skill-domains-list{display:flex;flex-direction:column;gap:8px}.skill-domain-item-wrapper{border:1px solid #e9ecef;border-radius:6px;overflow:hidden}.skill-domain-item{display:flex;align-items:center;gap:12px;padding:12px 16px;transition:background-color .15s ease}.skill-domain-item:hover{background-color:#f8f9fa}.skill-domain-item--expanded{background-color:#f8f9fa;border-bottom:1px solid #e9ecef}.skill-domain-item__toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;cursor:pointer;border-radius:4px;transition:background-color .15s ease}.skill-domain-item__toggle:hover{background-color:#e9ecef}.skill-domain-item__chevron{display:inline-block;font-size:10px;color:#6c757d;transition:transform .2s ease}.skill-domain-item__chevron--expanded{transform:rotate(90deg)}.skill-domain-item__identifier{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;background-color:#e7f1ff;color:#007bff;border-radius:6px;font-size:14px;font-weight:600}.skill-domain-item__title{flex:1;font-size:14px;color:#495057}.skill-domain-item__actions{display:flex;gap:8px}.skill-domain-item__action-button{padding:6px 12px;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:background-color .15s ease}.skill-domain-item__action-button--edit{background-color:#e9ecef;color:#495057}.skill-domain-item__action-button--edit:hover{background-color:#dee2e6}.skill-domain-item__action-button--delete{background-color:#fff5f5;color:#dc3545}.skill-domain-item__action-button--delete:hover{background-color:#ffe0e0}.operational-skills-panel{padding:16px 16px 16px 56px;background-color:#fafbfc}.operational-skills-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.operational-skills-panel__title{font-size:15px;font-weight:600;color:#495057;margin:0}.operational-skills-panel__add-button{padding:6px 12px;background-color:#007bff;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.operational-skills-panel__add-button:hover{background-color:#0069d9}.operational-skills-list{display:flex;flex-direction:column;gap:6px}.operational-skill-item-wrapper{border:1px solid #e9ecef;border-radius:4px;overflow:hidden}.operational-skill-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background-color:#fff;transition:background-color .15s ease}.operational-skill-item:hover{background-color:#f8f9fa}.operational-skill-item--expanded{background-color:#f8f9fa;border-bottom:1px solid #e9ecef}.operational-skill-item__toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;cursor:pointer;border-radius:4px;transition:background-color .15s ease;flex-shrink:0;margin-top:2px}.operational-skill-item__toggle:hover{background-color:#e9ecef}.operational-skill-item__chevron{display:inline-block;font-size:9px;color:#6c757d;transition:transform .2s ease}.operational-skill-item__chevron--expanded{transform:rotate(90deg)}.operational-skill-item__identifier{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;padding:0 6px;background-color:#e8f5e9;color:#2e7d32;border-radius:4px;font-size:12px;font-weight:600;flex-shrink:0}.operational-skill-item__content{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.operational-skill-item__title{font-size:14px;color:#343a40;font-weight:500}.operational-skill-item__description{font-size:13px;color:#6c757d;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.operational-skill-item__actions{display:flex;gap:6px;flex-shrink:0}.operational-skill-item__action-button{padding:4px 10px;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .15s ease}.operational-skill-item__action-button--edit{background-color:#e9ecef;color:#495057}.operational-skill-item__action-button--edit:hover{background-color:#dee2e6}.operational-skill-item__action-button--delete{background-color:#fff5f5;color:#dc3545}.operational-skill-item__action-button--delete:hover{background-color:#ffe0e0}.professional-practices-panel{padding:12px 12px 12px 48px;background-color:#f5f6f8}.professional-practices-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.professional-practices-panel__title{font-size:14px;font-weight:600;color:#495057;margin:0}.professional-practices-panel__add-button{padding:4px 10px;background-color:#007bff;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.professional-practices-panel__add-button:hover{background-color:#0069d9}.professional-practices-list{display:flex;flex-direction:column;gap:4px}.professional-practice-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background-color:#fff;border:1px solid #e9ecef;border-radius:4px;transition:background-color .15s ease}.professional-practice-item:hover{background-color:#f8f9fa}.professional-practice-item__identifier{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:24px;padding:0 6px;background-color:#fff3e0;color:#e65100;border-radius:4px;font-size:11px;font-weight:600;flex-shrink:0}.professional-practice-item__description{flex:1;font-size:13px;color:#495057;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.professional-practice-item__actions{display:flex;gap:6px;flex-shrink:0}.professional-practice-item__action-button{padding:3px 8px;border:none;border-radius:4px;font-size:11px;cursor:pointer;transition:background-color .15s ease}.professional-practice-item__action-button--edit{background-color:#e9ecef;color:#495057}.professional-practice-item__action-button--edit:hover{background-color:#dee2e6}.professional-practice-item__action-button--delete{background-color:#fff5f5;color:#dc3545}.professional-practice-item__action-button--delete:hover{background-color:#ffe0e0}.program-detail__delete-confirm{display:flex;flex-direction:column;gap:16px}.program-detail__delete-confirm p{margin:0;font-size:14px;color:#495057}.program-detail__delete-actions{display:flex;justify-content:flex-end;gap:12px}.program-detail__delete-cancel{padding:10px 20px;background-color:#e9ecef;color:#495057;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.program-detail__delete-cancel:hover:not(:disabled){background-color:#dee2e6}.program-detail__delete-cancel:disabled{opacity:.6;cursor:not-allowed}.program-detail__delete-button{padding:10px 20px;background-color:#dc3545;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.program-detail__delete-button:hover:not(:disabled){background-color:#c82333}.program-detail__delete-button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.program-detail{padding:16px}.program-detail__skill-domains{padding:16px;overflow-x:auto}.program-detail__section-header{flex-direction:column;align-items:flex-start;gap:12px}.skill-domain-item{flex-wrap:wrap}.operational-skills-panel{padding:12px 12px 12px 32px}}.module-form{width:100%}.module-form__field{margin-bottom:20px}.module-form__row{display:flex;gap:16px;margin-bottom:0}.module-form__field--half{flex:1}.module-form__label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.module-form__input,.module-form__textarea,.module-form__select{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.module-form__input:focus,.module-form__textarea:focus,.module-form__select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.module-form__input--error,.module-form__textarea--error{border-color:#dc3545}.module-form__input--error:focus,.module-form__textarea--error:focus{box-shadow:0 0 0 3px #dc35451a}.module-form__input:disabled,.module-form__textarea:disabled,.module-form__select:disabled{background-color:#f5f5f5;cursor:not-allowed}.module-form__textarea{resize:vertical;min-height:80px}.module-form__select{background-color:#fff;cursor:pointer}.module-form__field-error{display:block;margin-top:6px;font-size:13px;color:#dc3545}.module-form__actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.module-form__button{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.module-form__button:disabled{opacity:.6;cursor:not-allowed}.module-form__button--cancel{background-color:#f8f9fa;color:#6c757d;border:1px solid #ddd}.module-form__button--cancel:hover:not(:disabled){background-color:#e2e6ea}.module-form__button--submit{background-color:#007bff;color:#fff}.module-form__button--submit:hover:not(:disabled){background-color:#0056b3}.modules-page{padding:24px}.modules-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modules-page__title{font-size:28px;font-weight:600;color:#1a1a1a;margin:0}.modules-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.modules-legend__chip{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap;border:2px solid;cursor:pointer;transition:background-color .15s ease,color .15s ease}.modules-legend__chip:hover{opacity:.85}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.module-card{background:#fff;border-radius:8px;padding:20px;border:1px solid #e9ecef;border-left:4px solid #9E9E9E;box-shadow:0 1px 4px #0000000f;cursor:pointer;transition:box-shadow .2s ease,transform .15s ease;display:flex;flex-direction:column;gap:8px;position:relative}.module-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.module-card__header{display:flex;justify-content:space-between;align-items:flex-start}.module-card__identifier{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1.2}.module-card__delete-btn{background:none;border:none;font-size:20px;color:#adb5bd;cursor:pointer;padding:0 4px;line-height:1;opacity:0;transition:opacity .15s ease,color .15s ease}.module-card:hover .module-card__delete-btn{opacity:1}.module-card__delete-btn:hover:not(:disabled){color:#dc3545}.module-card__delete-btn:disabled{cursor:not-allowed}.module-card__title{font-size:14px;color:#495057;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.module-card__type-badge{display:inline-block;align-self:flex-start;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;color:#495057;background-color:#f1f3f5;margin-top:4px}.modules-page__fab{position:fixed;bottom:32px;right:32px;width:64px;height:64px;background-color:#007bff;color:#fff;border:none;border-radius:50%;font-size:32px;font-weight:300;cursor:pointer;box-shadow:0 4px 12px #007bff66;transition:all .3s ease;z-index:100;display:flex;align-items:center;justify-content:center;line-height:1}.modules-page__fab:hover:not(:disabled){background-color:#0056b3;transform:scale(1.1);box-shadow:0 6px 20px #007bff99}.modules-page__fab:active:not(:disabled){transform:scale(.95)}.modules-page__fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 2px 8px #0003}.delete-confirm__message{font-size:15px;color:#495057;margin:0 0 20px;line-height:1.5}.delete-confirm__actions{display:flex;justify-content:flex-end;gap:12px}.delete-confirm__btn{padding:8px 20px;font-size:14px;border-radius:4px;cursor:pointer;transition:all .15s ease;border:1px solid #dee2e6}.delete-confirm__btn:disabled{opacity:.5;cursor:not-allowed}.delete-confirm__btn--cancel{background:#fff;color:#495057}.delete-confirm__btn--cancel:hover:not(:disabled){background-color:#f8f9fa}.delete-confirm__btn--confirm{background-color:#dc3545;color:#fff;border-color:#dc3545}.delete-confirm__btn--confirm:hover:not(:disabled){background-color:#c82333;border-color:#bd2130}@media(max-width:768px){.modules-page{padding:16px}.modules-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}}.role-selector{position:relative;display:inline-block}.role-selector-button{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;color:#333;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:140px}.role-selector-button:hover{border-color:#b0b0b0;background-color:#f5f5f5}.role-selector-button:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.role-selector-label{font-weight:600;color:#666}.role-selector-current{font-weight:500;color:#06c;flex:1;text-align:left}.role-selector-icon{width:16px;height:16px;transition:transform .2s ease;color:#666}.role-selector-icon.open{transform:rotate(180deg)}.role-selector-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:100%;z-index:1000;overflow:hidden}.role-selector-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;background:none;color:#333;font-size:14px;text-align:left;cursor:pointer;transition:background-color .2s ease}.role-selector-option:hover{background-color:#f0f0f0}.role-selector-option.active{background-color:#e6f2ff;color:#06c;font-weight:500}.role-selector-option:focus{outline:none;background-color:#f0f0f0}.role-option-label{flex:1}.role-option-checkmark{width:18px;height:18px;color:#06c;margin-left:8px}@media(prefers-reduced-motion:reduce){.role-selector-button,.role-selector-icon,.role-selector-option{transition:none}}.header{background-color:var(--color-primary-blue);box-shadow:var(--shadow-md);z-index:100}.header-container{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;max-width:100%}.header-brand{display:flex;align-items:center}.header-logo-container{display:flex;align-items:center;gap:var(--spacing-md);text-decoration:none;cursor:pointer}.header-logo{height:36px;width:auto;filter:brightness(0) invert(1)}.header-title-wrapper{display:flex;flex-direction:column;line-height:1.1}.header-app-name{font-size:1.25rem;font-weight:800;color:var(--color-neutral-white);text-transform:uppercase;letter-spacing:.5px}.header-app-sub{font-size:.7rem;font-weight:600;color:var(--color-accent-teal);text-transform:uppercase;letter-spacing:1.5px}.header-auth{display:flex;align-items:center;gap:1rem}.auth-menu-container{position:relative;display:flex;align-items:center}.auth-button{display:flex;align-items:center;justify-content:center;color:var(--color-neutral-white);padding:.5rem .75rem;background:none;border:1px solid var(--color-neutral-white);border-radius:4px;cursor:pointer;transition:background-color .3s ease;min-width:42px;min-height:42px}.auth-button:hover{background-color:#ffffff1a}.auth-button:active{background-color:#ffffff26}.hamburger-icon{width:20px;height:20px;color:var(--color-neutral-white);flex-shrink:0}.logout-icon{width:18px;height:18px}.logout-menu{position:absolute;top:100%;right:-2rem;background-color:var(--color-primary-blue);border:none;box-shadow:var(--shadow-md);min-width:280px;z-index:101;overflow:hidden;animation:slideInRight .2s ease-out;margin-top:16px}@keyframes slideInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.logout-menu-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-bottom:1px solid rgba(255,255,255,.15)}.logout-menu-email{font-weight:500;font-size:.9rem;color:var(--color-neutral-white)}.logout-menu-roles{font-size:.8rem;color:#ffffffbf;line-height:1.4;word-wrap:break-word}.logout-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem;font-size:.9rem;color:var(--color-neutral-white);background:none;border:none;text-align:left;cursor:pointer;transition:background-color .2s ease}.logout-button:hover{background-color:#ffffff1a}.logout-button:active{background-color:#ffffff26}@media(max-width:768px){.header-container{padding:.75rem 1rem}.header-brand h1{font-size:1.1rem}.logout-menu{margin-top:12px}.auth-button{gap:.5rem}.hamburger-icon{width:18px;height:18px}}.navigation{background-color:#f8f9fa;border-right:1px solid #e9ecef;min-height:100vh;width:280px;padding:20px 0;overflow-y:auto}.navigation-menu{list-style:none;margin:0;display:flex;flex-direction:column;gap:8px;padding:0 8px}.navigation-menu-item{margin:0;padding:0}.navigation-menu-link{display:flex;align-items:center;gap:12px;padding:12px 16px;color:#495057;text-decoration:none;border-radius:6px;transition:all .2s ease-in-out;font-weight:500;font-size:14px;outline:none;position:relative}.navigation-menu-link:hover{background-color:#e9ecef;color:#212529}.navigation-menu-link:focus-visible{background-color:#dee2e6;box-shadow:0 0 0 2px #fff,0 0 0 4px #007bff;color:#212529}.navigation-menu-link:active{background-color:#dee2e6;color:#212529}.navigation-menu-link.active{background-color:#007bff;color:#fff;font-weight:600}.navigation-menu-link.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background-color:#0056b3;border-radius:0 4px 4px 0}.navigation-menu-link--disabled{opacity:.45;cursor:default}.navigation-menu-link--disabled:hover{background-color:transparent;color:#495057}.navigation-menu-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:#6c757d;background-color:#e9ecef;padding:2px 6px;border-radius:8px;white-space:nowrap;margin-left:auto}.navigation-menu-icon{width:20px;height:20px;flex-shrink:0;stroke-linecap:round;stroke-linejoin:round}.navigation-menu-label{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:768px){.navigation{position:fixed;left:-280px;top:60px;width:280px;height:calc(100vh - 60px);z-index:1000;background-color:#f8f9fa;border-right:1px solid #e9ecef;transition:left .3s ease-in-out}.navigation.open{left:0}.navigation-menu-link{padding:14px 16px}}@media(max-width:480px){.navigation{width:100%;left:0}.navigation-menu{padding-left:4px;padding-right:4px}.navigation-menu-link{gap:10px;padding:12px}.navigation-menu-icon{width:18px;height:18px}.navigation-menu-label{font-size:13px}}@media(prefers-reduced-motion:reduce){.navigation-menu-link,.navigation{transition:none}}.toast{position:fixed;bottom:20px;right:20px;max-width:400px;padding:16px;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;z-index:2000;animation:slideInRight .3s ease;font-size:14px;line-height:1.5}@keyframes slideInRight{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.toast.exiting{animation:slideOutRight .3s ease forwards}.toast.toast-error{background-color:#ffebee;border-left:4px solid #d32f2f;color:#c62828}.toast.toast-success{background-color:#e8f5e9;border-left:4px solid #388e3c;color:#2e7d32}.toast.toast-info{background-color:#e3f2fd;border-left:4px solid #1976d2;color:#1565c0}.toast-content{flex:1;min-width:0;display:flex;align-items:flex-start}.toast-message{font-weight:500;word-break:break-word;overflow-wrap:anywhere}.toast-close{background:none;border:none;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;flex-shrink:0;margin-top:-2px}.toast.toast-error .toast-close{color:#c62828}.toast.toast-success .toast-close{color:#2e7d32}.toast.toast-info .toast-close{color:#1565c0}.toast-close:hover{background-color:#0000001a}@media(max-width:480px){.toast{bottom:10px;right:10px;left:10px;max-width:none}}.layout-container{display:flex;flex-direction:column;min-height:100vh;background-color:#fff}.layout-wrapper{display:flex;flex:1;overflow:hidden}.layout-content{flex:1;overflow-y:auto;overflow-x:hidden;background-color:#fff}.layout-wrapper>nav{width:280px;flex-shrink:0}.layout-wrapper>nav~.layout-content{padding:24px}.layout-wrapper:not(:has(>nav)) .layout-content{padding:0}@media(max-width:768px){.layout-wrapper{flex-direction:column}.layout-wrapper>nav~.layout-content{padding:16px}.layout-wrapper:not(:has(>nav)) .layout-content{padding:0}}@media(max-width:480px){.layout-wrapper>nav~.layout-content{padding:12px}.layout-wrapper:not(:has(>nav)) .layout-content{padding:0}}
