:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-color: #1e40af;--primary-hover: #1d4ed8;--primary-light: #dbeafe;--primary-dark: #1e3a8a;--accent-color: #3b82f6}:root[data-theme=green]{--primary-color: #15803d;--primary-hover: #16a34a;--primary-light: #dcfce7;--primary-dark: #14532d;--accent-color: #22c55e}:root[data-theme=purple]{--primary-color: #7c3aed;--primary-hover: #8b5cf6;--primary-light: #f3e8ff;--primary-dark: #5b21b6;--accent-color: #a78bfa}:root[data-theme=orange]{--primary-color: #ea580c;--primary-hover: #f97316;--primary-light: #fed7aa;--primary-dark: #c2410c;--accent-color: #fb923c}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}.auth-wrap body{display:flex;place-items:center}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.auth-wrap{min-height:100vh;min-width:100vw;display:flex;align-items:center;justify-content:center;background-color:#f8fafc;padding:20px;box-sizing:border-box;position:fixed;inset:0}.auth-card{background:#fff;border-radius:16px;box-shadow:0 10px 25px #00000014;width:100%;max-width:550px;padding:45px;text-align:center;border:1px solid #e5e7eb;overflow:hidden;margin:0;flex-shrink:0}.auth-logo-img{max-width:220px;width:100%;height:auto;display:block;margin:0 auto 20px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.15))}.auth-card form{width:100%;max-width:450px;margin:0 auto}.auth-label{display:block;text-align:left;font-weight:600;color:#374151;margin-bottom:8px;margin-top:16px;font-size:14px}.auth-input{width:100%;padding:14px 18px;border-radius:8px;border:1px solid #d1d5db;font-size:16px;outline:none;box-sizing:border-box;margin-bottom:4px}.auth-input:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a}.auth-logo{margin-bottom:20px}.logo-placeholder{width:70px;height:70px;background-color:#111827;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;border-radius:14px;margin:0 auto 12px}.auth-title{font-size:28px;font-weight:700;color:#111827;margin-bottom:24px;margin-top:0}.auth-actions{display:flex;justify-content:center;align-items:center;margin-top:24px;width:100%}.auth-actions .btn{width:100%;max-width:200px;text-align:center;padding:12px 24px;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;border:1px solid #1e40af!important;background:#1e40af!important;color:#fff;transition:all .2s ease;display:inline-block}.auth-actions .btn:hover{background:#1d4ed8!important;border-color:#1d4ed8!important;transform:translateY(-1px)}.auth-actions .btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn.ghost{background:#fff;color:#111827}.btn.ghost:hover{background:#f3f4f6}.auth-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:10px;border-radius:8px;margin:10px 0;font-size:14px}.auth-note{margin-top:20px;font-size:14px;color:#6b7280;line-height:1.4}.toast{position:fixed;top:20px;right:20px;z-index:9999;max-width:400px;border-radius:8px;box-shadow:0 4px 12px #00000026;transition:all .3s ease-in-out;opacity:0;transform:translate(100%)}.toast--visible{opacity:1;transform:translate(0)}.toast--hidden{opacity:0;transform:translate(100%)}.toast--success{background:linear-gradient(135deg,#4ade80,#22c55e);color:#fff}.toast--error{background:linear-gradient(135deg,#f87171,#ef4444);color:#fff}.toast--warning{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#92400e}.toast--info{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff}.toast__content{display:flex;align-items:center;padding:16px 20px;gap:12px}.toast__icon{font-size:18px;font-weight:700;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff3;flex-shrink:0}.toast__message{flex:1;font-size:14px;font-weight:500;line-height:1.4}.toast__close{background:none;border:none;color:inherit;font-size:18px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease;flex-shrink:0}.toast__close:hover{background:#fff3}@media(max-width:768px){.toast{left:20px;right:20px;max-width:none;transform:translateY(-100%)}.toast--visible{transform:translateY(0)}.toast--hidden{transform:translateY(-100%)}}.dashboard{min-height:100vh;width:100%;background:linear-gradient(135deg,#f5f7fb,#eef2f7)}.dashboard-header{width:100%;background:#fff;padding:16px 24px;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d;box-sizing:border-box;position:sticky;top:0;z-index:10}.company-branding{margin-bottom:1.5rem;text-align:center}.company-logo{width:120px;height:80px;object-fit:contain;border:2px solid var(--primary-color);border-radius:8px;padding:8px;background:var(--primary-color);box-shadow:0 2px 4px #1e40af1a}.no-courses-message{background:#fff;border-radius:8px;padding:2rem;text-align:center;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;border-left:4px solid var(--primary-color)}.no-courses-message p{margin:.5rem 0;color:#4b5563;font-size:1rem;line-height:1.5}.no-courses-message p:first-child{font-weight:600;color:#1f2937;font-size:1.1rem}.upskill-courses{border-top:2px solid #667eea;margin-top:2rem;padding-top:1rem}.upskill-card{border-left:4px solid #667eea!important;background:linear-gradient(135deg,#f8f9ff,#fff)}.upskill-card h4{color:#667eea}.course-meta{margin:.5rem 0}.course-meta small{color:#666;font-style:italic}.no-upskill-courses{background:#f8f9fa;border-radius:8px;padding:1.5rem;text-align:center;color:#666;border:1px solid #e5e7eb}.upskill-management{display:flex;flex-direction:column;gap:1rem}.upskill-toggle-card{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;gap:1rem}.upskill-info{flex:1}.upskill-info h4{margin:0 0 .5rem;color:#333}.upskill-info p{margin:0 0 .5rem;color:#666;font-size:.9rem}.upskill-info small{color:#999;font-size:.8rem}.upskill-toggle{display:flex;align-items:center;gap:.5rem}.toggle-switch{position:relative;width:50px;height:24px;display:inline-block;flex-shrink:0;min-width:50px;overflow:hidden;border:2px solid #d1d5db;border-radius:24px;background-color:#f3f4f6}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:24px;width:100%;height:100%}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.toggle-slider{background-color:#667eea}.toggle-label{font-size:.9rem;font-weight:500;min-width:60px}.user-info button{display:inline-flex!important;visibility:visible!important;opacity:1!important;align-items:center;justify-content:center;white-space:nowrap}.btn.logout{background:var(--primary-color)!important;border:1px solid var(--primary-color)!important;color:#fff!important;padding:8px 16px!important;border-radius:6px!important;cursor:pointer;font-size:14px!important;font-weight:500!important;font-family:inherit!important;transition:all .2s ease;text-decoration:none;display:inline-block;line-height:1.4;text-align:center;box-shadow:none;outline:none}.btn.logout:hover{background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px)}.btn.admin-link{background:#dc2626!important;border:1px solid #dc2626!important;color:#fff!important;padding:8px 16px!important;border-radius:6px!important;cursor:pointer;font-size:14px!important;font-weight:500!important;font-family:inherit!important;transition:all .2s ease;text-decoration:none;display:inline-block;line-height:1.4;text-align:center;box-shadow:none;outline:none}.btn.admin-link:hover{background:#b91c1c;border-color:#b91c1c;transform:translateY(-1px)}section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:24px}section h4{margin-top:0;margin-bottom:16px;color:#111827;font-size:1.1em}form{display:flex;flex-direction:column;gap:12px;max-width:500px}input,select{padding:8px 12px;border-radius:6px;border:1px solid #d1d5db;font-size:14px;width:100%}.completion-tracker{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.completion-filters select{width:auto;min-width:200px}.completion-table table{width:100%;border-collapse:collapse;font-size:14px}.completion-table th{background:#f8fafc;font-weight:600;color:#4b5563;white-space:nowrap}.toggle-switch{position:relative;display:inline-block;width:50px;height:24px;flex-shrink:0;min-width:50px;overflow:hidden;border:2px solid #d1d5db;border-radius:24px;background-color:#f3f4f6}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.4s;border-radius:24px;width:100%;height:100%}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:var(--primary-color)}input:checked+.toggle-slider:before{transform:translate(26px)}.toggle-slider:hover{background-color:#bbb}input:checked+.toggle-slider:hover{background-color:#4338ca}.employee-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;width:100%;box-sizing:border-box}.employee-list label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;background:#fff;border:1px solid #d1d5db;cursor:pointer;transition:all .2s ease;font-size:14px;min-width:fit-content;max-width:300px}.employee-list label:hover{background:#f8fafc;border-color:var(--accent-color)}.course-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:20px}.course-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px;transition:all .2s ease;display:flex;flex-direction:column;min-height:200px}.course-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000000d}.course-card h4{margin:0 0 8px;color:#111827;font-size:1.1em}.course-card p{margin:0;color:#6b7280;font-size:14px;flex-grow:1;padding-bottom:16px}.course-actions{margin-top:auto;padding-top:16px}.course-actions .btn{display:block;width:100%;text-align:center;text-decoration:none;padding:8px 16px}.btn.primary{background:var(--primary-color);color:#fff;border-color:var(--primary-dark)}.btn.primary:hover{background:var(--primary-hover)}.course-completion{margin-top:auto;padding-top:16px;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;color:#6b7280;font-size:14px}.course-completion .score{font-weight:600;color:#059669}.course-completion .completion-date{color:#6b7280}.dashboard-header>div{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.dashboard-content{max-width:1200px;margin:0 auto;padding:24px;box-sizing:border-box}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;border-bottom:1px solid #e5e7eb}.user-info{display:flex;align-items:center;gap:12px}.role-badge{background:#374151;color:#fff;padding:4px 8px;border-radius:4px;font-size:.8em}.completion-tracker{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.completion-filters{padding:16px;border-bottom:1px solid #e5e7eb}.completion-filters select{padding:6px 12px;border-radius:6px;border:1px solid #d1d5db;min-width:200px}.completion-table{overflow-x:auto}.completion-table table{width:100%;border-collapse:collapse}.completion-table th,.completion-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.completion-table th{background:#f8fafc;font-weight:600;color:#4b5563}.completion-table tr.completed{background-color:#f0fdf4}.completion-table tr.pending{background-color:#fff7ed}.completion-table tr:hover{background-color:#f8fafc}.retakes-controls{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.retakes-controls label{display:flex;align-items:center;gap:4px;font-size:12px;cursor:pointer}.retakes-controls input[type=number]{padding:2px 4px;border:1px solid #d1d5db;border-radius:3px;font-size:12px}.status-badge{padding:2px 8px;border-radius:12px;font-size:12px;font-weight:700;text-transform:uppercase}.status-badge.success{background-color:#d4edda;color:#155724}.status-badge.warning{background-color:#fff3cd;color:#856404}tr.max-retakes{background-color:#fff3cd}tr.max-retakes:hover{background-color:#ffeaa7}.courses-completed-message{text-align:center;padding:2rem;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:8px;margin:1rem 0}.courses-completed-message h4{color:#155724;margin-bottom:.5rem}.courses-completed-message p{color:#155724;margin:0}.score.pass{color:#155724;font-weight:700}.score.fail{color:#721c24;font-weight:700}.completion-filters select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:14px;min-width:150px}.mobile-cards{display:none}@media(max-width:1200px){.dashboard-header{padding:12px 16px}main{padding:16px!important}.company-logo{width:100px;height:65px}}@media(max-width:768px){.dashboard-header{padding:8px 12px;flex-direction:column;gap:12px}.user-info{flex-direction:column;align-items:flex-start!important;gap:8px}.role-badge{font-size:12px!important;padding:4px 8px!important}main{padding:12px!important;max-width:100%!important}section>div:first-child{padding:8px 12px!important;flex-direction:column;align-items:flex-start!important;gap:8px}section>div:first-child h3{font-size:16px!important;margin:0!important}form{padding:12px!important}.auth-actions{flex-direction:column!important;gap:8px!important}.btn{width:100%!important;justify-content:center}.completion-table{display:block!important}table{display:none!important}.mobile-cards{display:block!important}.assignment-card{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 2px 4px #0000001a;border-left:4px solid #3b82f6}.assignment-card.completed{border-left-color:#10b981}.assignment-card.pending{border-left-color:#f59e0b}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-title{font-weight:600;font-size:14px;color:#1f2937;margin:0;flex:1}.card-status{background:#10b981;color:#fff;font-size:11px;padding:4px 8px;border-radius:6px;font-weight:500;margin-left:8px}.card-status.pending{background:#f59e0b}.card-details{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.card-detail{display:flex;flex-direction:column}.card-detail-label{font-size:11px;color:#6b7280;font-weight:500;margin-bottom:2px;text-transform:uppercase;letter-spacing:.5px}.card-detail-value{font-size:13px;color:#1f2937;font-weight:500}.card-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.card-badge{font-size:10px;padding:3px 6px;border-radius:4px;font-weight:500}.card-badge.score-pass{background:#dcfce7;color:#166534}.card-badge.score-fail,.card-badge.overdue{background:#fef2f2;color:#dc2626}.card-badge.late-ok{background:#dcfce7;color:#166534}.completion-filters{flex-direction:column!important;gap:8px!important;align-items:stretch!important}.completion-filters select{min-width:auto!important;width:100%}.learner-selection{flex-direction:column!important;gap:8px!important}.learner-selection label{max-width:100%!important;margin:2px 0!important}.company-logo{width:80px;height:50px}.toggle-switch{width:44px!important;height:24px!important}.toggle-slider{height:20px!important;width:20px!important}.toggle-switch input:checked+.toggle-slider{transform:translate(20px)!important}.summary-cards{grid-template-columns:1fr 1fr!important;gap:8px!important}.summary-card{padding:12px!important;min-height:auto!important}.summary-card h4{font-size:14px!important;margin-bottom:4px!important}.summary-card .number{font-size:20px!important}.course-card{padding:12px!important;margin-bottom:12px!important}.course-card h4{font-size:16px!important;margin-bottom:8px!important}.no-courses-message{padding:1rem!important;margin-bottom:1rem!important}.learner-selection{max-height:200px!important;overflow-y:auto}.date-compact{font-size:13px;font-weight:500}.deadline-compact{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.deadline-date{font-size:13px;font-weight:500}.overdue-badge{background:#dc2626;color:#fff;font-size:10px;padding:1px 4px;border-radius:3px;font-weight:700}.late-ok-badge{background:#059669;color:#fff;font-size:10px;padding:1px 4px;border-radius:3px;font-weight:500}.no-deadline{color:#6b7280;font-size:12px;font-style:italic}}@media(max-width:768px){.date-compact{font-size:12px!important}.deadline-compact{flex-direction:row!important;gap:4px!important;flex-wrap:wrap}.deadline-date{font-size:12px!important}.overdue-badge,.late-ok-badge{font-size:9px!important;padding:1px 3px!important}table{display:none}.mobile-cards{display:block}.analytics-section{padding:8px!important}.analytics-grid{grid-template-columns:1fr!important;gap:12px!important}.analytics-card{padding:12px!important;margin-bottom:12px!important}.analytics-card h5{font-size:14px!important;margin-bottom:12px!important}.bar-chart-container{padding:8px!important;overflow-x:auto}.bar-chart{min-width:300px;height:120px!important;display:flex;align-items:end;justify-content:center;gap:8px;padding:8px}.bar-item{flex:1;max-width:45px;text-align:center}.bar{border-radius:4px 4px 0 0;margin-bottom:6px;min-height:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px!important}.bar-label{font-size:9px!important;color:#6b7280;font-weight:500;line-height:1.2;word-break:break-word}.pie-chart-container{display:flex;flex-direction:column;align-items:center;padding:8px}.pie-chart-container svg{width:100px!important;height:100px!important}.pie-legend{margin-top:8px;font-size:10px!important}.pie-legend>div{margin-bottom:2px!important}.summary-stats{display:grid;grid-template-columns:1fr 1fr 1fr!important;gap:8px!important;text-align:center;margin-bottom:12px}.summary-stat{padding:8px 4px!important}.summary-stat h6{font-size:10px!important;margin:0 0 4px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.summary-stat .value{font-size:16px!important;font-weight:700;color:#1f2937}}@media(max-width:480px){.dashboard-header{padding:6px 8px}main{padding:8px!important}section>div:first-child{padding:6px 8px!important}section>div:first-child h3{font-size:14px!important}.company-logo{width:60px;height:40px}.btn{padding:8px 12px!important;font-size:14px!important}form{padding:8px!important}input,select,textarea{font-size:16px!important}.bar-chart-container{padding:15px!important}.bar-chart-container h5{font-size:16px!important}.bar-chart-container .summary-stats{flex-direction:column!important;align-items:center!important;gap:8px!important;font-size:13px!important}}.manager-section{margin-bottom:24px}.section-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);border-radius:12px;color:#fff;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #1e40af26;border:none;margin-bottom:16px}.section-header:hover{box-shadow:0 4px 12px #1e40af40;transform:translateY(-1px)}.section-icon{font-size:24px;display:flex;align-items:center}.section-header h3{margin:0;font-size:18px;font-weight:600;letter-spacing:.3px}.section-toggle{font-size:18px;transition:transform .3s ease;display:flex;align-items:center}.section-content{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000d;border:1px solid #e5e7eb;animation:slideDown .3s ease}.dashboard-footer{background:#fff;border-top:1px solid #e5e7eb;padding:20px 24px;text-align:center;margin-top:40px}.dashboard-footer p{margin:0;color:#9ca3af;font-size:14px;font-weight:500}.manager-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:24px;overflow:visible;box-shadow:0 1px 3px #0000000d;transition:all .2s ease}.manager-section:hover{box-shadow:0 2px 8px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.section-header:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.section-header-left{display:flex;align-items:center;gap:12px}.section-icon{font-size:24px}.section-header h3{margin:0;font-size:16px;font-weight:600;color:#1f2937}.section-toggle{font-size:18px;color:#6b7280;transition:transform .2s ease}.section-toggle.expanded{transform:rotate(180deg)}.section-content{padding:24px 20px;animation:slideDown .2s ease forwards}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:#374151}.form-label.required:after{content:" *";color:#ef4444}.form-label.optional{font-weight:500}.form-label.optional:after{content:" (optional)";font-size:12px;color:#9ca3af;font-weight:400}.form-input,.form-select,.form-textarea{padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;transition:all .2s ease;background-color:#fff}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.form-textarea{resize:vertical;min-height:80px}.form-checkbox-group{display:flex;flex-direction:column;gap:12px}.form-checkbox-item{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.form-checkbox-item input[type=checkbox],.form-checkbox-item input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.form-checkbox-item label{font-size:14px;font-weight:500;color:#374151;cursor:pointer;margin:0}.form-checkbox-item:hover label{color:#1f2937}.form-subgroup{margin-left:26px;padding-left:12px;border-left:2px solid #e5e7eb}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background-color:#3b82f6;color:#fff}.btn.primary:hover:not(:disabled){background-color:#2563eb;box-shadow:0 4px 6px #3b82f633}.btn.secondary{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn.secondary:hover:not(:disabled){background-color:#e5e7eb;border-color:#9ca3af}.btn.success{background-color:#10b981;color:#fff}.btn.success:hover:not(:disabled){background-color:#059669;box-shadow:0 4px 6px #10b98133}.btn.danger{background-color:#ef4444;color:#fff}.btn.danger:hover:not(:disabled){background-color:#dc2626;box-shadow:0 4px 6px #ef444433}.file-upload-button{padding:10px 16px;background-color:#3b82f6;color:#fff;border-radius:6px;cursor:pointer;font-weight:500;display:inline-block;transition:all .2s ease}.file-upload-button:hover{background-color:#2563eb}.file-upload-button input[type=file]{display:none}.file-info{padding:12px;background-color:#dbeafe;border:1px solid #bfdbfe;border-radius:6px;font-size:14px;margin-top:8px;display:flex;justify-content:space-between;align-items:center}.file-info-remove{background:none;border:none;cursor:pointer;font-size:18px;color:#1e40af;padding:0;margin-left:8px}.file-info-remove:hover{color:#1e3a8a}.list-box{border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background-color:#fff}.list-box-item{display:flex;align-items:center;padding:12px 14px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.list-box-item:last-child{border-bottom:none}.list-box-item:hover{background-color:#f9fafb}.list-box-item.selected{background-color:#eff6ff}.list-box-item input[type=checkbox]{margin-right:10px;cursor:pointer;width:18px;height:18px;accent-color:#3b82f6}.list-box-item label{flex:1;font-size:14px;color:#374151;cursor:pointer;margin:0}.list-box-empty{padding:24px;text-align:center;color:#9ca3af;font-style:italic}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:1024px){.two-column{grid-template-columns:1fr}}.card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;transition:all .2s ease}.card:hover{box-shadow:0 2px 8px #00000014}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-title{font-size:16px;font-weight:600;color:#1f2937;margin:0}.card-status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600}.card-status.completed{background-color:#d1fae5;color:#065f46}.card-status.pending{background-color:#fef3c7;color:#92400e}.card-status.failed{background-color:#fee2e2;color:#991b1b}.action-bar{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.action-bar .btn{flex:1;min-width:150px;justify-content:center}@media(max-width:640px){.action-bar{flex-direction:column}.action-bar .btn{width:100%}}.info-box{padding:12px 16px;background-color:#eff6ff;border-left:4px solid #3b82f6;border-radius:4px;margin-bottom:16px;font-size:14px;color:#1e40af}.info-box.warning{background-color:#fffbeb;border-color:#f59e0b;color:#92400e}.info-box.success{background-color:#f0fdf4;border-color:#10b981;color:#065f46}.info-box.error{background-color:#fef2f2;border-color:#ef4444;color:#991b1b}@media(max-width:768px){.section-content{padding:16px}.form-grid,.two-column{grid-template-columns:1fr;gap:16px}.section-header{padding:12px 16px}.section-header h3{font-size:15px}.btn{padding:10px 16px;font-size:13px}}.loading{opacity:.6;pointer-events:none}.spinner{display:inline-block;width:16px;height:16px;border:2px solid #f3f4f6;border-top-color:#3b82f6;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.card{border:1px solid #e5e7eb;border-radius:8px;padding:16px;background-color:#fff;box-shadow:0 1px 2px #0000000d}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.file-info{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background-color:#f0fdf4;border:1px solid #dcfce7;border-radius:6px;font-size:13px;color:#15803d}.file-info-remove{background:none;border:none;color:#dc2626;cursor:pointer;font-size:14px;padding:0;margin-left:8px}.file-info-remove:hover{color:#991b1b}@media print{.section-toggle,.btn{display:none}.manager-section{page-break-inside:avoid}}.loading-sequence-container{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;position:fixed;top:0;left:0;z-index:9999}.loading-content{position:relative;width:300px;height:250px;display:flex;align-items:center;justify-content:center;flex-direction:column}.t-letter{font-size:120px;font-weight:900;color:#1a1a1a;letter-spacing:0;z-index:5;line-height:1;font-family:Arial,Helvetica,sans-serif;opacity:1}.l-border-left{position:absolute;left:20%;top:20%;z-index:10}.l-border-left:before{content:"";position:absolute;background:#1e40af;width:16px;height:16px;left:0;top:0;animation:bracket-left-top 2.5s ease-in-out infinite}.l-border-left:after{content:"";position:absolute;background:#1e40af;width:16px;height:16px;left:0;top:0;animation:bracket-left-side 2.5s ease-in-out infinite}.l-border-right{position:absolute;right:20%;top:20%;z-index:10}.l-border-right:before{content:"";position:absolute;background:#1e40af;width:16px;height:16px;right:0;top:0;animation:bracket-right-top 2.5s ease-in-out infinite}.l-border-right:after{content:"";position:absolute;background:#1e40af;width:16px;height:16px;right:0;top:0;animation:bracket-right-side 2.5s ease-in-out infinite}@keyframes bracket-left-top{0%,to{width:16px;height:16px;left:0;top:0}50%{width:70px;height:16px;left:0;top:0}}@keyframes bracket-left-side{0%,to{width:16px;height:16px;left:0;top:0}50%{width:16px;height:70px;left:0;top:0}}@keyframes bracket-right-top{0%,to{width:16px;height:16px;right:0;top:0}50%{width:70px;height:16px;right:0;top:0}}@keyframes bracket-right-side{0%,to{width:16px;height:16px;right:0;top:0}50%{width:16px;height:70px;right:0;top:0}}.loading-text{display:none}.admin-loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem;color:#666}.admin-page{min-height:100vh;background-color:#f5f5f5}.admin-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 0;box-shadow:0 2px 10px #0000001a}.admin-header-content{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.admin-header h1{margin:0;font-size:1.8rem;font-weight:600}.admin-user-info{display:flex;align-items:center;gap:1rem}.admin-user-info span{font-size:.9rem;opacity:.9}.admin-tabs{background:#fff;border-bottom:1px solid #e0e0e0;display:flex;max-width:1200px;margin:0 auto;padding:0 2rem}.admin-tabs .tab{background:none;border:none;padding:1rem 1.5rem;cursor:pointer;font-size:.95rem;color:#666;border-bottom:3px solid transparent;transition:all .2s ease}.admin-tabs .tab:hover{color:#667eea;background-color:#f8f9ff}.admin-tabs .tab.active{color:#667eea;border-bottom-color:#667eea;background-color:#f8f9ff}.admin-content{max-width:1200px;margin:0 auto;padding:2rem}.admin-error{background-color:#fee;color:#c33;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;border:1px solid #fcc}.admin-overview h2{margin-bottom:2rem;color:#333}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #00000014;text-align:center;border:1px solid #eee}.stat-card h3{margin:0 0 .5rem;font-size:.9rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:2.5rem;font-weight:700;color:#667eea;margin:0}.chart-section{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 10px #00000014}.chart-section h3{margin-bottom:1.5rem;color:#333}.company-summary-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #eee;gap:1rem}.company-summary-item:last-child{border-bottom:none}.company-summary-item strong{color:#333;min-width:150px}.logo-status.has-logo{color:#4caf50}.logo-status.no-logo{color:#f44336}.admin-companies h2{margin-bottom:2rem;color:#333}.companies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.company-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #00000014;border:1px solid #eee}.company-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.company-header h3{margin:0;color:#333}.logo-badge{font-size:1.2rem}.company-stats{margin-bottom:1.5rem}.company-stats .stat{display:flex;justify-content:space-between;margin-bottom:.5rem}.company-stats label{color:#666;font-size:.9rem}.company-users h4{margin:1rem 0 .5rem;color:#333;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.user-item{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.85rem;color:#666}.has-logo-badge{opacity:.7}.more-users{color:#999;font-style:italic;font-size:.8rem;margin-top:.5rem}.admin-users h2,.admin-upskill h2{margin-bottom:2rem;color:#333}.create-course-section{background:#fff;padding:2rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 2px 10px #00000014}.create-course-section h3{margin-bottom:1.5rem;color:#333}.create-course-form{max-width:800px}.create-course-form textarea{padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;font-family:inherit;transition:border-color .2s ease}.create-course-form textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.upskill-courses-section{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 10px #00000014}.upskill-courses-section h3{margin-bottom:1.5rem;color:#333}.upskill-courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.upskill-course-card{border:1px solid #eee;border-radius:8px;padding:1.5rem;background:#f8f9fa}.course-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.course-header h4{margin:0;color:#333;flex:1}.course-details p{margin:0 0 1rem;color:#666;font-size:.9rem;line-height:1.4}.course-meta{display:flex;flex-direction:column;gap:.5rem}.course-meta small{color:#999;font-size:.8rem}.enabled-companies{padding:.5rem 0;border-top:1px solid #ddd;margin-top:.5rem}.enabled-companies strong{color:#667eea;font-size:.9rem}.no-courses{grid-column:1 / -1;text-align:center;padding:3rem;color:#666}.no-courses p{margin:.5rem 0}.create-user-section{background:#fff;padding:2rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 2px 10px #00000014}.create-user-section h3{margin-bottom:1.5rem;color:#333}.create-user-form{max-width:600px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;color:#333;font-weight:500;font-size:.9rem}.form-group input,.form-group select{padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.users-table-section{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #00000014}.users-table-section h3{padding:1.5rem 2rem;margin:0;background:#f8f9fa;border-bottom:1px solid #eee;color:#333}.users-table{overflow-x:auto}.users-table table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:1rem;text-align:left;border-bottom:1px solid #eee}.users-table th{background:#f8f9fa;font-weight:600;color:#333;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.users-table tr:hover{background-color:#f8f9ff}.role-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-badge.admin{background:#ff5722;color:#fff}.role-badge.manager{background:#2196f3;color:#fff}.role-badge.learner{background:#4caf50;color:#fff}.admin-training h2{margin-bottom:2rem;color:#333}.training-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}.training-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:2rem}.training-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #00000014}.training-section h3{margin-bottom:1.5rem;color:#333;padding-bottom:.5rem;border-bottom:1px solid #eee}.course-item,.assignment-item,.attempt-item{padding:1rem;border-bottom:1px solid #eee;margin-bottom:.5rem}.course-item:last-child,.assignment-item:last-child,.attempt-item:last-child{border-bottom:none;margin-bottom:0}.course-item h4{margin:0 0 .5rem;color:#333}.course-item p{margin:0 0 .5rem;color:#666;font-size:.9rem}.course-item small{color:#999;font-size:.8rem}.upskill-item{border-left:3px solid #667eea;background:#f8f9ff}.upskill-meta{display:flex;flex-direction:column;gap:.25rem}.enabled-count{color:#667eea!important;font-weight:500}.no-items{color:#999;font-style:italic;text-align:center;padding:2rem}.assignment-details,.attempt-details{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.assignment-details strong,.attempt-details strong{color:#333}.assignment-meta,.attempt-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#999}.score{padding:.25rem .5rem;border-radius:12px;font-weight:600;font-size:.75rem}.score.pass{background:#e8f5e8;color:#4caf50}.score.fail{background:#ffeee8;color:#f44336}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block;text-align:center}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.primary{background:#667eea;color:#fff}.btn.primary:hover:not(:disabled){background:#5a6fd8;transform:translateY(-1px)}.btn.danger{background:#f44336;color:#fff}.btn.danger:hover:not(:disabled){background:#da190b;transform:translateY(-1px)}.btn.logout{background:#fff3;color:#fff;padding:.5rem 1rem}.btn.logout:hover{background:#ffffff4d}.btn.small{padding:.4rem .8rem;font-size:.8rem}@media(max-width:768px){.admin-header-content{padding:0 1rem;flex-direction:column;gap:1rem;text-align:center}.admin-tabs{padding:0 1rem;overflow-x:auto}.admin-content{padding:1rem}.form-row{grid-template-columns:1fr}.overview-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.companies-grid,.training-sections{grid-template-columns:1fr}.assignment-details,.attempt-details{flex-direction:column;gap:.25rem}.assignment-meta,.attempt-meta{flex-direction:column;align-items:flex-start;gap:.25rem}}.admin-development{max-width:800px;margin:0 auto}.development-warning{background:#fff3cd;border:1px solid #ffeaa7;color:#856404;padding:1rem;border-radius:8px;margin-bottom:2rem;display:flex;align-items:center;gap:.5rem}.development-section{margin-bottom:2rem}.development-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.development-card h3{margin:0 0 1rem;color:#2c3e50;font-size:1.4rem}.development-card p{color:#666;margin-bottom:1.5rem;line-height:1.6}.clear-data-details{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem;margin:1.5rem 0}.clear-data-details h4{margin:0 0 .5rem;font-size:1rem;color:#495057}.clear-data-details ul{margin:.5rem 0 1rem 1rem;padding:0}.clear-data-details li{margin-bottom:.25rem;color:#666}.clear-data-details h4:first-of-type{color:#dc3545}.clear-data-details h4:last-of-type{color:#28a745;margin-top:1rem}.admin-migration{padding:2rem;max-width:1200px;margin:0 auto}.admin-migration h2{margin:0 0 .5rem;color:#2c3e50;font-size:2rem}.migration-intro{color:#666;margin-bottom:2rem;font-size:1.1rem}.migration-section{display:grid;gap:2rem}.migration-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.migration-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.migration-card h3{margin:0 0 1rem;color:#2c3e50;font-size:1.4rem}.migration-card p{color:#666;margin-bottom:1.5rem;line-height:1.6}.migration-card ul{margin:1rem 0;padding-left:1.5rem;color:#666}.migration-card ul li{margin-bottom:.5rem}.migration-card.highlight{border:2px solid #667eea;background:linear-gradient(135deg,#f8f9ff,#fff)}.migration-note{background:#fff3cd;border-left:4px solid #ffc107;padding:1rem;margin:1rem 0;border-radius:4px;color:#856404}.upload-results{margin-top:2rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.upload-results h4{margin:0 0 1rem;color:#2c3e50}.results-summary{display:flex;gap:1.5rem;margin-bottom:1rem;font-weight:600}.results-summary .success{color:#28a745}.results-summary .failed{color:#dc3545}.upload-results details{margin-top:1rem;padding:1rem;background:#fff;border-radius:6px;border:1px solid #dee2e6}.upload-results summary{cursor:pointer;font-weight:600;color:#495057;padding:.5rem;-webkit-user-select:none;user-select:none}.upload-results summary:hover{background:#f8f9fa;border-radius:4px}.upload-results summary.error{color:#dc3545}.upload-results ul{margin:1rem 0 0 1rem;padding:0;list-style-type:disc}.upload-results li{margin-bottom:.5rem;color:#495057;line-height:1.5}.migration-card .form-group{margin-bottom:1.5rem}.migration-card .form-group label{display:block;margin-bottom:.5rem;color:#495057;font-weight:500}.migration-card .btn.large{padding:1rem 2rem;font-size:1.1rem;width:100%}
