body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--secondary-50:#ecfdf5;--secondary-100:#d1fae5;--secondary-200:#a7f3d0;--secondary-300:#6ee7b7;--secondary-400:#34d399;--secondary-500:#10b981;--secondary-600:#059669;--secondary-700:#047857;--secondary-800:#065f46;--secondary-900:#064e3b;--accent-orange:#f97316;--accent-purple:#8b5cf6;--accent-pink:#ec4899;--accent-amber:#f59e0b;--gray-50:#fafaf9;--gray-100:#f5f5f4;--gray-200:#e7e5e4;--gray-300:#d6d3d1;--gray-400:#a8a29e;--gray-500:#78716c;--gray-600:#57534e;--gray-700:#44403c;--gray-800:#292524;--gray-900:#1c1917;--glass-bg:#ffffff1a;--glass-border:#fff3;--glass-shadow:#0000001a;--gradient-primary:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);--gradient-secondary:linear-gradient(135deg,var(--secondary-500) 0%,var(--secondary-700) 100%);--gradient-accent:linear-gradient(135deg,var(--accent-orange) 0%,var(--accent-pink) 100%);--gradient-glass:linear-gradient(135deg,#ffffff1a,#ffffff0d);--gradient-dark:linear-gradient(135deg,var(--gray-800) 0%,var(--gray-900) 100%);--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-glow:0 0 20px #3b82f64d}.ceo-executive-portal{background:#fff;color:#1c1917;color:var(--gray-900);display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;position:relative;width:100%}.ceo-executive-portal:before{display:none}.ceo-executive-portal>*{position:relative;z-index:1}.ceo-loading-container{background:#f8fafc;min-height:100vh}.ceo-loading-container,.loading-spinner{align-items:center;display:flex;justify-content:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-left-color:#3b82f6;border-radius:50%;height:50px;width:50px}.ceo-error-container{align-items:center;background:linear-gradient(135deg,#2563eb,#1e40af);background:var(--gradient-primary);display:flex;justify-content:center;min-height:100vh}.error-card{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:2rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-width:500px;padding:3rem;text-align:center}.error-icon{color:#ef4444;filter:drop-shadow(0 4px 8px rgba(239,68,68,.2));height:4rem;margin-bottom:1.5rem;width:4rem}.retry-btn{align-items:center;background:linear-gradient(135deg,#2563eb,#1e40af);background:var(--gradient-primary);border:none;border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;cursor:pointer;display:flex;font-weight:600;gap:.75rem;margin-top:2rem;padding:1rem 2rem;transition:all .3s ease}.retry-btn:hover{box-shadow:0 0 20px #3b82f64d;box-shadow:var(--shadow-glow);transform:translateY(-3px)}.portal-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:0 0 24px 24px;box-shadow:0 8px 32px #0000001a;justify-content:space-between;margin:0 20px 20px;padding:1.5rem 2rem;position:sticky;top:0;z-index:100}.header-left,.portal-header{align-items:center;display:flex}.header-left{gap:1rem}.title-icon{color:#2563eb;color:var(--primary-600);filter:drop-shadow(0 2px 4px rgba(59,130,246,.3));height:2.5rem;width:2.5rem}.header-title h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#2563eb,#1e40af);background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.header-title p{color:#57534e;color:var(--gray-600);font-weight:500}.header-controls{align-items:center;display:flex;gap:1.5rem}.date-controls{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffe6;border:1px solid #fff6;border-radius:20px;box-shadow:0 4px 20px #00000014;display:flex;gap:.75rem;padding:1rem 1.25rem;transition:all .3s ease}.date-controls:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.date-select{background:#0000;border:none;border-radius:.5rem;color:#44403c;color:var(--gray-700);cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem;transition:all .2s ease}.date-select:hover{background:#3b82f61a;color:#1d4ed8;color:var(--primary-700)}.date-select:focus{background:#fff;box-shadow:0 0 0 3px #3b82f633;outline:none}.refresh-btn{background:linear-gradient(135deg,#10b981,#047857);background:var(--gradient-secondary);border-radius:20px;box-shadow:0 4px 20px #10b98140;font-weight:700;gap:.75rem;padding:1rem 1.75rem;transition:all .3s ease}.refresh-btn:hover:not(:disabled){box-shadow:0 8px 25px #10b9814d;transform:translateY(-2px)}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.user-profile{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #ffffff4d;border-radius:1rem;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);gap:1rem;padding:.5rem 1rem}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#f97316,#ec4899);background:var(--gradient-accent);border-radius:50%;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;font-size:1.125rem;font-weight:700;height:3rem;justify-content:center;width:3rem}.user-info{display:flex;flex-direction:column}.user-name{color:#292524;color:var(--gray-800);font-size:.875rem;font-weight:700}.user-role{color:#57534e;color:var(--gray-600);font-size:.75rem;font-weight:500}.portal-content{max-width:100%;padding:2rem}.controls-bar{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffe6;border:1px solid #ffffff4d;border-radius:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);flex-wrap:wrap;gap:1.5rem;padding:1.5rem}.controls-bar,.search-box{align-items:center;display:flex}.search-box{background:#3b82f60d;border:1px solid #3b82f61a;border-radius:1rem;flex:1 1;min-width:280px;padding:.75rem 1rem;transition:all .3s ease}.search-box:focus-within{background:#fff;border-color:#93c5fd;border-color:var(--primary-300);box-shadow:0 0 0 3px #3b82f61a;transform:translateY(-1px)}.search-box input{background:#0000;border:none;color:#292524;color:var(--gray-800);font-size:.875rem;font-weight:500;outline:none;padding:.25rem;width:100%}.search-box input::placeholder{color:#78716c;color:var(--gray-500)}.search-box svg{color:#3b82f6;color:var(--primary-500);margin-right:.75rem}.filter-controls{display:flex;flex-wrap:wrap;gap:1rem}.filter-group{align-items:center;background:#10b9810d;border:1px solid #10b9811a;border-radius:1rem;display:flex;gap:.75rem;padding:.5rem 1rem}.filter-label{font-weight:600;white-space:nowrap}.filter-label,.filter-select{color:#44403c;color:var(--gray-700);font-size:.875rem}.filter-select{background:#0000;border:none;border-radius:.5rem;cursor:pointer;font-weight:500;padding:.5rem;transition:all .2s ease}.filter-select:hover{background:#10b9811a;color:#047857;color:var(--secondary-700)}.filter-select:focus{background:#fff;box-shadow:0 0 0 2px #10b9814d;outline:none}.export-btn{background:linear-gradient(135deg,#f97316,#ec4899);background:var(--gradient-accent);border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);gap:.75rem;padding:.875rem 1.5rem;transition:all .3s ease;white-space:nowrap}.export-btn:hover{box-shadow:0 8px 25px #f973164d;transform:translateY(-2px)}.table-section{margin-bottom:2rem;overflow-x:auto;width:100%}.section-header{margin-bottom:2rem;text-align:center}.section-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#292524,#1c1917);background:var(--gradient-dark);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800;margin:0 0 .5rem}.section-header p{color:#57534e;color:var(--gray-600);font-size:1rem;font-weight:500;margin:0}.simple-table-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:1.5rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);overflow-x:auto}.simple-payroll-table{border-collapse:initial;border-spacing:0;min-width:1800px;width:100%}.simple-payroll-table th{background:linear-gradient(135deg,#292524,#1c1917);background:var(--gradient-dark);border-bottom:3px solid #3b82f6;border-bottom:3px solid var(--primary-500);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;font-size:.875rem;font-weight:700;letter-spacing:.025em;padding:1.25rem 1rem;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:10}.simple-payroll-table th:first-child{border-top-left-radius:1.5rem}.simple-payroll-table th:last-child{border-top-right-radius:1.5rem}.simple-payroll-table tr.simple-row{border-bottom:1px solid #e2e8f080;transition:all .3s ease}.simple-payroll-table tr.simple-row:hover{background:linear-gradient(135deg,#3b82f60d,#10b9810d);box-shadow:0 4px 12px #0000000d;transform:translateY(-1px)}.simple-payroll-table tr.simple-row:nth-child(2n){background:#f8fafcb3}.simple-payroll-table tr.simple-row:nth-child(2n):hover{background:linear-gradient(135deg,#3b82f614,#10b98114)}.simple-payroll-table td{border-bottom:1px solid #e2e8f04d;font-size:.875rem;padding:1rem;vertical-align:top}.col-employee{background:linear-gradient(135deg,#3b82f605,#3b82f60d);max-width:180px;min-width:180px;width:180px}.col-service{background:linear-gradient(135deg,#10b98105,#10b9810d)}.col-salary,.col-service{max-width:150px;min-width:150px;width:150px}.col-salary{background:linear-gradient(135deg,#8b5cf605,#8b5cf60d)}.col-pay1,.col-pay15,.col-pay25{max-width:80px;min-width:80px;text-align:center;width:80px}.col-benefits,.col-comp{background:linear-gradient(135deg,#f59e0b05,#f59e0b0d);max-width:120px;min-width:120px;width:120px}.col-attendance,.col-holiday{background:linear-gradient(135deg,#ec489905,#ec48990d);max-width:120px;min-width:120px;width:120px}.col-debug,.col-hse,.col-phase{max-width:100px;min-width:100px;width:100px}.col-fees,.col-virement{max-width:120px;min-width:120px;width:120px}.col-total{background:linear-gradient(135deg,#f9731605,#f973160d);max-width:100px;min-width:100px;text-align:center;width:100px}.col-actions{max-width:60px;min-width:60px;text-align:center;width:60px}.simple-employee{display:flex;flex-direction:column;gap:.375rem}.simple-employee .emp-name{color:#1c1917;color:var(--gray-900);font-size:.875rem;font-weight:700}.simple-employee .emp-id{background:#3b82f61a;border-radius:.5rem;color:#2563eb;color:var(--primary-600);display:inline-block;font-size:.75rem;font-weight:600;padding:.125rem .5rem;width:fit-content}.simple-employee .emp-position{color:#57534e;color:var(--gray-600);font-size:.75rem;font-weight:500}.simple-service{display:flex;flex-direction:column;font-size:.875rem;gap:.375rem}.simple-service .location{background:#10b9811a;border-radius:.5rem;color:#059669;color:var(--secondary-600);display:inline-block;font-size:.75rem;font-weight:600;padding:.125rem .5rem;width:fit-content}.simple-salary{font-size:.75rem;font-weight:600;gap:.375rem}.simple-pay{border-radius:.75rem;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);font-size:.875rem;font-weight:800;padding:.75rem .5rem;text-align:center;transition:all .3s ease}.simple-pay:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-2px)}.simple-pay.pay1{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #bfdbfe;border:1px solid var(--primary-200);color:#1e40af;color:var(--primary-800)}.simple-pay.pay15{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #a7f3d0;border:1px solid var(--secondary-200);color:#065f46;color:var(--secondary-800)}.simple-pay.pay25{background:linear-gradient(135deg,#fed7aa,#fdba74);border:1px solid #fed7aa;color:#c2410c}.simple-phase{display:flex;flex-direction:column;font-size:.75rem;font-weight:600;gap:.5rem}.phase-indicator{align-items:center;border-radius:.5rem;display:flex;font-size:.75rem;font-weight:700;gap:.375rem;letter-spacing:.025em;padding:.375rem .5rem;text-transform:uppercase;transition:all .3s ease}.phase-indicator:hover{box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.phase-completed{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #6ee7b7;border:1px solid var(--secondary-300);color:#065f46;color:var(--secondary-800)}.phase-pending{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fbbf24;color:#92400e}.phase-error{background:linear-gradient(135deg,#fecaca,#fca5a5);border:1px solid #f87171;color:#991b1b}.phase-processing{animation:pulse 2s ease-in-out infinite;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #93c5fd;border:1px solid var(--primary-300);color:#1e40af;color:var(--primary-800)}.phase-unknown{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border:1px solid #d6d3d1;border:1px solid var(--gray-300);color:#44403c;color:var(--gray-700)}.lock-status{align-items:center;border-radius:.375rem;display:flex;font-size:.625rem;font-weight:600;gap:.25rem;padding:.25rem .5rem;text-transform:uppercase}.lock-status.locked{background:#ef44441a;border:1px solid #ef444433}.lock-status.unlocked{background:#22c55e1a;border:1px solid #22c55e33}.simple-debug{display:flex;flex-direction:column;font-size:.7rem;font-weight:500;gap:.375rem}.debug-item{align-items:center;background:#8b5cf60d;border:1px solid #8b5cf61a;border-radius:.375rem;display:flex;gap:.25rem;padding:.25rem .5rem}.debug-label{color:#57534e;color:var(--gray-600);font-weight:600;min-width:35px}.debug-value{color:var(--purple-700);font-family:Monaco,Menlo,monospace;font-weight:700}.debug-system-primary{background:#3b82f61a;border-color:#3b82f633}.debug-system-split{background:#f59e0b1a;border-color:#f59e0b33}.simple-attendance,.simple-benefits,.simple-comp,.simple-debug,.simple-fees,.simple-holiday,.simple-hse,.simple-phase,.simple-virement{display:flex;flex-direction:column;font-size:.75rem;font-weight:600;gap:.375rem}.simple-total{align-items:center;display:flex;flex-direction:column;gap:.5rem}.simple-total .total-main{background:linear-gradient(135deg,#f97316,#ec4899);background:var(--gradient-accent);border:none;border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;font-size:1rem;font-weight:800;padding:.75rem 1rem;transition:all .3s ease}.simple-total .total-main:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.simple-action{align-items:center;background:linear-gradient(135deg,#2563eb,#1e40af);background:var(--gradient-primary);border:none;border-radius:.75rem;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:flex;justify-content:center;padding:.75rem;transition:all .3s ease}.simple-action:hover{box-shadow:0 0 20px #3b82f64d;box-shadow:var(--shadow-glow);transform:translateY(-2px)}.no-data{padding:4rem 2rem}.no-data-message{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border:1px solid #ffffff4d;border-radius:2rem;color:#78716c;color:var(--gray-500);display:flex;flex-direction:column;gap:1.5rem;padding:3rem}.results-summary{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffe6;border:1px solid #ffffff4d;border-radius:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);margin-top:2rem;padding:1.5rem}.summary-text{color:#44403c;color:var(--gray-700);font-size:1rem;font-weight:600;margin:0;text-align:center}@media (max-width:768px){.portal-header{align-items:stretch;flex-direction:column;gap:1.5rem;padding:1.5rem}.header-controls{flex-direction:column;gap:1rem}.portal-content{padding:1rem}.controls-bar{align-items:stretch;flex-direction:column;gap:1rem}.filter-controls{flex-direction:column;width:100%}.filter-group{justify-content:space-between;width:100%}.export-btn{justify-content:center;width:100%}.simple-table-container{border-radius:1rem}.simple-payroll-table th:first-child{border-top-left-radius:1rem}.simple-payroll-table th:last-child{border-top-right-radius:1rem}}.simple-table-container::-webkit-scrollbar{height:8px}.simple-table-container::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.simple-table-container::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#2563eb,#1e40af);background:var(--gradient-primary);border-radius:4px}.simple-table-container::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#10b981,#047857);background:var(--gradient-secondary)}.simple-benefits{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.benefit-lunch{color:#059669;font-weight:800}.benefit-transport{color:#dc2626;font-weight:800}.benefit-panier{color:#7c3aed;font-weight:800}.simple-comp{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.comp-position{color:#dc2626;font-weight:800}.comp-fixed{color:#059669;font-weight:800}.comp-efficiency{color:#7c3aed;font-weight:800}.simple-holiday{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.holiday-nhol{color:#ea580c;font-weight:800}.holiday-nchols{color:#0891b2;font-weight:800}.holiday-comps{color:#be185d;font-weight:800}.simple-attendance{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.attendance-pcp{color:#dc2626;font-weight:800}.attendance-absat{color:#059669;font-weight:800}.attendance-condition{color:#7c3aed;font-weight:800}.simple-hse{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.hse-compensation{color:#059669;font-weight:800}.hse-error{color:#dc2626;font-weight:800}.simple-fees{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.fees-hourly{color:#0891b2;font-weight:800}.fees-coefficient{color:#ea580c;font-weight:800}.fees-ccoef{color:#7c3aed;font-weight:800}.simple-virement{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.virement-amount{color:#059669;font-weight:800}.virement-loan{color:#dc2626;font-weight:800}.simple-salary{display:flex;flex-direction:column;font-size:14px;font-weight:700;gap:6px}.salary-base{color:#0891b2;font-weight:800}.salary-base-net{color:#059669;font-weight:800}.salary-current{color:#dc2626;font-weight:800}.salary-final{color:#7c3aed;font-weight:800}.virement-comparison-page{background:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100vh;padding:0}.loading-container{align-items:center;background:#f8f9fa;display:flex;height:100vh;justify-content:center}.loading-card{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 10px 30px #0000001a;padding:48px;text-align:center}.loading-title{color:#495057;font-size:24px;font-weight:700;margin-bottom:12px}.loading-subtitle{color:#6c757d;font-size:16px}.page-header{background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 1px 3px #00000014;overflow:hidden;padding:40px 48px;position:relative}.header-content h1{color:#1a1a1a;font-size:36px;font-weight:800;letter-spacing:-.5px;margin:0 0 12px;text-align:center}.header-content p{color:#6b7280;font-size:18px;font-weight:500;line-height:1.5;margin:0;text-align:center}.page-content{margin:0 auto;max-width:1400px;padding:32px 40px}.comparison-controls{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:32px;padding:32px}.month-selectors{gap:48px;justify-content:center;margin-bottom:32px}.month-group,.month-selectors{align-items:center;display:flex}.month-group{flex-direction:column;gap:12px}.month-group label{color:#495057;font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.selector-row{align-items:center;display:flex;gap:12px}.month-select,.year-select{background:#fff;border:2px solid #dee2e6;border-radius:12px;color:#495057;cursor:pointer;font-size:16px;font-weight:600;min-width:120px;padding:16px 24px;text-align:center;transition:all .3s ease}.month-select:hover,.year-select:hover{border-color:#6c757d;box-shadow:0 8px 25px #0000001a;transform:translateY(-2px)}.month-select:focus,.year-select:focus{border-color:#495057;box-shadow:0 0 0 3px #4950571a;outline:none}.vs-divider{align-items:center;background:#f8f9fa;border:2px solid #dee2e6;border-radius:50%;display:flex;height:60px;justify-content:center;width:60px}.vs-icon{color:#6c757d;height:24px;width:24px}.control-actions{display:flex;gap:16px;justify-content:center}.btn-primary,.btn-secondary{border-radius:12px;font-size:16px;font-weight:700;gap:8px;letter-spacing:1px;padding:18px 36px;text-transform:uppercase;transition:all .3s ease}.btn-primary{background:#495057;box-shadow:0 4px 15px #49505733}.btn-primary:hover:not(:disabled){background:#343a40;box-shadow:0 8px 25px #4950574d;transform:translateY(-2px)}.btn-primary:disabled{background:#adb5bd;box-shadow:none}.btn-secondary{background:#28a745;box-shadow:0 4px 15px #28a74533}.btn-secondary:hover{background:#218838;box-shadow:0 8px 25px #28a7454d;transform:translateY(-2px)}.btn-icon{height:20px;width:20px}.error-message{border-radius:12px;gap:12px;margin-bottom:24px;padding:16px 24px}.error-icon{color:#dc3545;height:20px;width:20px}.loading-state{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;flex-direction:column;gap:16px;padding:48px}.loading-icon{color:#6c757d;height:48px;width:48px}.placeholder-state{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;gap:16px;padding:48px;text-align:center}.placeholder-icon{color:#adb5bd;height:64px;width:64px}.placeholder-state h3{color:#495057;font-size:24px;font-weight:700;margin:0}.placeholder-state p{color:#6c757d;font-size:16px;margin:0}.summary-grid{grid-gap:24px;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:32px}.summary-card{border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:32px;transition:all .3s ease}.summary-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-4px)}.summary-card.highlight{background:#f8f9fa;border:2px solid #495057}.summary-card .card-header{align-items:center;display:flex;gap:12px;justify-content:center;margin-bottom:16px}.summary-card .card-icon{color:#6c757d;height:32px;width:32px}.summary-card .card-icon.positive{color:#28a745}.summary-card .card-icon.negative{color:#dc3545}.summary-card .card-label{color:#495057;font-size:16px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.summary-card .card-value{color:#212529;font-size:28px;font-weight:800;margin-bottom:8px}.summary-card .card-value.positive{color:#28a745}.summary-card .card-value.negative{color:#dc3545}.summary-card .card-meta{color:#6c757d;font-size:16px;font-weight:500}.summary-card .card-meta.positive{color:#28a745}.summary-card .card-meta.negative{color:#dc3545}.analysis-tabs{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 2px 10px #0000000d;display:flex;gap:8px;margin-bottom:32px;padding:8px}.analysis-tab{background:#0000;border:none;border-radius:12px;color:#6c757d;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:16px 24px;text-align:center;transition:all .3s ease}.analysis-tab.active{background:#22c55e!important;box-shadow:0 4px 15px #22c55e4d!important;color:#fff!important}.analysis-tab:hover:not(.active){background:#f8f9fa;color:#495057}.analysis-tab.active:hover{background:#16a34a!important;box-shadow:0 6px 20px #22c55e66!important;color:#fff!important}.data-cards{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:32px}.data-card{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;overflow:hidden;padding:32px;position:relative;transition:all .3s ease}.data-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-4px)}.data-card:before{background:#495057;content:"";height:4px;left:0;position:absolute;right:0;top:0}.card-header{gap:16px;margin-bottom:24px}.card-header,.card-icon{align-items:center;display:flex}.card-icon{border-radius:12px;color:#fff;font-size:24px;height:48px;justify-content:center;width:48px}.card-icon.missing{background:#dc3545}.card-icon.new{background:#28a745}.card-icon.common{background:#007bff}.card-icon.all{background:#6f42c1}.card-title{color:#495057;font-size:18px;font-weight:700;margin:0}.card-count{color:#495057;font-size:32px;font-weight:800;margin:8px 0}.card-amount{color:#6c757d;font-size:24px;font-weight:700;margin:0}.data-table-container{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;overflow:hidden;padding:32px}.table-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.table-title{color:#495057;font-size:24px;font-weight:700;margin:0}.export-button{align-items:center;background:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:all .3s ease}.export-button:hover{background:#218838;box-shadow:0 4px 15px #28a7454d;transform:translateY(-2px)}.data-table{border-collapse:collapse;border-radius:12px;overflow:hidden;width:100%}.data-table thead{background:#f8f9fa}.data-table th{border-bottom:2px solid #dee2e6;color:#495057;font-size:14px;font-weight:700;letter-spacing:.5px;padding:20px 16px;text-align:left;text-transform:uppercase}.data-table tbody tr{border-bottom:1px solid #f1f3f4;transition:all .2s ease}.data-table tbody tr:hover{background:#f8f9fa;transform:scale(1.01)}.data-table td{border-bottom:1px solid #f1f3f4;color:#495057;font-size:14px;padding:20px 16px}.data-table td:first-child{color:#212529;font-weight:600}.employee-cell{display:flex;flex-direction:column;gap:4px}.employee-name{color:#212529}.employee-id{color:#6c757d;font-size:12px}.status-badge{display:inline-block;letter-spacing:.5px;margin-top:4px}.status-badge.missing{background:#f8d7da;color:#721c24}.status-badge.new{background:#d4edda;color:#155724}.status-badge.common{background:#dcfce7;color:#166534}.amount-column{font-weight:700;text-align:right}.positive-change{color:#28a745}.negative-change{color:#dc3545}.no-change{color:#6c757d}.table-footer{border-top:1px solid #e9ecef;margin-top:24px;padding-top:16px}.footer-summary{color:#495057;font-size:16px;text-align:center}.footer-info{color:#6c757d;font-size:14px;font-style:italic;text-align:center}@media (max-width:768px){.page-content{padding:20px}.month-selectors{flex-direction:column;gap:24px}.month-select,.year-select{min-width:200px}.data-cards,.summary-grid{grid-template-columns:1fr}.data-table-container{overflow-x:auto;padding:20px}.data-table{min-width:600px}.control-actions{align-items:center;flex-direction:column}.btn-primary,.btn-secondary{max-width:300px;width:100%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.data-card,.summary-card{animation:fadeInUp .5s ease-out}.data-card:first-child{animation-delay:.1s}.data-card:nth-child(2){animation-delay:.2s}.data-card:nth-child(3){animation-delay:.3s}.data-card:nth-child(4){animation-delay:.4s}.summary-card:first-child{animation-delay:.1s}.summary-card:nth-child(2){animation-delay:.2s}.summary-card:nth-child(3){animation-delay:.3s}.data-table-container::-webkit-scrollbar{height:8px;width:8px}.data-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.data-table-container::-webkit-scrollbar-thumb{background:#adb5bd;border-radius:4px}.data-table-container::-webkit-scrollbar-thumb:hover{background:#6c757d}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased}.onps-dynamic-seasons,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,sans-serif}.onps-dynamic-seasons{background:#f8fafc;color:#1e293b;min-height:100vh;padding:24px}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:32px;padding:32px}.header h2{color:#111827;font-size:28px;font-weight:700;letter-spacing:-.025em;margin:0}.season-info-header{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;justify-content:space-between;margin-top:16px;padding:20px 24px}.season-details h3{align-items:center;color:#111827;display:flex;font-size:20px;font-weight:700;gap:8px;letter-spacing:-.025em}.season-name:before{content:""}.active-badge{background:#22c55e;border-radius:20px;font-weight:500;padding:4px 12px}.season-dates{align-items:center;color:#64748b;display:flex;font-size:14px;gap:12px;margin-top:8px}.duration{background:#e2e8f0;border-radius:4px;color:#475569;font-size:12px;padding:4px 10px}.current-phase-indicator{align-items:center;display:flex;gap:8px}.phase-badge{border-radius:4px;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 14px;text-transform:uppercase}.phase-badge.initial{background:#3b82f6;color:#fff}.phase-badge.mid{background:#f59e0b;color:#fff}.phase-badge.final{background:#22c55e;color:#fff}.phase-badge.custom{background:#8b5cf6;color:#fff}.phase-days{color:#64748b;font-size:14px}.tabs{background:#fff;border-radius:8px;box-shadow:0 2px 4px #00000014;display:flex;margin-bottom:24px;padding:4px}.tab{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:12px 20px;transition:all .2s}.tab:hover{background:#f1f5f9;color:#475569}.tab.active{background:#5856eb;color:#fff}.group-assignments-enhanced,.phase-configuration{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:24px;padding:32px}.group-assignments-enhanced h3{align-items:center;color:#1e293b;display:flex;font-size:28px;font-weight:700;gap:12px;letter-spacing:-.025em;margin:0 0 24px}.group-assignments-enhanced h3:before{content:"👥";font-size:24px}.performance-header{align-items:center;border-bottom:2px solid #f1f5f9;margin-bottom:24px;padding-bottom:16px}.performance-header h3{color:#111827;font-size:24px;font-weight:700;letter-spacing:-.025em;margin:0}.phase-configuration-header{align-items:center;border-bottom:2px solid #f1f5f9;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.phase-configuration-header h3{color:#2c3e50;font-size:20px;font-weight:600}.season-config-section{background:#f8f9fc;border:1px solid #e1e4e8;border-radius:8px;margin-bottom:24px;padding:20px}.season-config-section h4{color:#2c3e50;font-size:16px;font-weight:600;margin-bottom:16px}.season-config-section h4:before{content:"📋";margin-right:8px}.season-info-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:24px;transition:all .3s ease}.season-info-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.season-info-header h4{color:#2c3e50;font-size:15px;font-weight:600;margin-bottom:12px}.readonly-badge{background:#94a3b8;border-radius:4px;color:#fff;font-size:11px;font-weight:500;padding:3px 8px;text-transform:uppercase}.season-info-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-top:20px}@media (max-width:768px){.season-info-grid{gap:16px;grid-template-columns:1fr}}.info-item label{color:#64748b;display:block;font-size:12px;font-weight:600;margin-bottom:6px;text-transform:uppercase}.readonly-value{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;color:#475569;display:flex;font-size:14px;min-height:40px;padding:10px}.season-main-info{margin-top:20px}.season-title-section{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:16px}.season-title{color:#1e293b;flex:1 1;font-size:24px;font-weight:700;letter-spacing:-.025em;line-height:1.3;margin:0}.season-badges{align-items:center;display:flex;flex-shrink:0;gap:12px}.active-badge{align-items:center;background:#10b981;border:1px solid #fff3;border-radius:24px;box-shadow:0 2px 8px #10b9814d;color:#fff;display:inline-flex;font-size:12px;font-weight:700;gap:8px;letter-spacing:.8px;padding:8px 16px;text-transform:uppercase}.active-dot{animation:pulse 2s infinite;background:#fff;border-radius:50%;height:8px;width:8px}.duration-badge{background:#6366f1;border:1px solid #fff3;border-radius:20px;box-shadow:0 2px 8px #6366f14d;letter-spacing:.5px;padding:8px 16px;text-transform:uppercase}.season-dates-section{margin-top:8px}.date-range{color:#64748b;font-size:16px;font-weight:500;gap:16px}.end-date,.start-date{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:#1e293b;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:15px;font-weight:600;padding:10px 16px}.date-separator{font-size:18px;font-weight:700}.no-dates{color:#94a3b8;font-size:14px;font-style:italic}@media (max-width:768px){.season-title-section{align-items:flex-start;flex-direction:column;gap:12px}.season-badges{align-self:flex-end}.season-title{font-size:20px}}.season-note{align-items:center;background:#eff6ff;border:1px solid #3b82f6;border-radius:4px;display:flex;gap:8px;margin-top:12px;padding:12px}.note-icon{font-size:16px}.note-text{color:#1e40af;font-size:13px;line-height:1.5}.phases-config-header{align-items:center;background:#f8f9fc;border:1px solid #e1e4e8;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:20px;padding:16px}.phases-config-header h4:before{content:"⚙️";margin-right:8px}.phase-header-content{align-items:center;display:flex;gap:12px}.phase-header-content h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0}.phase-count-badge{background:#5856eb;border-radius:4px;color:#fff;font-size:12px;font-weight:600;padding:4px 10px}.phase-action-buttons{display:flex;gap:12px}.phase-action-buttons-grid{align-items:flex-start;display:flex;gap:12px}.phase-editing-actions{align-items:flex-start;display:flex;gap:10px}.phases-list{display:flex;flex-direction:column;gap:16px}.phase-config-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000a;margin-bottom:24px;padding:28px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.phase-config-card:hover{border-color:#3b82f6;box-shadow:0 8px 25px #3b82f61f;transform:translateY(-2px)}.phase-config-card.editing{background:linear-gradient(135deg,#f8faff,#f0f9ff);border-color:#3b82f6;box-shadow:0 8px 25px #3b82f626;transform:translateY(-2px)}.phase-config-card.has-errors{background:linear-gradient(135deg,#fef2f2,#fef7f7);border-color:#ef4444;box-shadow:0 8px 25px #ef44441f}.phase-config-header{align-items:flex-start;border-bottom:1px solid #f1f5f9;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.phase-name-input{background:#fff;border:2px solid #e2e8f0;border-radius:12px;color:#1e293b;flex:1 1;font-size:18px;font-weight:700;letter-spacing:-.025em;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.phase-name-input:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a;outline:none;transform:translateY(-1px)}.phase-name-input:disabled{background:#f8fafc;border-color:#e2e8f0;color:#64748b;cursor:not-allowed}.phase-actions{display:flex;gap:16px}.phase-config-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.config-group{display:flex;flex-direction:column}.config-group label{color:#374151;font-size:14px;font-weight:600;letter-spacing:-.025em;margin-bottom:8px}.config-group input,.config-group select,.config-group textarea{background:#fff;border:2px solid #e2e8f0;border-radius:10px;color:#1e293b;font-size:14px;font-weight:500;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.config-group input:focus,.config-group select:focus,.config-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a;outline:none;transform:translateY(-1px)}.config-group input:disabled,.config-group select:disabled,.config-group textarea:disabled{background:#f8fafc;border-color:#e2e8f0;color:#64748b;cursor:not-allowed}.config-group.checkbox-inline{align-items:center;flex-direction:row;gap:8px}.config-group.checkbox-inline input[type=checkbox]{cursor:pointer;height:16px;width:16px}.config-group.checkbox-inline label{cursor:pointer;margin:0}.config-group.checkbox-group{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-direction:column;gap:12px;padding:16px}.checkbox-label{align-items:center;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;margin:0!important;padding:8px 12px;transition:all .2s ease}.checkbox-label:hover{background:#fff;box-shadow:0 2px 4px #0000000d}.checkbox-label input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;height:18px;margin:0;width:18px}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.config-group.full-width{grid-column:1/-1}.error-message{color:#ef4444;font-size:12px;margin-top:4px}.validation-error{background:#fef2f2;border:1px solid #ef4444;border-radius:4px;color:#dc2626;font-size:13px;margin-top:12px;padding:12px}.phase-duration{align-items:center;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:12px;box-shadow:0 2px 8px #3b82f614;display:flex;justify-content:space-between;margin-top:20px;padding:16px 20px}.duration-label{color:#475569;font-size:14px;font-weight:600}.duration-value{background:#3b82f6;border-radius:8px;box-shadow:0 2px 4px #3b82f633;color:#fff;font-size:14px;font-weight:700;padding:8px 16px}.phase-status-indicator{align-items:center;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin-top:20px;padding:16px 20px;text-align:center}.phase-status-indicator.active{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:2px solid #22c55e;color:#15803d}.phase-status-indicator.active:before{content:"🟢";font-size:16px}.phase-status-indicator.upcoming{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:2px solid #3b82f6;color:#1e40af}.phase-status-indicator.upcoming:before{content:"🔵";font-size:16px}.phase-status-indicator.completed{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border:2px solid #d1d5db;color:#6b7280}.phase-status-indicator.completed:before{content:"✅";font-size:16px}button{border:none;cursor:pointer;font-family:inherit;font-weight:500;transition:all .2s}button:disabled{cursor:not-allowed;opacity:.5}.add-phase-btn,.assign-btn,.btn-primary{align-items:center;background:#5856eb;border-radius:6px;color:#fff;display:inline-flex;font-size:14px;gap:8px;padding:10px 20px}.add-phase-btn:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:#4c49d8;box-shadow:0 4px 8px #5856eb40;transform:translateY(-1px)}.btn-secondary,.regenerate-phases-btn,.reload-config-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#475569;display:inline-flex;font-size:14px;gap:8px;padding:10px 20px}.btn-secondary:hover:not(:disabled),.reload-config-btn:hover:not(:disabled){background:#f8f9fc;border-color:#cbd5e1}.reload-config-btn:before{content:"↻";font-size:16px}.regenerate-phases-btn:before{content:"🔄"}.btn-action{align-items:center;border:none;border-radius:10px;box-shadow:0 2px 8px #00000014;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;letter-spacing:-.025em;min-width:90px;padding:12px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-edit{background:#fff;border:2px solid #e2e8f0;color:#64748b;font-weight:600}.btn-edit:hover{background:#3b82f6;border-color:#3b82f6;box-shadow:0 8px 20px #3b82f640;color:#fff;transform:translateY(-2px)}.btn-edit:before{content:"✏️"}.btn-save{background:#22c55e;border:2px solid #22c55e;color:#fff}.btn-save:hover:not(:disabled){background:#16a34a;border-color:#16a34a;box-shadow:0 4px 8px #22c55e4d;transform:translateY(-1px)}.btn-save:before{content:"💾"}.btn-remove{background:#ef4444;border:2px solid #ef4444;color:#fff;font-weight:600}.btn-remove:hover:not(:disabled){background:#dc2626;border-color:#dc2626;box-shadow:0 8px 20px #ef444440;transform:translateY(-2px)}.btn-remove:before{content:"🗑️"}.btn-confirm{background:#22c55e;border:2px solid #22c55e;border-radius:10px;box-shadow:0 2px 8px #22c55e33;color:#fff;font-size:14px;font-weight:600;padding:12px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-confirm:hover:not(:disabled){background:#16a34a;border-color:#16a34a;box-shadow:0 8px 20px #22c55e40;transform:translateY(-2px)}.btn-cancel,.cancel-btn{background:#fff;border:2px solid #e2e8f0;border-radius:10px;box-shadow:0 2px 8px #00000014;color:#64748b;font-size:14px;font-weight:600;padding:12px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-cancel:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 8px 20px #0000001f;transform:translateY(-2px)}.management-controls{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;justify-content:space-between;margin-bottom:32px;padding:24px}.search-section{align-items:center;display:flex;gap:12px}.search-input{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:500;padding:12px 16px;transition:all .2s ease;width:320px}.search-input:focus{background:#fefefe;border-color:#5856eb;box-shadow:0 0 0 4px #5856eb1a;outline:none}.group-filter{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:500;min-width:180px;padding:12px 16px;transition:all .2s ease}.group-filter:focus{background:#fefefe;border-color:#5856eb;box-shadow:0 0 0 4px #5856eb1a;outline:none}.summary-info{color:#64748b;font-size:14px}.employee-count{font-weight:600}.groups-overview-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:24px;padding:20px}.groups-overview-section h4{align-items:center;color:#1e293b;display:flex;font-size:22px;font-weight:700;gap:10px;letter-spacing:-.025em;margin-bottom:24px}.groups-overview-section h4:before{content:""}.groups-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.group-overview-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000000a;padding:16px;transition:all .3s ease}.group-overview-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000f;transform:translateY(-1px)}.group-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.group-info h5{color:#1e293b;font-size:18px;font-weight:700;letter-spacing:-.025em;margin:0 0 8px}.group-name{font-size:22px}.machine-type{border:1px solid #e2e8f0;color:#475569;display:inline-block;letter-spacing:.5px;margin-bottom:6px;padding:4px 10px;text-transform:uppercase}.status{border-radius:6px;display:inline-block;font-size:13px;font-weight:600;margin-top:4px;padding:4px 8px}.status.active{background:#f0fdf4;border:1px solid #bbf7d0;color:#059669}.status.active:before{content:""}.status.inactive{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.status.inactive:before{content:"🔴 "}.member-count{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;color:#374151;min-width:65px;padding:10px 14px;text-align:center}.member-count .count{color:#111827;display:block;font-size:24px;font-weight:800;line-height:1}.member-count .label{color:#6b7280;display:block;font-size:11px;font-weight:600;letter-spacing:.8px;margin-top:8px;text-transform:uppercase}.season-note{margin-top:4px}.season-note small{background:#e0f2fe;border-radius:8px;color:#3b82f6;font-size:10px;font-weight:500;padding:2px 6px}.group-preview{margin:12px 0;min-height:32px}.member-preview{display:flex;flex-wrap:wrap;gap:6px}.member-chip{background:#22c55e}.member-chip,.more-members{border-radius:4px;color:#fff;font-size:11px;font-weight:600;padding:4px 8px}.more-members{background:#94a3b8}.no-members{color:#94a3b8;font-style:italic}.btn-group-details,.no-members{align-items:center;display:flex;font-size:14px;justify-content:center}.btn-group-details{background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;font-weight:600;gap:6px;padding:10px 16px;transition:all .3s ease;width:100%}.btn-group-details:hover{background:#f1f5f9;border-color:#cbd5e1;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.btn-group-details:before{content:""}.employee-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:20px}.employee-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow:hidden;padding:16px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.employee-card:hover{border-color:#3b82f6;box-shadow:0 8px 25px #3b82f61f;transform:translateY(-2px)}.employee-header{margin-bottom:12px}.employee-name{font-size:18px;font-weight:700;letter-spacing:-.025em;margin-bottom:6px}.employee-id{color:#94a3b8;font-size:14px;font-weight:400}.group-status{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:12px}.current-assignment,.no-assignment,.previous-assignment{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.label{color:#475569;font-size:14px;font-weight:600;letter-spacing:-.025em;min-width:100px}.group-badge{align-items:center;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:inline-flex;font-size:14px;gap:6px;justify-content:center;min-width:80px;padding:8px 16px;transition:all .2s ease}.group-badge.current{background:#dcfce7;border:1px solid #22c55e;color:#166534}.group-badge.previous{background:#f3f4f6;border:1px solid #d1d5db;color:#6b7280}.group-badge.unassigned{background:#fef3c7;border:1px solid #f59e0b;color:#d97706}.employee-actions{border-top:1px solid #e5e7eb;margin-top:12px;padding-top:12px}.history-btn,.revert-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;box-shadow:0 2px 4px #0000000f;color:#475569;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:100px;padding:10px 18px;transition:all .3s cubic-bezier(.4,0,.2,1)}.revert-btn:hover:not(:disabled){background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;box-shadow:0 4px 8px #f59e0b33;color:#d97706;transform:translateY(-1px)}.history-btn:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#3b82f6;box-shadow:0 4px 8px #3b82f626;color:#3b82f6;transform:translateY(-1px)}.history-modal{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 20px 40px #00000026;max-height:80vh;max-width:600px;overflow:hidden;padding:0;width:90%}.modal-header{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0;padding:24px}.modal-header h4{color:#1e293b;font-size:20px;font-weight:700;letter-spacing:-.025em;margin:0}.close-modal-btn{background:none;border:none;border-radius:8px;color:#64748b;cursor:pointer;font-size:24px;padding:8px;transition:all .2s ease}.close-modal-btn:hover{background:#f1f5f9;color:#374151}.history-timeline{max-height:60vh;padding:24px}.timeline-item:not(:last-child):after{background:#e2e8f0;bottom:-24px;content:"";left:12px;position:absolute;top:32px;width:2px}.timeline-marker{border:3px solid #fff;height:24px;margin-right:16px;width:24px;z-index:1}.timeline-item.current .timeline-marker{box-shadow:0 0 0 3px #22c55e33}.timeline-content{background:#f8fafc;padding:16px}.group-badge-history{align-items:center;background:#dcfce7;border:1px solid #22c55e;border-radius:8px;color:#166534;display:flex;font-weight:600;gap:8px;padding:8px 16px}.machine-type{font-size:14px;opacity:.8}.current-indicator{border-radius:20px;font-size:12px}.period-info{flex-wrap:wrap;gap:12px;margin-bottom:12px}.date-range{align-items:center;color:#475569;display:flex;font-size:14px;gap:8px}.date-separator{color:#94a3b8;font-weight:600}.duration-badge{background:#3b82f6;border-radius:6px;color:#fff;font-size:12px;font-weight:600;padding:6px 12px}.phase-info,.reason{align-items:center;display:flex;font-size:14px;gap:8px;margin-bottom:8px}.phase-label,.reason-label{color:#374151;font-weight:600}.no-history,.phase-name,.reason-text{color:#64748b}.no-history{padding:40px 20px;text-align:center}.no-history p{font-size:16px;margin:0}.modal-actions{border-top:1px solid #e2e8f0;padding:24px;text-align:right}.close-btn{background:#3b82f6;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s ease}.close-btn:hover{background:#2563eb;transform:translateY(-1px)}.history-table,.performance-table{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin:24px 0;overflow-x:auto}.history-table table,.performance-table table{border-collapse:collapse;width:100%}.history-table th,.performance-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.025em;padding:16px 20px;text-align:left;text-transform:uppercase}.history-table td,.performance-table td{border-bottom:1px solid #f3f4f6;color:#4b5563;font-size:.875rem;padding:16px 20px;vertical-align:middle}.history-table tr:hover,.performance-table tr:hover{background:#f9fafb}.history-table tr:last-child td,.performance-table tr:last-child td{border-bottom:none}.employee-info strong{color:#111827;font-size:.9rem}.employee-info span{color:#6b7280;font-size:.8rem;font-weight:500}.groups-summary{display:flex;flex-wrap:wrap;gap:4px}.performance-score{background:#22c55e;border-radius:4px;color:#fff;font-weight:600;padding:4px 8px}.recalculate-btn{background:#f59e0b;border-radius:4px;font-size:12px;padding:6px 12px}.recalculate-btn:hover:not(:disabled){background:#d97706}.refresh-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;box-shadow:0 2px 8px #3b82f64d;font-size:14px;padding:12px 20px}.refresh-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666}.modal-overlay{background:#000000b3;inset:0;overflow-y:auto}@media (max-height:600px){.modal-overlay{align-items:flex-start;padding-top:40px}.group-details-modal{margin:20px 0;max-height:90vh}}@media (max-width:768px){.group-details-modal{margin:10px;max-width:95vw}.modal-content{padding:16px 20px}.members-list{max-height:250px}}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.group-details-modal{max-height:80vh}.members-list{max-height:300px}}.modal-overlay.transfer-modal-overlay,.transfer-modal-overlay{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#000000d9!important;z-index:9999!important}.group-details-modal{z-index:1100}.transfer-modal{position:relative;z-index:99999!important}.group-details-modal,.history-modal,.transfer-modal{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 25px 50px #00000040;display:flex;flex-direction:column;max-height:85vh;max-width:520px;overflow:hidden;width:100%}.group-details-modal{height:auto;max-height:85vh;max-width:600px;min-height:450px}.modal-header{padding:20px 24px}.group-modal-title h3,.modal-header h4{color:#1e293b;font-size:20px;font-weight:700;letter-spacing:-.025em;margin:0}.group-modal-subtitle{color:#6b7280;font-size:14px;font-weight:500;margin-top:4px}.modal-close-btn{align-items:center;background:#0000;border:none;color:#94a3b8;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;width:32px}.modal-close-btn:hover{background:#f1f5f9;color:#475569}.modal-content{max-height:calc(85vh - 100px);padding:20px 24px}.modal-actions,.modal-footer{background:#fff;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.close-btn,.confirm-btn{border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s ease}.confirm-btn{background:#22c55e;box-shadow:0 2px 8px #22c55e33;color:#fff}.confirm-btn:hover:not(:disabled){background:#16a34a;box-shadow:0 4px 12px #22c55e4d;transform:translateY(-1px)}.close-btn{background:#fff;border:2px solid #e5e7eb;color:#6b7280}.close-btn:hover{background:#f9fafb;border-color:#d1d5db;color:#374151}.modal-content input[type=text],.modal-content textarea{background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#374151;font-size:14px;font-weight:500;margin-top:8px;padding:12px 16px;transition:all .2s ease;width:100%}.modal-content input[type=text]:focus,.modal-content textarea:focus{background:#fefefe;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a;outline:none}.modal-content label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.modal-content p{color:#6b7280;font-size:15px;line-height:1.6}.modal-content .form-group,.modal-content p{margin-bottom:20px}.modal-content strong{color:#111827;font-weight:600}.history-timeline{margin-top:8px;max-height:450px;overflow-y:auto;padding-right:12px}.history-timeline::-webkit-scrollbar{width:6px}.history-timeline::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.history-timeline::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.history-timeline::-webkit-scrollbar-thumb:hover{background:#94a3b8}.timeline-item{display:flex;margin-bottom:24px}.timeline-item:not(:last-child):after{display:none}.timeline-marker{align-items:center;background:#e2e8f0;border:4px solid #fff;box-shadow:0 4px 12px #00000026;display:flex;flex-shrink:0;height:30px;justify-content:center;margin-right:20px;position:relative;width:30px;z-index:3}.timeline-marker:before{background:#94a3b8;border-radius:50%;content:"";height:8px;width:8px}.timeline-item.current .timeline-marker{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:#fff;box-shadow:0 4px 16px #22c55e66}.timeline-item.current .timeline-marker:before{background:#fff;height:10px;width:10px}.timeline-content{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 12px #00000014;flex:1 1;padding:20px;position:relative;transition:all .2s ease}.timeline-content:before{border-bottom:8px solid #0000;border-right:8px solid #e5e7eb;border-top:8px solid #0000;content:"";height:0;left:-8px;position:absolute;top:20px;width:0}.timeline-content:after{border-bottom:6px solid #0000;border-right:6px solid #fff;border-top:6px solid #0000;content:"";height:0;left:-6px;position:absolute;top:22px;width:0}.timeline-item.current .timeline-content{box-shadow:0 4px 16px #22c55e26}.timeline-item.current .timeline-content:before{border-right-color:#22c55e}.group-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.group-name{color:#111827;font-size:16px;font-weight:700;letter-spacing:-.025em}.group-name:empty:before{color:#9ca3af;content:"Unassigned Group";font-style:italic;font-weight:500}.machine-type{background:#f1f5f9;color:#6b7280;font-size:13px;font-weight:500}.current-indicator{background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:16px;box-shadow:0 2px 8px #22c55e4d;font-weight:700;letter-spacing:.5px;padding:4px 12px}.period-info{border-bottom:1px solid #f1f5f9;justify-content:space-between;margin-bottom:8px;padding:8px 0}.dates,.period-info{align-items:center;display:flex}.dates{color:#374151;font-size:14px;font-weight:600;gap:8px}.dates:before{content:"📅";font-size:12px}.duration{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1px solid #cbd5e1;border-radius:8px;color:#6b7280;font-size:13px;font-weight:600;padding:4px 12px}.phase-info{align-items:center;color:#6b7280;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:6px}.phase-info:before{content:"⚙️";font-size:12px}.phase-info:empty:after{color:#9ca3af;content:"No phase information";font-style:italic;font-weight:400}.reason{background:#f8fafc;border-left:3px solid #e2e8f0;border-radius:6px;color:#6b7280;font-size:13px;font-style:italic;margin-top:8px;padding:8px 12px}.reason:before{content:"💬";margin-right:6px}.group-stats{grid-gap:8px;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.stat-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:8px;text-align:center}.stat-label{color:#64748b;font-size:10px;font-weight:600;margin-bottom:2px}.stat-value{color:#2c3e50;display:block;font-size:18px;font-weight:700}.stat-value.active{color:#22c55e}.stat-value.inactive{color:#ef4444}.members-section{display:flex;flex:1 1;flex-direction:column;min-height:0}.members-section h4{color:#2c3e50;flex-shrink:0;font-size:18px;font-weight:600;margin:0 0 16px}.members-section h4:before{content:"👥 "}.members-list{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:200px;overflow-y:auto;padding-bottom:12px;padding-right:8px}.members-list::-webkit-scrollbar{width:6px}.members-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.members-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.members-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.member-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000a;flex-shrink:0;margin-bottom:8px;min-height:120px;padding:16px;transition:all .3s ease}.member-card:hover{border-color:#3b82f6;box-shadow:0 8px 25px #3b82f61f;transform:translateY(-2px)}.member-actions{border-top:2px solid #f1f5f9;display:flex;justify-content:center;margin-top:16px;padding-top:12px}.member-info,.member-name{margin-bottom:8px}.member-name{align-items:center;color:#1e293b;display:flex;flex-wrap:wrap;font-size:16px;font-weight:700;gap:8px}.member-employee-id{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;color:#64748b;font-size:12px;font-weight:500;padding:2px 8px}.member-details{align-items:center;display:flex;gap:8px}.member-duration{color:#64748b;font-size:12px}.transfer-toggle-btn{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;justify-content:center;letter-spacing:.5px;min-width:80px;padding:8px 14px;text-transform:uppercase;transition:all .2s ease}.transfer-toggle-btn:hover:not(:disabled){background:#2563eb;box-shadow:0 2px 4px #3b82f64d;transform:translateY(-1px)}.transfer-toggle-btn.active{background:#ef4444}.transfer-toggle-btn.active:hover:not(:disabled){background:#dc2626}.transfer-toggle-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.transfer-options{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 12px #00000014;margin-top:20px;padding:24px;position:relative}.transfer-options:before{background:linear-gradient(90deg,#3b82f6,#22c55e,#f59e0b);border-radius:16px 16px 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.transfer-options-header{align-items:center;border-bottom:2px solid #f1f5f9;color:#111827;display:flex;font-size:18px;font-weight:700;gap:12px;letter-spacing:-.025em;margin-bottom:20px;padding-bottom:12px}.transfer-options-header:before{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#22c55e);-webkit-background-clip:text;background-clip:text;content:"🎯";font-size:16px;opacity:.9}.target-groups{display:flex;flex-direction:column;gap:12px}.target-group-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#374151;cursor:pointer;display:flex;justify-content:space-between;overflow:hidden;padding:16px 20px;position:relative;text-align:left;transition:all .3s ease}.target-group-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.target-group-btn:hover{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f633;transform:translateY(-2px)}.target-group-btn:hover:before{left:100%}.target-group-btn .group-name{color:#111827;font-size:16px;font-weight:700;letter-spacing:-.025em}.target-group-btn .machine-type{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:16px;color:#374151;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px}.history-timeline{padding-left:32px;position:relative}.timeline-item{padding-bottom:20px;position:relative}.timeline-item:not(:last-child):before{background:#e2e8f0;bottom:0;content:"";left:-20px;position:absolute;top:20px;width:2px}.timeline-marker{background:#94a3b8;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0000001a;height:10px;left:-24px;position:absolute;top:6px;width:10px}.timeline-item.current .timeline-marker{background:#22c55e}.timeline-content{background:#f8f9fc;border:1px solid #e2e8f0;border-radius:6px;padding:12px}.timeline-item.current .timeline-content{background:#dcfce7;border-color:#22c55e}.current-indicator{background:#22c55e;border-radius:4px;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;text-transform:uppercase}.period-info,.phase-info,.reason{color:#64748b;font-size:14px;margin-bottom:4px}.dates{color:#475569;font-weight:500}.empty-group,.empty-state,.no-employees,.no-performance-data{color:#94a3b8;font-size:14px;padding:32px;text-align:center}.empty-icon{font-size:32px;margin-bottom:12px;opacity:.5}.notification-container{max-width:380px;pointer-events:none;position:fixed;right:16px;top:16px;z-index:9999}.notification{align-items:flex-start;animation:slideInRight .3s ease-out;background:#fff;border-left:4px solid;border-radius:6px;box-shadow:0 8px 16px #00000026;display:flex;margin-bottom:12px;padding:16px;pointer-events:auto}.notification.success{border-left-color:#22c55e}.notification.error{border-left-color:#ef4444}.notification.warning{border-left-color:#f59e0b}.notification.info{border-left-color:#3b82f6}.notification-content{align-items:center;display:flex;flex:1 1;gap:12px}.notification-icon{flex-shrink:0;font-size:20px}.notification-message{color:#2c3e50;font-size:14px;line-height:1.4}.notification-close{background:#0000;border:none;color:#94a3b8;cursor:pointer;font-size:20px;margin-left:12px;padding:0}.notification-close:hover{color:#475569}.loading{opacity:.6;pointer-events:none}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.add-phase-btn:before,.btn-action:before,.btn-cancel:before,.btn-confirm:before,.btn-edit:before,.btn-group-details:before,.btn-primary:before,.btn-remove:before,.btn-save:before,.btn-secondary:before,.history-btn:before,.regenerate-phases-btn:before,.reload-config-btn:before,.revert-btn:before,.transfer-toggle-btn:before,button:before{content:none!important;display:none!important}.btn-icon{display:none!important}.btn-action .btn-label,.btn-action .btn-text,button .btn-text{margin:0;padding:0}@media (max-width:768px){.onps-dynamic-seasons{padding:12px}.header{padding:16px}.header h2{font-size:24px}.tabs{flex-direction:column}.tab{width:100%}.employee-grid,.groups-grid,.phase-config-grid,.season-info-grid{grid-template-columns:1fr}.management-controls{flex-direction:column;gap:12px}.search-section{flex-direction:column;width:100%}.group-filter,.search-input{width:100%}.group-stats{grid-template-columns:1fr}.phase-actions{flex-direction:column}.phase-configuration-header,.phases-config-header{flex-direction:column;gap:12px}.phase-action-buttons{width:100%}}.performance-details-modal{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;max-height:90vh;max-width:1600px;overflow-y:auto;padding:24px;width:95%}.performance-modal-title h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.performance-modal-subtitle{color:#6b7280;font-size:.9rem;margin-top:4px}.performance-summary{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.summary-card{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:12px;padding:20px}.summary-card.final-score{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#10b981}.final-score .summary-value{color:#10b981}.group-comparison{margin-bottom:32px}.group-comparison h4{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 20px}.comparison-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.group-performance-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px #0000000d;overflow:hidden}.group-card-header{background:#fff;border-bottom:1px solid #e5e7eb;color:#1e293b;padding:16px 20px}.group-card-header h5{font-size:1.1rem;font-weight:600;margin:0 0 8px}.group-stats{display:flex;gap:16px}.group-stats .stat{background:#fff3;border-radius:6px;font-size:.875rem;font-weight:500;padding:4px 8px}.group-stats .stat.rendement{background:#10b9814d;font-weight:600}.grading-details{padding:20px}.grading-details h6{color:#374151;font-size:1rem;font-weight:600;margin:0 0 16px}.records-table{overflow-x:auto}.records-table table{border-collapse:collapse;margin-top:8px;width:100%}.records-table td,.records-table th{border-bottom:1px solid #e5e7eb;padding:8px 12px;text-align:left}.records-table th{background:#f9fafb;color:#374151;font-size:.875rem;font-weight:600}.records-table td{color:#6b7280;font-size:.875rem}.rendement-cell{color:#10b981!important}.no-records{color:#9ca3af;padding:20px}.performance-analysis{margin-bottom:24px}.performance-analysis h4{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 20px}.analysis-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.analysis-card{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1px solid #e2e8f0;border-radius:12px;padding:20px;text-align:center}.analysis-label{color:#6b7280;display:block;font-size:.875rem;font-weight:500;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.analysis-value{color:#1f2937;display:block;font-size:1.25rem;font-weight:700}.analysis-value.positive{color:#10b981}.analysis-value.negative{color:#ef4444}.action-buttons{flex-wrap:wrap;gap:8px}.view-details-btn{border:1px solid #2563eb;border-radius:6px;box-shadow:0 1px 2px #0000000d;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .15s ease}.view-details-btn:hover{background:#2563eb;border-color:#1d4ed8;box-shadow:0 2px 4px #0000001a}.recalculate-btn{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;box-shadow:0 2px 4px #f59e0b33;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.recalculate-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 4px 8px #f59e0b4d;transform:translateY(-1px)}.recalculate-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}@media (max-width:768px){.performance-details-modal{margin:20px;width:95%}.comparison-grid{grid-template-columns:1fr}.performance-summary{grid-template-columns:repeat(2,1fr)}.analysis-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.recalculate-btn,.view-details-btn{width:100%}}.transfer-modal{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 25px 50px #0003;max-width:600px;overflow:hidden;width:90%}.transfer-modal-header{background:#fff;border-bottom:2px solid #f1f5f9;color:#1e293b;padding:24px 28px}.transfer-modal-header h4{align-items:center;color:#111827;display:flex;font-size:22px;font-weight:700;gap:10px;margin:0}.transfer-modal-header h4:before{content:"🔄";font-size:20px}.transfer-details{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-left:4px solid #3b82f6;display:flex;justify-content:space-between;padding:28px}.transfer-info{flex:1 1;text-align:center}.transfer-label{color:#6b7280;display:block;font-size:.875rem;font-weight:500;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.employee-name,.group-name{color:#1f2937;display:block;font-size:1.1rem;font-weight:700}.employee-name{color:#dc2626}.group-name{color:#059669}.transfer-arrow{animation:pulse 2s infinite;color:#6366f1;font-size:2rem;font-weight:700;margin:0 16px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.transfer-date-group{border-bottom:1px solid #e5e7eb;padding:24px}.transfer-date-label{align-items:center;display:flex;margin-bottom:12px}.optional-text{color:#6b7280;font-size:14px;font-weight:400;margin-left:8px}.transfer-date-container{display:flex;flex-direction:column;gap:8px}.transfer-date-input{background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#374151;font-size:16px;padding:12px 16px;transition:all .2s ease;width:100%}.transfer-date-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.date-help-text{color:#6b7280;font-size:14px;font-style:italic}.reason-group{padding:24px}.reason-label{align-items:center;display:flex;margin-bottom:12px}.label-text{color:#374151;font-size:1rem;font-weight:600}.required-asterisk{color:#dc2626;font-weight:700;margin-left:4px}.reason-input-container{margin-bottom:16px;position:relative}.reason-textarea{background:#fff;border:2px solid #e5e7eb;border-radius:12px;font-family:inherit;font-size:.875rem;line-height:1.5;padding:12px 16px;resize:vertical;transition:all .2s ease;width:100%}.reason-textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.reason-textarea::placeholder{color:#9ca3af}.character-count{background:#fff;border-radius:4px;bottom:8px;color:#9ca3af;font-size:.75rem;padding:2px 6px;position:absolute;right:12px}.reason-suggestions{border-top:1px solid #e5e7eb;padding-top:16px}.suggestions-label{color:#6b7280;display:block;font-size:.875rem;font-weight:500;margin-bottom:8px}.suggestion-chips{display:flex;flex-wrap:wrap;gap:8px}.suggestion-chip{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:20px;color:#475569;cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s ease}.suggestion-chip:hover{background:#e0e7ff;border-color:#6366f1;box-shadow:0 2px 4px #6366f133;color:#4338ca;transform:translateY(-1px)}.suggestion-chip:active{transform:translateY(0)}.modal-actions{background:#fff;border-top:2px solid #f1f5f9;display:flex;gap:16px;justify-content:flex-end;padding:24px 28px}.primary-btn,.secondary-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease}.primary-btn{background:#22c55e;border:2px solid #22c55e;box-shadow:0 4px 12px #22c55e40;color:#fff}.primary-btn:hover:not(:disabled){background:#16a34a;border-color:#16a34a;box-shadow:0 8px 20px #22c55e4d;transform:translateY(-2px)}.primary-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed;opacity:.6;transform:none}.secondary-btn{background:#fff;border:2px solid #d1d5db;box-shadow:0 2px 8px #0000001a;color:#374151}.secondary-btn:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af;box-shadow:0 8px 20px #00000026;transform:translateY(-2px)}.secondary-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-icon{display:none}@media (max-width:768px){.transfer-modal{margin:20px;width:95%}.transfer-details{flex-direction:column;gap:16px}.transfer-arrow{margin:8px 0;transform:rotate(90deg)}.modal-actions{flex-direction:column}.primary-btn,.secondary-btn{justify-content:center;width:100%}.suggestion-chips{justify-content:center}}.performance-header{align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;margin-bottom:32px;padding:24px}.header-title h3{color:#111827;font-size:1.75rem;font-weight:700;letter-spacing:-.025em;margin:0 0 8px}.header-subtitle{color:#6b7280;font-size:.95rem;font-weight:500}.performance-controls{align-items:flex-end;display:flex;flex-direction:column;gap:20px;min-width:320px}.monthly-controls{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:24px;padding:16px 20px}.control-group{gap:8px;min-width:120px}.control-group label{margin-bottom:4px}.changes-select,.month-select,.year-select{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;min-width:100px;padding:10px 14px;transition:all .2s ease}.changes-select:focus,.month-select:focus,.year-select:focus{background:#f8fafc;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.changes-select:hover,.month-select:hover,.year-select:hover{background:#f9fafb;border-color:#9ca3af}.action-buttons{align-items:center}.generate-report-btn{align-items:center;background:#3b82f6;border:none;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;min-width:160px;padding:12px 20px;transition:all .2s ease}.generate-report-btn:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.generate-report-btn:disabled{background:#9ca3af;box-shadow:0 1px 3px #0000001a;cursor:not-allowed;opacity:.6;transform:none}.refresh-btn{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:6px;padding:12px 16px;transition:all .2s ease}.refresh-btn:hover{background:#e5e7eb;border-color:#9ca3af;transform:translateY(-1px)}.btn-icon{display:inline-block;font-size:1rem}.no-performance-data{background:#f8fafc;border:2px dashed #d1d5db;border-radius:12px;margin:32px 0;padding:60px 20px;text-align:center}.no-performance-data p{align-items:center;color:#6b7280;display:flex;font-size:1.1rem;font-weight:500;gap:12px;justify-content:center;margin:0}.no-performance-data p:before{content:"📊";font-size:1.5rem}.monthly-report-modal{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 20px 40px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:1600px;overflow:hidden;width:95%}.monthly-report-header{align-items:center;background:#fff;border-bottom:2px solid #f1f5f9;display:flex;justify-content:space-between;padding:28px 32px}.report-modal-title h3{align-items:center;color:#111827;display:flex;font-size:1.875rem;font-weight:700;gap:12px;letter-spacing:-.025em;margin:0 0 8px}.report-modal-title h3:before{content:"📊";font-size:1.5rem}.report-modal-subtitle{color:#6b7280;font-size:1rem;font-weight:500;margin-top:4px}.modal-close-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#6b7280;font-size:1.25rem;font-weight:500;padding:10px 12px}.modal-close-btn:hover{background:#e5e7eb;border-color:#9ca3af;color:#374151}.monthly-report-body{background:#fff;flex:1 1;overflow-y:auto;padding:32px}.report-table{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:32px;overflow:hidden}.report-table table{border-collapse:collapse;width:100%}.report-table td,.report-table th{border-bottom:1px solid #f1f5f9;font-size:.875rem;padding:18px 16px;text-align:left;vertical-align:top}.report-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;box-shadow:0 2px 4px #0000000d;color:#374151;font-size:.85rem;font-weight:600;letter-spacing:.025em;position:sticky;text-transform:uppercase;top:0;z-index:10}.report-table td{background:#fff}.report-table tr:nth-child(2n) td{background:#f9fafb}.report-table tr:hover td{background:#f3f4f6;transition:background-color .2s ease}.report-row:hover{background:#f8fafc}.groups-worked{max-width:220px}.group-badge.small{background:#3b82f6;border:none;border-radius:16px;box-shadow:0 1px 3px #0000001a;color:#fff;font-size:.75rem;font-weight:600;padding:4px 10px}.group-badge.small:first-child{background:#10b981}.group-badge.small:nth-child(2){background:#8b5cf6}.group-badge.small:nth-child(3){background:#f59e0b}.change-count{background:#fbbf24;border-radius:20px;box-shadow:0 1px 3px #0000001a;color:#fff;display:inline-block;font-size:.75rem;font-weight:700;min-width:28px;padding:6px 12px;text-align:center;text-shadow:0 1px 2px #0000001a}.work-days{align-items:center;display:flex;gap:4px}.work-days:after{content:"📅";font-size:.8rem}.total-hours{align-items:center;color:#64748b;display:flex;font-size:.9rem;font-weight:500;gap:4px}.total-hours:before{content:"⏰";font-size:.8rem}.avg-rendement{align-items:center;border-radius:20px;display:inline-flex;font-size:1rem;font-weight:700;gap:6px;justify-content:center;min-width:90px;padding:8px 16px;text-shadow:0 1px 2px #0000001a}.avg-rendement.excellent{background:#10b981;box-shadow:0 1px 3px #0000001a;color:#fff}.avg-rendement.good{background:#3b82f6;box-shadow:0 1px 3px #0000001a;color:#fff}.avg-rendement.average{background:#f59e0b;box-shadow:0 1px 3px #0000001a;color:#fff}.avg-rendement.poor{background:#ef4444;box-shadow:0 1px 3px #0000001a;color:#fff}.production-excellent{background:#10b981}.production-good{background:#3b82f6}.production-average{background:#f59e0b}.production-poor{background:#ef4444}.monthly-report-footer{align-items:center;background:#fff;border-top:2px solid #f1f5f9;display:flex;justify-content:space-between;padding:24px 32px}.export-btn{border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 4px 6px #10b98140}.export-btn:hover{box-shadow:0 4px 8px #10b9814d}.export-btn:before{content:"💾";font-size:1rem}.btn-secondary{border:none;font-size:.9rem;padding:12px 24px}.btn-secondary:hover{background:#4b5563;transform:translateY(-1px)}.machine-data{background:#fff;border:1px solid #f1f5f9;border-radius:8px;box-shadow:0 1px 3px #0000000d;padding:12px}.machine-data h4{color:#1e293b;font-size:.85rem;font-weight:600;letter-spacing:.025em;margin:0 0 8px;text-transform:uppercase}.machine-metric{align-items:center;display:flex;font-size:.8rem;justify-content:space-between;margin:4px 0}.machine-metric .label{color:#64748b;font-weight:500}.machine-metric .value{color:#1e293b;font-weight:600}.quality-metrics{background:#fff;border:1px solid #f1f5f9;border-radius:8px;box-shadow:0 1px 3px #0000000d;padding:12px}.quality-metrics h4{color:#166534;font-size:.85rem;font-weight:600;letter-spacing:.025em;margin:0 0 8px;text-transform:uppercase}.performance-trend{align-items:center;border-radius:16px;display:inline-flex;font-size:.8rem;font-weight:600;gap:6px;padding:6px 12px}.performance-trend.stable{background:#dbeafe;color:#1e40af}.performance-trend.improving{background:#d1fae5;color:#065f46}.performance-trend.declining{background:#fee2e2;color:#991b1b}.best-group{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 4px #fbbf244d;color:#374151;display:inline-flex;font-size:.8rem;gap:6px;padding:6px 12px}.best-group:before{content:"🏆";font-size:.9rem}.change-count{background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;color:#92400e;font-size:.875rem;font-weight:600;padding:4px 8px}.performance-value{color:#059669;font-weight:600}.trend{align-items:center;border-radius:6px;display:flex;font-size:.8rem;font-weight:500;gap:4px;padding:4px 8px}.trend.improving{background:#d1fae5;border:1px solid #10b981;color:#047857}.trend.declining{background:#fee2e2;border:1px solid #ef4444;color:#dc2626}.trend.stable{background:#e0e7ff;border:1px solid #6366f1;color:#3730a3}.best-group{color:#059669;font-size:.875rem;font-weight:600}.view-details-btn.small{border-radius:6px;font-size:.8rem;padding:6px 12px}.no-report-data{color:#6b7280;padding:40px 20px;text-align:center}.no-report-data p{margin:8px 0}.report-summary{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1px solid #e5e7eb;border-radius:12px;margin-top:32px;padding:20px}.report-summary h4{color:#1f2937;font-size:1.2rem;font-weight:600;margin:0 0 16px}.summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-item{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 4px #0000000d;padding:16px;text-align:center}.summary-label{color:#6b7280;display:block;font-size:.875rem;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.summary-value{color:#1f2937;display:block;font-size:1.5rem;font-weight:700}.export-btn{align-items:center;background:linear-gradient(135deg,#059669,#047857);border:none;border-radius:10px;box-shadow:0 4px 6px #05966933;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease}.export-btn:hover{background:#047857;box-shadow:0 4px 8px #0596694d;transform:translateY(-1px)}@media (max-width:768px){.performance-header{flex-direction:column;gap:20px;padding:20px}.performance-controls{align-items:stretch;min-width:auto;width:100%}.monthly-controls{flex-direction:column;gap:16px;padding:16px}.control-group{min-width:auto;width:100%}.action-buttons{flex-direction:column;gap:12px;width:100%}.generate-report-btn,.refresh-btn{justify-content:center;width:100%}.monthly-report-modal{margin:20px;max-height:95vh;width:95%}.monthly-report-header{padding:16px 20px}.monthly-report-body{padding:20px}.report-table{font-size:.8rem;margin-bottom:20px}.report-table td,.report-table th{font-size:.75rem;padding:12px 8px}.report-modal-title h3{font-size:1.25rem}.groups-worked{max-width:160px}.group-badge.small{font-size:.65rem;padding:3px 8px}.monthly-report-footer{flex-direction:column;gap:12px;padding:16px 20px}.btn-secondary,.export-btn{justify-content:center;width:100%}.machine-data,.quality-metrics{margin-bottom:12px;padding:8px}.machine-metric{font-size:.7rem}}.machine-data{font-size:.85rem;line-height:1.4;max-width:200px}.machine-info{background:#f9fafb;border:1px solid #f3f4f6;border-radius:6px;margin-bottom:8px;padding:8px 12px}.machine-info strong{color:#374151;display:block;margin-bottom:4px}.collage-data,.roto-data{display:flex;flex-direction:column;gap:2px}.collage-data span,.roto-data span{background:#e2e8f0;border-radius:3px;color:#64748b;font-size:.8rem;padding:2px 6px}.quality-metrics{font-size:.85rem;line-height:1.4;max-width:180px}.quality-info{background:#f9fafb;border:1px solid #f3f4f6;border-radius:6px;margin-bottom:6px;padding:8px 12px}.quality-info strong{color:#374151;display:block;margin-bottom:2px}.quality-info span{background:#dcfce7;border-radius:2px;color:#15803d;display:block;font-size:.8rem;margin-bottom:2px;margin-right:4px;padding:1px 4px}.calculation-details{background:#fff;border:1px solid #f1f5f9;border-radius:8px;box-shadow:0 1px 3px #0000000d;font-size:.8rem;max-width:320px;padding:16px}.calculation-formula strong{color:#1e293b;display:block;font-size:.85rem;margin-bottom:8px}.calculation-section{background:#f9fafb;border:1px solid #f3f4f6;border-radius:6px;margin:8px 0;padding:10px 12px}.calculation-section strong{color:#374151;display:block;font-size:.8rem;margin-bottom:4px}.calculation-step{border:1px solid #f3f4f6;border-radius:4px;color:#4b5563;display:flex;flex-direction:column;font-size:.75rem;gap:2px;margin:4px 0;padding:6px 8px}.calculation-total{background:#3b82f6;border-radius:8px;font-size:.85rem;font-weight:600;margin:8px 0;padding:12px 16px}.calculation-insight{border:1px solid #bae6fd;border-radius:6px;color:#0c4a6e;font-size:.8rem;margin:8px 0;padding:10px 12px}.calculation-formula-text{color:#64748b;font-family:Courier New,monospace;font-size:.7rem}.calculation-total{background:#059669;border-radius:6px;color:#fff;font-size:.8rem;font-weight:500;margin-top:8px;padding:6px 10px;text-align:center}.calculation-total strong{color:#fff;font-size:.9rem;text-shadow:0 1px 2px #0000001a}.calculation-insight{background:#e0f2fe;border-left:3px solid #0ea5e9;border-radius:4px;margin-top:8px;padding:6px 8px}.calculation-insight strong{color:#0c4a6e;font-size:.8rem}.trend-explanation{color:#0369a1;display:block;font-size:.75rem;font-weight:500;margin-top:2px}.complete-performance-details{margin-top:20px}.group-detailed-section{border:1px solid #e5e7eb;border-radius:12px;margin-bottom:30px;overflow:hidden}.group-section-header{background:#f8fafc;border-bottom:3px solid #3b82f6;color:#1f2937;padding:16px 20px}.group-section-header h5{font-size:1.1rem;font-weight:600;margin:0 0 8px}.group-metrics{display:flex;flex-wrap:wrap;gap:8px}.metric-badge{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px #0000000d;color:#374151;font-size:.85rem;font-weight:500;padding:4px 8px}.complete-records-table{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto;padding:0}.complete-records-table table{border-collapse:collapse;font-size:.85rem;min-width:1400px;table-layout:fixed;width:100%}.complete-records-table th{border-bottom:2px solid #e5e7eb;box-shadow:0 1px 0 #0000000d;color:#1f2937;font-weight:600;min-width:80px;padding:16px 14px;position:sticky;top:0;z-index:10}.complete-records-table td,.complete-records-table th{background:#fff;font-size:.85rem;text-align:center;white-space:nowrap}.complete-records-table td{border-bottom:1px solid #f3f4f6;padding:14px 12px;vertical-align:middle}.complete-records-table tr:hover td{background:#f8fafc;transition:background-color .15s ease}.complete-records-table tr:nth-child(2n) td{background:#fafafa}.complete-records-table tr:nth-child(2n):hover td{background:#f0f4f8}.shift-badge{border:1px solid #0000;border-radius:6px;display:inline-block;font-size:.75rem;font-weight:500;min-width:50px;padding:4px 8px;text-align:center}.shift-badge.day{border-color:#fbbf24}.shift-badge.night{background:#dbeafe;border-color:#3b82f6;color:#1e40af}.rendement-cell.excellent{background:#dcfce7;border:1px solid #22c55e;border-radius:4px;color:#166534;font-weight:600;padding:6px 8px;text-align:center}.rendement-cell.good{background:#fef3c7;border:1px solid #f59e0b;border-radius:4px;color:#92400e;font-weight:500;padding:6px 8px;text-align:center}.rendement-cell.needs-improvement{background:#fee2e2;border:1px solid #ef4444;border-radius:4px;font-weight:500;padding:6px 8px;text-align:center}.group-summary{background:#f8fafc;border-top:1px solid #e5e7eb;padding:16px 20px}.group-summary h6{color:#374151;font-size:1rem;margin:0 0 12px}.summary-calculations{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.calc-item{border:1px solid #e5e7eb;border-radius:6px;font-size:.85rem;padding:8px 12px}.calc-item strong{color:#374151;margin-right:8px}.no-records{color:#6b7280;font-style:italic;padding:40px 20px;text-align:center}.no-records-but-summary{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;margin:16px 0;padding:20px}.no-records-but-summary .no-records{color:#92400e;font-weight:500;margin:0;padding:0 0 16px}.summary-only-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary-only-metrics .summary-card{align-items:center;background:#fff;border:1px solid #f59e0b;border-radius:6px;display:flex;justify-content:space-between;padding:12px}.summary-only-metrics .metric-label{color:#92400e;font-size:.85rem;font-weight:500}.summary-only-metrics .metric-value{color:#451a03;font-size:.9rem;font-weight:600}.notes-cell{color:#6b7280;font-size:.8rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-cell{color:#374151;font-size:.8rem}.user-badge,.user-cell{font-weight:500;text-align:center}.user-badge{background:#e0f2fe;border:1px solid #bae6fd;border-radius:12px;color:#0c4a6e;display:inline-block;font-size:.75rem;min-width:60px;padding:3px 8px}.user-badge:empty:before{color:#6b7280;content:"System"}.complete-records-table td:first-child,.complete-records-table th:first-child{min-width:100px;width:100px}.complete-records-table td:nth-child(2),.complete-records-table th:nth-child(2){min-width:80px;width:80px}.complete-records-table td:nth-child(3),.complete-records-table th:nth-child(3){min-width:70px;width:70px}.complete-records-table td:nth-child(4),.complete-records-table th:nth-child(4){min-width:90px;width:90px}.complete-records-table td:nth-child(10),.complete-records-table th:nth-child(10){word-wrap:break-word;max-width:200px;min-width:200px;text-align:left;white-space:normal;width:200px}.complete-records-table td:nth-child(11),.complete-records-table th:nth-child(11){min-width:70px;width:70px}.complete-records-table td:nth-child(12),.complete-records-table td:nth-child(13),.complete-records-table th:nth-child(12),.complete-records-table th:nth-child(13){min-width:100px;width:100px}.lock-status{display:inline-block;font-size:1rem}.lock-status.locked{color:#dc2626}.lock-status.unlocked{color:#16a34a}.performance-details-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2100!important}.performance-details-modal{position:relative;z-index:2200}.modal-overlay.transfer-modal-overlay,.transfer-modal-overlay{z-index:99999!important}@media (max-width:1200px){.complete-records-table{overflow-x:auto}.complete-records-table table{min-width:800px}.summary-calculations{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width:768px){.group-metrics{flex-direction:column;gap:4px}.metric-badge{display:block;text-align:center}.complete-records-table td,.complete-records-table th{font-size:.75rem;padding:8px 4px}}.season-selector{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:15px;padding:15px}.season-selector label{color:#374151;display:block;font-weight:600;margin-bottom:8px}.season-dropdown{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:10px 12px;transition:border-color .2s ease;width:100%}.season-dropdown:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.season-switcher{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;margin-top:15px;padding:15px}.season-switcher label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.season-switcher .season-dropdown{max-width:300px}.group-leader-info{align-items:center;background:#ffc1071a;border:1px solid #ffc1074d;border-radius:4px;display:flex;font-size:12px;gap:6px;margin-top:8px;padding:4px 8px}.phase-restriction-note{background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-top:4px;padding:2px 6px;text-align:center}.phase-restriction-note small{color:#dc2626;font-size:10px;font-weight:500}.group-leader-info .leader-icon{color:#ffc107;font-size:14px}.group-leader-info .leader-text{color:#333;font-size:11px}.group-leader-info .leader-text strong{color:#b8860b;font-weight:600}.leader-badge{align-items:center;background:linear-gradient(135deg,#ffc107,#ff9800);border-radius:12px;box-shadow:0 2px 4px #ffc1074d;color:#fff;display:inline-flex;font-size:10px;font-weight:600;gap:4px;margin-left:8px;padding:2px 6px;text-shadow:0 1px 2px #0003}.filter-toggles{gap:12px;margin-top:8px}.filter-toggles,.toggle-filter{align-items:center;display:flex}.toggle-filter{color:#666;cursor:pointer;font-size:12px;gap:6px}.toggle-filter input[type=checkbox]{cursor:pointer;margin:0}.toggle-text{-webkit-user-select:none;user-select:none}.season-select{background-color:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#374151;font-size:14px;min-width:200px;padding:8px 12px}.season-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.onps-grading-calculation{background:#fff;min-height:100vh;padding:24px}.grading-header{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:24px;padding:24px}.header-title h2{align-items:center;color:#1e293b;display:flex;font-size:28px;font-weight:700;gap:12px;margin:0 0 8px}.header-title p{font-size:16px;margin:0}.grading-controls{align-items:center;display:flex;flex-wrap:wrap;gap:20px;margin-top:20px}.control-group{gap:6px}.control-group label{color:#374151;font-size:14px}.month-select,.season-select,.year-select{background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;min-width:150px;padding:8px 12px;transition:border-color .2s}.month-select:focus,.season-select:focus,.year-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.action-buttons{display:flex;gap:12px;margin-left:auto}.create-records-btn,.export-btn,.finalize-btn,.refresh-btn{align-items:center;border:1px solid #0000;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease}.refresh-btn{background:#3b82f6;border-color:#3b82f6;color:#fff}.create-records-btn{background:#f59e0b;border-color:#f59e0b;color:#fff}.export-btn{background:#10b981;border-color:#10b981;color:#fff}.finalize-btn{background:#ef4444;border-color:#ef4444;color:#fff}.create-records-btn:disabled,.export-btn:disabled,.finalize-btn:disabled,.refresh-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed;opacity:.6}.loading-indicator{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;justify-content:center;padding:60px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;height:40px;margin-bottom:16px;width:40px}.group-summary-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:24px;padding:24px}.group-summary-section h3{align-items:center;color:#1e293b;display:flex;font-size:20px;font-weight:700;gap:8px;margin:0 0 20px}.group-summary-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.group-summary-card{background:#f8fafc;border:2px solid #e5e7eb;border-radius:10px;padding:20px}.group-info h4{color:#1e293b;font-size:18px;font-weight:700;margin:0 0 4px}.machine-type{background:#3b82f6;border-radius:6px;color:#fff;font-size:12px;padding:4px 8px}.group-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-top:16px}.group-stats .stat{display:flex;flex-direction:column;gap:4px}.stat .label{color:#64748b;font-size:12px;font-weight:600}.stat .value{color:#1e293b;font-size:16px;font-weight:700}.employee-grading-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:24px}.employee-grading-section h3{align-items:center;color:#1e293b;display:flex;font-size:20px;font-weight:700;gap:8px;margin:0 0 20px}.grading-table{border:1px solid #e5e7eb;border-radius:6px;overflow-x:auto;position:relative}.grading-table table{background:#fff;border-collapse:collapse;min-width:1200px;width:100%}.grading-table td:first-child,.grading-table th:first-child{background:#fff;border-right:2px solid #e5e7eb;left:0;max-width:200px;min-width:200px;position:sticky;z-index:20}.grading-table th:first-child{background:#f8fafc;z-index:21}.grading-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;border-right:1px solid #e5e7eb;color:#1e293b;font-weight:700;position:sticky;top:0;white-space:nowrap;z-index:10}.grading-table td,.grading-table th{font-size:13px;padding:14px 16px;text-align:center}.grading-table td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;color:#374151;font-weight:500;vertical-align:middle}.grading-table tr:nth-child(2n),.grading-table tr:nth-child(2n) td:first-child{background:#f9fafb}.employee-info{flex-direction:column;gap:4px}.employee-info strong{color:#1e293b;font-weight:600}.employee-info span{color:#64748b;font-size:12px}.groups-worked{display:flex;flex-wrap:wrap;gap:6px}.group-badge{background:#e0f2fe;border:1px solid #bae6fd;color:#0369a1;font-size:12px;padding:4px 8px}.grading-value,.rendement-value{color:#059669;font-size:16px;font-weight:700}.status-badge{border-radius:6px;font-size:12px}.status-badge.finalized{background:#dcfce7;border:1px solid #bbf7d0;color:#166534}.status-badge.pending{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.view-details-btn{align-items:center;background:#3b82f6;border:1px solid #3b82f6;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:4px;padding:8px 12px;transition:all .2s ease}.view-details-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed;opacity:.6}.no-data{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:60px;text-align:center}.no-data-icon{font-size:48px;margin-bottom:16px}.no-data h3{color:#374151;margin:0 0 8px}.no-data p{color:#64748b;margin:4px 0}.modal-overlay{background:#00000080;padding:20px}.employee-details-modal{background:#fff;border:1px solid #d1d5db;border-radius:6px;display:flex;flex-direction:column;overflow:hidden;width:90vw}.modal-header{background:#f8fafc;border-bottom:1px solid #e5e7eb;flex-shrink:0;padding:8px 12px}.modal-title h3{color:#1e293b;font-size:20px;font-weight:700;margin:0}.modal-subtitle{color:#64748b;font-size:14px}.modal-close-btn{background:#ef4444;border:1px solid #ef4444;border-radius:4px;color:#fff;cursor:pointer;font-size:18px;font-weight:700;padding:8px 12px;transition:all .2s ease}.modal-content{flex:1 1;min-height:0;overflow-y:auto;padding:16px;scrollbar-color:#cbd5e1 #f1f5f9;scrollbar-width:thin}.modal-content.modal-content-scrollable{max-height:calc(90vh - 120px)!important;overflow-y:scroll!important;padding-bottom:20px!important;position:relative!important}.modal-content.modal-content-scrollable::-webkit-scrollbar{display:block!important;width:12px!important}.modal-content.modal-content-scrollable::-webkit-scrollbar-track{background:#e2e8f0!important;border:1px solid #cbd5e1!important;border-radius:6px!important;display:block!important}.modal-content.modal-content-scrollable::-webkit-scrollbar-thumb{background:#64748b!important;border:2px solid #e2e8f0!important;border-radius:6px!important;display:block!important}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.modal-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.group-detail-section{border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column;margin-bottom:8px;max-height:60vh;overflow:hidden}.group-detail-header{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-bottom:2px solid #cbd5e1;flex-shrink:0;padding:6px 10px;position:relative}.group-detail-content{flex:1 1;overflow-x:auto;overflow-y:auto}.group-detail-header h4{color:#1e293b;font-size:14px;font-weight:700;margin:0 0 2px}.group-period{color:#64748b;font-size:12px}.grading-records-table{border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 2px 8px #0000000f;margin:8px 0;max-width:100%;overflow:visible;width:100%}.grading-records-table table{border-collapse:collapse;min-height:200px;min-width:1200px;table-layout:auto;width:100%}.grading-records-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;border-right:1px solid #e5e7eb;color:#1e293b;font-size:10px;font-weight:700;height:26px;padding:4px 8px;position:sticky;top:0;z-index:10}.grading-records-table td,.grading-records-table th{min-width:100px;text-align:center;white-space:nowrap}.grading-records-table td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;color:#374151;font-size:9px;font-weight:600;height:22px;padding:3px 5px;vertical-align:middle}.grading-records-table tr:nth-child(2n){background:#fafbfc}.grading-records-table tbody{display:table-row-group}.grading-records-table tbody tr{background:#fff;border:1px solid #f0f0f0;display:table-row;min-height:22px}.grading-records-table tbody tr:hover{background:#f8f9fa}.grading-records-table td:first-child,.grading-records-table th:first-child{max-width:120px;min-width:120px}.grading-records-table td:nth-child(2),.grading-records-table th:nth-child(2){max-width:80px;min-width:80px}.grading-records-table td:nth-child(3),.grading-records-table th:nth-child(3){max-width:70px;min-width:70px}.grading-records-table td:nth-child(4),.grading-records-table th:nth-child(4){max-width:90px;min-width:90px}.grading-records-table td:nth-child(10),.grading-records-table td:nth-child(11),.grading-records-table td:nth-child(12),.grading-records-table td:nth-child(5),.grading-records-table td:nth-child(6),.grading-records-table td:nth-child(7),.grading-records-table td:nth-child(8),.grading-records-table td:nth-child(9),.grading-records-table th:nth-child(10),.grading-records-table th:nth-child(11),.grading-records-table th:nth-child(12),.grading-records-table th:nth-child(5),.grading-records-table th:nth-child(6),.grading-records-table th:nth-child(7),.grading-records-table th:nth-child(8),.grading-records-table th:nth-child(9){max-width:100px;min-width:80px}.grading-records-table td:last-child,.grading-records-table td:nth-last-child(2),.grading-records-table th:last-child,.grading-records-table th:nth-last-child(2){max-width:120px;min-width:90px}.shift-badge{border-radius:4px;font-size:10px;font-weight:600;padding:2px 6px}.shift-badge.day{background:#fef3c7;color:#92400e}.shift-badge.night{background:#e0e7ff;color:#3730a3}.rendement-cell{font-weight:600}.rendement-cell.excellent{color:#059669}.rendement-cell.good{color:#d97706}.rendement-cell.needs-improvement{color:#dc2626}.grade-badge{border-radius:4px;font-size:10px;padding:2px 6px}.grade-badge.grade-a{background:#dcfce7;color:#166534}.grade-badge.grade-b{background:#fef3c7;color:#92400e}.grade-badge.grade-c{background:#fee2e2;color:#991b1b}.grade-badge.grade-pending{background:#f3f4f6;color:#374151}.status-badge.locked{background:#fee2e2;color:#991b1b}.status-badge.unlocked{background:#dcfce7;color:#166534}.group-calculation-summary{background:#f8fafc;border-radius:0 0 6px 6px;border-top:2px solid #e2e8f0;margin-top:4px;padding:6px 12px}.group-calculation-summary h5{align-items:center;color:#1e293b;display:flex;font-size:16px;font-weight:700;gap:8px;margin:0 0 16px}.calculation-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.calc-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:12px 16px}.calc-item .label{color:#64748b;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.calc-item .value{color:#1e293b;font-size:16px;font-weight:700;text-align:right}.calc-item .value.important{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#059669,#047857);background-clip:text;-webkit-background-clip:text;color:#059669;font-size:18px;font-weight:800;text-shadow:0 1px 2px #05966933}.employee-total-summary{background:#f0f9ff;border:2px solid #bae6fd;border-radius:10px;margin-bottom:20px;margin-top:8px;padding:12px}.employee-total-summary h4{color:#0369a1;font-size:16px;font-weight:700;margin:0 0 16px}.total-summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-card{background:#fff;border:1px solid #bae6fd;flex-direction:column;gap:8px;padding:16px;text-align:center}.summary-card .label{font-size:12px;font-weight:600}.summary-card .value{font-size:18px}.summary-card .value.important{color:#059669;font-size:24px}.modal-footer{border-top:1px solid #e5e7eb;gap:12px;padding:8px 16px}.btn-secondary{background:#6b7280;border:1px solid #6b7280;border-radius:4px;color:#fff;padding:10px 16px}.transfer-timeline{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin:16px 0;padding:16px}.transfer-timeline h5{color:#1f2937;font-weight:600;margin:0 0 12px}.timeline-container{align-items:center;display:flex;gap:4px;margin-bottom:12px;min-height:40px}.timeline-segment{height:100%}.period-bar,.timeline-segment{align-items:center;display:flex}.period-bar{border-radius:6px;color:#fff;flex-direction:column;font-size:11px;font-weight:600;justify-content:center;min-height:40px;min-width:60px;overflow:hidden;padding:4px 8px;position:relative;text-align:center}.period-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-days{font-size:10px;opacity:.9}.timeline-legend{display:flex;font-size:12px;gap:16px}.legend-item{align-items:center;display:flex;gap:6px}.legend-color{border-radius:3px;height:12px;width:12px}.legend-color.roto{background:#3b82f6}.legend-color.collage{background:#10b981}.transfer-timeline-empty{color:#6b7280;font-style:italic;padding:20px;text-align:center}.grade-breakdown{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:12px;margin:16px 0;padding:16px}.grade-breakdown h5{color:#1f2937;font-weight:600;margin:0 0 16px}.calculation-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.calculation-step{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.step-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.machine-type{background:#e5e7eb;border-radius:4px;color:#374151;font-size:11px;font-weight:600;padding:2px 8px}.step-details{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.detail-row{display:flex;font-size:13px;justify-content:space-between}.detail-row.important{background:#f3f4f6;border-radius:4px;font-weight:600;grid-column:1/-1;margin-top:8px;padding:6px 8px}.final-calculation{background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;padding:12px}.final-grade{align-items:center;color:#1e40af;display:flex;font-weight:600;justify-content:space-between}.final-value{color:#1d4ed8;font-size:18px}.grade-breakdown-empty{color:#6b7280;font-style:italic;padding:20px;text-align:center}.transfer-warnings{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin:16px 0;padding:16px}.transfer-warnings h5{color:#dc2626;font-weight:600;margin:0 0 12px}.warning-item{align-items:center;border-radius:6px;display:flex;font-size:13px;gap:8px;margin-bottom:8px;padding:8px}.warning-item:last-child{margin-bottom:0}.warning-item.gap_detected{background:#fef3c7;border:1px solid #fbbf24;color:#92400e}.warning-item.overlap_detected{background:#fee2e2;border:1px solid #f87171;color:#dc2626}.warning-item.early_end,.warning-item.late_start{background:#e0f2fe;border:1px solid #0284c7;color:#0369a1}.warning-item.no_assignments{background:#fef2f2;border:1px solid #ef4444;color:#dc2626}.warning-icon{font-size:16px;min-width:20px}.warning-message{flex:1 1;font-weight:500}@media (max-width:1200px){.employee-details-modal{max-height:98vh;max-width:98vw}.grading-records-table table{min-width:1000px}.grading-records-table td,.grading-records-table th{font-size:10px;padding:6px 8px}}@media (max-width:768px){.onps-grading-calculation{padding:16px}.grading-controls{align-items:stretch;flex-direction:column}.action-buttons{justify-content:center;margin-left:0}.calculation-grid,.group-summary-grid,.total-summary-grid{grid-template-columns:1fr}.modal-overlay{padding:5px}.employee-details-modal{max-height:98vh;max-width:99vw}.step-details{grid-template-columns:1fr}.timeline-container{align-items:stretch;flex-direction:column;gap:8px}.period-bar{min-width:auto;width:100%}.grading-records-table table{min-width:800px}.grading-records-table td,.grading-records-table th{font-size:9px;padding:4px 6px}}.all-data-merged-btn{align-items:center;background:#7c3aed;border:1px solid #7c3aed;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;justify-content:center;padding:8px 16px;text-align:center;transition:all .2s ease;width:100%}.all-data-merged-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed}.merged-data-section{height:auto;margin-bottom:20px;overflow:visible}.merged-data-section h4{align-items:center;color:#1e293b;display:flex;font-size:14px;font-weight:600;gap:8px;margin:0 0 12px}.merged-data-table{border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 2px 8px #0000000f;height:40vh;margin:8px 0;max-height:40vh;max-width:100%;overflow-x:auto;overflow-y:auto;scrollbar-color:#cbd5e1 #f1f5f9;scrollbar-width:thin;width:100%}.merged-data-table::-webkit-scrollbar{height:8px;width:8px}.merged-data-table::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.merged-data-table::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.merged-data-table::-webkit-scrollbar-thumb:hover{background:#94a3b8}.merged-data-table table{border-collapse:collapse;min-height:400px;min-width:1200px;table-layout:auto;width:100%}.merged-data-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;border-right:1px solid #e5e7eb;color:#1e293b;font-size:10px;font-weight:700;height:26px;padding:4px 8px;position:sticky;top:0;z-index:10}.merged-data-table td,.merged-data-table th{min-width:100px;text-align:center;white-space:nowrap}.merged-data-table td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;color:#374151;font-size:9px;font-weight:600;height:22px;padding:3px 5px;vertical-align:middle}.merged-data-table tr:nth-child(2n){background:#fafbfc}.merged-data-table tbody{display:table-row-group}.merged-data-table tbody tr{background:#fff;border:1px solid #f0f0f0;display:table-row;min-height:22px}.merged-data-table tbody tr:hover{background:#f8f9fa}.group-cell{background:#f1f5f9!important;color:#1e293b!important;font-weight:700!important}.group-badge{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:4px;display:inline-block;font-size:9px;font-weight:700;min-width:60px;text-align:center}.merged-data-table td:first-child,.merged-data-table th:first-child{max-width:80px;min-width:80px}.merged-data-table td:nth-child(2),.merged-data-table th:nth-child(2){max-width:120px;min-width:120px}.merged-data-table td:nth-child(3),.merged-data-table th:nth-child(3){max-width:80px;min-width:80px}.merged-data-table td:nth-child(4),.merged-data-table th:nth-child(4){max-width:70px;min-width:70px}.merged-data-table td:nth-child(5),.merged-data-table th:nth-child(5){max-width:90px;min-width:90px}.merged-data-table td:nth-child(10),.merged-data-table td:nth-child(11),.merged-data-table td:nth-child(12),.merged-data-table td:nth-child(13),.merged-data-table td:nth-child(6),.merged-data-table td:nth-child(7),.merged-data-table td:nth-child(8),.merged-data-table td:nth-child(9),.merged-data-table th:nth-child(10),.merged-data-table th:nth-child(11),.merged-data-table th:nth-child(12),.merged-data-table th:nth-child(13),.merged-data-table th:nth-child(6),.merged-data-table th:nth-child(7),.merged-data-table th:nth-child(8),.merged-data-table th:nth-child(9){max-width:100px;min-width:80px}.merged-data-table td:nth-last-child(3),.merged-data-table th:nth-last-child(3){max-width:130px;min-width:100px;text-align:center}.merged-data-table td:last-child,.merged-data-table td:nth-last-child(2),.merged-data-table th:last-child,.merged-data-table th:nth-last-child(2){max-width:120px;min-width:90px}.totals-row,.totals-row td{background:#f1f5f9!important;border-top:2px solid #cbd5e1!important}.totals-row td{color:#1e293b!important;font-size:14px;font-weight:700!important;padding:12px 8px!important}.totals-row .totals-label{color:#374151!important;font-size:13px;letter-spacing:.5px;text-align:center;text-transform:uppercase}.totals-row:hover,.totals-row:hover td{background:#e2e8f0!important}.pallets-value{min-width:140px;padding:8px 4px;text-align:center}.pallets-gain-formula,.pallets-summary{align-items:center;display:flex;flex-direction:column;gap:2px}.pallets-gain-formula{width:100%}.gain-breakdown{flex-wrap:wrap;gap:2px;justify-content:center;margin-bottom:4px}.gain-breakdown,.group-gain{align-items:center;display:flex}.group-gain{font-size:11px}.group-name-short{color:#374151;font-weight:600}.gain-value{color:#059669;font-weight:700}.plus-sign{color:#6b7280;margin:0 2px}.total-gain{background:#ecfdf5;border:1px solid #86efac;border-radius:4px;color:#047857;font-size:12px;font-weight:700;padding:2px 4px;text-align:center}.pallet-breakdown{display:flex;flex-direction:column;gap:2px;min-width:180px;padding:4px}.group-pallet-info{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;display:flex;font-size:11px;justify-content:space-between;padding:2px 6px}.group-name{color:#374151;font-size:10px}.pallet-gain-only{align-items:center;display:flex}.pallet-gain-only .gain-value{color:#059669;font-size:11px;font-weight:700}.employee-row.transfer-employee{background:#f8fafc}.groups-worked .group-badge.transfer-group{background:#3b82f6;border:2px solid #2563eb;color:#fff}.modal-content-scrollable{flex:1 1;margin-bottom:0;max-height:calc(90vh - 120px);min-height:0;overflow-y:scroll;padding-bottom:20px;padding-right:8px;position:relative}.modal-content-scrollable:after,.modal-content.modal-content-scrollable:after{background:linear-gradient(#0000,#fffc);bottom:0;content:"";height:20px;left:0;pointer-events:none;position:absolute;right:0;z-index:1}.modal-content.modal-content-scrollable:before{background:#3b82f6;border-radius:4px;color:#fff;content:"↓ Scroll down to see more content";font-size:12px;padding:4px 8px;pointer-events:none;position:absolute;right:20px;top:10px;z-index:10}.modal-content-scrollable::-webkit-scrollbar,.modal-content.modal-content-scrollable::-webkit-scrollbar{width:12px}.modal-content-scrollable::-webkit-scrollbar-track,.modal-content.modal-content-scrollable::-webkit-scrollbar-track{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:6px}.modal-content-scrollable::-webkit-scrollbar-thumb,.modal-content.modal-content-scrollable::-webkit-scrollbar-thumb{background:#64748b;border:2px solid #e2e8f0;border-radius:6px}.modal-content-scrollable::-webkit-scrollbar-thumb:hover,.modal-content.modal-content-scrollable::-webkit-scrollbar-thumb:hover{background:#475569}.employee-details-modal .modal-footer{background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;margin-top:0;padding:16px 24px}.employee-details-modal{height:90vh;max-height:90vh}.group-extra-pallets-breakdown{background:#f0f9ff;border:2px solid #0ea5e9;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin:20px 0;padding:24px}.group-extra-pallets-breakdown h4{color:#1e293b;font-size:20px;font-weight:700;margin-bottom:20px}.group-pallets-summary{display:flex;flex-direction:column;gap:16px}.group-pallet-card,.overall-summary-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:16px}.overall-summary-card{background:#f0f9ff;border:2px solid #3b82f6}.group-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.group-header h5{color:#1e293b;font-size:16px;font-weight:600;margin:0}.work-days{background:#3b82f6;border-radius:4px;color:#fff;font-size:12px;font-weight:500;padding:4px 8px}.pallet-breakdown-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.pallet-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:12px}.pallet-label{color:#64748b;font-size:12px;font-weight:500;margin-bottom:4px}.pallet-value{font-size:18px;font-weight:700;margin-bottom:4px}.pallet-value.expected{color:#374151}.pallet-value.extra.positive,.pallet-value.real{color:#059669}.pallet-value.extra.negative{color:#dc2626}.pallet-formula{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;color:#64748b;font-family:Courier New,monospace;font-size:11px;line-height:1.4;padding:6px}.pallet-calculation-breakdown{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin:20px 0;padding:24px}.pallet-calculation-breakdown h4{color:#1e293b;font-size:20px;font-weight:700;margin-bottom:20px}.calculation-formulas{display:flex;flex-direction:column;gap:24px}.formula-section{background:#f8fafc;border:1px solid #e2e8f0;padding:20px}.formula-section h5{color:#1e40af;font-size:16px;font-weight:600;margin-bottom:16px}.formula-steps{display:flex;flex-direction:column;gap:12px}.formula-step{background:#fff;border-left:4px solid #3b82f6;border-radius:6px;box-shadow:0 1px 3px #0000001a;padding:12px}.formula-step strong{color:#1e40af;display:block;font-size:14px;margin-bottom:4px}.formula-step p{color:#64748b;font-size:12px;font-style:italic;margin:0}@media (max-width:768px){.grading-table table{min-width:1000px}.pallet-breakdown{min-width:150px}.group-pallet-info{align-items:flex-start;flex-direction:column;gap:2px}.group-extra-pallets-breakdown{margin:16px 0;padding:16px}.group-pallet-card,.overall-summary-card{padding:12px}.group-header{align-items:flex-start;flex-direction:column;gap:8px}.pallet-breakdown-grid{gap:8px;grid-template-columns:1fr}.pallet-item{padding:8px}.pallet-value{font-size:16px}.pallet-formula{font-size:10px}.pallet-calculation-breakdown{padding:16px}.calculation-formulas{gap:16px}.formula-section{padding:16px}.modal-content-scrollable{padding-right:4px}.employee-details-modal{max-height:95vh}}.onps-payroll{background:#f8fafc;min-height:calc(100vh - 80px);padding:1.5rem}.onps-payroll-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.header-title{align-items:center;display:flex;gap:1rem}.header-title h1{color:#1e293b;font-size:1.75rem;font-weight:700;margin:0}.header-title p{color:#64748b;font-size:.875rem;margin:.25rem 0 0}.header-actions{align-items:center;display:flex;gap:1rem;justify-content:space-between}.action-group,.unified-edit-section{align-items:center;display:flex;gap:.75rem}.unified-edit-section{position:relative}.config-indicator{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem .75rem}.config-status{background:#f0f0f0;border-radius:12px;color:#666;font-size:12px;font-weight:500;padding:2px 8px}.btn-edit-unified,.btn-export,.btn-refresh,.btn-settings{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all .2s ease}.btn-edit-unified{background:#6366f1;color:#fff;justify-content:space-between;min-width:140px;position:relative}.btn-edit-unified:hover:not(:disabled){background:#4f46e5;box-shadow:0 4px 12px #6366f14d;transform:translateY(-1px)}.dropdown-arrow{transition:transform .2s ease}.dropdown-arrow.open{transform:rotate(180deg)}.edit-dropdown{animation:dropdownFadeIn .2s ease;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px #0000001a;left:0;margin-top:.25rem;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{align-items:center;background:none;border:none;color:#374151;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.75rem;padding:.75rem 1rem;text-align:left;transition:background-color .2s ease;width:100%}.dropdown-item:hover{background:#f8fafc;color:#1f2937}.dropdown-item:first-child{border-bottom:1px solid #f1f5f9}.btn-export{background:linear-gradient(135deg,#059669,#047857);color:#fff;font-weight:600;overflow:hidden;position:relative}.btn-export:hover:not(:disabled){background:linear-gradient(135deg,#047857,#065f46);box-shadow:0 6px 20px #05966966;transform:translateY(-1px)}.btn-export:active:not(:disabled){box-shadow:0 2px 8px #0596694d;transform:translateY(0)}.btn-refresh{background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-weight:500}.btn-refresh:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.btn-settings{background:#dc2626;color:#fff;font-weight:600}.btn-settings:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 12px #dc26264d;transform:translateY(-1px)}.btn-export:disabled,.btn-refresh:disabled{cursor:not-allowed;opacity:.5}.controls-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;border-radius:16px;box-shadow:0 2px 8px #0000001a;box-shadow:0 4px 12px #0000000d;margin-bottom:1.5rem;margin-bottom:2rem;padding:1.5rem;padding:2rem}.controls-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1.5rem}.controls-row:last-child{margin-bottom:0}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{align-items:center;color:#1f2937;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;margin-bottom:.25rem}.control-group label:before{background:#3b82f6;border-radius:2px;content:"";height:16px;width:3px}.control-group input,.control-group select{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 4px #00000005;color:#374151;font-size:.875rem;font-weight:500;padding:.875rem 1rem;transition:all .3s ease}.control-group input:focus,.control-group select:focus{background:#fefefe;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a,0 4px 12px #0000000d;outline:none}.control-group input:hover,.control-group select:hover{border-color:#d1d5db;box-shadow:0 4px 8px #0000000a}.search-input{align-items:center;display:flex;position:relative;width:100%}.search-input svg{color:#6b7280;left:1rem;position:absolute;transition:color .2s ease;z-index:10}.search-input input{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 4px #00000005;font-size:.875rem;font-weight:500;padding:.875rem 1rem .875rem 2.75rem;transition:all .3s ease;width:100%}.search-input input::placeholder{color:#9ca3af;font-weight:400}.search-input input:focus{background:#fefefe;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a,0 4px 12px #0000000d;outline:none}.search-input input:focus+svg,.search-input:hover svg{color:#3b82f6}.search-input:hover input{border-color:#d1d5db;box-shadow:0 4px 8px #0000000a}.summary-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.summary-section h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.summary-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.summary-card{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:.75rem;min-width:240px;overflow:visible;padding:1rem}.summary-card.total{background:#3b82f6;border-color:#3b82f6;color:#fff}.summary-card svg{color:#3b82f6;flex-shrink:0}.summary-card.total svg{color:#fff}.summary-card>div{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0;overflow:visible}.summary-card .label{color:#64748b;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.summary-card.total .label{color:#fffc}.summary-card .value{color:#1e293b;font-size:1.125rem;font-weight:700;overflow:visible;text-overflow:clip;white-space:nowrap;word-break:keep-all}.summary-card.total .value{color:#fff}.machine-specs-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.machine-specs-section h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.machine-specs-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr;margin-bottom:2rem;max-width:100%}.machine-specs-grid.multiple-machines{grid-template-columns:1fr 1fr}@media (max-width:1200px){.machine-specs-grid.multiple-machines{grid-template-columns:1fr}}.machine-spec-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;padding:2rem;transition:all .3s ease;width:100%}.machine-specs-grid:not(.multiple-machines) .machine-spec-card{max-width:100%;min-height:400px}.machine-specs-grid:not(.multiple-machines) .spec-details{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.machine-specs-grid:not(.multiple-machines) .spec-item{margin-bottom:.5rem}.machine-specs-grid:not(.multiple-machines) .formula-breakdown{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.machine-specs-grid:not(.multiple-machines) .formula-component{margin-bottom:.5rem}@media (max-width:768px){.machine-specs-grid:not(.multiple-machines) .formula-breakdown,.machine-specs-grid:not(.multiple-machines) .spec-details{grid-template-columns:1fr}}.machine-spec-editor{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.machine-spec-editor h4{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.spec-editor-section{margin-bottom:2rem}.spec-editor-section h5{color:#475569;font-size:1rem;font-weight:600;margin:0 0 1rem}.spec-editor-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.spec-editor-item{display:flex;flex-direction:column;gap:.5rem}.spec-editor-item label{color:#374151;font-size:.875rem;font-weight:500}.spec-editor-item input{border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;padding:.75rem;transition:border-color .2s ease}.spec-editor-item input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.large-modal{max-height:90vh;max-width:1000px;overflow-y:auto;width:90vw}@media (max-width:768px){.spec-editor-grid{grid-template-columns:1fr}.large-modal{max-height:95vh;width:95vw}}.machine-spec-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-2px)}.machine-header{align-items:center;border-bottom:2px solid #3b82f6;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.machine-header h4{color:#1e293b;font-size:1.375rem;font-weight:700;margin:0}.machine-type-badge{background:#3b82f6;border-radius:20px;color:#fff;font-size:.875rem;letter-spacing:.05em;padding:.5rem 1rem;text-transform:uppercase}.spec-details{margin-bottom:1rem}.spec-section{background:#fffc;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:1.5rem;padding:1.25rem;transition:all .2s ease}.spec-section:hover{background:#fffffff2;border-color:#d1d5db;box-shadow:0 2px 8px #0000000d;transform:translateY(-1px)}.spec-section:last-child{margin-bottom:0}.section-title{border-bottom:1px solid #e5e7eb;color:#1e293b;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 1rem;padding-bottom:.5rem}.section-title,.spec-item{align-items:center;display:flex}.spec-item{border-bottom:1px solid #f1f5f9;justify-content:space-between;padding:.75rem 0}.spec-item:last-child{border-bottom:none}.spec-item.highlight{background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;margin:.5rem 0;padding:.75rem 1rem}.spec-label{color:#374151;font-size:.875rem;font-weight:500}.spec-value{color:#1e293b;font-size:.875rem;font-weight:600}.spec-item.highlight .spec-label,.spec-item.highlight .spec-value{color:#1e40af;font-weight:600}.tprod-formula-box{background:#fef3c7;border:2px solid #f59e0b;border-radius:12px;box-shadow:0 4px 12px #f59e0b1a;padding:1.5rem;transition:all .3s ease}.tprod-formula-box:hover{border-color:#d97706;box-shadow:0 8px 24px #f59e0b33;transform:translateY(-2px)}.formula-title{color:#92400e;font-size:1rem;font-weight:700;margin-bottom:1rem}.formula-title:before{content:"⚙️";font-size:1.125rem}.formula-text{border:2px solid #f59e0b;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#92400e;font-size:1rem;line-height:1.5;margin-bottom:1rem;padding:1rem;text-align:center}.formula-breakdown{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.formula-component{background:#fff;border:1px solid #f59e0b;border-radius:6px;display:flex;flex-direction:column;gap:.25rem;padding:.75rem;transition:all .2s ease}.formula-component:hover{background:#fef3c7;box-shadow:0 2px 8px #f59e0b33;transform:translateY(-1px)}.component-label{color:#92400e;font-family:Fira Code,Courier New,monospace;font-size:.875rem;font-weight:700}.component-desc{color:#a16207;font-size:.75rem;font-weight:500;line-height:1.3}.downtime-breakdown{display:flex;flex-direction:column;gap:.5rem}.downtime-item{padding:.5rem 0}.downtime-item,.downtime-total{align-items:center;display:flex;justify-content:space-between}.downtime-total{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-weight:600;margin:.5rem 0;padding:.75rem 1rem}.downtime-label{color:#374151;font-size:.875rem;font-weight:500}.downtime-value{color:#1e293b;font-size:.875rem;font-weight:600}.position-bonuses{display:flex;flex-direction:column;gap:1rem}.position-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;transition:all .2s ease}.position-item:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.position-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.position-name{color:#1e293b;font-weight:600}.position-bonus{color:#059669;font-size:1rem;font-weight:700}.position-formula{color:#6b7280;font-size:.75rem;font-style:italic}.performance-bonuses{display:flex;flex-direction:column;gap:1.25rem}.formula-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;transition:all .2s ease}.formula-box:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a;transform:translateY(-1px)}.formula-title{align-items:center;color:#1e293b;display:flex;font-weight:600;gap:.5rem;margin-bottom:.75rem}.formula-title:before{content:"⚡";font-size:1rem}.formula-text{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-family:Fira Code,Courier New,monospace;font-size:.875rem;line-height:1.4;margin-bottom:.75rem;padding:.75rem}.formula-result{background:#dbeafe;border:1px solid #93c5fd;border-radius:6px;color:#3b82f6;font-size:.875rem;font-weight:600;padding:.5rem .75rem}.pallet-rates{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.rate-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;display:flex;justify-content:space-between;padding:.75rem}.rate-label{color:#374151;font-size:.875rem;font-weight:500}.rate-value{color:#059669;font-size:.875rem;font-weight:600}.grading-scale{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.grade-item{border:1px solid;border-radius:8px;padding:.75rem;transition:all .2s ease}.grade-excellent{background:#dcfce7;border-color:#16a34a;color:#166534}.grade-veryGood{background:#dbeafe;border-color:#3b82f6;color:#1e40af}.grade-good{background:#f0f9ff;border-color:#0ea5e9;color:#0c4a6e}.grade-satisfactory{background:#fef3c7;border-color:#f59e0b;color:#92400e}.grade-adequate{background:#fed7aa;border-color:#ea580c;color:#9a3412}.grade-poor{background:#fee2e2;border-color:#ef4444;color:#dc2626}.grade-range{display:flex;flex-direction:column;gap:.25rem}.grade-points{font-size:1.125rem;font-weight:700}.grade-description{font-size:.75rem;font-weight:500}.formulas-list{grid-gap:.875rem;display:grid;gap:.875rem;grid-template-columns:1fr}.formula-item{border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.5rem;padding:1rem;transition:all .2s ease}.formula-item:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.formula-name{align-items:center;color:#1e293b;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;text-transform:capitalize}.formula-name:before{content:"📐";font-size:.75rem}.formula-code{word-wrap:break-word;background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-family:Fira Code,Courier New,monospace;font-size:.8125rem;line-height:1.4;padding:.75rem}.no-formulas-message{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;color:#856404;padding:20px;text-align:center}.no-formulas-message p{font-size:.95em;margin:8px 0}.no-formulas-message p:first-child{font-size:1em;font-weight:600}.payroll-table-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.payroll-table-section h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.payroll-table-container{border:1px solid #e2e8f0;border-radius:8px;max-width:100%;overflow-x:auto;position:relative;scroll-behavior:smooth}.payroll-table{background:#fff;border-collapse:initial;border-spacing:0;box-shadow:0 1px 3px #0000001a;width:100%}.payroll-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:.875rem;font-weight:600;letter-spacing:.025em;line-height:1.3;padding:1rem .75rem;text-align:left;white-space:nowrap}.payroll-table td{border-bottom:1px solid #f3f4f6;color:#374151;font-size:.875rem;padding:1rem}.payroll-table tbody tr:hover{background:#f9fafb;transition:background-color .2s ease}.payroll-table tbody tr:hover .employee-cell{background:#f9fafb}.employee-cell:after{background:#e5e7eb;content:"";height:100%;position:absolute;right:-1px;top:0;width:1px;z-index:1}.payroll-row{transition:all .2s ease}.payroll-row:hover{background:#f8fafc;box-shadow:0 2px 8px #0000000d;transform:translateY(-1px)}.employee-col{background:#f8fafc;border-right:1px solid #e5e7eb;box-shadow:1px 0 3px #0000000d;left:0;min-width:200px;position:sticky;width:200px;z-index:10}.group-col{min-width:250px;width:250px}.machine-col{min-width:100px;width:100px}.position-col{min-width:180px;width:180px}.work-days-col{min-width:110px;text-align:center;width:110px}.abs-col,.at-col{min-width:100px;text-align:center;width:100px}.abs-at-col{min-width:120px;text-align:center;width:120px}.fixed-bonus-col,.position-bonus-col{min-width:140px;width:140px}.grand-total-col{min-width:120px;width:120px}.total-onps-col{border-right:2px solid #e5e7eb;padding:1rem .75rem;text-align:center}.pay15-col,.total-onps-col{min-width:160px;width:160px}.abs-cell,.at-cell{text-align:center}.employee-detailed-modal{max-height:95vh;max-width:95vw;width:95vw}.employee-detailed-info{margin-bottom:20px}.employee-summary{grid-gap:16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-left:4px solid #17a2b8;border-radius:8px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:16px}.summary-item{align-items:center;display:flex;justify-content:space-between}.summary-label{color:#495057;font-size:13px;font-weight:500}.summary-value{background:#e9ecef;border-radius:4px;color:#2c3e50;font-size:13px;font-weight:600;padding:2px 8px}.employee-detailed-table-container{border:1px solid #e9ecef;border-radius:8px;max-height:70vh;overflow:auto}.employee-detailed-table{border-collapse:collapse;font-size:12px;width:100%}.employee-detailed-table th{background:linear-gradient(135deg,#343a40,#495057);border-bottom:2px solid #17a2b8;color:#fff;font-weight:600;padding:12px 8px;position:sticky;text-align:center;top:0;z-index:10}.employee-detail-row{border-bottom:1px solid #e9ecef;transition:background-color .2s ease}.employee-detail-row:hover{background-color:#f8f9fa}.employee-detail-row td{border-right:1px solid #f1f3f4;padding:10px 8px;text-align:center}.group-badge{background:linear-gradient(135deg,#6c757d,#5a6268);border-radius:12px;color:#fff;font-size:11px;font-weight:500;padding:2px 8px}.tprod-value{color:#17a2b8;font-weight:600}.formula-details-row{animation:expandRow .3s ease-out;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-top:2px solid #007bff}.formula-details-cell{border:none!important;padding:20px!important}.formula-details-container{grid-gap:20px;background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 4px 12px #0000001a;display:grid;gap:20px;grid-template-columns:1fr 1fr;padding:20px}.formula-section{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;padding:16px}.formula-section h4{align-items:center;color:#2c3e50;display:flex;font-size:14px;font-weight:600;gap:8px;margin:0 0 12px}.formula-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr}.formula-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px;position:relative}.formula-label{color:#495057;flex:1 1;font-size:12px;font-weight:500}.formula-value{background:#e9ecef;border-radius:4px;color:#2c3e50;font-size:12px;font-weight:600;margin-left:8px;min-width:60px;padding:2px 6px;text-align:center}.formula-section:first-child{border-left-color:#007bff}.formula-section:nth-child(2){border-left-color:#28a745}.formula-section:nth-child(3){border-left-color:#dc3545}.formula-section:nth-child(4){border-left-color:#ffc107}@keyframes expandRow{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.no-employee-data{align-items:center;color:#6c757d;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.no-employee-data h4{color:#495057;font-size:18px;margin:16px 0 8px}.no-employee-data p{font-size:14px;line-height:1.5;margin:0}.employee-cell{background:#fff;border-right:1px solid #e5e7eb;left:0;min-width:200px;position:sticky;width:200px;z-index:9}.employee-cell,.group-cell{padding:1rem .875rem!important}.group-cell{min-width:250px;width:250px}.machine-cell{min-width:100px;text-align:center;width:100px}.machine-cell,.position-cell{padding:1rem .875rem!important}.position-cell{min-width:180px;width:180px}.days-cell{min-width:80px;width:80px}.bonus-cell,.days-cell{padding:1rem .875rem!important}.bonus-cell{min-width:120px;width:120px}.grand-total-cell{min-width:100px;padding:1rem .875rem!important;text-align:center;width:100px}.total-onps-cell{border-right:2px solid #e5e7eb;min-width:130px;padding:1rem .75rem!important;text-align:center;width:130px}.details-cell{min-width:100px;padding:1rem .875rem!important;width:100px}.employee-info{align-items:center;display:flex;gap:.75rem}.employee-details{display:flex;flex-direction:column;gap:.25rem}.employee-name{color:#1e293b;font-size:.875rem;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-id{color:#6b7280;font-size:.75rem;font-weight:500}.group-cell{color:#374151;font-weight:500;max-width:300px;min-width:220px}.group-name{word-wrap:break-word;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 2px #0000000d;color:#1f2937;font-size:.875rem;font-weight:600;line-height:1.4;padding:.5rem .75rem;transition:all .2s ease;white-space:normal}.group-name:hover{background:#f1f5f9;border-color:#cbd5e1;box-shadow:0 2px 4px #0000001a}.group-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.group-badge{background:#dbeafe;border:1px solid #bfdbfe;border-radius:6px;color:#1e40af}.group-badge,.machine-type-badge{font-size:.75rem;font-weight:600;padding:.25rem .5rem}.machine-type-badge{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;color:#0369a1}.detail-item.full-width{grid-column:1/-1}.position-cell{color:#374151;font-weight:500}.position-name{font-size:.8125rem}.days-cell{text-align:center}.work-summary{align-items:center;display:flex;flex-direction:column;gap:.25rem}.work-days{color:#1e293b;font-size:1rem;font-weight:700}.work-hours{color:#6b7280;font-size:.75rem;font-weight:500}.grading-cell{text-align:center}.grading-info{align-items:center;display:flex;flex-direction:column;gap:.25rem}.grading-points{color:#1e293b;font-size:1rem;font-weight:700}.grading-efficiency{color:#6b7280;font-size:.75rem;font-weight:500}.grade-badge{border-radius:12px;font-size:.75rem;font-weight:600;min-width:24px;padding:.125rem .375rem}.grade-badge,.rendement-cell{text-align:center}.rendement-info{align-items:center;display:flex;flex-direction:column;gap:.25rem}.rendement-category{font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.production-cell{text-align:center}.production-info{align-items:center;display:flex;flex-direction:column;gap:.125rem}.actual-production{color:#1e293b;font-size:.875rem;font-weight:600}.production-unit{color:#6b7280;font-size:.6875rem;font-weight:500}.pallets{color:#3b82f6;font-size:.75rem;font-weight:600}.bonus-cell{padding:.5rem!important;text-align:center}.bonus-amount{display:block;font-size:.875rem;font-weight:600}.bonus-currency{color:#6b7280;display:block;font-size:.6875rem;font-weight:500}.performance-bonus-info{align-items:center;display:flex;flex-direction:column;gap:.125rem}.pallet-multiplier{background:#dbeafe;border-radius:10px;color:#3b82f6;font-size:.6875rem;font-weight:600;padding:.125rem .375rem}.total-bonus-cell{background:#f0fdf4;text-align:center}.total-bonus-info{align-items:center;display:flex;flex-direction:column;gap:.125rem}.total-amount{color:#15803d;font-size:1rem;font-weight:700}.total-currency{color:#16a34a;font-size:.75rem;font-weight:600}.details-cell{padding:.5rem!important;text-align:center}.details-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;padding:.375rem;transition:all .2s ease}.details-btn:hover{background:#3b82f6;border-color:#3b82f6;color:#fff;transform:scale(1.1)}.details-btn-professional{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 1px 2px #0000000d;color:#374151;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:6px;justify-content:center;min-width:70px;padding:8px 12px;transition:all .2s ease}.details-btn-professional:hover{background:#f9fafb;border-color:#9ca3af;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.details-btn-professional:active{box-shadow:0 1px 2px #0000000d;transform:translateY(0)}.details-btn-professional svg{color:#6b7280}.details-btn-professional:hover svg{color:#374151}.work-days-simple{background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;color:#1f2937;display:inline-block;font-size:.875rem;font-weight:600;min-width:40px;padding:4px 8px;text-align:center}.details-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:1000}.details-modal{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 25px 50px #00000040;max-height:90vh;max-width:800px;overflow:hidden;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.details-modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem 2rem}.details-modal-header h3{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.details-modal-close{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;padding:.5rem;transition:all .2s ease}.details-modal-close:hover{background:#ef4444;border-color:#ef4444;color:#fff}.details-modal-body{max-height:calc(90vh - 80px);overflow-y:auto;padding:2rem}.detail-section{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.detail-section:last-child{margin-bottom:0}.detail-section h4{align-items:center;color:#1e293b;display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.detail-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.detail-label{color:#6b7280;font-size:.875rem;font-weight:500}.detail-value{color:#1e293b;font-size:.875rem;font-weight:600}.bonus-breakdown{display:flex;flex-direction:column;gap:.75rem}.bonus-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s ease}.bonus-item:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a;transform:translateY(-1px)}.bonus-item.total{background:#dcfce7;border-color:#16a34a;font-weight:700}.bonus-type{color:#374151;font-weight:500}.bonus-amount{color:#059669;font-size:1rem;font-weight:700}.bonus-item.total .bonus-amount{color:#15803d;font-size:1.125rem}.calculation-details{display:flex;flex-direction:column;gap:1rem}.formula-breakdown{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.formula-breakdown code{background:#f1f5f9;border-radius:4px;color:#374151;display:block;font-family:Fira Code,Courier New,monospace;font-size:.875rem;padding:.5rem}.pallet-calculation,.rendement-info{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:.875rem;margin-bottom:.5rem;padding:.75rem 1rem}.calculation-steps{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-top:1.5rem;padding:1rem}.calculation-steps h5{color:#1e293b;font-size:.875rem;font-weight:600;margin:0 0 1rem}.calc-steps{list-style-type:decimal;margin:0;padding-left:1.5rem}.calc-steps li{color:#374151;font-size:.875rem;line-height:1.5;margin-bottom:.75rem}.calc-steps li:last-child{margin-bottom:0}.calc-steps strong{color:#1e293b;font-weight:600}.machine-badge{border-radius:4px;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.machine-badge.roto{background:#dbeafe;color:#1d4ed8}.machine-badge.collage{background:#dcfce7;color:#16a34a}.rendement-badge{border-radius:4px;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.rendement-badge.excellent{background:#dcfce7;color:#16a34a}.rendement-badge.good{background:#dbeafe;color:#1d4ed8}.rendement-badge.average{background:#fef3c7;color:#d97706}.rendement-badge.poor{background:#fee2e2;color:#dc2626}.total-bonus{color:#1e293b;font-weight:700}.loading-state{align-items:center;color:#64748b;display:flex;gap:.75rem;justify-content:center;padding:3rem}.loading-icon{animation:spin 1s linear infinite}.no-data{align-items:center;color:#64748b;display:flex;font-style:italic;gap:.75rem;justify-content:center;padding:3rem}@media (max-width:768px){.onps-payroll{padding:1rem}.onps-payroll-header{align-items:flex-start;flex-direction:column;gap:1rem}.header-actions{align-items:stretch;flex-direction:column;gap:1rem;justify-content:stretch;width:100%}.action-group{justify-content:center}.unified-edit-section{align-items:center;flex-direction:column;gap:.5rem}.btn-edit-unified,.btn-export,.btn-refresh{flex:1 1;justify-content:center;min-width:auto}.edit-dropdown{left:50%;min-width:200px;right:auto;transform:translateX(-50%)}.controls-row,.machine-specs-grid,.summary-cards{grid-template-columns:1fr}.payroll-table{font-size:.75rem}.payroll-table td,.payroll-table th{padding:.5rem}}@media (max-width:480px){.machine-spec-card{padding:1rem}.position-item,.spec-item{align-items:flex-start;flex-direction:column;gap:.25rem}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 25px 80px #00000026;display:flex;flex-direction:column;max-height:95vh;max-width:95vw;overflow:hidden}.unified-editor-modal{max-width:95vw;width:1000px}.modal-header{background:#fff;border-bottom:2px solid #f1f5f9;justify-content:space-between;padding:2rem}.modal-header,.modal-header h3{align-items:center;display:flex}.modal-header h3{color:#0f172a;font-size:1.5rem;font-weight:700;gap:.75rem;margin:0}.modal-header h3:before{content:"⚙️";font-size:1.25rem}.modal-close{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;justify-content:center;padding:.75rem;transition:all .2s ease}.modal-close:hover{background:#f1f5f9;border-color:#cbd5e1;color:#334155}.modal-body{background:#fafbfc;flex:1 1;overflow-y:auto;padding:2rem}.unified-editor-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;margin-bottom:2rem;padding:2rem}.unified-editor-section h4{align-items:center;border-bottom:2px solid #3b82f6;color:#0f172a;display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;margin:0 0 2rem;padding-bottom:1rem}.editor-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:2.5rem;padding:1.5rem}.editor-section:last-child{margin-bottom:0}.editor-section h5{align-items:center;color:#374151;display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.editor-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.editor-item{display:flex;flex-direction:column;gap:.75rem}.editor-item label{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:.25rem}.editor-item input{background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-weight:500;padding:.875rem 1rem;transition:all .2s ease}.editor-item input:focus{background:#fefefe;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.editor-item input:hover{border-color:#cbd5e1}.editor-item input[readonly]{background:#f8fafc;color:#64748b;cursor:not-allowed}.modal-footer{background:#fff;border-top:2px solid #f1f5f9;gap:1rem;padding:2rem}.btn-secondary{align-items:center;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .2s ease}.btn-secondary:hover{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.btn-primary{align-items:center;border:2px solid #3b82f6;border-radius:8px;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .2s ease}.btn-primary:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;transform:none}.btn-primary:disabled:hover{box-shadow:none;transform:none}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.unified-editor-modal{max-height:95vh;width:95vw}.modal-body,.modal-header,.unified-editor-section{padding:1.5rem}.editor-grid{gap:1rem;grid-template-columns:1fr}.modal-footer{flex-direction:column;padding:1.5rem}.btn-primary,.btn-secondary{justify-content:center;width:100%}}.bonus-editor-content{display:flex;flex-direction:column;gap:2rem}.machine-bonus-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem}.machine-bonus-section h4{border-bottom:2px solid #3b82f6;color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.5rem}.bonus-input-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.bonus-input-group label{color:#374151;font-size:.875rem;font-weight:500}.bonus-input-group input{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.625rem;transition:border-color .2s ease}.bonus-input-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.pallet-bonuses-group,.position-bonuses-group{border-top:1px solid #e2e8f0;margin-top:1.5rem;padding-top:1.5rem}.pallet-bonuses-group h5,.position-bonuses-group h5{color:#1e293b;font-size:1rem;font-weight:600;margin:0 0 1rem}.modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem}.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all .2s ease}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-danger{align-items:center;background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all .2s ease}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled{cursor:not-allowed;opacity:.5}.btn-secondary{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569}.btn-secondary:hover{background:#e2e8f0}@media (max-width:768px){.bonus-editor-modal{max-height:95vh;width:95vw}.machine-bonus-section,.modal-body,.modal-footer,.modal-header{padding:1rem}.modal-footer{flex-direction:column-reverse}.btn-primary,.btn-secondary{justify-content:center;width:100%}}.calculation-details-btn{align-items:center;background:#3b82f6;border:none;border-radius:8px;box-shadow:0 2px 4px #3b82f633;color:#fff;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.calculation-details-btn:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.actions-cell{min-width:80px;padding:.75rem!important;text-align:center}.calculation-modal{border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-height:85vh;max-width:900px!important;overflow-y:auto}.calculation-modal .details-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;box-shadow:0 1px 3px #0000000d;color:#1f2937;display:flex;justify-content:space-between;min-height:60px;padding:1.5rem 2rem;position:relative}.calculation-modal .details-header .header-content{display:flex;flex:1 1;flex-direction:column}.calculation-modal .details-header h3{color:#1f2937;font-size:1.3rem;font-weight:700;letter-spacing:-.025em;line-height:1.2;margin:0}.calculation-modal .details-header h3:before{content:"🧮 ";font-size:1.2rem;margin-right:.25rem}.calculation-modal .details-header .employee-subtitle{color:#6b7280;font-size:.9rem;font-weight:500;line-height:1.3;margin-top:.25rem}.calculation-modal .details-header .employee-subtitle:before{content:"👤 ";font-size:.85rem;margin-right:.25rem}.calculation-modal .details-modal-close{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;color:#6c757d;cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:600;height:36px;justify-content:center;margin-left:1rem;transition:all .2s ease;width:36px}.calculation-modal .details-modal-close:hover{background:#e9ecef;border-color:#adb5bd;color:#495057;transform:scale(1.05)}.calculation-modal .details-modal-close:active{transform:scale(.95)}.calculation-modal .modal-body{background:#f9fafb;min-height:400px;padding:2rem}.calculation-sections{display:flex;flex-direction:column;gap:1.5rem}.calc-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.calc-section h4{border-bottom:2px solid #f3f4f6;color:#1f2937;font-size:1.2rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.75rem}.calc-section h4:before{content:"⚙️ ";font-size:1.1rem}.calc-section h5{background:#f9fafb;border-left:3px solid #d1d5db;border-radius:6px;color:#374151;font-size:1rem;font-weight:600;margin:0 0 1rem;padding:.75rem 1rem}.calc-section h5:before{content:"📊 ";font-size:1rem}.tprod-calc-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px #0000000d;margin-bottom:1rem;padding:1.25rem}.calc-details{display:flex;flex-direction:column;gap:.5rem}.calc-row{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;display:flex;justify-content:space-between;padding:.75rem 1rem}.calc-row.highlight{background:#fef3c7;border:1px solid #f59e0b;color:#92400e;font-weight:600}.calc-row.total{background:#e0f2fe;border:1px solid #0891b2;color:#164e63;font-weight:700}.calc-row span:first-child{color:#6b7280;font-size:.9rem;font-weight:500}.calc-row span:last-child{color:#1f2937;font-size:.95rem;font-weight:600}.components{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;margin-top:1rem;padding:1rem}.components:before{color:#6b7280;content:"📊 Components:";display:block;font-size:.9rem;font-weight:600;margin-bottom:.75rem}.components h6{color:#374151;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 1rem;text-transform:uppercase}.component-list{grid-gap:.5rem;display:grid;font-size:.85rem;gap:.5rem;grid-template-columns:1fr 1fr;margin-top:.5rem}.component-list div{background:#fff;border:1px solid #e5e7eb;border-radius:4px;color:#6b7280;font-weight:500;padding:.5rem .75rem}.bonus-breakdown,.grade-calculation,.production-metrics{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px #0000000d;padding:1rem}@media (max-width:768px){.calculation-modal{border-radius:12px;margin:1rem;max-width:95vw!important}.calculation-modal .modal-header{border-radius:12px 12px 0 0;padding:1rem 1.5rem}.calculation-modal .modal-body{padding:1.5rem}.calc-section,.tprod-calc-item{padding:1rem}.component-list{gap:.5rem;grid-template-columns:1fr}.calc-row{align-items:flex-start;flex-direction:column;gap:.25rem;padding:.5rem .75rem}.calculation-details-btn{font-size:.7rem;padding:.4rem .6rem}.bonus-breakdown,.components,.grade-calculation,.production-metrics{padding:1rem}}.generate-section{border-top:1px solid #e5e7eb;display:flex;justify-content:center;margin-top:2rem;padding:2rem 0}.generate-payroll-btn{align-items:center;background:#3b82f6;border:none;border-radius:12px;box-shadow:0 4px 12px #3b82f64d;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;padding:1rem 2rem;transition:all .3s ease}.generate-payroll-btn:hover{background:#2563eb;box-shadow:0 6px 20px #3b82f666;transform:translateY(-2px)}.generate-payroll-btn:active{transform:translateY(0)}.generate-payroll-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.all-merged-modal{max-height:90vh;max-width:95vw;width:1400px}.all-merged-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;max-height:60vh;overflow-y:auto}.all-merged-table{border-collapse:collapse;font-size:.875rem;width:100%}.all-merged-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:.75rem .5rem;position:sticky;text-align:left;top:0;z-index:10}.all-merged-table td{border-bottom:1px solid #f3f4f6;color:#374151;padding:.75rem .5rem}.all-merged-table tr:hover{background:#f9fafb}.all-merged-table tr:nth-child(2n){background:#fafafa}.all-merged-table tr:nth-child(2n):hover{background:#f3f4f6}@media (max-width:768px){.all-merged-modal{max-width:98vw;width:98vw}.all-merged-table-container{max-height:50vh}.all-merged-table{font-size:.75rem}.all-merged-table td,.all-merged-table th{padding:.5rem .25rem}.employee-detailed-table{font-size:11px}.employee-detail-row td,.employee-detailed-table th{padding:8px 6px}.employee-summary{gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.employee-detailed-modal{max-width:98vw;width:98vw}.employee-detailed-table-container{max-height:60vh}.employee-detailed-table{font-size:10px}.employee-detail-row td,.employee-detailed-table th{padding:6px 4px}.formula-details-container{gap:16px;grid-template-columns:1fr;padding:12px}.formula-section{padding:12px}.formula-item{align-items:flex-start;flex-direction:column;gap:4px}.formula-value{align-self:flex-end}}.attendance-details{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.attendance-details h5{align-items:center;color:#374151;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.attendance-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-top:1rem;max-height:400px;overflow-y:auto}.attendance-table{border-collapse:collapse;font-size:.875rem;width:100%}.attendance-table thead{background:#f8fafc;position:sticky;top:0;z-index:1}.attendance-table th{border-bottom:2px solid #e5e7eb;color:#374151;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:12px 8px;text-align:left;text-transform:uppercase}.attendance-table td{border-bottom:1px solid #f3f4f6;padding:8px;vertical-align:middle}.attendance-table tbody tr:hover{background:#f9fafb}.absent-row{background:#fef2f2!important}.absent-row:hover{background:#fde8e8!important}.date-cell{color:#374151;font-weight:500;white-space:nowrap}.at-cell .at-value{background:#dcfce7;color:#059669}.abs-cell .abs-value,.at-cell .at-value{border-radius:4px;font-size:.75rem;font-weight:600;padding:2px 6px}.abs-cell .abs-value{background:#fee2e2;color:#dc2626}.abs-detail-cell,.at-detail-cell{padding:.75rem .5rem;text-align:center}.at-detail-value{background:#dcfce7;color:#059669}.abs-detail-value,.at-detail-value{border-radius:4px;font-size:.8rem;font-weight:600;padding:3px 8px}.abs-detail-value{background:#fee2e2;color:#dc2626}.detailed-totals-row{background:#f8fafc!important;border-top:2px solid #e2e8f0!important;font-weight:600}.detailed-totals-row td{border-top:2px solid #e2e8f0!important;font-size:.9rem;padding:1rem .75rem!important}.detailed-totals-row .totals-label{background:#e2e8f0;color:#1f2937;font-weight:700;text-align:center}.detailed-totals-row .totals-at strong{color:#059669}.detailed-totals-row .totals-abs strong{color:#dc2626}.detailed-totals-row .totals-extra-pallets strong{font-size:1rem}.detailed-totals-row td strong{font-size:.9rem}.abs-at-cell{padding:.75rem .5rem;text-align:center}.abs-at-info{align-items:center;display:flex;flex-direction:column;gap:2px}.abs-at-value{border-radius:4px;font-size:.85rem;font-weight:700;padding:3px 8px}.reduction-level{color:#6b7280;font-size:.7rem;font-weight:500}.abs-at-value.week-0{background:#dcfce7;color:#059669}.abs-at-value.week-1{background:#fef3c7;color:#d97706}.abs-at-value.week-2{background:#fed7aa;color:#ea580c}.abs-at-value.week-3{background:#fecaca;color:#dc2626}.abs-at-value.week-4{background:#e5e7eb;color:#374151}.hns-cell,.hse-cell,.panier-cell{color:#6b7280;font-weight:500;text-align:center}.status-cell{text-align:center}.absent-badge{background:#dc2626}.absent-badge,.present-badge{border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px}.present-badge{background:#059669}@media (max-width:768px){.attendance-table{font-size:.75rem}.attendance-table td,.attendance-table th{padding:6px 4px}}.no-attendance-data{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#7f1d1d;padding:1rem}.no-attendance-data p{font-weight:500;margin:0 0 .5rem}.no-attendance-data ul{font-size:.875rem;margin:.5rem 0 0 1rem}.no-attendance-data li{margin-bottom:.25rem}.pay15-col{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;white-space:nowrap}.pay15-cell,.pay15-col{font-weight:600;min-width:130px;padding:12px 8px;text-align:center;width:130px}.pay15-cell{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-left:3px solid #4f46e5}.pay15-value{align-items:center;display:flex;flex-direction:column;gap:2px;width:100%}.pay15-total{color:#1e293b;font-size:.9rem;font-weight:700;word-break:break-all}.pay15-formula{color:#64748b;font-size:.7rem;font-style:italic;white-space:nowrap}.payroll-table{min-width:1700px;table-layout:fixed}.payroll-table td,.payroll-table th{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.total-onps-col{min-width:140px;width:140px}.details-col{min-width:100px;width:100px}.total-row{background:linear-gradient(135deg,#f8fafc,#e2e8f0)!important;border-top:2px solid #3b82f6!important;font-weight:700!important}.total-row:hover{background:linear-gradient(135deg,#f1f5f9,#cbd5e1)!important}.total-row td{border-bottom:2px solid #3b82f6!important;color:#1e293b!important;font-size:.9rem!important;padding:1.25rem 1rem!important}.total-label{color:#1e40af!important;font-size:1rem!important;letter-spacing:.05em!important;text-align:center!important}.total-fixed-bonus,.total-grand-total,.total-onps-payroll,.total-pay15,.total-position-bonus{font-weight:700!important;min-width:max-content!important;overflow:visible!important;text-align:center!important;text-overflow:clip!important;white-space:nowrap!important}.total-fixed-bonus strong,.total-grand-total strong,.total-onps-payroll strong,.total-pay15 strong,.total-position-bonus strong{color:#059669!important;font-size:.95rem!important}.total-details{background:#0000!important}.summary-card.pay15{background:linear-gradient(135deg,#10b981,#059669)!important;border:none!important;box-shadow:0 4px 12px #10b9814d!important;color:#fff!important}.summary-card.pay15:hover{box-shadow:0 6px 20px #10b98166!important;transform:translateY(-2px)!important}.summary-card.pay15 .label{color:#ffffffe6!important}.summary-card.pay15 .value{color:#fff!important;font-weight:700!important;min-width:max-content!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;word-break:keep-all!important}.virement-import-container{margin:0 auto;max-width:1200px;padding:20px}.virement-import-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:30px}.virement-import-card h2{color:#2c3e50;font-size:28px;margin-bottom:10px}.description{color:#7f8c8d;font-size:16px;margin-bottom:30px}.payment-rules{background:#f8f9fa;border-radius:8px;margin-bottom:30px;padding:20px}.payment-rules h3{color:#2c3e50;font-size:20px;margin-bottom:15px}.rules-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.rule-item{align-items:center;border-left:4px solid;border-radius:8px;display:flex;gap:12px;padding:15px}.rule-item.cash{background:#fff3cd;border-left-color:#ffc107}.rule-item.bank{background:#d1ecf1;border-left-color:#17a2b8}.rule-icon{font-size:24px}.rule-item strong{color:#2c3e50;display:block;margin-bottom:4px}.rule-item p{color:#6c757d;font-size:14px;margin:0}.upload-form{margin-bottom:30px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.form-group{display:flex;flex-direction:column}.form-group label{color:#2c3e50;font-weight:600;margin-bottom:8px}.form-group input[type=file],.form-group select{border:2px solid #e9ecef;border-radius:6px;font-size:14px;padding:10px;transition:border-color .3s ease}.form-group input[type=file]:focus,.form-group select:focus{border-color:#007bff;outline:none}.file-info{align-items:center;display:flex;gap:8px;margin-top:8px}.file-name{color:#28a745;font-weight:500}.file-size{color:#6c757d;font-size:12px}.button-group{display:flex;gap:15px;margin-top:20px}.reset-btn,.upload-btn{border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.upload-btn{background:#007bff;color:#fff}.upload-btn:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.upload-btn:disabled{background:#6c757d;cursor:not-allowed}.reset-btn{background:#6c757d;color:#fff}.reset-btn:hover:not(:disabled){background:#545b62}.error-message{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;display:flex;gap:10px;margin-bottom:20px;padding:15px}.error-icon{font-size:18px}.upload-results{background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;padding:25px}.results-header h3{color:#155724;font-size:22px;margin-bottom:20px}.summary-stats{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:25px}.stat-item{background:#fff;border-left:4px solid #6c757d;border-radius:8px;padding:15px;text-align:center}.stat-item.success{border-left-color:#28a745}.stat-item.skipped{border-left-color:#ffc107}.stat-item.error{border-left-color:#dc3545}.stat-number{color:#2c3e50;display:block;font-size:24px;font-weight:700}.stat-label{color:#6c757d;display:block;font-size:12px;margin-top:4px;text-transform:uppercase}.payment-breakdown{background:#fff;border-radius:8px;margin-bottom:20px;padding:20px}.payment-breakdown h4{color:#2c3e50;margin-bottom:15px}.breakdown-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.breakdown-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;gap:8px;padding:10px}.breakdown-icon{font-size:18px}.breakdown-label{color:#2c3e50;font-weight:500}.breakdown-value{color:#007bff;font-weight:700;margin-left:auto}.condition-info{background:#fff;border-radius:8px;margin-bottom:20px;padding:20px}.condition-info h4{color:#2c3e50;margin-bottom:10px}.condition-info p{background:#f8f9fa;border-radius:4px;color:#6c757d;font-family:monospace;margin:0;padding:10px}.payment-rules-list{font-size:.85rem;list-style-type:disc;margin-top:8px;padding-left:20px}.payment-rules-list li{font-family:monospace;margin-bottom:4px}.employee-details-list{list-style-type:none;margin:0;padding:0}.employee-details-list .detail-item{background:#f8f9fa;border-left:4px solid #6c757d;border-radius:6px;margin-bottom:8px;padding:12px}.employee-details-list .detail-item.status-updated{border-left-color:#28a745}.employee-details-list .detail-item.status-error,.employee-details-list .detail-item.status-not_found{border-left-color:#dc3545}.employee-details-list .detail-item.status-skipped_payment_method{border-left-color:#ffc107}.employee-details-list .detail-item.status-no_payroll_record{border-left-color:#dc3545}.employee-details-list .detail-item.status-undefined{border-left-color:#28a745}.employee-details-list .employee-name{color:#2c3e50;font-weight:600;margin-bottom:4px}.employee-details-list .status-badge{background:#0000;color:#6c757d;display:inline-block;font-size:14px;padding:0;text-transform:none}.employee-details-list .payment-method-rule{color:#6c757d;font-size:13px;font-style:italic;margin-top:4px}.employee-details-list .more-records{color:#6c757d;font-style:italic;padding:8px;text-align:center}.sample-results{background:#fff;border-radius:8px;padding:20px}.sample-results h4{color:#2c3e50;margin-bottom:15px}.results-table{overflow-x:auto}.results-table table{border-collapse:collapse;width:100%}.results-table td,.results-table th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left}.results-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.results-table tr.status-updated{background:#f8fff9}.results-table tr.status-skipped_payment_method{background:#fffbf0}.results-table tr.status-not_found{background:#fff5f5}.status-badge{border-radius:4px;font-size:11px;font-weight:600;padding:4px 8px;text-transform:uppercase}.status-badge.updated{background:#d4edda;color:#155724}.status-badge.skipped_payment_method{background:#fff3cd;color:#856404}.status-badge.error,.status-badge.not_found{background:#f8d7da;color:#721c24}.status-badge.unknown{background:#e2e8f0;color:#475569}@media (max-width:768px){.form-row,.rules-grid{grid-template-columns:1fr}.summary-stats{grid-template-columns:repeat(2,1fr)}.breakdown-grid{grid-template-columns:1fr}.button-group{flex-direction:column}}