.appContent{transition:margin-left .3s cubic-bezier(.4,0,.2,1);padding:1.5rem;display:flex;flex-direction:column;min-height:100vh;transition:all .5s ease;margin-top:69px}@media(max-width:768px){.appContent{padding:1rem;margin-left:0!important}.swal2-popup{width:85%!important}}*{box-sizing:border-box;margin:0;padding:0}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.logo{height:50%;object-fit:cover}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%;max-width:420px;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2)}.login-header{text-align:center;margin-bottom:32px}.logo-container{width:50%;height:50%;margin:16px auto}.logo-text{color:#fff;font-size:18px;font-weight:700;letter-spacing:-.5px}.login-title{color:#1a202c;font-size:28px;font-weight:700;margin-bottom:8px;letter-spacing:-.5px}.login-subtitle{color:#718096;font-size:16px;font-weight:400}.login-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{color:#2d3748;font-size:14px;font-weight:600;letter-spacing:.025em}.input-container{position:relative}.form-input{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:12px;font-size:16px;color:#2d3748;background-color:#f7fafc;transition:all .2s ease-in-out;outline:none}.form-input:focus{border-color:#667eea;background-color:#fff;box-shadow:0 0 0 3px #667eea1a}.form-input::placeholder{color:#a0aec0}.error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background-color:#fed7d7;border:1px solid #feb2b2;border-radius:8px;color:#c53030;font-size:14px;font-weight:500}.error-icon{font-size:16px}.login-button{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease-in-out;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #667eea4d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-button.loading{pointer-events:none}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.login-footer{text-align:center;margin-top:32px;padding-top:24px;border-top:1px solid #e2e8f0}.login-footer p{color:#718096;font-size:14px}@media(max-width:480px){.login-container{padding:16px}.login-card{padding:32px 24px}.login-title{font-size:24px}.login-subtitle{font-size:14px}}.login-button:focus-visible{outline:2px solid #667eea;outline-offset:2px}.form-input:focus-visible{outline:none}@media(prefers-contrast:high){.login-card{border:2px solid #000}.form-input{border-color:#000}.login-button{background:#000}}@media(prefers-reduced-motion:reduce){.login-button,.form-input,.loading-spinner{transition:none;animation:none}}.table-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;overflow:hidden;margin:24px 0}.table-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.table-title-section{display:flex;align-items:center;gap:16px}.table-title{font-size:24px;font-weight:700;margin:0;letter-spacing:-.025em}.table-count{background:#fff3;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:500}.table-actions{display:flex;align-items:center;gap:16px}.btn-primary{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-primary:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.table-controls{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.items-per-page{display:flex;align-items:center;gap:8px;font-size:14px;color:#64748b}.items-select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;transition:border-color .2s ease}.items-select:focus{outline:none;border-color:#667eea}.table-row{cursor:pointer}.table-row.selected-row{background-color:#e0e7ff!important}.table-actions-global{display:flex;align-items:center;gap:12px;padding:12px 32px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.table-actions-global .btn-action{display:flex;align-items:center;gap:6px;padding:14px;border-radius:6px;font-size:14px;transition:all .2s ease}.table-wrapper{overflow-x:auto;max-height:600px;overflow-y:auto}.table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px}.table thead{background:#f1f5f9;position:sticky;top:0;z-index:10}.table th{padding:16px 24px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e2e8f0;-webkit-user-select:none;user-select:none}.table th.sortable{cursor:pointer;transition:background-color .2s ease}.table th.sortable:hover{background:#e2e8f0}.th-content{display:flex;align-items:center;justify-content:space-between;gap:8px}.sort-indicators{display:flex;flex-direction:column;gap:1px}.sort-arrow{font-size:8px;color:#9ca3af;transition:color .2s ease}.sort-arrow.active{color:#667eea}.table tbody tr{transition:all .2s ease}.table tbody tr:hover{background:#f8fafc}.table tbody tr:nth-child(2n){background:#fafbfc}.table tbody tr:nth-child(2n):hover{background:#f1f5f9}.table td{padding:16px 24px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.cell-content{color:#374151;line-height:1.5}.action-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn-action{display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-deactivate{background:#fee2e2;color:#dc2626}.btn-deactivate:hover{background:#fecaca;transform:translateY(-1px)}@media(max-width:1024px){.table-header{padding:20px 24px}.table-controls{padding:14px 24px}.pagination-container{padding:18px 24px}.table th,.table td{padding:14px 20px}.search-input{width:220px}}@media(max-width:768px){.table-container{margin:16px 0;border-radius:8px}.table-header{flex-direction:column;gap:16px;align-items:stretch;padding:16px 20px}.table-title-section{flex-direction:column;align-items:flex-start;gap:8px}.table-title{font-size:20px}.search-container,.search-input{width:100%}.btn-primary{width:100%;justify-content:center}.table-controls{flex-direction:column;gap:12px;align-items:flex-start;padding:12px 20px}.table-wrapper{max-height:500px}.table{min-width:500px}.table th,.table td{padding:12px 16px;font-size:13px}.action-buttons{gap:6px}.btn-action{width:32px;height:32px}.pagination-container{flex-direction:column;gap:16px;align-items:center;padding:16px 20px}.pagination-info{font-size:13px;text-align:center}.pagination-controls{flex-wrap:wrap;justify-content:center;gap:12px}.pagination-btn{padding:8px 12px;font-size:13px}.page-numbers{gap:6px}.page-number{width:32px;height:32px;font-size:13px}.table-actions-global .btn-action{padding:0;width:40px;height:40px}}@media(max-width:768px){.table-container{margin:12px 0}.table-header{padding:12px 16px}.table-title{font-size:18px}.table-count{font-size:12px;padding:3px 10px}.search-input{padding:10px 14px 10px 40px;font-size:13px}.search-icon{left:10px}.btn-primary{padding:10px 16px;font-size:14px}.table-controls{padding:10px 16px}.items-per-page{font-size:13px}.items-select{padding:5px 10px;font-size:13px}.table{min-width:400px;font-size:12px}.table th,.table td{padding:10px 12px;font-size:12px}.action-buttons{gap:4px}.btn-action{width:28px;height:28px}.btn-action svg{width:14px;height:14px}.pagination-container{padding:12px 16px}.pagination-info{font-size:12px}.pagination-btn{padding:6px 10px;font-size:12px}.page-number{width:28px;height:28px;font-size:12px}.loading-spinner{width:32px;height:32px;border-width:3px}.loading-container{padding:48px 16px;font-size:14px}}@media(max-width:768px)and (orientation:landscape){.table-wrapper{max-height:300px}.table-header{flex-direction:row;justify-content:space-between}.table-actions{flex-direction:row}.btn-primary{width:auto}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .4s cubic-bezier(.4,0,.2,1)}.modal-container{background:linear-gradient(145deg,#fff,#f0f4ff);border-radius:24px;box-shadow:0 30px 60px -12px #0000004d,0 0 0 1px #ffffffe6,0 0 80px #667eea33;width:90%;max-width:900px;max-height:90vh;overflow:hidden;animation:slideIn .5s cubic-bezier(.34,1.56,.64,1);position:relative}.modal-container.audit-modal{width:100%;max-width:1000px}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:2rem 2rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.3);background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);position:relative;overflow:hidden}.modal-header:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);animation:shimmer 3s infinite}.modal-title{font-size:1.75rem;font-weight:800;margin:0;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.2);letter-spacing:-.02em;position:relative;z-index:1}.modal-close-btn{background:#ffffff40;border:2px solid rgba(255,255,255,.3);border-radius:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:1;font-size:1.5rem}.modal-close-btn:hover:not(:disabled){background:#ffffff59;transform:scale(1.1) rotate(90deg);box-shadow:0 8px 20px #0000004d}.modal-close-btn:active{transform:scale(.95)}.modal-form{padding:2rem;overflow-y:auto;max-height:calc(90vh - 140px)}.modal-flex{display:flex;gap:20px;margin-bottom:10px;align-items:center;flex-direction:row;width:100%}.modal-flex .form-grid{grid-template-columns:1fr;padding:1.5rem;background:linear-gradient(135deg,#f8fafc,#e8f0fe);border-radius:18px;border:2px solid rgba(102,126,234,.2);width:100%;justify-self:start;align-self:start;box-shadow:0 4px 12px #667eea14}@media(max-width:640px){.form-grid{grid-template-columns:1fr;gap:1rem}}.row{position:relative;display:flex;align-items:center}.row .see-password-btn{position:absolute;top:50%;right:1rem;color:#6b7280;transform:translateY(-50%)}.form-label{font-weight:700;color:#1e293b;font-size:.875rem;letter-spacing:.025em;text-transform:uppercase}.form-input{padding:1rem 1.25rem;border:2px solid #e5e7eb;border-radius:14px;font-size:.9rem;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;color:#374151;box-shadow:0 2px 8px #0000000a}textarea.form-input{resize:vertical}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea26,0 4px 16px #667eea33;transform:translateY(-2px)}.tabs-container{display:flex;gap:8px;margin-bottom:1.5rem;overflow-x:auto;border-bottom:2px solid #e5e7eb}.tab-button{padding:.75rem 1.5rem;font-weight:600;font-size:.875rem;white-space:nowrap;color:#64748b;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .3s ease;position:relative}.tab-button.active{border-bottom-color:#667eea;color:#667eea;background:#667eea14}.tab-button.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;animation:slideTab .3s ease}@keyframes slideTab{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tab-button:disabled{opacity:.6;cursor:not-allowed}.form-input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.error-message{color:#ef4444;font-size:.75rem;font-weight:600;margin-top:.25rem;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.color-input-container{display:flex;align-items:center;gap:.75rem;position:relative}.color-picker{width:54px;height:48px;border:3px solid #e5e7eb;border-radius:14px;cursor:pointer;background:none;transition:all .3s ease;box-shadow:0 4px 12px #0000001a}.color-picker:hover{transform:scale(1.08);box-shadow:0 8px 20px #0003;border-color:#667eea}.color-text-input{flex:1;padding-right:3rem}.color-icon{position:absolute;right:1rem;color:#9ca3af;pointer-events:none}.file-input-container{display:flex;gap:.75rem;align-items:stretch}.file-upload-btn{display:flex;align-items:center;gap:.5rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:14px;cursor:pointer;font-size:.875rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 4px 12px #667eea66}.file-upload-btn:hover{transform:translateY(-3px);box-shadow:0 12px 30px #667eea80;background:linear-gradient(135deg,#764ba2,#667eea)}.file-upload-btn:active{transform:translateY(-1px)}.file-input-hidden{display:none}.preview-section{margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,#f8fafc,#e8f0fe);border-radius:20px;border:2px solid rgba(102,126,234,.2);box-shadow:0 8px 24px #667eea1a}.preview-title{font-size:1.125rem;font-weight:700;color:#1e293b;margin:0 0 1.5rem;text-transform:uppercase;letter-spacing:.05em}.menu-preview{padding:1.5rem;border-radius:16px;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 20px #0000001f}.menu-preview:hover{transform:translateY(-4px);box-shadow:0 16px 40px #0000002e}.preview-content{display:flex;align-items:center;gap:1rem}.preview-logo{width:48px;height:48px;border-radius:12px;overflow:hidden;background:#ffffff4d;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026}.schedule-designer{padding:2rem;background:linear-gradient(135deg,#f8fafc,#e8f0fe);border-radius:20px;border:2px solid rgba(102,126,234,.2);margin-bottom:2rem;box-shadow:0 8px 24px #667eea1a}.schedule-title{font-size:1.125rem;font-weight:700;color:#1e293b;margin:0 0 1.5rem;text-transform:uppercase;letter-spacing:.05em}.schedule-days{display:flex;flex-direction:column;gap:1rem}.schedule-day-row{display:grid;grid-template-columns:120px 1fr auto;gap:1rem;align-items:center;background:#fff;padding:1.25rem;border-radius:16px;border:2px solid #e5e7eb;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000000d}.schedule-day-row:hover{transform:translate(4px);box-shadow:0 4px 16px #667eea26}.schedule-day-row.active{border-color:#667eea;box-shadow:0 6px 20px #667eea33;background:linear-gradient(135deg,#fff,#f0f4ff)}.schedule-day-checkbox{display:flex;align-items:center;gap:.75rem;cursor:pointer}.schedule-day-checkbox input[type=checkbox]{width:22px;height:22px;cursor:pointer;accent-color:#667eea}.schedule-day-label{font-weight:700;color:#1e293b;font-size:.875rem;-webkit-user-select:none;user-select:none}.schedule-time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.schedule-time-group{display:flex;flex-direction:column;gap:.25rem}.schedule-time-label{font-size:.75rem;font-weight:700;color:#64748b;text-transform:uppercase}.schedule-time-input{padding:.625rem;border:2px solid #e5e7eb;border-radius:10px;font-size:.875rem;transition:all .3s ease}.schedule-time-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea26}.schedule-time-input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.schedule-remove-btn{background:#ef44441a;border:2px solid rgba(239,68,68,.2);border-radius:10px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ef4444;transition:all .3s ease}.schedule-remove-btn:hover:not(:disabled){background:#ef4444;color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #ef444466}.schedule-remove-btn:disabled{opacity:.3;cursor:not-allowed}.permissions-section{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,#f8fafc,#e8f0fe);border-radius:20px;border:2px solid rgba(102,126,234,.2);width:100%;box-shadow:0 8px 24px #667eea1a}.permissions-list{display:flex;flex-direction:column;gap:1rem}.permission-item{position:relative;background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014;border:2px solid rgba(226,232,240,.8);transition:all .3s cubic-bezier(.4,0,.2,1)}.permission-item:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea26;border-color:#667eea4d}.permission-header{display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.permission-name{font-weight:700;color:#1e293b;font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.logo-placeholder{font-size:1.5rem}.preview-name{color:#fff;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3);font-size:1.125rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:2rem;border-top:2px solid rgba(226,232,240,.8)}.remove-permission-btn{position:absolute;right:2%;top:5%;background:#ef44441a;border:2px solid rgba(239,68,68,.2);border-radius:10px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ef4444;transition:all .3s ease}.remove-permission-btn:hover:not(:disabled){background:#ef4444;color:#fff;transform:scale(1.1) rotate(90deg);box-shadow:0 4px 12px #ef444466}.permission-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;width:fit-content;margin:0 auto}.permission-toggle{display:inline-block;cursor:pointer}.permission-toggle input[type=checkbox]{display:none}.permission-toggle span{display:inline-block;padding:.625rem 1rem;border-radius:12px;border:2px solid #d1d5db;background-color:#f9fafb;color:#374151;font-size:.9rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:.5rem}.permission-toggle span svg{width:14px;height:14px}.permission-toggle:hover span{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.permission-toggle.read input[type=checkbox]:checked+span{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff;box-shadow:0 4px 16px #3b82f666}.permission-toggle.write input[type=checkbox]:checked+span{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff;box-shadow:0 4px 16px #10b98166}.permission-toggle.delete input[type=checkbox]:checked+span{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#ef4444;color:#fff;box-shadow:0 4px 16px #ef444466}.no-permissions{text-align:center;color:#9ca3af;font-style:italic;padding:2.5rem;background:#ffffff80;border-radius:16px;border:2px dashed #d1d5db}.company-list{display:flex;flex-direction:column;gap:12px}.company-item{display:flex;flex-direction:column;gap:4px}.company-label{font-size:.875rem;font-weight:600}.btn-primary,.btn-secondary{padding:1rem 2rem;border-radius:14px;font-weight:700;font-size:.875rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:.625rem;border:none;text-transform:uppercase;letter-spacing:.05em}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 6px 20px #667eea66}.btn-primary:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 35px #667eea80;background:linear-gradient(135deg,#764ba2,#f093fb)}.btn-primary:active{transform:translateY(-1px)}.btn-secondary{background:#fff;color:#374151;border:2px solid #e5e7eb;box-shadow:0 2px 8px #0000000d}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#667eea;color:#667eea;transform:translateY(-2px);box-shadow:0 4px 16px #667eea33}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.loading-spinner-small{width:18px;height:18px;border:3px solid rgba(255,255,255,.3);border-top:3px solid white;border-radius:50%;animation:spin .8s linear infinite}.loading-spinner{width:48px;height:48px;border:4px solid rgba(102,126,234,.2);border-top:4px solid #667eea;border-radius:50%;animation:spin .8s linear infinite;margin:3rem auto;box-shadow:0 4px 12px #667eea4d}.audit-metadata{background:linear-gradient(135deg,#f8fafc,#e8f0fe);border-radius:20px;padding:2rem;margin-bottom:2rem;border:2px solid rgba(102,126,234,.2);box-shadow:0 8px 24px #667eea1a}.metadata-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.metadata-item{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:#fff;border-radius:12px;border:2px solid rgba(226,232,240,.6);transition:all .3s ease}.metadata-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea26;border-color:#667eea66}.metadata-item.full-width{grid-column:1 / -1}.metadata-label{font-size:.75rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:.5rem}.metadata-label svg{color:#667eea}.metadata-value{font-size:1rem;color:#1e293b;font-weight:600}.metadata-value.success{color:#10b981;font-weight:700}.metadata-value.error{color:#ef4444;font-weight:700}.data-comparison{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}.tooltip{position:relative;display:inline-block;cursor:pointer;font-weight:700;margin-left:4px;color:#667eea}.tooltip-content{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#fff;padding:1rem;border-radius:12px;border:2px solid #667eea;box-shadow:0 8px 24px #667eea4d;z-index:9999;white-space:nowrap;display:none;animation:tooltipFade .2s ease}@keyframes tooltipFade{0%{opacity:0;transform:translate(-50%) translateY(-5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tooltip:hover .tooltip-content{display:block}.tooltip-content{padding:12px 16px}.tooltip-content table{border-collapse:separate;border-spacing:8px 6px}.tooltip-content th,.tooltip-content td{padding:6px 8px;text-align:left}@media(max-width:768px){.data-comparison,.metadata-grid{grid-template-columns:1fr}}.data-section{background:#fff;border-radius:16px;padding:2rem;border:2px solid #e5e7eb;box-shadow:0 4px 16px #00000014;transition:all .3s ease}.data-section:hover{border-color:#667eea4d;box-shadow:0 8px 24px #667eea1f}.section-title{font-size:1.125rem;font-weight:800;color:#1e293b;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:3px solid #667eea;text-transform:uppercase;letter-spacing:.05em}.image-preview{margin-bottom:2rem;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#f8fafc,#e8f0fe);border-radius:16px;padding:1.5rem;border:3px dashed rgba(102,126,234,.3)}.audit-image{max-width:180px;max-height:180px;object-fit:contain;border-radius:12px;box-shadow:0 8px 24px #00000026;transition:all .3s ease}.audit-image:hover{transform:scale(1.05);box-shadow:0 12px 32px #0003}.data-fields{display:flex;flex-direction:column;gap:1rem}.data-field{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:linear-gradient(135deg,#f9fafb,#f0f4ff);border-radius:12px;border:2px solid rgba(226,232,240,.8);transition:all .3s ease}.data-field:hover{border-color:#667eea66;transform:translate(4px)}.field-label{font-size:.75rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.field-value{font-size:.9rem;color:#1e293b;word-break:break-word;font-weight:600}.field-value-json{font-size:.8rem;color:#1e293b;background:#fff;padding:1rem;border-radius:8px;border:2px solid #e5e7eb;overflow-x:auto;font-family:Courier New,monospace;margin:0;box-shadow:inset 0 2px 4px #0000000d}.error-banner{background:linear-gradient(135deg,#fee2e2,#fecaca);border:3px solid #ef4444;border-radius:16px;padding:1.5rem;margin-bottom:2rem;color:#991b1b;font-weight:700;text-align:center;box-shadow:0 4px 16px #ef444433;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.9}}.see-password-btn{right:3rem;background:none;top:60%;border:none;cursor:pointer;color:#6b7280;font-size:1.5rem;display:flex;align-items:center;gap:.25rem;transition:all .3s ease}.see-password-btn:hover{color:#667eea;transform:scale(1.1)}@media(max-width:640px){.modal-container{width:95%;margin:1rem;max-width:none}.modal-header{padding:1.5rem}.modal-title{font-size:1.25rem}.modal-form{padding:1.5rem}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%;justify-content:center}.permission-actions{flex-direction:column;gap:.75rem}.audit-modal{width:95%;margin:1rem}.audit-metadata,.data-section{padding:1.25rem}.audit-image{max-width:120px;max-height:120px}.metadata-grid{gap:1rem}.schedule-day-row{grid-template-columns:1fr;gap:1rem}}.aguinaldo-summary{margin-top:20px;padding:20px;background:#f8f9fc;border-radius:12px;border:1px solid #e2e5ec}.aguinaldo-summary-header{display:flex;justify-content:space-between;font-size:1.1rem;font-weight:600;background:#fff;padding:15px 20px;border-radius:10px;border:1px solid #e2e5ec;margin-bottom:15px}.aguinaldo-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:15px}.aguinaldo-card{background:#fff;padding:15px 18px;border-radius:10px;border:1px solid #e2e5ec;box-shadow:0 2px 4px #0000000a;transition:.3s ease}.aguinaldo-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px #00000014}.aguinaldo-label{font-size:.85rem;color:#6c757d}.aguinaldo-value{font-size:1rem;font-weight:600;color:#333;margin-bottom:8px}.sidebar{position:fixed;left:0;top:0;height:calc(100vh - 70px);width:280px;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid rgba(255,255,255,.1);transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;margin-top:70px}.sidebar.collapsed{width:80px}.companyLabel{color:#fff;margin-bottom:.25rem;text-align:center}.companySelectContainer{margin-top:50px;display:flex;flex-direction:column;text-align:center;width:100%;margin-bottom:1rem;transition:opacity .3s ease}.companySelectContainer.hidden{opacity:0;transition:opacity .5s ease;pointer-events:none}.companySelect{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.875rem;transition:all .2s ease;background:#fff;color:#374151;margin:0 auto;width:70%}.sidebarContainer{display:flex;flex-direction:column;height:100%;padding:1.5rem 0;overflow-y:auto}.sidebar.collapsed .logoSection{justify-content:center}.logo-sidebar{max-width:40px;max-height:40px;border-radius:12px;object-fit:cover;box-shadow:0 4px 12px #0003}.logo-image{width:40px;height:40px;object-fit:cover;border-radius:8px}.logoSection{display:flex;flex-direction:column;align-items:center;width:100%;margin-top:20px;margin-bottom:20px;gap:12px}.brandText{font-size:1.25rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);white-space:nowrap;opacity:1;transition:opacity .3s ease}.brandText.hidden{opacity:0;transition:opacity 0s ease;pointer-events:none}.toggleButton{background:#ffffff1a;border:none;color:#fff;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:0 auto}.toggleButton:hover{background:#fff3;transform:scale(1.05)}.menuList{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem;flex:1;padding:0 1rem}.sidebar.collapsed .menuList{padding:0 .5rem}.menuItem{margin:0}.menuLink{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;text-decoration:none;color:#ffffffe6;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:500;position:relative;overflow:hidden;min-height:52px;width:100%;box-sizing:border-box}.sidebar.collapsed .menuLink{padding:1rem;justify-content:center;gap:0}.logoutButton{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit}.menuLink:hover{background:#ffffff26;transform:translate(4px);color:#fff}.shareIconLink{display:flex;align-items:center;justify-content:center;margin-left:auto;color:#ffffffb3;text-decoration:none;transition:color .3s ease,transform .3s ease}.shareIconLink:hover{color:#fff;transform:scale(1.1)}.shareIcon{font-size:1rem}.sidebar.collapsed .menuLink{justify-content:center;gap:.5rem}.sidebar.collapsed .shareIconLink{margin-left:0}.sidebar.collapsed .menuLink:hover{transform:scale(1.1)}.menuLink:active{transform:translate(2px)}.sidebar.collapsed .menuLink:active{transform:scale(1.05)}.menuIcon{font-size:1.25rem;opacity:.9;min-width:20px;min-height:20px;transition:all .3s ease;flex-shrink:0}.menuLink:hover .menuIcon{opacity:1;transform:scale(1.1)}.menuText{font-size:.95rem;white-space:wrap;opacity:1;transition:opacity .3s ease}.sidebar.collapsed .menuLink{position:relative}.sidebar.collapsed .menuLink:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#000000e6;color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.875rem;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease;margin-left:.5rem;z-index:1001;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.sidebar.collapsed .menuLink:hover:after{opacity:1;visibility:visible}.hamburger-button{position:fixed;top:.5rem;left:1rem;z-index:1100;width:48px;height:48px;border-radius:12px;border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:all .3s ease}.hamburger-button:hover{transform:scale(1.05);box-shadow:0 6px 16px #0003}.hamburger-button:active{transform:scale(.95)}.sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:999;animation:fadeIn .3s ease}@media(max-width:768px){.sidebar{width:280px;transform:translate(-100%);box-shadow:none}.sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 20px #0000004d}.sidebar.mobile-closed{transform:translate(-100%)}.sidebar.collapsed{width:280px}.sidebarContainer{padding:1rem}.logoSection{margin-top:60px}.menuList{padding:0 1rem}.menuLink{padding:1rem 1.5rem;justify-content:flex-start;gap:1rem}.menuText{display:inline;opacity:1}.sidebar .menuLink:after{display:none}.toggleButton{display:none}}@media(max-width:480px){.sidebar{width:85vw;max-width:300px}.logoSection{gap:.75rem;margin-top:60px}.logo-image{width:36px;height:36px}.brandText{font-size:1.1rem}.menuLink{padding:.875rem 1.25rem;min-height:48px}.menuIcon{font-size:1.125rem}.menuText{font-size:.9rem}.hamburger-button{width:44px;height:44px;top:.75rem;left:.75rem}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.menuText{animation:slideIn .3s ease}.sidebarContainer::-webkit-scrollbar{width:4px}.sidebarContainer::-webkit-scrollbar-track{background:#ffffff1a}.sidebarContainer::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.sidebarContainer::-webkit-scrollbar-thumb:hover{background:#ffffff80}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background:linear-gradient(145deg,#fff,#f8fafc);border-radius:20px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #fffc;width:90%;max-width:900px;max-height:90vh;overflow:hidden;animation:slideIn .3s ease-out;position:relative}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:2rem 2rem 1rem;border-bottom:1px solid rgba(226,232,240,.8);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-title{font-size:1.5rem;font-weight:700;margin:0;background:linear-gradient(135deg,#fff,#e2e8f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-close-btn{background:#fff3;border:none;border-radius:12px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-close-btn:hover:not(:disabled){background:#ffffff4d;transform:scale(1.05)}.modal-close-btn:disabled{opacity:.5;cursor:not-allowed}.modal-form{padding:2rem;overflow-y:auto;max-height:calc(90vh - 120px)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-weight:600;color:#374151;font-size:.875rem;letter-spacing:.025em}.form-label.required:after{content:" *";color:#ef4444}.form-input{padding:.875rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.875rem;transition:all .2s ease;background:#fff;color:#374151;font-family:inherit}textarea.form-input{resize:vertical;min-height:80px}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;transform:translateY(-1px)}.form-input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.error-message{color:#ef4444;font-size:.75rem;font-weight:500;margin-top:.25rem}.radio-group{display:flex;gap:1rem;flex-wrap:wrap}.radio-option{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s ease;background:#fff}.radio-option:hover{border-color:#667eea;background:#f8fafc}.radio-option input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.radio-option.selected{border-color:#667eea;background:#667eea1a}.radio-option.disabled{opacity:.5;cursor:not-allowed}.checkbox-wrapper{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:2px solid #e5e7eb;border-radius:12px;background:#fff;transition:all .2s ease}.checkbox-wrapper:hover{border-color:#667eea;background:#f8fafc}.checkbox-wrapper input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.checkbox-label{font-size:.875rem;color:#374151;cursor:pointer}.tabs-container{display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;border-bottom:2px solid #e5e7eb;padding-bottom:0}.tab-button{padding:.875rem 1.5rem;font-weight:600;font-size:.875rem;white-space:nowrap;transition:all .2s ease;background:transparent;border:none;border-bottom:3px solid transparent;color:#6b7280;cursor:pointer;position:relative;bottom:-2px}.tab-button:hover:not(:disabled){color:#667eea;background:#667eea0d}.tab-button.active{border-bottom-color:#667eea;color:#667eea}.tab-button:disabled{opacity:.5;cursor:not-allowed}.tab-content{animation:fadeIn .3s ease-out}.preview-section{margin-bottom:1.5rem;padding:1.5rem;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:16px;border:1px solid rgba(226,232,240,.8)}.preview-title{font-size:1rem;font-weight:600;color:#374151;margin:0 0 1rem}.employee-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.employee-info h3{font-size:1.125rem;font-weight:600;color:#374151;margin:0 0 .25rem}.employee-info p{font-size:.875rem;color:#6b7280;margin:0}.status-badge{padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.image-preview{margin-top:1rem;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:12px;padding:1rem;border:2px dashed #d1d5db}.audit-image{max-width:150px;max-height:150px;object-fit:contain;border-radius:8px;box-shadow:0 4px 12px #0000001a}.salary-table-container{background:#fff;border-radius:12px;padding:1.5rem;border:1px solid #e5e7eb;margin-bottom:1.5rem}.salary-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.salary-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.salary-table th{padding:.875rem;text-align:left;font-weight:600;font-size:.875rem;border-bottom:2px solid #e5e7eb}.salary-table td{padding:.75rem;border-bottom:1px solid #e5e7eb;font-size:.875rem}.salary-table tbody tr:hover{background:#f8fafc}.salary-table input{width:100%;padding:.5rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem}.salary-table input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.salary-table select{width:100%;padding:.5rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;background:#fff}.salary-table select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.table-action-btn{padding:.5rem;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.table-action-btn.delete{background:#ef44441a;color:#ef4444}.table-action-btn.delete:hover:not(:disabled){background:#ef444433;transform:scale(1.05)}.table-action-btn.add{background:#10b9811a;color:#10b981}.table-action-btn.add:hover:not(:disabled){background:#10b98133;transform:scale(1.05)}.table-action-btn:disabled{opacity:.5;cursor:not-allowed}.add-row-btn{width:100%;padding:.875rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.add-row-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #10b9814d}.add-row-btn:disabled{opacity:.5;cursor:not-allowed}.empty-table-message{text-align:center;color:#9ca3af;font-style:italic;padding:2rem;background:#ffffff80;border-radius:12px;border:2px dashed #d1d5db;margin-bottom:1rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid rgba(226,232,240,.8);margin-top:2rem}.btn-primary,.btn-secondary{padding:.875rem 1.5rem;border-radius:12px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;border:none}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.btn-secondary{background:#f8fafc;color:#374151;border:2px solid #e5e7eb}.btn-secondary:hover:not(:disabled){background:#f1f5f9;border-color:#d1d5db;transform:translateY(-1px)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner{width:40px;height:40px;border:4px solid rgba(102,126,234,.3);border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:2rem auto}.text-sm{font-size:.875rem}.text-gray-600{color:#6b7280}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:.5rem}.mt-4{margin-top:1rem}@media(max-width:768px){.form-grid{grid-template-columns:1fr;gap:1rem}.modal-container{width:95%;margin:1rem;max-width:none}.modal-header,.modal-form{padding:1.5rem}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%;justify-content:center}.radio-group{flex-direction:column}.salary-table-container{overflow-x:auto}}.cards-controls{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.date-filter-container{display:flex;align-items:center;gap:16px;padding:16px 32px;background:#fafbfc;border-bottom:1px solid #e2e8f0}.date-filter-group{display:flex;align-items:center;gap:8px}.date-filter-label{font-size:14px;font-weight:500;color:#64748b;white-space:nowrap}.date-filter-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;cursor:pointer;transition:all .2s ease;min-width:150px}.date-filter-input:hover{border-color:#9ca3af}.date-filter-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.date-filter-clear{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#dc2626;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.date-filter-clear:hover{background:#fee2e2;border-color:#dc2626;transform:translateY(-1px)}.cards-wrapper{padding:24px 32px;min-height:400px}.first-card-section{margin-bottom:32px;padding-bottom:24px;border-bottom:3px solid #667eea;position:relative}.first-card-section:after{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 16px;border-radius:12px;font-size:11px;font-weight:700;letter-spacing:.1em;box-shadow:0 2px 8px #667eea4d}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.card-first{border:3px solid #667eea;box-shadow:0 8px 24px #667eea40;transform:scale(1.02)}.card-first:hover{border-color:#764ba2;box-shadow:0 12px 32px #667eea59;transform:scale(1.03)}.card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.card-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.card-title-wrapper{flex:1;display:flex;flex-direction:column;gap:4px}.card-title{font-size:18px;font-weight:700;margin:0;letter-spacing:-.025em;word-break:break-word}.card-subtitle{font-size:12px;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.05em}.expand-button{background:#fff3;border:none;border-radius:8px;padding:8px;color:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.expand-button:hover{background:#ffffff4d;transform:scale(1.1)}.card-content{padding:20px;background:#fafbfc;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.card-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.card-field{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#fff;border-radius:6px;border:1px solid #e2e8f0;gap:12px}.field-label{font-weight:600;color:#64748b;font-size:13px;flex-shrink:0}.field-value{color:#374151;font-size:14px;text-align:right;word-break:break-word;display:flex;align-items:center;justify-content:flex-end;gap:8px}.card-actions{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid #e2e8f0}.card-actions-row{display:flex;gap:8px;flex-wrap:wrap}.card-export-row{padding-top:4px}.btn-action{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;flex:1;min-width:fit-content;font-size:14px;font-weight:500}.btn-view{background:#dbeafe;color:#2563eb}.btn-view:hover{background:#bfdbfe;transform:translateY(-1px)}.btn-edit{background:#fef3c7;color:#d97706}.btn-edit:hover{background:#fde68a;transform:translateY(-1px)}.btn-delete{background:#fee2e2;color:#dc2626}.btn-delete:hover{background:#fecaca;transform:translateY(-1px)}.btn-activate{background:#e2fee8;color:#26dc63}.btn-activate:hover{background:#c6f6d5;transform:translateY(-1px)}.btn-export{background:#f3e8ff;color:#9333ea}.btn-export:hover{background:#e9d5ff;transform:translateY(-1px)}@media(max-width:1024px){.cards-header{padding:20px 24px}.cards-controls{padding:14px 24px}.date-filter-container{padding:14px 24px;gap:12px}.date-filter-input{min-width:130px}.cards-wrapper{padding:20px 24px}.pagination-container{padding:18px 24px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.first-card-section{margin-bottom:28px;padding-bottom:20px}}@media(max-width:768px){.cards-container{margin:16px 0;border-radius:8px}.cards-header{flex-direction:column;gap:16px;align-items:stretch;padding:16px 20px}.cards-title-section{flex-direction:column;align-items:flex-start;gap:8px}.cards-title{font-size:20px}.search-container,.search-input{width:100%}.cards-controls{flex-direction:column;gap:12px;align-items:flex-start;padding:12px 20px}.date-filter-container{flex-direction:column;align-items:stretch;padding:12px 20px;gap:12px}.date-filter-group{flex-direction:column;align-items:stretch;gap:6px}.date-filter-input{width:100%;min-width:unset}.date-filter-clear{width:100%}.cards-wrapper{padding:16px 20px;min-height:300px}.cards-grid{grid-template-columns:1fr;gap:16px}.first-card-section{margin-bottom:24px;padding-bottom:18px}.first-card-section:after{font-size:10px;padding:3px 12px}.card-first{transform:scale(1.01)}.card-first:hover{transform:scale(1.02)}.card-header{padding:16px}.card-title{font-size:16px}.card-content{padding:16px}.card-actions-row{flex-direction:column}.btn-action{width:100%}.pagination-container{flex-direction:column;gap:16px;align-items:center;padding:16px 20px}.pagination-info{font-size:13px;text-align:center}.pagination-controls{flex-wrap:wrap;justify-content:center;gap:12px}.pagination-btn{padding:8px 12px;font-size:13px}.page-numbers{gap:6px}.page-number{width:32px;height:32px;font-size:13px}}@media(max-width:480px){.cards-container{margin:12px 0}.cards-header{padding:12px 16px}.cards-title{font-size:18px}.cards-count{font-size:12px;padding:3px 10px}.date-filter-container{padding:12px 16px}.date-filter-label{font-size:13px}.date-filter-input{font-size:13px;padding:7px 10px}.date-filter-clear{font-size:13px;padding:7px 12px}.cards-wrapper{padding:12px 16px}.first-card-section{margin-bottom:20px;padding-bottom:16px}.first-card-section:after{font-size:9px;padding:2px 10px}.card-header{padding:14px}.card-title{font-size:15px}.card-subtitle{font-size:11px}.card-content{padding:14px}.card-field{flex-direction:column;align-items:flex-start;gap:6px}.field-value{text-align:left;justify-content:flex-start}.pagination-container{padding:12px 16px}.pagination-info{font-size:12px}.pagination-btn{padding:6px 10px;font-size:12px}.page-number{width:28px;height:28px;font-size:12px}}.navbar{position:fixed;top:0;left:0;right:0;height:70px;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1)}.navbar-container{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 2rem;max-width:100%}.navbar-left{display:flex;align-items:center;gap:1rem}.navbar-title{font-size:1.5rem;font-weight:700;color:#fff;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.3);white-space:nowrap}.navbar-right{display:flex;align-items:center;gap:1rem}.navbar-icon-button{position:relative;background:#ffffff1a;border:none;color:#fff;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.navbar-icon-button:hover{background:#fff3;transform:scale(1.05)}.navbar-icon-button:active{transform:scale(.95)}.navbar-user-button{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#ffffff1a;border:none;color:#fff;border-radius:12px;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:500}.navbar-user-button:hover{background:#fff3;transform:translateY(-2px)}.user-name{font-size:.95rem;white-space:nowrap}.chevron{transition:transform .3s ease}.chevron.open{transform:rotate(180deg)}.navbar-dropdown{position:relative}.dropdown-menu{position:absolute;top:calc(100% + .75rem);right:0;background:linear-gradient(145deg,#fff,#f8fafc);border-radius:16px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #fffc;min-width:280px;overflow:hidden;animation:dropdownSlideIn .3s ease-out;z-index:1000}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:1.5rem;border-bottom:1px solid rgba(226,232,240,.8)}.dropdown-header h3{font-size:1.125rem;font-weight:700;color:#374151;margin:0}.user-info{display:flex;align-items:center;gap:1rem}.user-info>svg{color:#667eea;flex-shrink:0}.user-info h3{font-size:1rem;font-weight:600;color:#374151;margin:0 0 .25rem}.user-info p{font-size:.875rem;color:#6b7280;margin:0}.dropdown-divider{height:1px;background:#e2e8f0cc;margin:.5rem 0}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1.5rem;background:transparent;border:none;color:#374151;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit}.dropdown-item:hover{background:#667eea1a;color:#667eea}.dropdown-item:active{transform:scale(.98)}.dropdown-icon{font-size:1.25rem;opacity:.8}.dropdown-item:hover .dropdown-icon{opacity:1}.logout-item{color:#ef4444}.logout-item:hover{background:#ef44441a;color:#dc2626}.notifications-menu{min-width:320px;max-width:400px}.notifications-list{max-height:400px;overflow-y:auto}.notification-item{padding:1rem 1.5rem;border-bottom:1px solid rgba(226,232,240,.5);cursor:pointer;transition:all .2s ease}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:#667eea0d}.notification-item h4{font-size:.95rem;font-weight:600;color:#374151;margin:0 0 .25rem}.notification-item p{font-size:.875rem;color:#6b7280;margin:0 0 .5rem;line-height:1.4}.notification-time{font-size:.75rem;color:#9ca3af;font-style:italic}.empty-notifications{padding:2rem;text-align:center}.empty-notifications p{color:#9ca3af;font-size:.875rem;margin:0}@media(max-width:768px){.navbar-container{padding:0 1rem}.navbar-title{font-size:1.25rem}.user-name{display:none}.navbar-user-button{padding:.5rem}.dropdown-menu{min-width:260px}.notifications-menu{min-width:280px;right:-1rem}.navbar-left{margin-left:50px}.navbar-title{display:none}}@media(max-width:480px){.navbar-container{padding:0 .75rem}.navbar-title{font-size:1.1rem}.navbar-right{gap:.5rem}.navbar-icon-button{width:36px;height:36px}.dropdown-menu{min-width:calc(100vw - 2rem);right:-.75rem}.notifications-menu{min-width:calc(100vw - 2rem)}}.payroll-modal-container{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:20px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #fffc;width:90%;max-width:1000px;max-height:90vh;overflow:hidden;animation:slideIn .3s ease-out}.payroll-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.payroll-stat-card{padding:1.5rem;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:12px;border:1px solid rgba(226,232,240,.8);transition:all .3s ease}.payroll-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #667eea1a;border-color:#667eea4d}.payroll-stat-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-weight:600}.payroll-stat-value{font-size:1.25rem;font-weight:700;color:#1f2937;line-height:1.2}.payroll-stat-badge{display:inline-block;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;margin-top:.5rem}.payroll-stat-badge.active{background-color:#dcfce7;color:#166534}.payroll-stat-badge.inactive{background-color:#fee2e2;color:#991b1b}.payroll-summary-section{margin-bottom:2rem}.payroll-section-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #667eea;display:flex;align-items:center;gap:.5rem}.payroll-section-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:6px;font-size:.875rem}.payroll-summary-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d;border:1px solid #e5e7eb}.payroll-summary-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.payroll-summary-table th{padding:1rem 1.5rem;text-align:left;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.payroll-summary-table td{padding:1rem 1.5rem;border-bottom:1px solid #f3f4f6;color:#374151;font-size:.875rem}.payroll-summary-table tbody tr:last-child td{border-bottom:none}.payroll-summary-table tbody tr:hover{background-color:#f9fafb}.payroll-total-row{background:linear-gradient(135deg,#f0f4ff,#f5f3ff);font-weight:600}.payroll-amount{font-weight:600;color:#667eea;text-align:right}.payroll-departments-container{display:flex;flex-direction:column;gap:1.5rem}.payroll-department-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;transition:all .3s ease}.payroll-department-card:hover{border-color:#667eea;box-shadow:0 8px 16px #667eea1a}.payroll-department-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f3f4f6}.payroll-department-name{font-size:1rem;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:.75rem}.payroll-department-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.payroll-employees-section{margin-top:1rem}.payroll-employees-title{font-size:.875rem;font-weight:600;color:#6b7280;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.payroll-employees-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.payroll-employee-item{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:10px;padding:1rem;transition:all .2s ease}.payroll-employee-item:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.payroll-employee-id{font-weight:700;color:#667eea;font-size:.875rem;margin-bottom:.5rem}.payroll-employee-position{font-size:.875rem;color:#6b7280;margin-bottom:.75rem;font-weight:500}.payroll-employee-details{display:flex;flex-direction:column;gap:.5rem}.payroll-employee-detail{display:flex;justify-content:space-between;font-size:.8125rem}.payroll-employee-detail-label{color:#6b7280;font-weight:500}.payroll-employee-detail-value{color:#1f2937;font-weight:600}.payroll-empty-state{text-align:center;padding:2rem;color:#9ca3af;font-style:italic;background:#f9fafb;border-radius:12px;border:2px dashed #d1d5db}.payroll-spinner{width:50px;height:50px;border:4px solid rgba(102,126,234,.2);border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:2rem auto}.payroll-modal-content{padding:2rem;overflow-y:auto;max-height:calc(90vh - 140px)}.payroll-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.payroll-item-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem;transition:all .2s ease;opacity:.7}.payroll-item-card.payroll-item-active{opacity:1;border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.payroll-item-description{font-weight:600;color:#1f2937;margin-bottom:.75rem;font-size:.875rem;line-height:1.3}.payroll-item-units{display:flex;justify-content:space-between;font-size:.8125rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6}.payroll-item-label{color:#6b7280;font-weight:500}.payroll-item-value{color:#1f2937;font-weight:600}.payroll-item-bottom{display:flex;flex-direction:column;gap:.5rem}.payroll-item-partial,.payroll-item-total{display:flex;justify-content:space-between;font-size:.8125rem}.payroll-item-total-value{color:#667eea;font-weight:700}.payroll-dept-summary{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:8px;padding:1rem;margin:1rem 0;border:1px solid #e2e8f0}.payroll-dept-summary-title{font-size:.75rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.payroll-items-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.payroll-summary-item{background:#fff;padding:.75rem;border-radius:6px;border:1px solid #e5e7eb}.payroll-summary-item-label{font-size:.75rem;color:#6b7280;margin-bottom:.25rem;font-weight:500}.payroll-summary-item-value{font-size:.875rem;font-weight:700;color:#667eea}.payroll-employee-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:10px;transition:all .3s ease;overflow:hidden}.payroll-employee-card.expanded{border-color:#667eea;box-shadow:0 4px 12px #667eea26}.payroll-employee-header-card{display:flex;align-items:center;justify-content:space-between;padding:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.payroll-employee-header-card:hover{background-color:#667eea0d}.payroll-employee-basic-info{flex:1}.payroll-employee-id{font-weight:700;color:#667eea;font-size:.875rem;margin-bottom:.25rem}.payroll-employee-position{font-size:.875rem;color:#6b7280;font-weight:500}.payroll-employee-expand-btn{display:flex;align-items:center;color:#9ca3af;transition:color .2s ease}.payroll-employee-header-card:hover .payroll-employee-expand-btn{color:#667eea}.payroll-employee-summary{display:flex;gap:1rem;padding:0 1rem 1rem;border-bottom:1px solid #e2e8f0}.payroll-employee-detail{display:flex;align-items:center;gap:.5rem;flex:1}.payroll-employee-detail-label{color:#6b7280;font-weight:500;font-size:.8125rem}.payroll-employee-detail-value{color:#1f2937;font-weight:600;font-size:.875rem}.payroll-employee-details-expanded{padding:1rem;background:#fff;border-top:1px solid #e2e8f0}.payroll-employee-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.payroll-detail-item{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:1px solid #e5e7eb;border-radius:8px;padding:.75rem}.payroll-detail-description{font-weight:600;color:#1f2937;font-size:.8125rem;margin-bottom:.5rem;line-height:1.2}.payroll-detail-row{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.25rem}.payroll-detail-row.payroll-detail-total{padding-top:.5rem;border-top:1px solid #e5e7eb;margin-top:.5rem;font-weight:600}.payroll-detail-label{color:#6b7280;font-weight:500}.payroll-detail-value{color:#1f2937;font-weight:600}.payroll-salary-highlight{color:#16a34a;font-weight:700}.payroll-days-highlight{color:#2563eb}@media(max-width:768px){.payroll-items-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.payroll-stats-grid{grid-template-columns:repeat(2,1fr)}.payroll-employees-grid,.payroll-employee-details-grid{grid-template-columns:1fr}.payroll-items-summary-grid{grid-template-columns:repeat(2,1fr)}.payroll-summary-table th,.payroll-summary-table td{padding:.75rem 1rem;font-size:.8125rem}.payroll-modal-content{padding:1.5rem}}@media(max-width:480px){.payroll-items-grid,.payroll-stats-grid{grid-template-columns:1fr}.payroll-stat-value{font-size:1rem}.payroll-department-header{flex-direction:column;align-items:flex-start}.payroll-employee-summary{flex-direction:column;gap:.5rem}.payroll-employee-details-grid{grid-template-columns:1fr}}.subjects-layout{display:grid;grid-template-columns:320px 1fr;gap:0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;margin:24px 0}.subjects-sidebar{background:#f8fafc;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:24px 32px;background:linear-gradient(135deg,#667eea 0% 100%);border-bottom:none}.sidebar-title{font-size:24px;font-weight:700;margin:0;color:#fff;letter-spacing:-.025em}.faceid-search{padding:16px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0;position:relative}.faceid-search-icon{position:absolute;left:32px;top:50%;transform:translateY(-50%);color:#6b7280;z-index:1}.faceid-search-input{width:100%;padding:12px 16px 12px 44px;border:2px solid transparent;border-radius:8px;font-size:14px;background:#fff;transition:all .2s ease}.faceid-search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.subjects-list{flex:1;overflow-y:auto;background:#fff}.subject-item{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#fff;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:all .2s ease}.subject-item:hover{background:#f8fafc}.subject-item.selected{background:#e0e7ff;border-left:3px solid #667eea}.subject-content{flex:1;min-width:0}.subject-name{font-size:14px;font-weight:500;color:#374151;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-actions{display:flex;gap:6px;margin-left:8px}.action-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.action-icon.delete{color:#dc2626}.action-icon.delete:hover{background:#fee2e2;transform:translateY(-1px)}.action-icon.edit{color:#d97706}.action-icon.edit:hover{background:#fef3c7;transform:translateY(-1px)}.action-icon.save{color:#059669}.action-icon.save:hover{background:#d1fae5;transform:translateY(-1px)}.action-icon.cancel{color:#6b7280}.action-icon.cancel:hover{background:#e5e7eb;transform:translateY(-1px)}.edit-input{width:100%;padding:8px 12px;border:2px solid #667eea;border-radius:6px;font-size:14px;font-weight:500;transition:border-color .2s ease}.edit-input:focus{outline:none;border-color:#5a67d8;box-shadow:0 0 0 3px #667eea1a}.btn-add-subject{display:flex;align-items:center;justify-content:center;padding:10px 16px;margin-top:12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-add-subject:hover{background:#1d6dee;border-color:#ffffff80;transform:translateY(-1px)}.images-section{background:#fff;display:flex;flex-direction:column;overflow:hidden}.images-header{padding:24px 32px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:none}.images-title{font-size:24px;font-weight:700;margin:0;color:#fff;letter-spacing:-.025em}.images-content{flex:1;overflow-y:auto;padding:32px;background:#f8fafc}.upload-area{margin-bottom:32px;cursor:pointer}.upload-box{border:2px dashed #d1d5db;border-radius:8px;padding:48px 24px;text-align:center;transition:all .2s ease;background:#fff}.upload-box:hover{border-color:#667eea;background:#f0f9ff}.upload-icon{color:#6b7280;margin-bottom:12px}.upload-text{margin:0;font-size:16px;font-weight:500;color:#64748b}.btn-delete-all{display:flex;align-items:center;gap:8px;padding:7px 18px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-delete-all:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.image-card{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#f1f5f9;box-shadow:0 2px 4px #0000001a;transition:all .2s ease}.image-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.image-card img{width:100%;height:100%;object-fit:cover}.delete-image-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#dc2626f2;color:#fff;border:none;border-radius:6px;cursor:pointer;opacity:0;transition:all .2s ease;z-index:10}.image-card:hover .delete-image-btn{opacity:1}.delete-image-btn:hover{background:#b91c1c;transform:scale(1.05)}.no-data,.no-selection,.no-images-message{display:flex;align-items:center;justify-content:center;padding:48px 24px;color:#9ca3af;font-size:14px;text-align:center}.no-selection{height:100%;font-size:16px}.no-selection p,.no-images-message p{margin:0}.subjects-container{display:flex;flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:#6b7280;gap:12px}.loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:1024px){.subjects-layout{grid-template-columns:280px 1fr}.images-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}}@media(max-width:768px){.subjects-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:calc(100vh - 100px);border-radius:8px}.subjects-sidebar{border-right:none;border-bottom:2px solid #e2e8f0;max-height:300px}.sidebar-header{padding:20px 24px}.sidebar-title{font-size:20px}.subjects-container{gap:16px}.images-header{padding:20px 24px}.images-title{font-size:22px}.images-content{padding:20px}.images-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.upload-box{padding:32px 16px}.subject-item{padding:12px 16px}.subject-name{font-size:13px}.btn-delete-all{width:100%;justify-content:center}}@media(max-width:480px){.subjects-layout{border-radius:0;margin:12px 0}.sidebar-header{padding:16px 20px}.sidebar-title{font-size:18px}.sidebar-search{padding:12px 16px}.search-input{padding:10px 14px 10px 40px;font-size:13px}.search-icon{left:28px}.images-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.subject-item{padding:12px}.subject-name{font-size:12px}.action-icon{width:28px;height:28px}.btn-add-subject{padding:10px 16px;font-size:13px}}.cards-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;overflow:hidden;margin:24px 0}.cards-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.cards-title-section{display:flex;align-items:center;gap:16px}.cards-title{font-size:24px;font-weight:700;margin:0;letter-spacing:-.025em}.cards-count{background:#fff3;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:500}.cards-actions{display:flex;align-items:center;gap:16px}.search-container{position:relative;display:flex;align-items:center}.search-input{padding:12px 16px 12px 44px;border:2px solid transparent;border-radius:8px;background:#fff;font-size:14px;width:280px;transition:all .2s ease;color:#000}.cards-filters{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:#f8fafc;border-bottom:1px solid #e2e8f0;gap:16px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:14px;color:#64748b;font-weight:500}.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;transition:border-color .2s ease;color:#374151}.filter-select:focus{outline:none;border-color:#667eea}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px;padding:32px;max-height:600px;overflow-y:auto}.attendance-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:20px;transition:all .3s ease;cursor:pointer;position:relative;overflow:hidden}.attendance-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,#667eea,#764ba2);transform:scaleX(0);transition:transform .3s ease}.attendance-card:hover{border-color:#667eea;box-shadow:0 8px 16px -4px #667eea4d;transform:translateY(-2px)}.attendance-card:hover:before{transform:scaleX(1)}.card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.card-employee{flex:1}.employee-name{font-size:18px;font-weight:600;color:#fbfdff;margin:0 0 4px}.employee-code{font-size:13px;color:#b6c0ce;font-weight:500}.card-badge{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-entrada{background:#dcfce7;color:#166534}.badge-salida{background:#fef3c7;color:#92400e}.badge-default{background:#e0e7ff;color:#3730a3}.card-body{display:flex;flex-direction:column;gap:12px}.card-field{display:flex;align-items:center;gap:10px}.field-icon{color:#667eea;flex-shrink:0}.field-content{flex:1}.field-label{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:2px}.field-value{font-size:14px;color:#334155;font-weight:500}.card-footer{margin-top:16px;padding-top:12px;border-top:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center}.location-info{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.view-details-btn{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.view-details-btn:hover{background:#5568d3;transform:translateY(-1px);box-shadow:0 4px 8px #667eea4d}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;color:#6b7280}.loading-spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;background:#f8fafc;border-top:1px solid #e2e8f0}.pagination-info{color:#64748b;font-size:14px}.pagination-controls{display:flex;align-items:center;gap:16px}.pagination-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.page-numbers{display:flex;gap:4px}.page-number{width:36px;height:36px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.page-number:hover{background:#f9fafb;border-color:#9ca3af}.page-number.active{background:#667eea;border-color:#667eea;color:#fff}@media(max-width:1024px){.cards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:24px}}@media(max-width:768px){.cards-container{margin:16px 0;border-radius:8px}.cards-header{flex-direction:column;gap:16px;align-items:stretch;padding:16px 20px}.cards-title{font-size:20px}.search-input{width:100%}.cards-filters{flex-direction:column;align-items:stretch;padding:12px 20px}.filter-group{width:100%}.filter-select{flex:1}.cards-grid{grid-template-columns:1fr;gap:16px;padding:20px;max-height:500px}.pagination-container{flex-direction:column;gap:16px;align-items:center;padding:16px 20px}.pagination-controls{flex-wrap:wrap;justify-content:center}}@media(max-width:480px){.cards-header{padding:12px 16px}.cards-title{font-size:18px}.cards-count{font-size:12px;padding:3px 10px}.search-input{padding:10px 14px 10px 40px;font-size:13px}.attendance-card{padding:16px}.employee-name{font-size:16px}.card-badge{font-size:10px;padding:4px 10px}}.pay-items-main-container{max-width:1280px;margin:0 auto;padding:1.5rem}.pay-items-header-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;position:relative;overflow:hidden}.pay-items-header-section:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);animation:shimmer 3s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.pay-items-header-content{display:flex;flex-direction:column;position:relative;z-index:1}.pay-items-main-title{font-size:1.875rem;font-weight:800;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.2);letter-spacing:-.02em;margin:0}.pay-items-main-subtitle{color:#ffffffe6;margin-top:.5rem;font-weight:500}.add-group-button{display:flex;align-items:center;gap:.625rem;padding:12px 20px;background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;position:relative;z-index:1}.add-group-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.loading-container{display:flex;align-items:center;justify-content:center;height:16rem;flex-direction:column;gap:16px;color:#6b7280}.loading-spinner{width:48px;height:48px;border:4px solid rgba(102,126,234,.2);border-top:4px solid #667eea;border-radius:50%;animation:spin .8s linear infinite;box-shadow:0 4px 12px #667eea4d}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pay-items-table-container{display:flex;flex-direction:column;gap:1rem}.search-section{display:flex;align-items:center;gap:1rem;background:#f8fafc;padding:16px 32px;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0000000a}.search-input-wrapper{flex:1;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:#6b7280;z-index:1}.search-input{width:100%;padding:12px 16px 12px 44px;border:2px solid transparent;border-radius:8px;background:#fff;font-size:14px;transition:all .2s ease;color:#374151}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.no-results-message{text-align:center;padding:3rem 0;color:#9ca3af;font-style:italic}.group-card{background:#fff;border:2px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 12px #00000014;transition:all .3s cubic-bezier(.4,0,.2,1)}.group-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea26;border-color:#667eea4d}.group-header{background:linear-gradient(135deg,#f8fafc,#e8f0fe);padding:1.5rem;display:flex;align-items:center;gap:1rem;border-bottom:2px solid rgba(102,126,234,.2)}.group-toggle-button{color:#374151;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;padding:8px;display:flex;align-items:center;justify-content:center;width:36px;height:36px}.group-toggle-button:hover{border-color:#667eea;color:#667eea;background:#f9fafb;transform:scale(1.05)}.group-content-grid{flex:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;align-items:center}.group-col-2{grid-column:span 2 / span 2}.group-col-3{grid-column:span 3 / span 3}.group-col-4{grid-column:span 4 / span 4}.group-col-1{grid-column:span 1 / span 1}.group-field-label{font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:700;letter-spacing:.025em}.group-field-value{font-weight:700;font-size:1.125rem;color:#667eea;margin-top:.25rem}.group-identifier-value{font-weight:600;font-size:.875rem;color:#1e293b;margin-top:.25rem}.group-actions{display:flex;gap:.5rem;justify-content:flex-end}.group-action-button{padding:10px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:36px;height:36px}.group-action-button.add{color:#667eea}.group-action-button.add:hover{background:#dbeafe;border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.group-action-button.delete{color:#ef4444}.group-action-button.delete:hover{background:#fee2e2;border-color:#ef4444;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.items-section{padding:1.5rem;background:#fff}.items-empty-state{text-align:center;padding:2.5rem 0;color:#9ca3af;font-style:italic;background:#ffffff80;border-radius:12px;border:2px dashed #d1d5db}.items-table-container{display:flex;flex-direction:column;gap:.5rem}.items-table-header{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;padding:12px 16px;border-bottom:2px solid #e2e8f0;font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:700;background:#f1f5f9;border-radius:8px 8px 0 0}.item-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;padding:12px 16px;align-items:center;border-radius:8px;transition:all .2s ease;border:1px solid transparent}.item-row:hover{background:#f8fafc;border-color:#667eea33;transform:translate(2px)}.item-id-cell{font-weight:600;font-size:.875rem;color:#374151}.item-actions-cell{display:flex;gap:.5rem}.item-delete-button{padding:6px;background:#ef44441a;border:2px solid rgba(239,68,68,.2);border-radius:6px;color:#ef4444;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.item-delete-button:hover{background:#ef4444;color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #ef444466}.base-apply-button{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.base-apply-button:hover:not(:disabled){background:#0000000d;transform:scale(1.1)}.base-apply-button:disabled{cursor:not-allowed;opacity:.5}.base-apply-icon-checked{color:#10b981}.base-apply-icon-unchecked{color:#ef4444}.editable-cell-container{display:flex;align-items:center;gap:.5rem}.editable-cell-viewing{display:flex;align-items:center;gap:.5rem;width:100%}.editable-cell-viewing:hover .edit-button{opacity:1}.editable-cell-input{flex:1;padding:.625rem .75rem;background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;transition:all .3s cubic-bezier(.4,0,.2,1);color:#374151;box-shadow:0 2px 8px #0000000a}.editable-cell-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea26,0 4px 16px #667eea33;transform:translateY(-2px)}.editable-cell-text{flex:1;font-size:.875rem;color:#374151}.edit-button{opacity:0;padding:6px;background:#667eea1a;border:2px solid transparent;border-radius:6px;color:#667eea;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.edit-button:hover{background:#667eea33;border-color:#667eea4d;transform:scale(1.05)}.save-button{padding:6px;background:#10b9811a;border:2px solid rgba(16,185,129,.2);border-radius:6px;color:#10b981;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.save-button:hover{background:#10b981;color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #10b98166}.cancel-button{padding:6px;background:#ef44441a;border:2px solid rgba(239,68,68,.2);border-radius:6px;color:#ef4444;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.cancel-button:hover{background:#ef4444;color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #ef444466}.formula-editor-container{position:relative;display:flex;align-items:center;gap:.5rem}.formula-editor-viewing{display:flex;align-items:center;gap:.5rem;width:100%}.formula-editor-viewing:hover .edit-button{opacity:1}.formula-input{flex:1;padding:.625rem .75rem;background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-family:Courier New,monospace;transition:all .3s cubic-bezier(.4,0,.2,1);color:#374151;box-shadow:0 2px 8px #0000000a}.formula-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea26,0 4px 16px #667eea33;transform:translateY(-2px)}.formula-display{flex:1;font-size:.875rem;font-family:Courier New,monospace;background:linear-gradient(135deg,#f8fafc,#e8f0fe);padding:.625rem .75rem;border-radius:8px;color:#374151;border:2px solid rgba(102,126,234,.2)}.formula-suggestions-popup{position:absolute;top:100%;left:0;margin-top:.5rem;width:24rem;background:linear-gradient(145deg,#fff,#f0f4ff);border:2px solid rgba(102,126,234,.3);border-radius:16px;box-shadow:0 30px 60px -12px #0000004d,0 0 0 1px #ffffffe6,0 0 80px #667eea33;z-index:1000;max-height:24rem;overflow-y:auto;animation:slideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.suggestions-section-header{padding:.75rem 1rem;font-size:.75rem;color:#64748b;border-bottom:2px solid rgba(102,126,234,.2);font-weight:700;background:linear-gradient(135deg,#f8fafc,#e8f0fe);text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:1}.suggestions-group{display:flex;flex-direction:column}.suggestion-button{width:100%;text-align:left;padding:.75rem 1rem;border:none;background:#fff;cursor:pointer;display:flex;flex-direction:column;border-bottom:1px solid #f1f5f9;transition:all .2s ease}.suggestion-button:hover{background:linear-gradient(135deg,#f8fafc,#e8f0fe);transform:translate(4px);border-left:3px solid #667eea}.suggestion-value{font-family:Courier New,monospace;font-size:.875rem;font-weight:700}.suggestion-value.group{color:#667eea}.suggestion-value.item{color:#10b981}.suggestion-value.function{color:#f97316}.suggestion-description{font-size:.75rem;color:#64748b;margin-top:.25rem}@media(max-width:1024px){.pay-items-header-section{padding:20px 24px}.search-section{padding:14px 24px}}@media(max-width:768px){.pay-items-main-container{padding:16px}.pay-items-header-section{flex-direction:column;gap:1rem;align-items:stretch;padding:16px 20px}.pay-items-main-title{font-size:20px}.add-group-button{width:100%;justify-content:center}.search-section{flex-direction:column;padding:12px 20px}.group-header{padding:1rem}.group-content-grid{grid-template-columns:1fr;gap:.75rem}.group-actions{justify-content:flex-start}.items-section{padding:1rem}.items-table-header,.item-row{grid-template-columns:1fr;gap:.5rem}.formula-suggestions-popup{width:calc(100vw - 2rem);left:50%;transform:translate(-50%)}}@media(max-width:480px){.pay-items-main-title{font-size:18px}.group-action-button,.group-toggle-button{width:32px;height:32px}.items-table-header{font-size:11px}.item-row{font-size:13px}}@media(max-width:768px)and (orientation:landscape){.pay-items-header-section{flex-direction:row;justify-content:space-between}.add-group-button{width:auto}}.cardsContainer{display:grid;grid-template-columns:repeat(center,minmax(220px,1fr));gap:20px;padding:20px;margin:auto;width:100%}.card{position:relative;background:#fff;padding:20px;border-radius:16px;box-shadow:0 3px 10px #0000001a;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}.card:hover{transform:translateY(-5px);box-shadow:0 6px 20px #00000026}.cardMain{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#111}.cardIcon{font-size:48px;margin-bottom:12px}.cardTitle{font-size:18px;text-align:center;font-weight:600}.cardShare{position:absolute;top:12px;right:12px;padding:6px;border-radius:50%;background:#f1f5f9;color:#1e293b;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.cardShare:hover{background:#e2e8f0}body{margin:0;display:flex;flex-direction:row;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100vw;height:100vh}
