.base-panel{position:fixed;top:16px;right:16px;height:calc(100vh - 32px);background:var(--p-bg-white);border-radius:var(--border-radius-panel) var(--border-radius-panel) var(--border-radius-panel) var(--border-radius-panel);box-shadow:-4px 0 24px #00000014,-2px 0 8px #0000000a;border-left:1px solid rgba(255,255,255,.2);z-index:1050;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);pointer-events:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.base-panel.open{transform:translate(0);pointer-events:all}.base-panel--narrow{width:480px}.base-panel--medium{width:600px}.base-panel--wide{width:800px}@media(max-width:767px){.base-panel{width:100vw;top:0;height:100vh;border-radius:0;right:0;box-shadow:none;border-left:none}}@media(min-width:768px)and (max-width:1199px){.base-panel{right:16px;border-radius:var(--border-radius-panel);border:1px solid var(--p-border-color)}}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid var(--p-border-color);background:var(--p-bg-white);flex-shrink:0;position:relative;border-radius:var(--border-radius-panel) var(--border-radius-panel) 0 0;gap:16px}.panel-header h2{font-size:1.25rem;font-weight:600;color:var(--p-text-primary);margin:0;font-family:var(--font-family-headings);letter-spacing:-.01em;line-height:1.3;flex:1}.panel-navigation{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:8px}.panel-nav-button{background:transparent;border:1px solid var(--p-border-color);cursor:pointer;color:var(--p-text-secondary);border-radius:var(--border-radius-btn);padding:8px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:32px;height:32px;position:relative}.panel-nav-button:hover:not(:disabled){background-color:var(--p-bg-light);color:var(--p-primary);border-color:#4338ca33;transform:scale(1.05)}.panel-nav-button:active:not(:disabled){transform:scale(.95)}.panel-nav-button:focus{outline:none;box-shadow:0 0 0 2px #4338ca33}.panel-nav-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.panel-nav-button svg{width:16px;height:16px}.panel-nav-position{display:flex;align-items:center;margin:0 4px}.panel-nav-position-text{font-size:.875rem;color:var(--p-text-secondary);font-weight:500;font-variant-numeric:tabular-nums;min-width:48px;text-align:center;-webkit-user-select:none;user-select:none}.panel-close-button{background:transparent;border:none;cursor:pointer;color:var(--p-text-secondary);border-radius:var(--border-radius-btn);padding:8px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:32px;height:32px}.panel-close-button:hover{background-color:var(--p-bg-light);color:var(--p-primary);transform:scale(1.05)}.panel-close-button:active{transform:scale(.95)}.panel-close-button:focus{outline:none;box-shadow:0 0 0 2px #4338ca33}.panel-close-button svg{width:16px;height:16px}.panel-content{flex:1;padding:28px;overflow-y:auto;overflow-x:hidden;position:relative;scroll-behavior:smooth}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:#78716c4d;border-radius:3px;transition:background-color .2s ease}.panel-content::-webkit-scrollbar-thumb:hover{background:#78716c80}.panel-footer{padding:20px 28px;border-top:1px solid var(--p-border-color);background:var(--p-bg-light);display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-shrink:0;border-radius:0 0 var(--border-radius-panel) var(--border-radius-panel)}.panel-footer .btn{min-height:40px;padding:10px 20px;font-weight:600;border-radius:var(--border-radius-btn);transition:all .2s cubic-bezier(.4,0,.2,1)}.panel-footer .btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.panel-focus-trap{outline:none}.panel-section{margin-bottom:24px}.panel-section:last-child{margin-bottom:0}.panel-section-title{font-size:1.125rem;font-weight:600;color:var(--p-text-primary);margin-bottom:12px;font-family:var(--font-family-headings)}.panel-section-subtitle{font-size:.875rem;color:var(--p-text-secondary);margin-bottom:8px;font-weight:500}.panel-content .form-group{margin-bottom:20px}.panel-content .form-label{display:block;font-size:.875rem;font-weight:600;color:var(--p-text-primary);margin-bottom:6px}.panel-content .form-control{width:100%;padding:12px 14px;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);font-size:1rem;transition:all .2s ease;background:var(--p-bg-white)}.panel-content .form-control:focus{outline:none;border-color:var(--p-primary);box-shadow:0 0 0 2px #4338ca1a}.panel-spinner{width:48px;height:48px;border:4px solid var(--p-border-color);border-top-color:var(--p-primary);border-radius:50%;flex-shrink:0}.panel-loading-message{margin-top:16px;font-size:.9375rem;font-weight:500;color:var(--p-text-secondary);text-align:center;max-width:280px;line-height:1.5;animation:fadeInMessage .3s ease .1s both}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes fadeInOverlay{0%{opacity:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}}@media(prefers-reduced-motion:reduce){.base-panel,.panel-close-button,.panel-footer .btn,.panel-content .form-control,.panel-loading-overlay,.panel-spinner,.panel-loading-message{transition:none;animation:none}}@media(max-width:480px){.panel-header{padding:20px}.panel-nav-position-text{display:none}.panel-navigation{gap:6px;margin-right:4px}.panel-nav-button,.panel-close-button{min-height:44px;min-width:44px;width:44px;height:44px}}@media(max-width:360px){.panel-header h2{font-size:1.125rem}.panel-navigation{gap:4px}}@media(max-width:767px){.panel-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000040;z-index:1040;opacity:0;transition:opacity .3s ease;pointer-events:none}.panel-overlay.open{opacity:1;pointer-events:all}}.file-upload-panel .file-upload-container{display:flex;flex-direction:column;gap:1.5rem;padding:0}.file-upload-panel .upload-zone{background:var(--p-bg-light);border:2px dashed var(--p-border-color);border-radius:var(--border-radius-btn);padding:48px 24px;text-align:center;cursor:pointer;transition:all .2s ease;margin-bottom:0}.file-upload-panel .upload-zone:hover{border-color:var(--p-primary);background:#4338ca05}.file-upload-panel .upload-zone.upload-zone--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.file-upload-panel .upload-zone-content{display:flex;flex-direction:column;align-items:center;gap:.75rem}.file-upload-panel .upload-icon{color:var(--p-text-secondary);margin-bottom:8px;transition:color .2s ease}.file-upload-panel .upload-zone:hover .upload-icon{color:var(--p-primary)}.file-upload-panel .upload-zone-content p{font-size:1.1rem;font-weight:500;color:var(--p-text-primary);margin:0}.file-upload-panel .upload-zone-formats{font-size:.875rem;color:var(--p-text-secondary);line-height:1.4}.file-upload-panel .files-list{display:flex;flex-direction:column;gap:1rem}.file-upload-panel .files-list h4{margin:0;color:var(--p-text-primary);font-size:1rem;font-weight:600}.file-upload-panel .files-container{display:flex;flex-direction:column;gap:.75rem;max-height:300px;overflow-y:auto;padding:.5rem;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);background-color:var(--p-bg-light)}.file-upload-panel .file-item{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 16px;background:var(--p-bg-white);border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);transition:all .2s ease;position:relative}.file-upload-panel .file-item--pending{border-left:4px solid var(--p-warning)}.file-upload-panel .file-item--uploading{border-left:4px solid var(--p-primary);background:#4338ca05}.file-upload-panel .file-item--success{border-left:4px solid var(--p-success);background:#16a34a05}.file-upload-panel .file-item--error{border-left:4px solid var(--p-danger);background:#dc262605}.file-upload-panel .file-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.file-upload-panel .file-main{display:flex;align-items:center;gap:.75rem}.file-upload-panel .file-icon{color:var(--p-text-secondary);flex-shrink:0}.file-upload-panel .file-name{font-weight:500;color:var(--p-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.95rem}.file-upload-panel .file-size{font-size:.875rem;color:var(--p-text-secondary);margin-left:32px}.file-upload-panel .file-status{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.file-upload-panel .status-icon{flex-shrink:0}.file-upload-panel .status-icon--pending{color:var(--p-warning)}.file-upload-panel .status-icon--uploading{color:var(--p-primary);animation:spin 1.5s linear infinite}.file-upload-panel .status-icon--success{color:var(--p-success)}.file-upload-panel .status-icon--error{color:var(--p-danger)}.file-upload-panel .btn-remove{background:none;border:none;color:var(--p-text-secondary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.file-upload-panel .btn-remove:hover{background-color:#dc26261a;color:var(--p-danger)}.file-upload-panel .file-error{margin-top:.5rem;padding:.5rem;background-color:#dc26261a;color:var(--p-danger);font-size:.875rem;border-radius:4px;line-height:1.4;grid-column:1 / -1}.file-upload-panel .upload-summary{display:flex;justify-content:center;padding:.75rem;background-color:var(--p-bg-light);border-radius:var(--border-radius-btn);font-size:.875rem;color:var(--p-text-primary);font-weight:500;border:1px solid var(--p-border-color)}@media(max-width:640px){.file-upload-panel .file-upload-container{gap:1rem}.file-upload-panel .upload-zone{padding:32px 16px}.file-upload-panel .upload-zone-content p{font-size:1rem}.file-upload-panel .upload-icon{width:40px;height:40px}.file-upload-panel .file-item{flex-direction:column;align-items:stretch;gap:.5rem;padding:16px}.file-upload-panel .file-status{align-self:flex-end;margin-top:.5rem}.file-upload-panel .file-size{margin-left:0;margin-top:.25rem}.file-upload-panel .files-container{max-height:250px}}@media(hover:none)and (pointer:coarse){.file-upload-panel .upload-zone{padding:40px 20px}.file-upload-panel .btn-remove{padding:.5rem;min-width:44px;min-height:44px}}@media(prefers-contrast:high){.file-upload-panel .upload-zone{border-width:3px}.file-upload-panel .file-item{border-width:2px}}@media(prefers-reduced-motion:reduce){.file-upload-panel .upload-zone,.file-upload-panel .file-item,.file-upload-panel .btn-remove{transition:none}.file-upload-panel .status-icon--uploading{animation:none}}.panel-form,.panel-form-grid{display:flex;flex-direction:column;gap:1rem}.panel-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.panel-form-field{display:flex;flex-direction:column;gap:.5rem}.panel-form-label{font-weight:500;font-size:.875rem;color:var(--p-text-primary);line-height:1.4}.panel-form-input{padding:.75rem;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);font-size:.875rem;line-height:1.4;transition:border-color .2s ease,box-shadow .2s ease;background-color:var(--p-bg-white)}.panel-form-input:hover{border-color:var(--p-primary)}.panel-form-input:focus{outline:none;border-color:var(--p-primary);box-shadow:0 0 0 3px #4338ca1a}.panel-form-input:disabled{background-color:var(--p-bg-light);color:var(--p-text-secondary);cursor:not-allowed}.panel-form-hint{display:block;font-size:.75rem;color:var(--p-text-secondary);margin-top:.25rem;line-height:1.4}.panel-loading-overlay{position:absolute;inset:0;background-color:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:1000;border-radius:var(--border-radius-panel)}.panel-loading-message{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;padding:2rem}.panel-loading-message .loader-large{font-size:2.5rem;animation:pulse 1.5s ease-in-out infinite}.panel-loading-message p{margin:0;font-size:1rem;font-weight:500;color:var(--p-text-primary)}.panel-loading-hint{font-size:.875rem!important;font-weight:400!important;color:var(--p-text-secondary)!important}.loader-small{display:inline-block;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.panel-info-box{display:flex;gap:.75rem;padding:1rem;background-color:#f0f7ff;border:1px solid #b3d9ff;border-radius:var(--border-radius-btn);margin-top:1rem}.panel-info-box svg{flex-shrink:0;color:#06c;margin-top:.125rem}.panel-info-box p{margin:0;font-size:.875rem;line-height:1.5;color:var(--p-text-primary)}.panel-info-box strong{color:#06c}@media(max-width:767px){.panel-form-row{grid-template-columns:1fr}.panel-form-input{padding:.875rem;font-size:1rem}}.panel-form-field:focus-within .panel-form-label{color:var(--p-primary)}.panel-form-field--error .panel-form-input{border-color:var(--p-danger)}.panel-form-field--error .panel-form-label{color:var(--p-danger)}.panel-form-error{font-size:.75rem;color:var(--p-danger);line-height:1.4;margin-top:.25rem}.certificate-preview-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.certificate-iframe{width:100%;height:100%;min-height:70vh;border:none;background-color:var(--p-bg);border-radius:0;flex:1}.certificate-image{width:100%;height:auto;max-height:100%;object-fit:contain;background-color:var(--p-bg);border-radius:0}.certificate-loading{display:flex;align-items:center;justify-content:center;height:70vh;color:var(--p-text-muted)}.certificate-loading-spinner{width:40px;height:40px;border:3px solid var(--p-border);border-top-color:var(--p-primary);border-radius:50%;animation:certificateSpin 1s linear infinite}@keyframes certificateSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.certificate-error{display:flex;align-items:center;justify-content:center;height:70vh;color:var(--p-text-muted);text-align:center}.certificate-error p{font-size:.875rem;margin:0}.certificate-unsupported{display:flex;align-items:center;justify-content:center;height:70vh;color:var(--p-text-muted);text-align:center}.certificate-unsupported p{font-size:.875rem;margin:0}@media(max-width:1024px){.certificate-iframe{min-height:60vh}.certificate-loading,.certificate-error,.certificate-unsupported{height:60vh}}@media(max-width:767px){.certificate-iframe{min-height:50vh}.certificate-loading,.certificate-error,.certificate-unsupported{height:50vh}}.certificate-preview-panel .panel-content{padding:0;overflow:hidden}.certificate-preview-panel .certificate-preview-container{padding:0;margin:0}.course-id-input-autocomplete-container{display:flex;flex-direction:column;gap:.5rem}.course-id-input-autocomplete-label{font-weight:500;font-size:.875rem;color:var(--p-text-primary);line-height:1.4}.course-id-input-autocomplete-wrapper{position:relative;width:100%}.course-id-input-autocomplete{width:100%;padding:.75rem;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);font-size:.875rem;line-height:1.4;transition:border-color .2s ease,box-shadow .2s ease;background-color:var(--p-bg-white)}.course-id-input-autocomplete:focus{outline:none;border-color:var(--p-border-focus);box-shadow:0 0 0 2px #3b82f61a}.course-id-input-autocomplete:disabled{background-color:var(--p-bg-disabled);color:var(--p-text-disabled);cursor:not-allowed;opacity:.6}.course-id-input-autocomplete-error{font-size:.8125rem;color:var(--p-error-color);line-height:1.4;margin-top:.25rem}.course-id-input-autocomplete-loading{font-size:.8125rem;color:var(--p-text-secondary);line-height:1.4;margin-top:.25rem;font-style:italic}.course-id-input-autocomplete::-webkit-calendar-picker-indicator{display:none}@supports selector(::-webkit-outer-spin-button){.course-id-input-autocomplete[list]::-webkit-calendar-picker-indicator{display:none}}@media(max-width:639px){.course-id-input-autocomplete-container{width:100%;margin:0 auto;padding:0;display:flex;flex-direction:column;gap:.5rem}.course-id-input-autocomplete{width:100%;font-size:1rem;padding:.75rem;box-sizing:border-box;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn)}.course-id-input-autocomplete:focus{outline:none;border-color:var(--p-border-focus);box-shadow:0 0 0 3px #3b82f626}.course-id-input-autocomplete-label{font-size:.9375rem;margin-bottom:0;display:none}.course-id-input-autocomplete-wrapper{position:relative;z-index:10;width:100%}datalist{position:fixed;left:0;right:0;max-height:50vh;overflow-y:auto}.course-id-input-autocomplete-error{font-size:.875rem;padding:.5rem;background-color:#ef44440d;border-radius:4px;margin-top:.5rem}.course-id-input-autocomplete-loading{font-size:.875rem;padding:.5rem}}@media(min-width:640px)and (max-width:767px){.course-id-input-autocomplete-container{width:100%;margin:0;padding:0}.course-id-input-autocomplete{width:100%;font-size:.9375rem;padding:.75rem;box-sizing:border-box}.course-id-input-autocomplete-label{font-size:.9375rem;margin-bottom:.25rem}}@media(min-width:768px)and (max-width:1024px){.course-id-input-autocomplete-container{padding:0 .5rem}.course-id-input-autocomplete{font-size:.9375rem}}@media(min-width:1025px){.course-id-input-autocomplete-container{max-width:100%}}.pending-cycles-content{display:flex;flex-direction:column;gap:1.5rem;padding:0}.partial-courses-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.cycle-summary-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cycle-hours-badge{padding:4px 12px;border-radius:999px;font-size:.875rem;font-weight:600;background-color:var(--p-bg-light);color:var(--p-text-primary);border:1px solid var(--p-border-color);white-space:nowrap;font-variant-numeric:tabular-nums}.pending-cycles-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center}.pending-cycles-actions .btn{min-height:40px;padding:10px 20px;font-weight:600;border-radius:var(--border-radius-btn);transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;min-width:120px}.pending-cycles-actions .btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.pending-cycles-actions .btn:disabled{opacity:.7;cursor:not-allowed;pointer-events:none}.pending-cycles-actions .btn--danger{background-color:transparent;color:var(--p-danger);border-color:var(--p-danger)}.pending-cycles-actions .btn--danger:hover:not(:disabled){background-color:var(--p-danger);color:#fff;border-color:var(--p-danger)}.pending-cycles-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--p-text-secondary)}.pending-cycles-empty-icon{width:48px;height:48px;margin-bottom:1rem;opacity:.5;color:var(--p-text-secondary)}.pending-cycles-empty h3{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--p-text-primary)}.pending-cycles-empty p{margin:0;font-size:.9375rem;max-width:300px;line-height:1.5}.pending-cycles-error{padding:1rem;background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:var(--border-radius-btn);margin-bottom:1rem}.pending-cycles-error-title{font-size:.875rem;font-weight:600;color:var(--p-danger);margin:0 0 .25rem}.pending-cycles-error-message{font-size:.875rem;color:var(--p-danger);margin:0;line-height:1.4}.pending-cycles-panel.processing{pointer-events:none}.pending-cycles-panel.processing .partial-course-item{opacity:.7}.pending-cycles-panel.processing .preview-button{opacity:.5;cursor:not-allowed}.pending-cycles-content{animation:fadeInSlide .2s ease-out}@media(max-width:639px){.partial-courses-header{flex-direction:column;align-items:flex-start}.cycle-summary-badges{width:100%;justify-content:flex-start}.cycle-hours-badge{font-size:.8125rem;padding:3px 10px}.partial-course-item{grid-template-columns:1fr auto;gap:12px;padding:16px}.course-date{grid-column:1 / -1;text-align:left;margin-top:8px;font-size:.8125rem}.preview-button{grid-row:1;min-width:44px;min-height:44px;padding:12px}.course-id,.course-details{font-size:.8125rem}.pending-cycles-actions{flex-direction:column;gap:8px}.pending-cycles-actions .btn{width:100%}.partial-course-item--editing{display:grid!important;grid-template-columns:1fr;gap:1.25rem;padding:1.25rem;background:linear-gradient(135deg,var(--p-bg-light) 0%,rgba(67,56,202,.03) 100%);border-color:var(--p-primary);border-width:2px;animation:fadeInSlide .2s ease-out;width:100%;max-width:100%;margin:0 auto}.partial-course-item--editing>.edit-field:nth-child(1),.partial-course-item--editing>.edit-field:nth-child(2),.partial-course-item--editing>.edit-field:nth-child(3){grid-column:1}.partial-course-item--editing>.edit-actions{grid-column:1}.edit-field{display:flex;flex-direction:column;gap:.5rem;width:100%}.edit-field label{font-size:.9375rem;font-weight:600;color:var(--p-text-primary)}.edit-input,.course-id-input-autocomplete{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);box-sizing:border-box}.edit-field .course-id-input-autocomplete-container{width:100%;padding:0;margin:0}.edit-field .course-id-input-autocomplete-label{display:none}.edit-field .course-id-input-autocomplete{width:100%;font-size:1rem;padding:.75rem}.edit-actions{display:flex;flex-direction:column;gap:.875rem;margin-top:1rem;width:100%}.edit-actions .btn{width:100%;padding:12px 16px;min-height:44px;font-size:.9375rem}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.preview-button svg{width:16px;height:16px}.pending-cycles-empty-icon{width:48px;height:48px}}@media(prefers-reduced-motion:reduce){.partial-course-item,.preview-button,.pending-cycles-actions .btn,.pending-cycles-content{transition:none;animation:none}.partial-course-item:hover,.preview-button:hover,.preview-button:active,.pending-cycles-actions .btn:hover{transform:none}}@media print{.pending-cycles-panel{box-shadow:none;border:1px solid #000}.preview-button,.pending-cycles-actions{display:none}.partial-course-item{break-inside:avoid;border:1px solid #000;background:#fff}}.profiles-table-wrapper{overflow:auto;border:1px solid var(--p-border-color);border-radius:8px;background-color:#fff}.profiles-table-wrapper--with-height{height:600px;position:relative}.profiles-table-header{display:grid;grid-template-columns:80px 140px 160px 180px 120px 140px 180px 110px 120px 110px 110px 120px;background-color:var(--p-bg-light);border-bottom:2px solid var(--p-border-color);min-width:1480px;position:sticky;top:0;z-index:10}.profiles-table-header--empty-state{grid-template-columns:80px 160px 160px 180px 120px 140px 180px 110px 120px 110px 100px 120px;min-width:1480px;position:static}.profiles-table-header-cell{padding:16px 24px;font-size:.875rem;font-weight:600;color:var(--p-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--p-bg-light)}.profiles-table-header-cell--actions{position:sticky;right:0;z-index:1;border-left:1px solid var(--p-border-color)}.profiles-table-virtual-container{width:100%;min-width:1480px;position:relative}.profiles-table-row{position:absolute;top:0;left:0;width:100%;cursor:pointer;display:grid;grid-template-columns:80px 140px 160px 180px 120px 140px 180px 110px 120px 110px 110px 120px;align-items:center;border-bottom:1px solid var(--p-border-color);background-color:var(--p-bg-white);transition:background-color .15s ease;margin-top:-1px}.profiles-table-cell{padding:12px 16px;white-space:nowrap}.profiles-table-cell--status{padding:12px 8px;display:flex;align-items:center}.profiles-table-cell--name{font-weight:600;color:var(--p-text-primary)}.profiles-table-cell--code{font-family:monospace;font-size:.875rem}.profiles-table-cell--secondary{color:var(--p-text-secondary)}.profiles-table-cell--numeric{text-align:center;font-weight:500;font-variant-numeric:tabular-nums}.profiles-table-cell--actions{padding:10.5px 2px;position:sticky;right:0;z-index:1;margin-top:-2px;border-bottom:1px solid var(--p-border-color);border-left:1px solid var(--p-border-color);background-color:var(--p-bg-white)}.profiles-table-cell--actions.needs-attention{background-color:#fef9c3}.profiles-table-empty-state{text-align:center;padding:2rem;border-bottom:1px solid var(--p-border-color)}.profiles-table-row:hover,.profiles-table-row:hover .profiles-table-cell--actions{background-color:#f1f5f9}.profiles-table-row--needs-attention{background-color:#fef9c3}.profiles-table-row--needs-attention:hover,.profiles-table-row--needs-attention:hover .profiles-table-cell--actions{background-color:#fef08a}.advanced-search{margin-bottom:1rem}.search-bar-container{display:flex;gap:12px;align-items:center;margin-bottom:16px}.search-bar{flex:1}.quick-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.virtual-table-row{transition:background-color .15s ease}.virtual-table-row:hover{background-color:var(--p-bg-light)!important}.virtual-table-row--attention{border-left:3px solid var(--p-danger)}.virtual-table-row--attention:hover{background-color:#fee2e2!important}@media(max-width:768px){.search-bar-container{flex-direction:column;align-items:stretch}.quick-filters{justify-content:center}}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px}.kpi-card .card-body{display:flex;flex-direction:column}.kpi-header{display:flex;justify-content:space-between;align-items:flex-start}.kpi-icon-wrapper{padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center}.kpi-icon-wrapper.icon--danger{background-color:#fee2e2;color:var(--p-danger)}.kpi-icon-wrapper.icon--warning{background-color:#fef3c7;color:var(--p-warning)}.kpi-icon-wrapper.icon--success{background-color:#dcfce7;color:var(--p-success)}.kpi-icon-wrapper.icon--info{background-color:#dbeafe;color:#1e40af}.card-title{font-size:1rem;font-weight:500;color:var(--p-text-secondary)}.card-value{font-size:3.5rem;font-weight:700;font-family:var(--font-family-headings);color:var(--p-text-primary);margin:8px 0 24px;text-align:center}.table-wrapper{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:16px 24px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--p-border-color)}.table thead{background-color:var(--p-bg-light)}.table th{font-size:.875rem;font-weight:600;color:var(--p-text-secondary);text-transform:uppercase;letter-spacing:.5px}.table tbody tr:hover{background-color:#f5f5f4}.table tbody tr:last-child td{border-bottom:none}.table td:first-child,.table th:first-child{padding-left:24px}.table td:last-child,.table th:last-child{padding-right:24px}.row--needs-attention{background-color:#fef9c3}.row--needs-attention:hover{background-color:#fef08a}.table th:last-child,.table td:last-child{position:sticky;right:0;z-index:1;border-left:1px solid var(--p-border-color)}.table thead th:last-child{background-color:var(--p-bg-light)}.table tbody td:last-child{background-color:var(--p-bg-white)}.table tbody tr:hover td:last-child{background-color:#f5f5f4}.table .row--needs-attention td:last-child{background-color:#fef9c3}.table .row--needs-attention:hover td:last-child{background-color:#fef08a}.notifications-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px;width:100%}.notification{background-color:var(--p-bg-white);border-radius:var(--border-radius-btn);box-shadow:var(--shadow-lg);border:1px solid var(--p-border-color);min-height:60px;opacity:0;transform:translate(100%);transition:all .3s ease}.notification.show{opacity:1;transform:translate(0)}.notification.removing{opacity:0;transform:translate(100%);max-height:0;margin-bottom:0;padding:0;overflow:hidden}.notification-content{display:flex;align-items:flex-start;padding:16px;gap:12px}.notification-icon{flex-shrink:0;width:20px;height:20px;margin-top:2px}.notification-message{flex:1;font-size:.875rem;line-height:1.5;color:var(--p-text-primary);font-weight:500}.notification-close{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--p-text-secondary);transition:all .2s ease;flex-shrink:0}.notification-close:hover{background-color:var(--p-bg-light);color:var(--p-text-primary)}.notification--success{border-left:4px solid var(--p-success)}.notification--success .notification-icon{color:var(--p-success)}.notification--error{border-left:4px solid var(--p-danger)}.notification--error .notification-icon{color:var(--p-danger)}.notification--warning{border-left:4px solid var(--p-warning)}.notification--warning .notification-icon{color:var(--p-warning)}.notification--info{border-left:4px solid var(--p-primary)}.notification--info .notification-icon{color:var(--p-primary)}.loading{position:relative;pointer-events:none;opacity:.6}.loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--p-border-color);border-top:2px solid var(--p-primary);border-radius:50%;animation:spin 1s linear infinite}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);transition:all .2s ease}.table tbody tr:hover{background-color:#4338ca05}.btn:focus,.btn-icon:focus{outline:none;box-shadow:0 0 0 3px #4338ca1a}.search-bar input:focus{outline:none}*{transition:background-color .2s ease,color .2s ease,border-color .2s ease}.btn,.btn-icon,.search-bar,.card,.notification{transition:all .2s ease}.table-row--clickable{transition:background-color .2s ease,transform .1s ease}.table-row--clickable:hover{background-color:var(--color-background-hover, #f8fafc);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.table-row--clickable:hover .btn-icon{opacity:1;transform:scale(1.05)}.table-row--clickable .btn-icon{transition:opacity .2s ease,transform .2s ease}.dashboard-container{transition:margin-right .3s cubic-bezier(.4,0,.2,1);position:relative}.dashboard-container.panel-open--narrow{margin-right:480px}.dashboard-container.panel-open--medium{margin-right:600px}.dashboard-container.panel-open--wide{margin-right:800px}.dashboard-container.panel-open:before{content:"";position:fixed;inset:0;background:#1c191780;z-index:1000;transition:opacity .3s ease;pointer-events:none}@media(max-width:767px){.dashboard-container.panel-open--narrow,.dashboard-container.panel-open--medium,.dashboard-container.panel-open--wide{margin-right:0!important}.dashboard-container.panel-open:before{background:#1c191799}}@media(min-width:768px)and (max-width:1199px){.dashboard-container.panel-open--narrow{margin-right:512px}.dashboard-container.panel-open--medium{margin-right:632px}.dashboard-container.panel-open--wide{margin-right:832px}}@media(prefers-reduced-motion:reduce){.dashboard-container,.dashboard-container.panel-open:before{transition:none}}.cycle-parts-content{display:flex;flex-direction:column;gap:1.5rem;padding:0}.partial-courses-section{display:flex;flex-direction:column;gap:1rem}.partial-courses-title{margin:0;font-size:1rem;font-weight:600;color:var(--p-text-primary);font-family:var(--font-family-headings)}.partial-courses-list{display:flex;flex-direction:column;gap:12px}.partial-course-item{display:grid;grid-template-columns:1fr auto auto;gap:16px;padding:16px 20px;background:var(--p-bg-white);border-radius:var(--border-radius-btn);border:1px solid var(--p-border-color);align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.partial-course-item:hover{background:var(--p-bg-light);border-color:#4338ca33;transform:translateY(-1px);box-shadow:var(--shadow-md)}.course-info{display:flex;flex-direction:column;gap:6px;min-width:0}.course-id{font-weight:600;color:var(--p-text-primary);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.9rem;letter-spacing:.025em;word-break:break-all}.course-details{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--p-text-secondary)}.course-hours{font-weight:500;color:var(--p-primary)}.course-type{color:var(--p-text-secondary);font-weight:400}.course-date{color:var(--p-text-secondary);font-size:.875rem;font-variant-numeric:tabular-nums;font-weight:500;text-align:right;white-space:nowrap}.preview-button{background:transparent;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);padding:10px 12px;cursor:pointer;color:var(--p-text-secondary);transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;position:relative}.preview-button:hover{background:var(--p-primary);color:#fff;border-color:var(--p-primary);transform:scale(1.05);box-shadow:var(--shadow-sm)}.preview-button:active{transform:scale(.95)}.preview-button:focus{outline:none;box-shadow:0 0 0 2px #4338ca33}.preview-button svg{width:16px;height:16px}.cycle-parts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--p-text-secondary)}.cycle-parts-empty-icon{width:48px;height:48px;margin-bottom:1rem;opacity:.5;color:var(--p-text-secondary)}.cycle-parts-empty h3{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--p-text-primary)}.cycle-parts-empty p{margin:0;font-size:.9375rem;max-width:300px;line-height:1.5}.cycle-parts-content{animation:fadeInSlide .2s ease-out}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.partial-course-item--editing{display:grid!important;grid-template-columns:1fr 1fr;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,var(--p-bg-light) 0%,rgba(67,56,202,.03) 100%);border-color:var(--p-primary);border-width:2px;animation:fadeInSlide .2s ease-out;grid-auto-flow:dense;align-items:start}.partial-course-item--editing>.edit-field:nth-child(1){grid-column:1 / -1}.partial-course-item--editing>.edit-field:nth-child(2){grid-column:1}.partial-course-item--editing>.edit-field:nth-child(3){grid-column:2}.partial-course-item--editing>.edit-actions{grid-column:1 / -1}.edit-field{display:flex;flex-direction:column;gap:.375rem}.edit-field label{font-size:.8125rem;font-weight:700;color:var(--p-text-primary);font-family:var(--font-family-headings);text-transform:uppercase;letter-spacing:.05em;opacity:.85}.edit-input{padding:.6875rem .875rem;border:1px solid var(--p-border-color);border-radius:.5rem;font-size:.9375rem;font-family:inherit;color:var(--p-text-primary);background-color:var(--p-bg-white);transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000000a}.edit-input:focus{outline:none;border-color:var(--p-primary);box-shadow:0 0 0 3px #4338ca1a,0 1px 3px #00000014;transform:translateY(-1px)}.edit-input:hover:not(:focus){border-color:#4338ca4d;box-shadow:0 2px 4px #0000000f}.edit-input[type=number],.edit-input[type=date]{font-variant-numeric:tabular-nums}.edit-actions{display:flex;gap:.75rem;margin-top:.5rem;justify-content:flex-end}.edit-actions .btn{min-height:40px;padding:10px 20px;font-weight:600;border-radius:var(--border-radius-btn);transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;font-size:.9375rem;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.edit-actions .btn--primary{background-color:var(--p-primary);color:#fff;flex:0 1 auto}.edit-actions .btn--primary:hover:not(:disabled){background-color:#4338cae6;transform:translateY(-2px);box-shadow:0 4px 12px #4338ca4d}.edit-actions .btn--secondary{background-color:transparent;color:var(--p-text-secondary);border:1px solid var(--p-border-color);flex:0 1 auto}.edit-actions .btn--secondary:hover:not(:disabled){background-color:var(--p-bg-white);border-color:var(--p-text-secondary);transform:translateY(-2px);box-shadow:0 2px 8px #00000014}.edit-actions .btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.edit-actions .btn--sm{padding:8px 14px;font-size:.875rem;min-height:36px}.course-actions{display:flex;gap:.5rem;align-items:center}.action-button{background:transparent;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);padding:10px 12px;cursor:pointer;color:var(--p-text-secondary);transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.action-button:hover{background:var(--p-primary);color:#fff;border-color:var(--p-primary);transform:scale(1.05);box-shadow:var(--shadow-sm)}.action-button:active{transform:scale(.95)}.action-button:focus{outline:none;box-shadow:0 0 0 2px #4338ca33}.action-button svg{width:16px;height:16px}.action-button--danger{color:var(--p-danger);border-color:var(--p-border-color);background:transparent}.action-button--danger:hover{background:var(--p-primary);color:#fff;border-color:var(--p-primary);transform:scale(1.05);box-shadow:var(--shadow-sm)}.action-button--danger:hover svg{color:#fff}.action-button--danger:active{transform:scale(.95)}.action-button--danger:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:639px){.partial-course-item{grid-template-columns:1fr auto;gap:12px;padding:16px}.course-date{grid-column:1 / -1;text-align:left;margin-top:8px;font-size:.8125rem}.preview-button{grid-row:1;min-width:44px;min-height:44px;padding:12px}.course-id,.course-details{font-size:.8125rem}.partial-course-item--editing{display:grid!important;grid-template-columns:1fr;gap:1.25rem;padding:1.25rem;background:linear-gradient(135deg,var(--p-bg-light) 0%,rgba(67,56,202,.03) 100%);border-color:var(--p-primary);border-width:2px;animation:fadeInSlide .2s ease-out;width:100%;max-width:100%;margin:0 auto}.partial-course-item--editing>.edit-field:nth-child(1),.partial-course-item--editing>.edit-field:nth-child(2),.partial-course-item--editing>.edit-field:nth-child(3){grid-column:1}.partial-course-item--editing>.edit-actions{grid-column:1}.edit-field{display:flex;flex-direction:column;gap:.5rem;width:100%}.edit-field label{font-size:.9375rem;font-weight:600;color:var(--p-text-primary)}.edit-input,.course-id-input-autocomplete{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);box-sizing:border-box}.edit-field .course-id-input-autocomplete-container{width:100%;padding:0;margin:0}.edit-field .course-id-input-autocomplete-label{display:none}.edit-field .course-id-input-autocomplete{width:100%;font-size:1rem;padding:.75rem}.edit-actions{display:flex;flex-direction:column;gap:.875rem;margin-top:1rem;width:100%}.edit-actions .btn{width:100%;padding:12px 16px;min-height:44px;font-size:.9375rem}}@media(min-width:640px)and (max-width:767px){.partial-course-item{padding:18px}.preview-button{min-width:42px;min-height:42px}}@media(min-width:768px){.partial-course-item:hover .preview-button{transform:scale(1.05)}}@media(min-width:1200px){.partial-courses-list{gap:14px}.partial-course-item{padding:18px 24px}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.preview-button svg{width:16px;height:16px}.cycle-parts-empty-icon{width:48px;height:48px}}@media(prefers-reduced-motion:reduce){.partial-course-item,.preview-button,.cycle-parts-content{transition:none;animation:none}.partial-course-item:hover,.preview-button:hover,.preview-button:active{transform:none}}@media(prefers-reduced-motion:no-preference){.partial-course-item:focus-within{outline:2px solid var(--p-primary);outline-offset:2px}}@media print{.cycle-parts-panel{box-shadow:none;border:1px solid #000}.preview-button{display:none}.partial-course-item{break-inside:avoid;border:1px solid #000;background:#fff}}.cycle-alert-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:24px;background-color:#fef9c3;border:1px solid #fde047;border-left:4px solid #eab308;border-radius:var(--border-radius-card);box-shadow:var(--shadow-md)}.cycle-alert-banner .alert-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#fde047;border-radius:50%;color:#854d0e}.cycle-alert-banner .alert-content{flex:1;min-width:0}.cycle-alert-banner .alert-title{display:block;font-size:1rem;font-weight:600;color:#854d0e;margin-bottom:4px}.cycle-alert-banner .alert-description{font-size:.875rem;color:#a16207;margin:0;line-height:1.5}.cycle-alert-banner .alert-actions{display:flex;align-items:center;gap:8px}@media(max-width:768px){.cycle-alert-banner{flex-direction:column;align-items:stretch;gap:12px}.cycle-alert-banner .alert-icon{align-self:flex-start}.cycle-alert-banner .alert-actions{flex-direction:column;gap:8px}.cycle-alert-banner .alert-actions .btn{width:100%;justify-content:center}}.profile-container{transition:margin-right .3s cubic-bezier(.4,0,.2,1);position:relative}.profile-container.panel-open--narrow{margin-right:480px}.profile-container.panel-open--medium{margin-right:600px}.profile-container.panel-open--wide{margin-right:800px}.profile-container.panel-open:before{content:"";position:fixed;inset:0;background:#1c191780;z-index:1000;transition:opacity .3s ease;pointer-events:none}@media(max-width:767px){.profile-container.panel-open--narrow,.profile-container.panel-open--medium,.profile-container.panel-open--wide{margin-right:0!important}.profile-container.panel-open:before{background:#1c191799}}@media(min-width:768px)and (max-width:1199px){.profile-container.panel-open--narrow{margin-right:512px}.profile-container.panel-open--medium{margin-right:632px}.profile-container.panel-open--wide{margin-right:832px}}@media(prefers-reduced-motion:reduce){.profile-container,.profile-container.panel-open:before{transition:none}}#suspended-cycles .accordion-container{padding:0!important}#suspended-cycles .accordion-item{border-bottom:1px solid var(--p-border-color)}#suspended-cycles .accordion-item:last-child{border-bottom:none}#suspended-cycles .accordion-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;cursor:pointer;transition:background-color .2s ease}#suspended-cycles .accordion-header:hover{background-color:var(--p-bg-light)}#suspended-cycles .accordion-header h3{font-size:1.125rem;font-family:var(--font-family-base);font-weight:600;color:var(--p-text-primary)}#suspended-cycles .accordion-actions{display:flex;align-items:center;gap:12px}#suspended-cycles .accordion-chevron{color:var(--p-text-secondary);transition:transform .3s ease}#suspended-cycles .accordion-content{max-height:0;overflow:hidden;background-color:#fafafa}#suspended-cycles .accordion-item.is-open .accordion-chevron{transform:rotate(180deg)}#suspended-cycles .accordion-item.is-open .accordion-content{max-height:1000px;padding:24px}#formation-table .col-icon{width:48px;padding-right:12px!important;padding-left:12px!important;text-align:center}#formation-table .table-row--expandable{cursor:pointer}#formation-table .table-row--expandable .table-row-chevron{transition:transform .3s ease;color:var(--p-text-secondary)}#formation-table .table-row--expandable:hover .table-row-chevron{color:var(--p-primary)}#formation-table .table-row--expandable.is-open{background-color:#f0efff}#formation-table .table-row--expandable.is-open .table-row-chevron{transform:rotate(180deg);color:var(--p-primary)}#formation-table .table-row--history{display:none}#formation-table .table-row--history.is-open{display:table-row}#formation-table .table-row--history td{background-color:#fafafa}#formation-table .table-row--history:hover td{background-color:#f4f4f5}#formation-table .table-row--history td:nth-child(2){padding-left:36px}.table-row--renewal{display:none;background-color:#fafafa!important;border-left:3px solid #e0e0e0!important}.table-row--renewal.is-open{display:table-row}.table-row--renewal:hover{background-color:#f4f4f5!important}.table-row--renewal .renewal-icon{text-align:center}.table-row--renewal .renewal-cell{font-size:.9rem;color:var(--p-text-secondary)}.table-row--renewal .renewal-name{font-style:italic}.table-row--renewal .renewal-btn{opacity:.8}.table-row--renewal .renewal-btn:hover{opacity:1}.table-row--expandable{cursor:pointer}.table-row--static{cursor:default}.table-row-chevron{transform:rotate(0);transition:transform .3s ease}.table-row-chevron.is-open{transform:rotate(180deg)}.renewal-icon-svg{color:#999;transform:rotate(90deg)}.table-no-results{text-align:center;padding:2rem}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#1c191780;display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity .3s ease,visibility .3s ease}.modal-backdrop.is-visible{opacity:1;visibility:visible}.modal-dialog{background-color:var(--p-bg-white);border-radius:var(--border-radius-card);box-shadow:var(--shadow-lg);width:90%;max-width:800px;max-height:90vh;transform:scale(.95);transition:transform .3s ease;margin:5vh auto;display:flex;flex-direction:column;overflow:hidden}.modal-backdrop.is-visible .modal-dialog{transform:scale(1)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--p-border-color)}.modal-header h3{color:var(--p-primary);font-size:1.25rem;margin:0}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:transparent;border-radius:10px}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:10px;border:2px solid transparent;background-clip:content-box}.modal-body::-webkit-scrollbar-thumb:hover{background:#0000004d;background-clip:content-box}.modal-body{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.modal-body p{margin-bottom:16px}.modal-list{list-style:none;padding:0}.modal-list li{display:flex;justify-content:space-between;padding:12px;border-radius:8px}.modal-list li:nth-child(odd){background-color:var(--p-bg-light)}.modal-footer{display:flex;justify-content:flex-end;padding:20px 24px;border-top:1px solid var(--p-border-color);background-color:var(--p-bg-light);border-radius:0 0 var(--border-radius-card) var(--border-radius-card);flex-shrink:0}@media(min-width:992px){.modal-dialog{max-width:800px}}@media(min-width:1200px){.modal-dialog{max-width:900px}}@media(max-width:768px){.notifications-container{top:10px;right:10px;left:10px;max-width:none}.header-actions{flex-direction:column;gap:8px}.btn{width:100%;justify-content:center}.search-bar{max-width:none;width:100%}.kpi-grid{grid-template-columns:1fr}.user-details-header{grid-template-columns:1fr;gap:12px 0}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.modal-dialog{width:95%;max-width:none;max-height:95vh;margin:2.5vh auto}.modal-body{padding:16px}.modal-header{padding:16px 20px}}.training-plan-cards-wrapper{width:100%;padding:16px 0;display:flex;flex-direction:column;align-items:stretch}.training-plan-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;padding:0;margin:0}.training-plan-cards-footer{text-align:center;padding:16px 0;margin-top:16px;border-top:1px solid var(--p-border-color)}.cards-info{font-size:.875rem;color:var(--p-text-secondary);margin:0}.cards-info strong{color:var(--p-text-primary);font-weight:600}.session-card{background:var(--p-bg-white);border:1px solid var(--p-border-color);border-radius:var(--border-radius-card);box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease;overflow:hidden;display:flex;flex-direction:column;width:100%}.session-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.session-card-header{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start;padding:16px;border-bottom:1px solid var(--p-border-color);background:linear-gradient(135deg,#f9fafb,#fff)}.session-info{display:flex;flex-direction:column;gap:12px;min-width:0}.session-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.session-title{font-size:1.125rem;font-weight:600;color:var(--p-primary);margin:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:.875rem;align-items:center}.meta-label{font-weight:700;color:var(--p-text-primary)}.meta-value{font-weight:400;color:var(--p-text-secondary)}.session-card-header button{align-self:flex-start;white-space:nowrap;height:fit-content;flex-shrink:0}.session-card-body{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto}.candidate-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:8px;background:var(--p-bg-light);transition:background .15s ease}.candidate-row:hover{background:#e5e7eb}.candidate-row.is-approved{background:#dcfce7;opacity:.9}.candidate-row.is-approved:hover{background:#bbf7d0}.candidate-row.is-approved .candidate-name{color:#166534}.candidate-row.is-approved .candidate-details{color:#22c55e}.candidate-row.is-blocked{background:#fef2f2;opacity:.85}.candidate-row.is-blocked:hover{background:#fee2e2}.candidate-row.is-blocked .candidate-name{color:#7f1d1d}.candidate-row.is-blocked .candidate-details{color:#b91c1c}.candidate-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.candidate-name{font-size:.9375rem;font-weight:600;color:var(--p-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;transition:color .2s ease}.candidate-details{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--p-text-secondary);flex-wrap:wrap;transition:color .2s ease}.candidate-cf{font-family:Courier New,monospace;font-weight:500}.candidate-separator{color:var(--p-border-color)}.candidate-status{display:flex;align-items:center}.candidate-actions{display:flex;gap:8px;flex-shrink:0}.candidate-actions .btn{padding:6px 12px;font-size:.8125rem;font-weight:500;min-width:80px;cursor:pointer}.candidate-actions .btn--success{background-color:var(--p-success);color:var(--p-white);border:none}.candidate-actions .btn--success:hover:not(:disabled){background-color:#15803d;transform:scale(1.05)}.candidate-actions .btn--danger{background-color:var(--p-danger);color:var(--p-white);border:none}.candidate-actions .btn--danger:hover:not(:disabled){background-color:#b91c1c;transform:scale(1.05)}.candidate-actions .btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.candidate-row--empty{text-align:center;padding:20px;color:var(--p-text-secondary);font-size:.9375rem;background:transparent;border-radius:0}.candidate-row--empty p{margin:0}.btn--expand{background:transparent;color:var(--p-primary);border:1px dashed var(--p-border-color);border-radius:8px;padding:10px 12px;font-size:.8125rem;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;cursor:pointer;font-weight:500}.btn--expand:hover{border-color:var(--p-primary);background:#f0efff}.expand-icon{font-size:.75rem;transition:transform .2s ease}.expand-text{white-space:nowrap}.empty-state{text-align:center;padding:3rem 1rem;color:var(--p-text-secondary);display:flex;flex-direction:column;align-items:center;gap:12px}.empty-icon{font-size:3rem}.empty-title{font-size:1.125rem;font-weight:600;color:var(--p-text-primary);margin:0}.empty-subtitle{font-size:.9375rem;color:var(--p-text-secondary);margin:0;max-width:300px}@media(max-width:1200px){.training-plan-cards-grid{grid-template-columns:repeat(2,1fr);gap:20px}.session-card-header{gap:16px;padding:14px}.session-title{font-size:1rem}.session-meta{gap:12px;font-size:.8125rem}.meta-badge{font-size:.8125rem}.session-card-body{padding:14px;gap:10px}.candidate-row{padding:10px;gap:10px}.candidate-name{font-size:.875rem}.candidate-details{font-size:.75rem;gap:6px}.candidate-actions .btn{padding:5px 10px;font-size:.75rem;min-width:70px}}@media(max-width:767px){.training-plan-cards-grid{grid-template-columns:1fr;gap:16px}.session-card-header{grid-template-columns:1fr;gap:12px;padding:12px}.session-info{gap:12px;min-width:unset}.session-title{font-size:.9375rem}.session-meta{flex-direction:column;align-items:flex-start;gap:12px;font-size:.8125rem}.meta-badge{font-size:.75rem}.session-card-header button{width:100%;max-width:120px;align-self:flex-start;justify-content:center;padding:8px 12px}.session-card-body{padding:12px;gap:10px}.candidate-row{flex-direction:column;align-items:stretch;gap:10px;padding:10px}.candidate-info{gap:4px}.candidate-name{font-size:.875rem}.candidate-details{font-size:.75rem;gap:6px;flex-wrap:wrap}.candidate-actions{width:100%;justify-content:stretch}.candidate-actions .btn{flex:1;min-width:unset;padding:8px 10px;font-size:.75rem}.btn--expand{width:100%;justify-content:center;padding:8px 10px}.empty-state{padding:2rem 1rem}.empty-icon{font-size:2rem}.empty-title{font-size:1rem}.empty-subtitle{font-size:.875rem}}@media(max-width:479px){.training-plan-cards-grid{gap:12px}.session-card-header{padding:10px;gap:10px}.session-title{font-size:.875rem}.session-meta{gap:8px;font-size:.75rem}.meta-badge{font-size:.7rem}.candidate-row{padding:8px;gap:8px}.candidate-name{font-size:.8125rem}.candidate-details{font-size:.7rem}.candidate-actions{gap:6px}.candidate-actions .btn{padding:6px 8px;font-size:.7rem;min-width:60px}}.training-card-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:500;color:var(--p-text-secondary);white-space:nowrap;transition:all .2s ease}.training-card-status-badge-emoji{font-size:.9rem;display:inline-flex;align-items:center}.training-card-status-badge-label{font-weight:500}.training-card-status-badge:hover{background-color:var(--p-bg-light)}.training-plan-advanced-search{margin-bottom:20px}.training-plan-advanced-search .search-bar-container{display:flex;gap:12px;align-items:center;margin-bottom:16px}.training-plan-advanced-search .search-bar{flex:1}.training-plan-advanced-search .quick-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tp-filter-emoji{font-size:16px;line-height:1}@media(max-width:768px){.training-plan-advanced-search .search-bar-container{flex-direction:column;align-items:stretch}.training-plan-advanced-search .quick-filters{justify-content:center}}.filters-container{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-size:.875rem;font-weight:600;color:var(--p-text-secondary);text-transform:uppercase;letter-spacing:.5px}.filter-group select{padding:10px 12px;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);font-size:1rem;color:var(--p-text-primary);background-color:var(--p-bg-white);cursor:pointer;transition:all .2s ease}.filter-group select:hover{border-color:var(--p-primary)}.filter-group select:focus{outline:none;border-color:var(--p-primary);box-shadow:0 0 0 3px #4338ca1a}.quick-filter-btn{padding:8px 16px;border:1px solid var(--p-border-color);border-radius:16px;background-color:var(--p-bg-white);color:var(--p-text-primary);font-size:.875rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;font-weight:500;-webkit-user-select:none;user-select:none}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--p-bg-light) 0%,#e8e7e5 100%);padding:20px}.auth-container{width:100%;max-width:420px}.auth-card{background-color:var(--p-bg-white);border-radius:var(--border-radius-card);box-shadow:var(--shadow-lg);padding:40px;border:1px solid var(--p-border-color)}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{font-family:var(--font-family-headings);font-size:1.75rem;color:var(--p-primary);margin-bottom:8px}.auth-header p{color:var(--p-text-secondary);font-size:.9375rem}.auth-success-icon{display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--p-success)}.auth-error-icon{display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--p-danger)}.auth-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background-color:#fee2e2;border:1px solid #fecaca;border-radius:var(--border-radius-btn);color:#991b1b;font-size:.875rem;margin-bottom:24px}.auth-error svg{flex-shrink:0}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.875rem;font-weight:500;color:var(--p-text-primary)}.form-group input{padding:12px 16px;font-size:1rem;border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);background-color:var(--p-bg-white);color:var(--p-text-primary);transition:all .2s ease}.form-group input::placeholder{color:var(--p-text-secondary)}.form-group input:focus{outline:none;border-color:var(--p-primary);box-shadow:0 0 0 3px #4338ca1a}.form-group input:disabled{background-color:var(--p-bg-light);cursor:not-allowed}.password-requirements{background-color:var(--p-bg-light);border-radius:var(--border-radius-btn);padding:12px 16px;font-size:.8125rem}.password-requirements p{color:var(--p-text-secondary);margin-bottom:8px;font-weight:500}.password-requirements ul{list-style:none;display:flex;flex-direction:column;gap:4px}.password-requirements li{color:var(--p-text-secondary);display:flex;align-items:center;gap:8px}.password-requirements li:before{content:"";width:6px;height:6px;border-radius:50%;background-color:var(--p-border-color);flex-shrink:0}.password-requirements li.valid{color:var(--p-success)}.password-requirements li.valid:before{background-color:var(--p-success)}.auth-footer{margin-top:24px;text-align:center}.auth-link{color:var(--p-primary);text-decoration:none;font-size:.875rem;font-weight:500;transition:color .2s ease}.auth-link:hover{color:var(--p-accent-dark);text-decoration:underline}.auth-copyright{text-align:center;color:var(--p-text-secondary);font-size:.8125rem;margin-top:24px}.spinner{width:18px;height:18px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 16px;text-align:center}.panel-spinner{width:48px;height:48px;border:4px solid var(--p-border-color);border-top-color:var(--p-primary);border-radius:50%;animation:panelSpinner .8s linear infinite;flex-shrink:0}.loading-spinner p{margin:0;font-size:.9375rem;color:var(--p-text-secondary);font-weight:500}.panel-loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;border-radius:var(--border-radius-panel);pointer-events:all}.panel-loading-overlay .panel-spinner{animation:panelSpinner .8s linear infinite}.panel-loading-message{margin-top:16px;font-size:.9375rem;font-weight:500;color:var(--p-text-secondary);text-align:center;max-width:280px;line-height:1.5}@keyframes panelSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInOverlay{0%{opacity:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}}@keyframes fadeInMessage{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.panel-loading-overlay,.panel-spinner,.panel-loading-message{animation:none;transition:none}}:root{--p-primary: #4338CA;--p-accent: #A3E635;--p-accent-dark: #84CC16;--p-white: #FFFFFF;--p-text-primary: #1C1917;--p-text-secondary: #78716C;--p-bg-light: #F8F7F6;--p-bg-white: #FFFFFF;--p-border-color: #E7E5E4;--p-success: #16A34A;--p-warning: #F59E0B;--p-danger: #DC2626;--font-family-headings: "Figtree", sans-serif;--font-family-base: "Inter", sans-serif;--font-size-base: 16px;--border-radius-btn: 10px;--border-radius-card: 12px;--border-radius-panel: 12px;--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .07);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .07), 0 4px 6px -4px rgb(0 0 0 / .07);--status-pending: var(--p-warning);--status-approved: var(--p-success);--status-blocked: var(--p-danger);--status-in-progress: #42A5F5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-base);font-size:var(--font-size-base);background-color:var(--p-bg-light);color:var(--p-text-primary);line-height:1.6}.container{max-width:1400px;margin:0 auto;padding:40px}.main-header{margin-bottom:40px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.header-actions{display:flex;gap:12px}h1,h2{font-family:var(--font-family-headings);font-weight:700;color:var(--p-primary)}h1{font-size:2.5rem}h2{font-size:1.5rem}.card{background-color:var(--p-bg-white);border-radius:var(--border-radius-card);box-shadow:var(--shadow-md);margin-bottom:24px;border:1px solid var(--p-border-color)}.card-header{padding:20px 24px;border-bottom:1px solid var(--p-border-color);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.card-body{padding:24px}.search-bar{display:flex;align-items:center;background-color:var(--p-bg-light);border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);padding:0 12px;max-width:400px}.search-bar .icon{color:var(--p-text-secondary)}.search-bar input{border:none;outline:none;padding:12px 8px;font-size:1rem;width:100%;background-color:transparent}.search-bar:focus-within{border-color:var(--p-primary);box-shadow:0 0 0 3px #4338ca1a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:1rem;font-weight:600;border-radius:var(--border-radius-btn);border:2px solid transparent;cursor:pointer;text-decoration:none;transition:all .2s ease}.btn--primary{background-color:var(--p-accent);color:var(--p-text-primary)}.btn--primary:hover{background-color:var(--p-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn--secondary{background-color:transparent;color:var(--p-primary);border-color:var(--p-border-color)}.btn--secondary:hover{border-color:var(--p-primary);background-color:#f0efff}.btn--success{background-color:var(--p-success);color:var(--p-white)}.btn--success:hover{background-color:#15803d;transform:translateY(-2px)}.btn--danger{background-color:var(--p-danger);color:var(--p-white)}.btn--danger:hover{background-color:#b91c1c;transform:translateY(-2px)}.btn--small{padding:4px 12px;font-size:.875rem;font-weight:500}.btn--full-width{width:100%}.btn-icon{background:transparent;border:none;cursor:pointer;color:var(--p-text-secondary);border-radius:50%;padding:8px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-icon:hover{background-color:var(--p-bg-light);color:var(--p-primary)}.btn-icon--danger{color:var(--p-danger);background:transparent}.btn-icon--danger:hover{background:var(--p-primary);color:#fff;transform:scale(1.05);box-shadow:var(--shadow-sm)}.action-buttons{display:flex;gap:4px;align-items:center}.status-pill{padding:4px 12px;border-radius:999px;font-size:.875rem;font-weight:600;text-align:center;display:inline-block}.status-pill--success{background-color:#dcfce7;color:#166534}.status-pill--warning{background-color:#fef9c3;color:#854d0e}.status-pill--danger{background-color:#fee2e2;color:#991b1b}.status-pill--info{background-color:#dbeafe;color:#1e40af}.user-details-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px 24px}.user-detail-item span{font-size:.875rem;font-weight:500;color:var(--p-text-secondary)}.user-detail-item p{font-size:1.125rem;font-weight:600;color:var(--p-text-primary)}.card-body--actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;background-color:var(--p-bg-light);border-radius:0 0 var(--border-radius-card) var(--border-radius-card)}.card-body--actions p{color:var(--p-text-secondary);font-weight:500}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.hidden{display:none}.visible{display:block}.search-bar{display:flex;align-items:center;background-color:var(--p-bg-light);border:1px solid var(--p-border-color);border-radius:var(--border-radius-btn);padding:0 12px;position:relative;transition:all .2s ease}.search-bar:focus-within{border-color:var(--p-primary);box-shadow:0 0 0 3px #4338ca1a;background-color:var(--p-bg-white)}.search-bar input{border:none;outline:none;padding:12px 8px;font-size:1rem;width:100%;background-color:transparent;color:var(--p-text-primary)}.search-bar input::placeholder{color:var(--p-text-secondary)}.search-bar .search-icon{color:var(--p-text-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:4px}.search-bar .search-icon svg{width:20px;height:20px}.search-clear-btn{background:none;border:none;cursor:pointer;color:var(--p-text-secondary);padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;flex-shrink:0;margin-left:4px}.search-clear-btn:hover{background-color:var(--p-bg-light);color:var(--p-text-primary)}.search-clear-btn:focus{outline:none;box-shadow:0 0 0 2px #4338ca33}.quick-filter-btn{padding:4px 12px;border:1px solid var(--p-border-color);border-radius:16px;background-color:var(--p-bg-white);color:var(--p-text-primary);font-size:.875rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;font-weight:500;-webkit-user-select:none;user-select:none}.quick-filter-btn:hover{border-color:var(--p-primary);background-color:#f0efff;transform:translateY(-1px)}.quick-filter-btn:focus{outline:none;box-shadow:0 0 0 3px #4338ca1a}.quick-filter-btn.active{background-color:var(--p-primary);color:var(--p-white);border-color:var(--p-primary);transform:translateY(-1px);box-shadow:0 2px 4px #4338ca33}.quick-filter-btn.active[data-status=pending],.quick-filter-btn.active[data-status=waiting_for_approval]{background-color:var(--status-pending);border-color:var(--status-pending)}.quick-filter-btn.active[data-status=approved],.quick-filter-btn.active[data-status=organized]{background-color:var(--status-approved);border-color:var(--status-approved)}.quick-filter-btn.active[data-status=blocked],.quick-filter-btn.active[data-status=stuck]{background-color:var(--status-blocked);border-color:var(--status-blocked)}.quick-filter-btn.active[data-status=in_progress]{background-color:var(--status-in-progress);border-color:var(--status-in-progress)}.protected-route-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background-color:var(--p-bg-light)}.protected-route-loading p{color:var(--p-text-secondary);font-size:.9375rem;font-weight:500}.protected-route-loading .panel-spinner{animation:panelSpinner .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
