@charset "UTF-8";#root,body,html{background:#f8fafc;color:#1a2340;font-family:Inter,Segoe UI,Arial,sans-serif;height:100%;margin:0;min-height:100vh;padding:0}body{background:#fff;min-height:100vh}*{box-sizing:border-box;transition:background .2s,color .2s,border .2s}:root{--brand-blue:#5a7aac;--brand-accent:#7bb7e3;--brand-bg:#f8fafc;--brand-dark:#1a2340;--brand-success:#3bb07b;--brand-error:#e05a6f;--brand-border:#e3e8f0;--brand-neutral:#f3f5f8;--header-bg:#fff;--header-border:#f3f4f6;--sidebar-bg:#fff;--sidebar-border:#f3f4f6;--primary-color:#3b82f6;--primary-dark:#2563eb;--primary-light:#60a5fa;--text-primary:#1f2937;--text-secondary:#6b7280;--text-muted:#9ca3af;--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-muted:#f3f4f6;--border-color:#e5e7eb;--border-light:#f3f4f6}a{color:#5a7aac;color:var(--brand-blue);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:1rem}button{background:#3b82f6;background:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.6em 1.4em;transition:background .2s ease}button:hover{background:#2563eb;background:var(--primary-dark)}button:disabled{background:#9ca3af;cursor:not-allowed}::-webkit-scrollbar{background:#e3e8f0;width:8px}::-webkit-scrollbar-thumb{background:#c7d0e0;border-radius:4px}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ot-journal-nav{background:#fff;border-bottom:2px solid #e5e7eb;box-shadow:0 2px 4px #0000000d;margin-bottom:24px;position:sticky;top:0;z-index:100}.ot-journal-nav-container{margin:0 auto;max-width:1600px;padding:16px 20px 0}.ot-journal-nav-title{align-items:center;display:flex;gap:12px;margin-bottom:16px}.ot-journal-nav-icon{font-size:28px}.ot-journal-nav-title h2{color:#111827;font-size:24px;font-weight:700;margin:0}.ot-journal-nav-links{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.ot-journal-nav-link{align-items:center;border-bottom:2px solid #0000;color:#6b7280;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:-2px;padding:12px 20px;text-decoration:none;transition:all .2s;white-space:nowrap}.ot-journal-nav-link:hover{background:#f9fafb;color:#2563eb}.ot-journal-nav-link.active{border-bottom-color:#2563eb;color:#2563eb;font-weight:600}.nav-link-icon{font-size:18px}.nav-link-label{font-size:14px}@media (max-width:768px){.ot-journal-nav-container{padding:12px 12px 0}.ot-journal-nav-title h2{font-size:20px}.ot-journal-nav-link{font-size:13px;padding:10px 16px}.nav-link-icon{font-size:16px}}.stat-card{align-items:center;display:flex;gap:16px;transition:all .2s}.stat-card.clickable{cursor:pointer}.stat-card.clickable:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.stat-icon{background:#f3f4f6}.stat-card-warning .stat-icon{background:#fef3c7;color:#d97706}.stat-card-success .stat-icon{background:#d1fae5;color:#059669}.stat-card-info .stat-icon{background:#dbeafe;color:#2563eb}.stat-value{font-size:28px;line-height:1.2}.stat-label{margin-top:4px}.upcoming-trainings{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.upcoming-trainings h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 16px}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-item{align-items:center;background:#f9fafb;border-radius:6px;display:flex;gap:12px;padding:12px;transition:background .2s}.upcoming-item:hover{background:#f3f4f6}.upcoming-date{color:#374151;font-size:14px;font-weight:600;min-width:100px}.upcoming-details{align-items:center;display:flex;gap:8px}.upcoming-employee{color:#111827;font-size:14px}.upcoming-type{color:#6b7280;font-size:13px}.upcoming-trainings-empty{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#6b7280;padding:40px 20px;text-align:center}.view-all-btn{background:none;border:1px solid #e5e7eb;border-radius:6px;color:#2563eb;cursor:pointer;font-size:14px;margin-top:16px;padding:8px 16px;transition:all .2s;width:100%}.view-all-btn:hover{background:#eff6ff;border-color:#2563eb}.overdue-trainings{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.overdue-trainings h2{color:#dc2626;font-size:18px;font-weight:600;margin:0 0 16px}.overdue-list{gap:8px;margin-bottom:16px}.overdue-item{justify-content:space-between;padding:10px 12px}.overdue-info{gap:2px}.overdue-date{font-size:12px}.overdue-days{border-radius:12px;font-size:13px;padding:4px 12px}.overdue-empty{background:#d1fae5;border-radius:6px;color:#059669;padding:30px 20px;text-align:center}.conduct-btn{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px;transition:background .2s;width:100%}.conduct-btn:hover{background:#b91c1c}.recent-activity{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.recent-activity h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 16px}.activity-list{display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto}.activity-item{align-items:flex-start;border-radius:6px;display:flex;gap:12px;padding:10px;transition:background .2s}.activity-item:hover{background:#f9fafb}.activity-icon{align-items:center;background:#f3f4f6;border-radius:50%;display:flex;flex-shrink:0;font-size:20px;height:32px;justify-content:center;width:32px}.activity-content{flex:1 1}.activity-message{color:#111827;font-size:14px;margin-bottom:4px}.activity-time{color:#9ca3af;font-size:12px}.activity-empty{color:#9ca3af;font-size:14px;padding:30px;text-align:center}.trainings-chart{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.trainings-chart h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 20px}.quick-actions{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.quick-actions h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 16px}.actions-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.action-button{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;padding:16px 20px;transition:all .2s}.action-button:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.action-primary{background:#2563eb;border-color:#2563eb;color:#fff}.action-primary:hover{background:#1d4ed8}.action-secondary{background:#fff;color:#374151}.action-secondary:hover{background:#f9fafb;border-color:#2563eb}.action-icon{font-size:24px}.action-label{flex:1 1;text-align:left}.dashboard-page{background:#f9fafb;min-height:100vh}.dashboard-content{margin:0 auto;max-width:1400px;padding:20px}.dashboard-header{margin-bottom:30px}.dashboard-header h1{color:#111827;font-size:28px;font-weight:700;margin:0 0 8px}.dashboard-subtitle{color:#6b7280;font-size:15px;margin:0}.dashboard-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.dashboard-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin-bottom:20px}.loading{align-items:center;display:flex;font-size:18px;justify-content:center;min-height:400px}.error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;padding:20px;text-align:center}.error button{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:12px;padding:8px 16px}.error button:hover{background:#b91c1c}@media (max-width:768px){.dashboard-page{padding:12px}.dashboard-header h1{font-size:22px}.dashboard-grid,.dashboard-stats{grid-template-columns:1fr}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000}.modal-content{animation:modalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}.modal-content-large{max-width:900px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #e5e7eb}.modal-header h2{color:#111827;font-size:20px;font-weight:600;margin:0}.modal-close{background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;font-size:24px;padding:4px 8px;transition:all .2s}.modal-close:hover{background:#f3f4f6;color:#374151}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.form-radio{border:2px solid #e5e7eb;padding:12px}.form-radio:hover{background:#f9fafb;border-color:#2563eb}.form-radio input[type=radio]{flex-shrink:0;margin-top:2px}.form-radio input[type=radio]:checked+span{color:#2563eb}.form-radio small{color:#6b7280;font-size:13px}.info-box h3{color:#1e40af}.info-box h3,.info-box ol{margin:0 0 12px}.info-box li{margin-bottom:6px}.warning-box{background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;margin:16px 0;padding:12px}.loading-small{color:#6b7280;font-size:14px;padding:20px}.certificates-list{gap:12px}.certificate-item{border:2px solid #e5e7eb;border-radius:8px}.certificate-item:hover{background:#f9fafb;border-color:#2563eb}.certificate-item.selected{background:#eff6ff;border-color:#2563eb}.cert-owner{color:#111827;font-size:15px}.cert-org{color:#6b7280;font-size:14px}.cert-valid{color:#9ca3af}.result-box{border-radius:8px;padding:24px;text-align:center}.result-box.success{background:#d1fae5;border:1px solid #6ee7b7}.result-box.error{background:#fee2e2;border:1px solid #fecaca}.result-box h3{font-size:18px;font-weight:600;margin:0 0 12px}.result-box p{font-size:14px;margin:8px 0}.errors-summary{background:#fff;border-radius:6px;margin-top:16px;padding:12px}.program-content-box,.program-description-box,.program-file-box,.program-meta-box{margin-bottom:24px}.program-content-box h3,.program-description-box h3,.program-file-box h3,.program-meta-box h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 12px}.program-description-box p{color:#374151;font-size:14px;line-height:1.6;margin:0}.program-content-text{word-wrap:break-word;color:#374151;font-family:Courier New,monospace;font-size:13px;line-height:1.6;margin:0;max-height:400px;overflow-y:auto;padding:16px;white-space:pre-wrap}.file-item,.program-content-text{background:#f9fafb;border-radius:6px}.file-item{align-items:center;display:flex;gap:12px;padding:12px}.file-icon{font-size:24px}.file-name{color:#374151;flex:1 1;font-size:14px}.empty-content{color:#9ca3af;padding:40px 20px;text-align:center}.program-meta-box{grid-gap:12px;background:#f9fafb;border-radius:8px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:16px}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-label{color:#9ca3af;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.meta-value{color:#111827;font-size:14px;font-weight:500}.btn-small{font-size:13px;padding:6px 12px}@media (max-width:768px){.modal-overlay{padding:0}.modal-content{border-radius:0;max-height:100vh;max-width:100%}.modal-content-large{max-width:100%}.program-meta-box{grid-template-columns:1fr}}.employee-row{border-bottom:1px solid #e5e7eb;transition:background .2s}.employee-row:hover{background:#f9fafb}.employee-row td{padding:16px 12px;vertical-align:middle}.employee-name{color:#111827;font-size:14px;font-weight:500}.last-training{font-size:13px}.training-meta{color:#9ca3af;font-size:12px;margin-top:2px}.next-training{color:#6b7280;font-size:12px;margin-top:4px}.no-training{color:#9ca3af;font-size:13px;font-style:italic}.status-badge{border-radius:12px;padding:4px 12px}.status-ok{background:#d1fae5;color:#059669}.status-new{background:#fef3c7;color:#d97706}.status-overdue{background:#fee2e2;color:#dc2626}.status-upcoming{background:#dbeafe;color:#2563eb}.overdue-days{font-size:11px;margin-top:4px}.employee-actions{display:flex;flex-wrap:wrap;gap:8px}.action-btn{border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:13px;padding:6px 12px;transition:all .2s;white-space:nowrap}.action-btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}.action-btn-primary:hover{background:#1d4ed8}.action-btn-secondary{background:#fff;color:#374151}.action-btn-secondary:hover{background:#f9fafb;border-color:#2563eb;color:#2563eb}.action-btn-danger{background:#dc2626;border-color:#dc2626;color:#fff}.action-btn-danger:hover{background:#b91c1c}.employees-page{background:#f9fafb;min-height:100vh}.employees-content{margin:0 auto;max-width:1400px;padding:20px}.page-header h1{font-size:28px;font-weight:700;margin:0 0 4px}.btn-primary:hover{background:#1d4ed8}.search-input{min-width:300px;transition:border-color .2s}.filter-select,.search-input{border-radius:6px}.filter-actions{display:flex;gap:8px;margin-left:auto}.export-btn,.import-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s}.export-btn:hover,.import-btn:hover{background:#f9fafb;border-color:#2563eb;color:#2563eb}.employees-stats{color:#6b7280;font-size:14px;margin-bottom:16px}.table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;overflow-x:auto}.employees-table{border-collapse:collapse;width:100%}.employees-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.employees-table th{color:#374151;font-size:13px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.empty-state p{margin-bottom:20px}.pagination{align-items:center;display:flex;gap:16px;justify-content:center;padding:20px}.pagination-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#f9fafb;border-color:#2563eb}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.pagination-info{color:#6b7280;font-size:14px}@media (max-width:768px){.employees-page{padding:12px}.page-header{gap:16px}.filters-bar,.page-header{flex-direction:column}.search-input{min-width:100%}.filter-actions{margin-left:0;width:100%}.export-btn,.import-btn{flex:1 1}.table-container{overflow-x:scroll}.employees-table{min-width:800px}}.employee-form-page{margin:0 auto;max-width:800px;padding:20px}.back-link{color:#2563eb;display:inline-block;font-size:14px;margin-bottom:16px;text-decoration:none;transition:color .2s}.back-link:hover{color:#1d4ed8}.employee-form-page h1{color:#111827;font-size:28px;font-weight:700;margin:0 0 24px}.employee-form{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.form-section{margin-bottom:24px}.form-section h2{border-bottom:1px solid #e5e7eb;color:#111827;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:12px}.form-group{margin-bottom:20px}.form-label{color:#374151}.required{color:#dc2626}.form-input{border:1px solid #d1d5db;padding:10px 14px}.form-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-hint{color:#6b7280;font-size:12px;margin-top:4px}.form-checkbox{align-items:center;cursor:pointer;display:flex;gap:8px}.form-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.form-checkbox span{color:#374151;font-size:14px}.radio-group{gap:16px}.form-radio{align-items:center;gap:8px}.form-radio input[type=radio]{cursor:pointer;height:18px;width:18px}.form-radio span{color:#374151;font-size:14px}.form-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding-top:24px}.btn{padding:10px 24px}.btn-primary{background:#2563eb}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover:not(:disabled){background:#f9fafb}@media (max-width:768px){.employee-form-page{padding:12px}.employee-form{padding:16px}.form-actions{flex-direction:column-reverse}.btn{width:100%}}.employee-detail-page{background:#f9fafb;min-height:100vh}.employee-detail-content{margin:0 auto;max-width:1400px;padding:20px}.employee-header-row{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-top:16px}.employee-main-info h1{color:#111827;font-size:32px;font-weight:700;margin:0 0 8px}.employee-position{color:#6b7280;font-size:18px;margin:0 0 12px}.employee-meta{display:flex;flex-wrap:wrap;gap:12px}.status-badge{border-radius:20px;font-size:14px;padding:6px 16px}.status-active{background:#d1fae5;color:#059669}.status-archived{background:#f3f4f6;color:#6b7280}.hazard-badge{background:#fef3c7;border-radius:20px;color:#d97706;font-size:14px;font-weight:500;padding:6px 16px}.employee-actions-header{display:flex;gap:12px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:24px 0}.stat-box{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;gap:16px;padding:20px}.stat-box,.stat-icon{align-items:center;display:flex}.stat-icon{border-radius:50%;font-size:32px;height:60px;justify-content:center;width:60px}.stat-box-info .stat-icon{background:#dbeafe}.stat-box-success .stat-icon{background:#d1fae5}.stat-box-warning .stat-icon{background:#fef3c7}.stat-content{flex:1 1}.stat-value{color:#111827;line-height:1}.employee-content-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:350px 1fr;margin-bottom:24px}.history-card,.info-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.history-card h2,.info-card h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 20px}.info-rows{gap:16px}.info-row,.info-rows{display:flex;flex-direction:column}.info-row{border-bottom:1px solid #f3f4f6;gap:4px;padding-bottom:16px}.info-row:last-child{border-bottom:none;padding-bottom:0}.info-label{color:#9ca3af;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-value{color:#111827;font-size:15px;font-weight:500}.empty-history{padding:60px 20px;text-align:center}.empty-history p{color:#6b7280;font-size:16px;margin-bottom:20px}.trainings-timeline{display:flex;flex-direction:column;gap:0}.timeline-item{border-bottom:1px solid #f3f4f6;display:flex;gap:16px;padding:20px 0}.timeline-item:last-child{border-bottom:none}.timeline-dot{border-radius:50%;flex-shrink:0;height:12px;margin-top:6px;width:12px}.timeline-dot-ot{background:#3b82f6}.timeline-dot-pb{background:#f59e0b}.timeline-content{flex:1 1}.timeline-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.timeline-title{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.timeline-type{color:#111827;font-size:16px;font-weight:600}.timeline-category{background:#f3f4f6;border-radius:12px;color:#6b7280;font-size:13px;padding:2px 10px}.timeline-date{color:#9ca3af;font-size:14px;white-space:nowrap}.timeline-details{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.timeline-program{color:#374151;font-size:14px}.timeline-instructor{color:#6b7280;font-size:13px}.timeline-status{font-size:13px;font-weight:500;margin-top:4px}.timeline-status-signed{color:#059669}.timeline-status-pending{color:#d97706}.timeline-link{color:#2563eb;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.timeline-link:hover{color:#1d4ed8}.employee-footer{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}@media (max-width:1024px){.employee-content-grid{grid-template-columns:1fr}.employee-header-row{flex-direction:column}.employee-actions-header{width:100%}.employee-actions-header .btn{flex:1 1}.stats-grid{grid-template-columns:1fr}}.modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-container{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:90vh;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-small{max-width:400px;width:100%}.modal-medium{max-width:600px;width:100%}.modal-large{max-width:900px;width:100%}.modal-xlarge{max-width:1200px;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.modal-title{color:#2d3748;font-size:20px;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#718096;cursor:pointer;display:flex;flex-shrink:0;font-size:24px;height:32px;justify-content:center;transition:all .2s;width:32px}.modal-close-btn:hover{background:#edf2f7;color:#2d3748}.modal-close-btn-absolute{align-items:center;background:#ffffffe6;border:none;border-radius:6px;box-shadow:0 2px 8px #0000001a;color:#718096;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transition:all .2s;width:32px;z-index:10}.modal-close-btn-absolute:hover{background:#fff;color:#2d3748}.modal-body{flex:1 1;overflow-y:auto;padding:24px}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.modal-body::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:10px}.modal-body::-webkit-scrollbar-thumb:hover{background:#a0aec0}@media (max-width:768px){.modal-overlay{padding:10px}.modal-container{max-height:95vh}.modal-large,.modal-medium,.modal-small,.modal-xlarge{max-width:100%}.modal-body,.modal-header{padding:16px}.modal-title{font-size:18px}}.approve-modal-content{display:flex;flex-direction:column;gap:24px}.program-info-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;padding:16px}.program-info-section h3{font-size:18px;font-weight:600;margin:0 0 8px}.program-meta{display:flex;font-size:14px;gap:8px;opacity:.9}.approval-form-section h4,.pdf-preview-section h4{color:#2d3748;font-size:16px;font-weight:600;margin:0 0 12px}.loading-spinner{color:#718096;font-style:italic;padding:40px;text-align:center}.error-message{background:#fed7d7;border-left:4px solid #fc8181;border-radius:6px;color:#c53030;padding:12px}.pdf-iframe{box-shadow:0 2px 8px #0000001a}.approval-form-section{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.form-group:last-of-type{margin-bottom:0}.form-label{margin-bottom:6px}.form-input{border:1px solid #cbd5e0;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-input:disabled{background:#edf2f7;cursor:not-allowed}.required{color:#e53e3e;margin-left:2px}.info-box{background:#bee3f8;border-left:4px solid #3182ce;margin-top:16px}.info-box ol,.info-box strong{color:#2c5282}.btn-warning{background:#ed8936;color:#fff}.btn-warning:hover:not(:disabled){background:#dd6b20}.signing-status{align-items:center;background:#fefcbf;border:1px solid #f6e05e;border-radius:6px;color:#744210;display:flex;font-size:14px;gap:12px;padding:16px}.spinner{animation:spin .8s linear infinite;border:3px solid #f6e05e;border-radius:50%;border-top-color:#ed8936;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.programs-page{background:#f9fafb;min-height:100vh}.programs-content{margin:0 auto;max-width:1600px;padding:20px}.programs-table-wrapper{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto;overflow-y:visible}.programs-table{border-collapse:collapse;width:100%}.programs-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.programs-table th{color:#374151;font-size:13px;font-weight:600;padding:12px 16px;text-align:left;white-space:nowrap}.programs-table td{border-bottom:1px solid #e5e7eb;color:#111827;font-size:14px;padding:12px 16px}.programs-table tbody tr{position:relative}.programs-table tbody tr:hover{background:#f9fafb}.program-name-cell{max-width:300px}.program-name{color:#111827;font-weight:600;margin-bottom:4px}.system-badge{background:#eff6ff;border-radius:4px;color:#2563eb;display:inline-block;font-size:11px;font-weight:500;margin-top:4px;padding:2px 8px}.category-cell{min-width:80px;width:100px}.type-badge{background:#eff6ff;color:#2563eb}.status-badge,.type-badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px;white-space:nowrap}.status-badge.status-draft{background:#fef3c7;color:#92400e}.status-badge.status-pending{background:#dbeafe;color:#1e40af}.status-badge.status-approved{background:#d1fae5;color:#065f46}.status-badge.status-archived{background:#f3f4f6;color:#374151}.description-cell{max-width:250px}.description-text{color:#6b7280;display:block;line-height:1.5}.file-indicator{color:#374151;display:inline-block;font-size:13px}.text-muted{color:#9ca3af;font-style:italic}.date-cell{color:#6b7280;font-size:13px;white-space:nowrap}.actions-cell{min-width:100px;overflow:visible;position:relative;width:150px}.actions-dropdown{display:inline-block;position:relative}.dropdown-toggle{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.dropdown-toggle:hover{background:#f9fafb;border-color:#2563eb;color:#2563eb}.dropdown-toggle:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.dropdown-menu{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;margin:0;min-width:220px;padding:4px 0}.dropdown-menu-fixed{position:fixed}.dropdown-item{background:none;border:none;color:#374151;cursor:pointer;display:block;font-size:14px;padding:10px 16px;text-align:left;transition:background .15s;white-space:nowrap;width:100%}.dropdown-item:hover{background:#f9fafb}.dropdown-item-primary{color:#2563eb}.dropdown-item-primary:hover{background:#eff6ff}.dropdown-item-success{color:#059669}.dropdown-item-success:hover{background:#d1fae5}.dropdown-item-warning{color:#d97706}.dropdown-item-warning:hover{background:#fef3c7}.dropdown-item-danger{color:#dc2626}.dropdown-item-danger:hover{background:#fee2e2}.empty-state{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:60px 20px;text-align:center}.empty-state p{color:#6b7280;font-size:16px;margin:0 0 16px}.loading{padding:40px}@media (max-width:1200px){.programs-table{font-size:13px}.programs-table td,.programs-table th{padding:10px 12px}.description-cell{max-width:200px}}@media (max-width:768px){.programs-table-wrapper{overflow-x:scroll}.program-name-cell{max-width:200px}.description-cell{max-width:150px}.table-actions{flex-direction:column}}.program-form-page{background:#f9fafb;min-height:100vh}.program-form-content{margin:0 auto;max-width:900px;padding:20px}.program-form-content h1{color:#111827;font-size:28px;font-weight:700;margin:16px 0 24px}.program-form{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.form-textarea-large{font-family:Courier New,monospace;font-size:13px;line-height:1.6;min-height:400px}.form-file-input{border:2px dashed #d1d5db;border-radius:6px;cursor:pointer;font-size:14px;padding:10px 14px;transition:border-color .2s;width:100%}.form-file-input:hover{border-color:#2563eb}.file-selected{background:#d1fae5;border-radius:6px;color:#059669;font-size:14px;font-weight:500;margin-top:12px;padding:12px}@media (max-width:768px){.program-form-content{padding:12px}.program-form{padding:16px}.form-textarea-large{min-height:300px}}.form-label.required:after{color:#dc2626;content:" *"}.trainings-page{background:#f9fafb;min-height:100vh}.trainings-content{margin:0 auto;max-width:1600px;padding:20px}.page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.page-header h1{color:#111827;font-size:24px;font-weight:600;margin:0 0 8px}.page-subtitle{color:#6b7280;font-size:14px;margin:0}.filters-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.search-input{background:#fff;border:1px solid #d1d5db;border-radius:8px;flex:1 1;font-size:14px;min-width:200px;padding:10px 16px}.search-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.filter-select{background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px}.filter-select:focus{border-color:#2563eb;outline:none}.export-btn{background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s}.export-btn:hover{background:#f9fafb;border-color:#2563eb}.trainings-stats{color:#6b7280;font-size:14px;line-height:1.6;margin-bottom:16px}.trainings-table{border-collapse:collapse;width:100%}.trainings-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.trainings-table th{color:#374151;font-size:13px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.training-row{border-bottom:1px solid #e5e7eb;transition:background .2s}.training-row:hover{background:#f9fafb}.training-row td{font-size:14px;padding:12px;vertical-align:top}.category-badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px;white-space:nowrap}.category-badge-ot{background:#dbeafe;color:#1e40af}.category-badge-pb{background:#fee2e2;color:#991b1b}.instructor-position{color:#9ca3af;font-size:12px;margin-top:2px}.training-status-cell{min-width:180px}.status-pending{background:#fef3c7;color:#d97706}.status-signed{background:#d1fae5;color:#059669}.status-expired{background:#fee2e2;color:#dc2626}.signed-info{color:#6b7280;font-size:11px;margin-top:4px}.training-actions-compact{display:flex;gap:12px;margin-top:8px}.action-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:13px;padding:0;text-decoration:underline}.action-link:hover{color:#1d4ed8}.action-link.danger{color:#dc2626}.action-link.danger:hover{color:#b91c1c}.info-box{border-radius:8px;color:#1e40af;font-size:14px;margin-top:20px}@media (max-width:1024px){.trainings-table{min-width:1000px}.table-container{overflow-x:scroll}}.training-form-page{margin:0 auto;max-width:900px;padding:20px}.training-form{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.form-textarea{border:1px solid #d1d5db;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 14px;resize:vertical;transition:border-color .2s;width:100%}.form-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.radio-group-horizontal{display:flex;gap:20px}.info-box{background:#eff6ff;border:1px solid #bfdbfe;margin:16px 0}.info-box strong{color:#1e40af;display:block;margin-bottom:8px}.info-box ol{color:#1e40af;margin:0}.info-box li{font-size:14px}.info-box-small{background:#f0f9ff;border-left:3px solid #0ea5e9;border-radius:4px;color:#0c4a6e;font-size:13px;margin-top:8px;padding:8px 12px}.employee-info-box,.program-info-box{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;margin-top:12px;padding:16px}.employee-info-box h3,.program-info-box h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 8px}.employee-info-box p,.program-info-box p{color:#374151;font-size:14px;margin:4px 0}.program-file{color:#6b7280;font-size:13px;margin-top:8px}.warning-box-small{background:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px;color:#92400e;font-size:13px;margin-top:12px;padding:10px 12px}.warning-box{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:14px;margin-top:20px;text-align:center}.btn-large{font-size:15px;padding:12px 28px}.training-detail-page{background:#f9fafb;min-height:100vh}.training-detail-content{margin:0 auto;max-width:1200px;padding:20px}.detail-header{margin-bottom:24px}.detail-title-row{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-top:16px}.detail-title-row h1{color:#111827;font-size:32px;font-weight:700;margin:0 0 8px}.detail-subtitle{color:#6b7280;font-size:16px;margin:0}.status-badge-large{border-radius:8px;font-size:16px;font-weight:600;padding:12px 24px;white-space:nowrap}.status-badge-large.status-pending{background:#fef3c7;color:#d97706}.status-badge-large.status-signed{background:#d1fae5;color:#059669}.status-badge-large.status-expired{background:#fee2e2;color:#dc2626}.detail-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin-bottom:24px}.detail-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.detail-card-success{border-left:4px solid #10b981}.detail-card-warning{border-left:4px solid #f59e0b}.detail-card h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 16px}.detail-rows{display:flex;flex-direction:column;gap:12px}.detail-row{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;gap:16px;justify-content:space-between;padding-bottom:12px}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-label{color:#6b7280;min-width:140px}.detail-label,.detail-value{font-size:14px;font-weight:500}.detail-value{color:#111827;flex:1 1;text-align:right}.detail-hash{font-family:Courier New,monospace;font-size:11px;word-break:break-all}.detail-hint{color:#6b7280;font-size:14px;line-height:1.6;margin:0 0 16px}.detail-actions,.detail-footer{display:flex;flex-wrap:wrap;gap:12px}.detail-footer{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.btn-danger{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background .2s}.btn-danger:hover{background:#b91c1c}.error-box{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:40px;text-align:center}.error-box p{color:#6b7280;font-size:16px;margin-bottom:20px}@media (max-width:768px){.training-detail-content{padding:12px}.detail-title-row{flex-direction:column}.detail-grid{grid-template-columns:1fr}.detail-row{align-items:flex-start;flex-direction:column;gap:4px}.detail-value{text-align:left}.detail-footer{flex-direction:column}.btn{width:100%}}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{appearance:button;cursor:pointer;overflow:visible;text-transform:none}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;height:100%}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar :after,.rbc-calendar :before{box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.rbc-ellipsis,.rbc-event-label,.rbc-row-segment .rbc-event-content,.rbc-show-more{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{border-bottom:1px solid #ddd;flex:1 0;font-size:90%;font-weight:700;min-height:0;overflow:hidden;padding:0 3px;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{background:none;border:none;color:inherit;cursor:pointer;margin:0;padding:0;-webkit-user-select:text;user-select:text}.rbc-row-content{position:relative;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:flex;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{-ms-overflow-style:none;height:100%;overflow-y:scroll;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{align-items:center;display:flex;flex-wrap:wrap;font-size:16px;justify-content:center;margin-bottom:10px}.rbc-toolbar .rbc-toolbar-label{flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{background:none;background-image:none;border:1px solid #ccc;border-radius:4px;color:#373a3c;display:inline-block;line-height:normal;margin:0;padding:.375rem 1rem;text-align:center;vertical-align:middle;white-space:nowrap}.rbc-toolbar button.rbc-active,.rbc-toolbar button:active{background-color:#e6e6e6;background-image:none;border-color:#adadad;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.rbc-toolbar button.rbc-active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button:active:hover{background-color:#d4d4d4;border-color:#8c8c8c;color:#373a3c}.rbc-toolbar button:focus,.rbc-toolbar button:hover{background-color:#e6e6e6;border-color:#adadad;color:#373a3c}.rbc-toolbar button:hover{cursor:pointer}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width:767px){.rbc-toolbar{flex-direction:column}}.rbc-day-slot .rbc-background-event,.rbc-event{background-color:#3174ad;border:none;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;margin:0;padding:2px 5px;text-align:left;width:100%}.rbc-day-slot .rbc-slot-selecting .rbc-background-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-slot-selecting .rbc-event{cursor:inherit;pointer-events:none}.rbc-day-slot .rbc-selected.rbc-background-event,.rbc-event.rbc-selected{background-color:#265985}.rbc-day-slot .rbc-background-event:focus,.rbc-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{box-shadow:-1px 1px 5px 0 #33333380}.rbc-event-continues-prior{border-bottom-left-radius:0;border-top-left-radius:0}.rbc-event-continues-after{border-bottom-right-radius:0;border-top-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:flex;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;color:#3174ad;font-size:85%;font-weight:700;height:auto;line-height:normal;z-index:4}.rbc-show-more:focus,.rbc-show-more:hover{color:#265985}.rbc-month-view{border:1px solid #ddd;display:flex;flex:1 0;flex-direction:column;height:100%;position:relative;user-select:none;-webkit-user-select:none;width:100%}.rbc-month-header{display:flex;flex-direction:row}.rbc-month-row{display:flex;flex:1 0;flex-basis:0px;flex-direction:column;height:100%;overflow:hidden;position:relative}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{flex:1 1;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:flex;flex:1 0;flex-direction:row;overflow:hidden;right:1px}.rbc-day-bg{flex:1 0}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 5px 15px #00000040;padding:10px;position:absolute;z-index:5}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:flex;flex:1 0;flex-direction:column;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{border:1px solid #ddd;border-collapse:collapse;border-spacing:0;width:100%}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{border-bottom:1px solid #ddd;padding:3px 5px;text-align:left}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:flex;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{flex:1 1}.rbc-timeslot-group{border-bottom:1px solid #ddd;display:flex;flex-flow:column nowrap;min-height:40px}.rbc-header-gutter,.rbc-time-gutter{flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;margin-right:10px;position:absolute;right:0;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-event{align-items:flex-start;border:1px solid #265985;display:flex;flex-flow:column wrap;max-height:100%;min-height:20px;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{word-wrap:break-word;flex:1 1;height:100%;line-height:1;min-height:1em;width:100%}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{background-color:#fff;border-right:1px solid #ddd;left:0;margin-right:-1px;position:sticky;z-index:10}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{flex:1 0;flex-basis:0px;min-width:auto}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-day-bg,.rbc-time-view-resources .rbc-header{flex:1 1;flex-basis:0 px;width:140px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{flex:1 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{background-color:#00000080;color:#fff;font-size:75%;padding:3px;position:absolute;width:100%;z-index:10}.rbc-slot-selecting{cursor:move}.rbc-time-view{border:1px solid #ddd;display:flex;flex:1 1;flex-direction:column;min-height:0;width:100%}.rbc-time-view .rbc-time-gutter{text-align:right;white-space:nowrap}.rbc-time-view .rbc-allday-cell{box-sizing:initial;height:100%;position:relative;width:100%}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{box-sizing:border-box;min-height:20px}.rbc-time-header{display:flex;flex:0 0 auto;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-left:1px solid #ddd;border-right-width:0}.rbc-time-header>.rbc-row.rbc-row-resource,.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{border-left:1px solid #ddd;display:flex;flex:1 1;flex-direction:column;min-width:0}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;flex-shrink:0}.rbc-time-content{align-items:flex-start;border-top:2px solid #ddd;display:flex;flex:1 0;overflow-y:auto;position:relative;width:100%}.rbc-time-content>.rbc-time-gutter{flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{user-select:none;-webkit-user-select:none;width:100%}.rbc-current-time-indicator{background-color:#74ad31;height:1px;left:0;pointer-events:none;position:absolute;right:0;z-index:3}.rbc-resource-grouping.rbc-time-header-content{display:flex;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.tabs{border-bottom:2px solid #e5e7eb;display:flex;gap:4px;margin-bottom:20px}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .2s}.tab:hover{background-color:#f9fafb;color:#111827}.tab.active{border-bottom-color:#2563eb;color:#2563eb;font-weight:600}.calendar-page{background:#f9fafb;min-height:100vh}.calendar-container{margin:0 auto;max-width:1600px;padding:20px}.calendar-header{margin-bottom:20px}.calendar-header h1{color:#111827;font-size:28px;font-weight:700;margin:0 0 8px}.calendar-subtitle{color:#6b7280;font-size:14px;margin:0}.calendar-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px;text-align:center}.stat-value{font-size:32px;font-weight:700;margin-bottom:4px}.stat-label{color:#6b7280;font-size:14px}.stat-scheduled .stat-value{color:#3b82f6}.stat-completed .stat-value{color:#10b981}.stat-overdue .stat-value{color:#ef4444}.stat-remaining .stat-value{color:#f59e0b}.overdue-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:20px}.overdue-section h2{color:#dc2626;font-size:18px;font-weight:600;margin:0 0 16px}.overdue-list{display:flex;flex-direction:column;gap:12px}.overdue-item{align-items:center;background:#fef2f2;border-left:3px solid #dc2626;border-radius:6px;display:flex;gap:16px;padding:12px}.overdue-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.overdue-name{color:#111827;font-size:14px;font-weight:500}.overdue-type{color:#6b7280;font-size:13px}.overdue-meta{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.overdue-date{color:#6b7280;font-size:13px}.overdue-days{background:#fff;border-radius:10px;color:#dc2626;font-size:12px;font-weight:600;padding:2px 8px}.btn-conduct{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-conduct:hover{background:#b91c1c}.calendar-widget{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:20px}.calendar-legend{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:16px}.legend-item{align-items:center;color:#6b7280;display:flex;font-size:13px;gap:8px}.legend-dot{border-radius:50%;height:12px;width:12px}.legend-overdue{background:#ef4444}.legend-today{background:#f59e0b}.legend-scheduled{background:#3b82f6}.legend-completed{background:#10b981}.rbc-calendar{font-family:inherit}.rbc-header{border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:12px 0}.rbc-today{background-color:#eff6ff}.rbc-toolbar{background:#f9fafb;border-radius:8px;margin-bottom:20px;padding:16px}.rbc-toolbar button{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:14px;padding:8px 16px;transition:all .2s}.rbc-toolbar button:hover{background:#f3f4f6;border-color:#2563eb}.rbc-toolbar button.rbc-active{background:#2563eb;border-color:#2563eb;color:#fff}.rbc-event{cursor:pointer}.today-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:20px}.today-section h2{color:#111827;font-size:18px;font-weight:600;margin:0 0 16px}.today-list{display:flex;flex-direction:column;gap:12px}.today-item{align-items:center;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:6px;display:flex;gap:16px;padding:12px}.today-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.today-employee{color:#111827;font-size:14px;font-weight:500}.today-program{color:#6b7280;font-size:13px}.today-instructor{color:#92400e;font-size:13px}.btn-details{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:13px;padding:8px 16px;transition:all .2s}.btn-details:hover{background:#f9fafb;border-color:#2563eb;color:#2563eb}.calendar-actions{margin-top:24px;text-align:center}.loading{color:#6b7280;font-size:16px;padding:60px 20px;text-align:center}@media (max-width:768px){.calendar-container{padding:12px}.calendar-stats{grid-template-columns:repeat(2,1fr)}.overdue-item,.today-item{align-items:flex-start;flex-direction:column}.calendar-widget{padding:12px}.rbc-calendar{font-size:12px}}.kep-config-content{display:flex;flex-direction:column;gap:20px}.form-group{margin-bottom:16px}.form-label{color:#2d3748;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-description{color:#6b7280;font-size:14px;line-height:1.5;margin:8px 0 0}.radio-group{display:flex;flex-direction:column;gap:12px}.form-radio{align-items:flex-start;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s}.form-radio:hover{background:#f7fafc;border-color:#cbd5e0}.form-radio input[type=radio]{margin:2px 0 0}.form-radio input[type=radio]:checked+span{color:#2d3748}.form-radio:has(input:checked){background:#f0f4ff;border-color:#667eea}.form-radio span{flex:1 1;line-height:1.5}.form-radio strong{color:#2d3748;display:block;font-size:14px;margin-bottom:4px}.form-radio small{color:#718096;font-size:12px}.info-box{background:#e6fffa;border-left:4px solid #38b2ac;border-radius:6px;font-size:13px;line-height:1.6;padding:16px}.info-box h3{color:#2c7a7b;font-size:14px;font-weight:600;margin:0 0 8px}.info-box ol{color:#2c7a7b;margin:8px 0 0;padding-left:20px}.info-box li{margin-bottom:4px}.info-box .link{color:#2c7a7b;display:inline-block;font-weight:500;margin-top:8px;text-decoration:underline}.info-box .link:hover{color:#1a202c}.warning-box{background:#fef5e7;border-left:4px solid #ed8936;border-radius:6px;color:#744210;font-size:13px;padding:16px}.loading-small{color:#718096;font-style:italic;padding:12px;text-align:center}.certificates-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.certificate-item{border:2px solid #e2e8f0;border-radius:6px;cursor:pointer;padding:12px;transition:all .2s}.certificate-item:hover{background:#f7fafc;border-color:#cbd5e0}.certificate-item.selected{background:#f0f4ff;border-color:#667eea}.cert-owner{color:#2d3748;font-weight:600;margin-bottom:4px}.cert-org{color:#4a5568;font-size:13px;margin-bottom:4px}.cert-valid{color:#718096;font-size:12px}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;padding-top:16px}.btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-secondary{background:#e2e8f0;color:#2d3748}.btn-secondary:hover:not(:disabled){background:#cbd5e0}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}@media (max-width:768px){.radio-group{gap:8px}.form-radio{padding:12px}.certificates-list{max-height:200px}.modal-actions{flex-direction:column}.btn{width:100%}}.reports-page{background:#f9fafb;min-height:100vh}.reports-content{margin:0 auto;max-width:1200px;padding:20px}.kep-status-box{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:30px;padding:20px}.kep-status-box h2{font-size:18px;font-weight:600;margin:0 0 12px}.kep-status-box p{color:#374151;font-size:14px;margin:6px 0}.kep-configured{border-left:4px solid #059669}.kep-not-configured{border-left:4px solid #f59e0b}.kep-hint{color:#6b7280;font-size:13px}.kep-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.reports-section{margin-bottom:30px}.reports-section h2{color:#111827;font-size:20px;font-weight:600;margin:0 0 8px}.section-description{color:#6b7280;font-size:14px;line-height:1.5;margin-bottom:20px}.journal-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:24px}.journal-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.journal-card h3{color:#111827;flex:1 1;font-size:18px;font-weight:600;margin:0}.records-count{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.count-badge{background:#3b82f6;border-radius:12px;color:#fff;font-size:12px;font-weight:600;min-width:24px;padding:4px 8px;text-align:center}.count-label{color:#6b7280;font-size:10px;text-align:right}.journal-subtitle{color:#6b7280;font-size:13px;margin:0 0 20px}.journal-params{display:flex;gap:20px;margin-bottom:20px}.journal-params label{color:#374151;display:flex;flex-direction:column;font-size:14px;font-weight:500;gap:6px}.date-input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:8px 12px}.journal-actions{display:flex;flex-wrap:wrap;gap:12px}.action-btn-journal{border-radius:6px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;min-width:180px;padding:10px 18px;transition:all .2s}.action-btn-journal:disabled{cursor:not-allowed;opacity:.5}.journal-warning{background:#fef3c7;border-radius:4px;color:#d97706;font-size:13px;margin-top:12px;padding:8px 12px}.alert{border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:20px 0;padding:0}.alert-error{background:#fef2f2;border:1px solid #fecaca}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0}.alert-content{align-items:center;display:flex;gap:12px;padding:12px 16px}.alert-icon{flex-shrink:0;font-size:18px}.alert-message{flex:1 1;font-size:14px;font-weight:500;line-height:1.5;white-space:pre-line}.alert-error .alert-message{color:#dc2626}.alert-success .alert-message{color:#059669}.alert-close{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;padding:0;transition:background-color .2s;width:24px}.alert-close:hover{background:#0000001a}.alert-error .alert-close{color:#dc2626}.alert-success .alert-close{color:#059669}
/*# sourceMappingURL=main.dd900cb1.css.map*/