@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{background:#f5f7fa;font-family:Poppins,sans-serif;margin:0}.app-shell{min-height:100vh}.auth-container{display:flex;height:100vh}.auth-left{align-items:center;background:linear-gradient(135deg,#2ed8a3,#2bb7da,#1e6bd6);display:flex;flex:1 1;justify-content:center;overflow:hidden;padding:60px;position:relative}.auth-left:before{background:#ffffff14;border-radius:50%;content:"";height:650px;position:absolute;right:-180px;top:-180px;width:650px}.branding{max-width:520px;position:relative;z-index:2}.brand-logo{margin-bottom:35px;object-fit:contain;width:180px}.brand-heading{color:#fff;font-size:64px;font-weight:800;letter-spacing:-2px;line-height:1.05;margin:0}.brand-heading span{display:inline}.brand-subtitle{color:#ffffffeb;font-size:24px;font-weight:400;margin-bottom:22px;margin-top:28px}.brand-company{color:#ffffffc7;font-size:15px;line-height:1.6}.auth-right{align-items:center;background:#f4f5f9;flex:1 1;overflow:hidden;padding:60px}.auth-card,.auth-right{display:flex;justify-content:center}.auth-card{flex-direction:column;max-width:520px;overflow:visible;width:100%}.auth-card h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#1e6bd6,#2bb7da);background-clip:text;-webkit-background-clip:text;font-size:48px;line-height:normal;margin:0 0 30px;padding-bottom:12px;padding-top:8px}.auth-hint{color:#64748b;font-size:14px;line-height:1.5;margin:-16px 0 20px}.auth-card h2{color:#1e6bd6;font-size:52px;font-weight:800;letter-spacing:-2px;line-height:1.1;margin-bottom:30px;white-space:nowrap}.auth-card form{display:flex;flex-direction:column;width:100%}.auth-card input{background:#fff;border:1px solid #e4e7ec;border-radius:18px;box-sizing:border-box;font-size:16px;height:58px;padding:0 18px;transition:.2s ease;width:100%}.auth-card button{background:linear-gradient(135deg,#1e6bd6,#2bb7da);border:none;border-radius:18px;color:#fff;cursor:pointer;font-size:17px;font-weight:700;height:58px;transition:.25s ease;width:100%}.auth-links{align-items:center;display:flex;justify-content:space-between;margin-top:24px;width:100%}.error{color:#e11d48;margin-top:12px}.success{color:#16a34a;margin-top:12px}.form-group{margin-bottom:10px;margin-top:0;width:100%}.field-helper{display:flex;justify-content:space-between;margin-top:4px;padding:0 5px}.forgot-link{color:#06c;font-size:.85rem;text-decoration:none}.forgot-link:hover{text-decoration:underline}.dashboard-layout{display:flex;height:100vh}.dashboard-layout:not(:has(.main-area)) .sidebar{background:linear-gradient(180deg,#2ed8a3,#2bb7da,#1e6bd6);color:#fff;padding:24px;width:240px}.sidebar h2{margin-bottom:30px}.sidebar nav{display:flex;flex-direction:column;gap:1px}.sidebar a{color:#fff;font-size:15px;text-decoration:none}.dashboard-main{display:flex;flex:1 1;flex-direction:column}.topbar{align-items:center;background:#fff;border-bottom:1px solid #eee;display:flex;height:70px;justify-content:space-between;padding:0 24px}.dashboard-content{padding:24px}.dashboard-cards{display:flex;gap:20px;margin-top:20px}.card{background:#fff;border-radius:18px;box-shadow:0 2px 8px #0000000d;flex:1 1;padding:30px;text-align:center}.brand-title{color:#fff;font-size:86px;font-weight:800;letter-spacing:-4px;line-height:.95;margin:0}.login-powered{color:#777;font-size:14px;margin-top:30px}.back-link{margin-top:18px}.back-link a{color:#1e6bd6;font-size:14px;text-decoration:none}.back-link a:hover{text-decoration:underline}*{box-sizing:border-box;margin:0;padding:0}body{background:#f5f7fb;font-family:Inter,sans-serif}:root{--sidebar-width:280px}.dashboard-layout{background:#f5f7fb;min-height:100vh}.dashboard-layout .sidebar{background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;gap:24px;height:100vh;justify-content:flex-start;left:0;overflow:hidden;padding:30px 20px;position:fixed;top:0;width:280px;width:var(--sidebar-width);z-index:100}.sidebar-top{display:flex;flex-direction:column;min-height:0}.brand h1{color:#2563eb;font-size:26px;font-weight:800;line-height:1}.client-info{color:#0ea5e9;font-size:16px;font-weight:700;margin-top:16px}.brand span{color:#06b6d4}.brand p{color:#6b7280;font-size:14px;font-size:15px;margin-top:6px}.sidebar-menu{display:flex;flex:1 1;flex-direction:column;gap:10px;margin-top:10px;min-height:0;overflow-x:hidden;overflow-y:auto}.menu-item{align-items:center;background:#0000;border:none;border-radius:14px;color:#475569;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:10px;height:52px;transition:.2s}.menu-item:hover{background:#f1f5f9}.menu-item.active{background:#eff6ff;color:#2563eb}.sidebar-user{border-top:1px solid #e5e7eb;flex-shrink:0;gap:12px;margin-top:auto;padding-top:20px}.sidebar-user,.user-avatar{align-items:center;display:flex}.user-avatar{background:#2563eb;border-radius:50%;color:#fff;font-weight:700;height:48px;justify-content:center;width:48px}.user-meta h4{font-size:14px}.user-meta p{color:#6b7280;font-size:12px}.dashboard-layout .main-area{display:flex;flex-direction:column;margin-left:280px;margin-left:var(--sidebar-width);min-height:100vh;min-width:0;width:calc(100% - 280px);width:calc(100% - var(--sidebar-width))}.dashboard-layout .topbar{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;gap:16px;height:78px;justify-content:space-between;min-width:0;padding:0 32px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar h2{color:#111827;font-size:16px;font-weight:700;margin:0}.topbar p{color:#6b7280;font-size:12px;margin-top:4px}.logout-btn{align-items:center;background:#ef4444;border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:8px;height:46px;padding:0 20px}.dashboard-layout .page-content{flex:1 1;min-width:0;overflow-x:auto;padding:20px 24px 32px;width:100%}.stats-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}.stat-card{background:#fff;border:1px solid #edf2f7;border-radius:18px;justify-content:space-between;padding:22px}.stat-card h4{color:#6b7280;font-size:15px;font-weight:600}.stat-card h2{color:#111827;font-size:36px;margin:12px 0}.positive{color:#16a34a;font-weight:600}.negative{color:#dc2626;font-weight:600}.stat-icon{align-items:center;border-radius:14px;display:flex;font-size:28px;height:54px;justify-content:center;width:54px}.blue{background:#dbeafe}.green{background:#dcfce7}.orange{background:#ffedd5}.purple{background:#f3e8ff}.bottom-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:2fr 1fr;margin-top:28px}.activity-card,.leave-card{background:#fff;border:1px solid #edf2f7;border-radius:22px;padding:28px}.activity-card h3,.leave-card h3{color:#111827;font-size:18px;margin-bottom:24px}.activity-item{border-bottom:1px solid #f1f5f9;display:flex;gap:16px;padding:18px 0}.activity-avatar{align-items:center;background:#dbeafe;border-radius:50%;color:#2563eb;display:flex;font-weight:700;height:52px;justify-content:center;width:42px}.activity-item h4{font-size:15px;margin-bottom:6px}.activity-item p{color:#6b7280;font-size:13px}.leave-item{background:#f8fafc;border-radius:14px;margin-bottom:16px;padding:14px}.leave-item h4{font-size:15px;margin-bottom:5px}.leave-item p{color:#6b7280;font-size:13px;margin-bottom:6px}.leave-item span{color:#2563eb;font-size:13px;font-weight:600}.stats-grid{margin-top:10px}.bottom-grid{margin-top:20px}.employee-page{max-width:100%;min-width:0;width:100%}.employee-page__count{color:#64748b;font-size:14px;margin:0 0 16px}.employee-page__count strong{color:#0f172a;font-weight:700}.employee-toolbar{align-items:stretch;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.search-wrapper{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex:1 1 240px;gap:10px;height:48px;max-width:100%;min-width:0;padding:0 14px}.search-wrapper svg{color:#94a3b8;flex-shrink:0}.search-wrapper input{background:#0000;border:none;flex:1 1;font-size:14px;min-width:0;outline:none;width:100%}.toolbar-actions{display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px}.add-btn,.upload-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;height:48px;justify-content:center;padding:0 16px;white-space:nowrap}.upload-btn{background:#f1f5f9;color:#111827}.add-btn{background:linear-gradient(135deg,#1e6bd6,#2bb7da);color:#fff}.employee-table-card{background:#fff;border:1px solid #edf2f7;border-radius:16px;max-width:100%;overflow:hidden;padding:0;width:100%}.employee-table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto;padding:16px 20px 20px;width:100%}.employee-table{border-collapse:collapse;min-width:880px;width:100%}.employee-table th{border-bottom:1px solid #f1f5f9;color:#6b7280;font-size:13px;padding:14px;text-align:left}.employee-table td{border-bottom:1px solid #f8fafc;font-size:14px;padding:16px 14px}.employee-table tr:hover{background:#f9fafb}.empty-row{color:#9ca3af;padding:24px;text-align:center}.status-badge{border-radius:20px;font-size:12px;font-weight:600;padding:6px 12px}.status-badge.active{background:#dcfce7;color:#15803d}.status-badge.inactive{background:#fee2e2;color:#dc2626}.action-buttons{display:flex;flex-wrap:nowrap;gap:6px}@media (max-width:1100px){:root{--sidebar-width:260px}.dashboard-layout .topbar{padding:0 20px}.dashboard-layout .page-content{padding:16px 18px 28px}}@media (max-width:768px){.employee-toolbar{align-items:stretch;flex-direction:column}.toolbar-actions{width:100%}.add-btn,.upload-btn{flex:1 1;min-width:0}.dashboard-layout .topbar h2{font-size:15px}}.delete-btn,.edit-btn,.view-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.approve-btn svg,.delete-btn svg,.document-actions button svg,.document-icon svg,.edit-btn svg,.leave-actions button svg,.letter-btn svg,.logout-btn svg,.manage-depts-row-buttons button svg,.menu-item svg,.reject-btn svg,.view-btn svg{flex-shrink:0}.view-btn{background:#eff6ff;color:#2563eb}.edit-btn{background:#fef3c7;color:#d97706}.delete-btn{background:#fee2e2;color:#dc2626}.modal-overlay{background:#0f172a73;z-index:999}.modal{padding:16px;position:relative}.large-modal,.modal{background:#fff;border-radius:24px}.large-modal{max-height:90vh;max-width:1400px;overflow-y:auto;padding:24px;width:95%}.modal-header{display:flex;justify-content:space-between;margin-bottom:18px}.modal-header h3{color:#111827;font-size:20px}.modal-header button{background:#0000;border:none;cursor:pointer}.modal input{border:1px solid #e5e7eb;border-radius:12px;height:48px;margin-bottom:12px;padding:14px;width:100%}.modal button{background:#2563eb;border:none;border-radius:12px;color:#fff;cursor:pointer;padding:12px 20px}.employee-form{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.employee-form button{background:#2563eb;border:none;border-radius:12px;color:#fff;font-weight:600;grid-column:span 2;height:48px}.employee-form input,.employee-form select{border:1px solid #d9d9d9;border-radius:14px;height:56px;padding:0 16px;width:100%}.success{color:green;font-size:14px}.error{color:red;font-size:14px}.documents-page{padding:24px 28px}.documents-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.documents-header h1{color:#111827;font-size:24px;font-weight:700}.documents-header p{color:#6b7280;font-size:14px;margin-top:4px}.upload-document-btn{align-items:center;border:none;border-radius:14px;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:10px;height:50px;padding:0 26px}.upload-document-btn,.upload-document-btn:hover{background:linear-gradient(135deg,#1e6bd6,#2bb7da)}.modal-overlay{align-items:flex-start;background:#00000059;overflow-y:auto;z-index:9999}.upload-modal{background:#fff;border-radius:24px;box-shadow:0 20px 40px #0000001f;padding:32px;width:560px}.upload-modal h2{color:#111827;font-size:22px;font-weight:700;margin-bottom:22px}.custom-file-upload{align-items:center;background:#fff;border:1px solid #dbe3ef;border-radius:18px;display:flex;gap:16px;height:72px;padding:0 16px;width:100%}.choose-file-btn{background:linear-gradient(135deg,#1e6bd6,#2bb7da);border:none;border-radius:14px;color:#fff;cursor:pointer;flex-shrink:0;font-size:15px;font-weight:600;height:44px;width:150px}.file-name{color:#6b7280;flex:1 1;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hidden-file-input{display:none!important}.upload-category{background:#fff;border:1px solid #dbe3ef;border-radius:18px;font-size:15px;height:64px;margin-top:16px;outline:none;padding:0 18px;width:100%}.modal-actions{gap:14px}.cancel-btn{border-radius:14px;color:#111827;font-size:15px;font-weight:500;height:48px;width:120px}.upload-btn{border:none;border-radius:14px;cursor:pointer;height:50px;min-width:140px;width:-webkit-fit-content;width:fit-content}.documents-toolbar-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;margin-bottom:28px;padding:20px}.document-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.filter-btn{background:#f1f5f9;border:none;border-radius:12px;color:#475569;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px}.filter-btn.active{background:linear-gradient(135deg,#1e6bd6,#2bb7da);color:#fff}.documents-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.document-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:22px;transition:.2s ease}.document-card:hover{box-shadow:0 8px 20px #0000000f}.document-top{align-items:flex-start;display:flex;gap:16px}.document-icon{align-items:center;background:#f8fafc;border-radius:14px;color:#2563eb;display:flex;flex-shrink:0;height:52px;justify-content:center;width:52px}.document-info h3{color:#111827;font-size:16px;font-weight:600;margin-bottom:6px}.document-info p{color:#6b7280;font-size:13px;margin-bottom:6px}.document-info span{color:#64748b;font-size:13px}.document-bottom{align-items:center;border-top:1px solid #f1f5f9;display:flex;justify-content:space-between;margin-top:18px;padding-top:14px}.document-bottom span{color:#6b7280;font-size:13px}.document-actions{display:flex;gap:8px}.document-actions button{align-items:center;background:#f8fafc;border:none;border-radius:10px;color:#475569;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.document-actions button:hover{background:#eff6ff;color:#2563eb}.document-actions .delete:hover{background:#fee2e2;color:#dc2626}.document-modal-content{display:flex;flex-direction:column;gap:16px;margin-top:20px}@media (max-width:768px){.documents-header{align-items:flex-start;flex-direction:column;gap:14px}.documents-grid{grid-template-columns:1fr}}.letter-btn{align-items:center;background:#eff6ff;border:none;border-radius:10px;color:#2563eb;cursor:pointer;display:flex;height:34px;justify-content:center;width:34px}.salary-grid{grid-gap:12px;display:grid;gap:12px;grid-column:1/-1;grid-template-columns:repeat(2,1fr)}.full-width{grid-column:1/-1}.employee-login-option{background:#f8fafc;border:1px solid #e8edf4;border-radius:12px;display:flex;flex-direction:column;gap:10px;padding:14px 16px}.employee-login-toggle{align-items:center;color:#0f172a;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:10px}.employee-login-toggle input{margin:0;min-height:auto;width:auto}.employee-login-hint{color:#64748b;font-size:13px;line-height:1.5;margin:0}.employee-login-warning{color:#b45309;font-size:13px;font-weight:600;line-height:1.5;margin:0}.credentials-modal{width:min(480px,92vw);z-index:1100}.modal-overlay:has(.credentials-modal){z-index:1099}.credentials-body{display:flex;flex-direction:column;gap:14px;margin-top:8px}.credentials-row{background:#f8fafc;border:1px solid #e8edf4;border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:12px 14px}.credentials-row span{color:#64748b;font-size:12px;font-weight:600}.credentials-row strong{color:#0f172a;font-size:15px;word-break:break-all}.credentials-password-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:16px}.credentials-password-box span{color:#1d4ed8;font-size:12px;font-weight:600}.credentials-password-box strong{color:#0f172a;font-size:24px;letter-spacing:.08em}.credentials-password-box p{color:#475569;font-size:13px;margin:0}.employee-login-fields{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:760px){.employee-login-fields{grid-template-columns:1fr}}.salary-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr auto;margin-bottom:12px;width:100%}.file-input{background:#0000!important;border:none!important;height:auto!important;padding:0!important;width:auto!important}.file-upload-wrapper{background:#fafafa;border:1px dashed #d9d9d9;border-radius:12px;padding:20px}.document-select{border:1px solid #d9d9d9;border-radius:12px;height:48px;margin-bottom:16px;padding:12px;width:250px}.documents-modal{max-width:700px}.document-section{display:flex;flex-direction:column;gap:20px;margin-top:24px}.employee-doc-header span{color:#777;font-size:13px}.employee-doc-header h4{font-size:22px;font-weight:600;margin-top:6px}.documents-modal .modal-header button{height:48px;min-width:48px;width:48px}.profile-section{margin-bottom:28px}.profile-section h4{border-bottom:1px solid #e5e7eb;color:#2563eb;font-size:18px;font-weight:600;margin-bottom:12px;padding-bottom:8px}.profile-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.profile-grid div{display:flex;flex-direction:column}.profile-grid label{color:#6b7280;font-size:12px;margin-bottom:4px}.profile-grid span{color:#111827;font-size:15px;font-weight:500}.documents-list h4{margin-bottom:12px}.document-item{background:#fafafa;margin-bottom:10px}.view-doc-btn{padding:8px 14px}.documents-list{margin-top:24px}.document-item{align-items:center;border:1px solid #e5e7eb;border-radius:10px;display:flex;justify-content:space-between;margin-top:10px;padding:12px}.view-doc-btn{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:8px 16px}.save-btn{font-weight:600;height:48px;width:220px}.emp-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a80;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.emp-modal{background:#fff;border-radius:16px;box-shadow:0 24px 48px #0f172a2e;display:flex;flex-direction:column;max-height:min(92vh,900px);overflow:hidden;width:100%}.emp-modal--md{max-width:560px}.emp-modal--lg{max-width:820px}.emp-modal--xl{max-width:960px}.emp-modal__header{align-items:center;background:#fafbfc;border-bottom:1px solid #e8edf4;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:20px 24px}.emp-modal__header h3{color:#0f172a;font-size:1.125rem;font-weight:700;letter-spacing:-.02em;margin:0}.emp-modal__close{align-items:center;background:#fff;border:none;border-radius:10px;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;padding:0;transition:background .15s,color .15s;width:36px}.emp-modal__close:hover{background:#f1f5f9;color:#0f172a}.emp-modal__body{flex:1 1;overflow-y:auto;padding:20px 24px 8px}.emp-modal__footer{align-items:center;background:#fafbfc;border-top:1px solid #e8edf4;display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:16px 24px 20px}.emp-form-section{margin-bottom:24px}.emp-form-section:last-child{margin-bottom:8px}.emp-form-section__head{margin-bottom:14px}.emp-form-section__head h4{color:#2563eb;font-size:.8125rem;font-weight:700;letter-spacing:.06em;margin:0 0 4px;text-transform:uppercase}.emp-form-section__head p{color:#64748b;font-size:.8125rem;line-height:1.45;margin:0}.emp-form-grid{grid-gap:14px 16px;display:grid;gap:14px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.emp-form-grid--1col{grid-template-columns:1fr}.emp-field{display:flex;flex-direction:column;gap:6px;min-width:0}.emp-field--full{grid-column:1/-1}.emp-field label{color:#334155;font-size:.8125rem;font-weight:600}.emp-required{color:#dc2626;margin-left:2px}.emp-field-hint{color:#64748b;font-size:.75rem;line-height:1.4}.emp-field input,.emp-field select,.emp-field textarea{background:#fff;border:1px solid #d1d9e6;border-radius:10px;color:#0f172a;font-size:.875rem;height:42px;padding:0 12px;transition:border-color .15s,box-shadow .15s;width:100%}.emp-field input:focus,.emp-field select:focus,.emp-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f;outline:none}.emp-field input::placeholder{color:#94a3b8}.emp-field select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;cursor:pointer;padding-right:36px}.emp-form-grid>.emp-field--full,.emp-form-grid>.emp-login-card{grid-column:1/-1}.emp-login-card{background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid #e2e8f0;border-radius:12px;padding:16px}.emp-login-card__toggle{align-items:flex-start;color:#0f172a;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:10px}.emp-login-card__toggle input{accent-color:#2563eb;flex-shrink:0;height:16px;margin-top:2px;width:16px}.emp-login-card__fields{grid-gap:12px;border-top:1px solid #e8edf4;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px;padding-top:14px}.emp-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:8px;height:42px;justify-content:center;padding:0 18px;transition:background .15s,transform .1s;white-space:nowrap}.emp-btn:disabled{cursor:not-allowed;opacity:.6}.emp-btn--primary{background:#2563eb;color:#fff}.emp-btn--primary:hover:not(:disabled){background:#1d4ed8}.emp-btn--secondary{background:#fff;border:1px solid #d1d9e6;color:#334155}.emp-btn--secondary:hover:not(:disabled){background:#f8fafc}.emp-btn--danger-ghost{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;height:36px;padding:0;width:36px}.emp-btn--danger-ghost:hover{background:#fee2e2}.emp-btn--block{width:100%}.emp-salary-list{display:flex;flex-direction:column;gap:10px}.emp-salary-row{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:1.4fr 1fr 1fr auto}.emp-salary-row .emp-field{margin:0}.emp-salary-row .emp-btn--danger-ghost{align-self:end;margin-bottom:0}.emp-doc-hero{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;display:flex;gap:14px;margin-bottom:20px;padding:14px 16px}.emp-doc-hero__icon{align-items:center;background:#2563eb;border-radius:10px;color:#fff;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.emp-doc-hero__label{color:#1d4ed8;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.emp-doc-hero__name{color:#0f172a;font-size:1.0625rem;font-weight:700;margin:2px 0 0}.emp-upload-zone{align-items:center;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:120px;padding:20px;position:relative;text-align:center;transition:border-color .15s,background .15s}.emp-upload-zone:hover{background:#eff6ff;border-color:#2563eb}.emp-upload-zone input[type=file]{cursor:pointer;height:100%;inset:0;opacity:0;position:absolute;width:100%}.emp-upload-zone__title{color:#334155;font-size:.875rem;font-weight:600}.emp-upload-zone__hint{color:#64748b;font-size:.75rem}.emp-upload-zone__file{color:#2563eb;font-size:.8125rem;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-doc-list{border-top:1px solid #e8edf4;margin-top:20px;padding-top:20px}.emp-doc-list h4{color:#64748b;font-size:.8125rem;font-weight:700;letter-spacing:.05em;margin:0 0 12px;text-transform:uppercase}.emp-doc-list__empty{background:#f8fafc;border:1px dashed #e2e8f0;border-radius:10px;color:#94a3b8;font-size:.875rem;margin:0;padding:24px;text-align:center}.emp-doc-item{align-items:center;background:#fff;border:1px solid #e8edf4;border-radius:10px;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px;padding:12px 14px}.emp-doc-item:last-child{margin-bottom:0}.emp-doc-item__type{color:#0f172a;display:block;font-size:.8125rem;font-weight:700}.emp-doc-item__name{color:#64748b;display:block;font-size:.75rem;margin-top:2px;word-break:break-all}.emp-action-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.emp-grid-btn{align-items:center;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#4b5563;cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;transition:all .2s ease-in-out;width:36px}.emp-grid-btn svg{stroke-width:2px;height:18px;width:18px}.emp-grid-btn:hover{background-color:#e5e7eb;border-color:#d1d5db;color:#1f2937}.emp-grid-btn:active{transform:scale(.95)}.emp-grid-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.emp-action-buttons button:last-child:hover{background-color:#fee2e2;border-color:#fca5a5;color:#dc2626}.emp-action-buttons button:first-child{background-color:#e0f2fe;border:1px solid #bae6fd;color:#0369a1}.emp-action-buttons button:first-child:hover{background-color:#bae6fd;color:#0c4a6e}.emp-action-buttons button:nth-child(2){background-color:#fef3c7;border:1px solid #fde68a;color:#b45309}.emp-action-buttons button:nth-child(2):hover{background-color:#fde68a;color:#78350f}.emp-action-buttons button:nth-child(3){background-color:#dcfce7;border:1px solid #bbf7d0;color:#15803d}.emp-action-buttons button:nth-child(3):hover{background-color:#bbf7d0;color:#14532d}.emp-action-buttons button:nth-child(4){background-color:#e0e7ff;border:1px solid #c7d2fe;color:#4338ca}.emp-action-buttons button:nth-child(4):hover{background-color:#c7d2fe;color:#312e81}.emp-action-buttons button:nth-child(5){background-color:#fee2e2;border:1px solid #fca5a5;color:#b91c1c}.emp-action-buttons button:nth-child(5):hover{background-color:#fca5a5;color:#7f1d1d}.emp-view-body .profile-section{margin-bottom:20px}.emp-view-body .profile-section h4{font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase}.emp-view-body .profile-grid{gap:12px 16px}@media (max-width:768px){.emp-view-body .profile-grid{grid-template-columns:1fr}.emp-modal-overlay{align-items:flex-end;padding:0}.emp-modal{border-radius:16px 16px 0 0;max-height:94vh}.emp-form-grid,.emp-login-card__fields,.emp-salary-row{grid-template-columns:1fr}.emp-salary-row .emp-btn--danger-ghost{height:38px;width:100%}.emp-modal__footer{flex-direction:column-reverse}.emp-modal__footer .emp-btn{width:100%}}@media (max-width:480px){.emp-modal__body,.emp-modal__footer,.emp-modal__header{padding-left:16px;padding-right:16px}}.settings-container{background:#f8fafc;flex:1 1;min-height:100vh;overflow-y:auto;padding:20px}.settings-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px}.settings-title{color:#1e293b;font-size:24px;font-weight:600;margin:0}.settings-subtitle{color:#64748b;font-size:13px;margin-top:6px}.settings-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:2fr 1fr}.settings-notification-section{display:flex;flex-direction:column;gap:20px}.settings-bottom-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(1,1fr);margin-top:20px}@media (max-width:1024px){.settings-bottom-grid,.settings-grid{grid-template-columns:1fr}}@media (max-width:768px){.settings-header{align-items:flex-start;flex-direction:column}}.ot-form-scroll-target{scroll-margin-top:1rem}.profile-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 2px 8px #0000000d;padding:20px}.profile-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.profile-title{color:#1e293b;font-size:20px;font-weight:600}.profile-subtitle{color:#64748b;font-size:13px;margin-top:6px}.camera-btn,.profile-card .edit-btn{align-items:center;background:#f1f5f9;border:none;border-radius:12px;cursor:pointer;display:flex;height:48px;justify-content:center;width:48px}.camera-btn:hover,.profile-card .edit-btn:hover{background:#e2e8f0}.remove-photo-btn{background:#fee2e2;border:none;border-radius:8px;color:#dc2626;cursor:pointer;font-size:12px;font-weight:500;margin-top:10px;padding:6px 12px}.remove-photo-btn:hover{background:#fecaca}.error-text{color:#ef4444;font-size:12px;margin-top:4px}.label-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.error-inline{color:#ef4444;font-size:11px;font-weight:500}.input-error{border:1px solid #ef4444!important}.profile-content{align-items:flex-start;display:flex;gap:32px}.profile-avatar-section{align-items:center;display:flex;flex-direction:column;min-width:110px}.profile-avatar{align-items:center;background:linear-gradient(135deg,#1e6bd6,#2bb7da);border-radius:50%;color:#fff;display:flex;font-size:22px;font-weight:600;height:80px;justify-content:center;overflow:hidden;width:80px}.profile-avatar-img{border-radius:50%;height:100%;object-fit:cover;width:100%}.camera-options{display:flex;flex-direction:column;gap:12px;margin-top:16px}.camera-btn{margin-top:12px}.profile-form-grid{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:repeat(2,1fr)}.profile-label{color:#334155;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.input-wrapper{position:relative}.input-icon{left:12px;position:absolute;top:50%;transform:translateY(-50%)}.profile-input{border:1px solid #cbd5e1;border-radius:12px;font-size:14px;height:42px;outline:none;padding:0 16px 0 40px;width:100%}.input-disabled{background:#e2e8f0;color:#64748b;cursor:not-allowed}.button-row{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.discard-btn{background:#fff;border:1px solid #cbd5e1;border-radius:12px}.discard-btn,.save-btn{cursor:pointer;padding:10px 20px}.save-btn{background:linear-gradient(135deg,#1e6bd6,#2bb7da);border:none;border-radius:12px;color:#fff}.image-popup-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.image-popup{background:#fff;border-radius:12px;min-width:250px;padding:20px}.image-popup button{display:block;margin-top:10px;padding:10px;width:100%}@media(max-width:768px){.profile-content{flex-direction:column}.profile-form-grid{grid-template-columns:1fr}}.notifications-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 2px 8px #0000000d;padding:20px}.notifications-header{align-items:center;display:flex;gap:14px;margin-bottom:20px}.notifications-icon-box{align-items:center;background:#f8fafc;border-radius:12px;display:flex;height:42px;justify-content:center;width:42px}.notifications-title{color:#1e293b;font-size:16px;font-weight:600}.notifications-subtitle{color:#64748b;font-size:12px;margin-top:4px}.toggle-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:14px 0}.toggle-row:last-child{border-bottom:none}.toggle-left{align-items:center;display:flex;gap:12px}.toggle-icon{color:#64748b}.toggle-title{color:#334155;font-size:14px;font-weight:500}.toggle-switch{background:#475569;border-radius:999px;cursor:pointer;height:24px;position:relative;transition:.3s;width:44px}.toggle-active{background:linear-gradient(135deg,#1e6bd6,#2bb7da)}.toggle-dot{background:#fff;border-radius:50%;height:16px;position:absolute;top:4px;transition:.3s;width:16px}.dot-left{left:4px}.dot-right{right:4px}.security-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 2px 8px #0000000d;padding:20px}.security-header{align-items:center;display:flex;gap:14px;margin-bottom:20px}.security-header-icon{align-items:center;background:#d1fae5;border-radius:12px;display:flex;height:42px;justify-content:center;width:42px}.security-title{color:#1e293b;font-size:16px;font-weight:600}.security-subtitle{color:#64748b;font-size:12px;margin-top:4px}.security-item{align-items:center;background:#fff;border:none;border-radius:14px;cursor:pointer;display:flex;gap:12px;margin-bottom:10px;padding:14px;transition:.25s;width:100%}.security-item:hover{background:#f8fafc}.security-item-icon{color:#64748b}.security-item-title{color:#334155;font-size:14px;font-weight:500}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-box{background:#fff;border-radius:20px;box-shadow:0 20px 50px #00000026;max-width:420px;padding:24px;width:100%}.modal-box h2,.modal-header h2{color:#0f172a;font-size:20px;font-weight:600}.modal-header p,.modal-subtext{color:#64748b;font-size:14px;margin-top:8px}.modal-form{display:flex;flex-direction:column;gap:14px;margin-top:20px}.form-group{margin-top:18px}.form-group label{color:#334155;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.modal-input{background:#f8fafc;border:1px solid #d1d5db;border-radius:14px;font-size:14px;outline:none;padding:14px 16px;transition:.25s;width:100%}.modal-input:focus{background:#fff;border-color:#2563eb}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.cancel-btn{background:#fff;border:1px solid #d1d5db;border-radius:12px;cursor:pointer;padding:10px 18px}.primary-btn{background:linear-gradient(135deg,#2563eb,#06b6d4)}.primary-btn,.verify-btn{border:none;border-radius:12px;color:#fff;cursor:pointer;padding:10px 18px}.verify-btn{background:linear-gradient(135deg,#16a34a,#10b981)}.role-tabs{background:#fff;border:1px solid #e2e8f0;border-radius:18px;display:inline-flex;gap:10px;padding:8px}.role-btn{align-items:center;background:#0000;border:none;border-radius:12px;color:#334155;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 18px;transition:.25s}.role-btn:hover{background:#e2e8f0;color:#000}.active-role{background:linear-gradient(135deg,#1e6bd6,#2bb7da);color:#fff}.active-role:hover{opacity:.95}.roles-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:column;height:100%;padding:20px}.roles-header{gap:14px;margin-bottom:20px}.roles-header,.roles-icon-box{align-items:center;display:flex}.roles-icon-box{background:#ede9fe;border-radius:12px;height:42px;justify-content:center;width:42px}.roles-title{color:#1e293b;font-size:16px;font-weight:600}.roles-subtitle{color:#64748b;font-size:12px;margin-top:4px}.role-item{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:14px 0}.role-item:last-child{border-bottom:none}.role-item-left{align-items:center;display:flex;gap:12px}.role-item-title{color:#334155;font-size:14px;font-weight:500}.role-item-subtitle{color:#64748b;font-size:12px;margin-top:3px}.shift-manager-container{display:flex;flex-direction:column-reverse;gap:40px;margin:0 auto;width:100%}.shift-form-section{background:#fff;border:1px solid #eef2f5;border-radius:12px;box-shadow:0 4px 12px #0000000d;flex:1 1;height:-webkit-fit-content;height:fit-content;padding:24px}.shift-list-section{flex:2 1}h2{color:#1e293b;font-size:1.5rem;margin-bottom:20px;margin-top:0}.shift-form{gap:16px}.form-group,.shift-form{display:flex;flex-direction:column}.form-group{gap:6px}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1 1}label{color:#475569;font-size:.85rem;font-weight:600}input{border:1px solid #cbd5e1;border-radius:6px;color:#334155;font-size:.95rem;padding:10px 12px;transition:border-color .2s}input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;outline:none}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:10px}button{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 16px;transition:all .2s}.btn-primary{background-color:#2563eb;color:#fff;padding:.625rem 1.25rem}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.btn-secondary{background-color:#fff;border:1px solid #d1d5db;color:#475569;padding:.625rem 1.25rem}.btn-secondary:hover:not(:disabled){background-color:#f9fafb}button:disabled,input:disabled{cursor:not-allowed;opacity:.6}.shifts-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.loading-shifts,.no-shifts{color:#64748b;font-style:italic}.shift-card{background:#fff;border:1px solid #eef2f5;border-radius:12px;box-shadow:0 4px 12px #0000000d;flex-direction:column;padding:20px}.shift-card,.shift-card-header{display:flex;justify-content:space-between}.shift-card-header{align-items:center;margin-bottom:12px}.shift-title{color:#1e293b;font-size:1.15rem;margin:0}.shift-badge{background-color:#f0fdf4;border-radius:12px;color:#166534;font-size:.7rem;font-weight:600;padding:2px 6px}.time-info-container{align-items:center;background-color:#f8fafc;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:12px;padding:10px}.time-block{display:flex;flex-direction:column}.time-label{color:#64748b;font-size:.7rem;text-transform:uppercase}.time-value{color:#334155;font-size:1rem;font-weight:700}.time-divider{color:#94a3b8}.grace-time-info{display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:16px}.grace-label{color:#64748b}.grace-value{color:#dc2626;font-weight:600}.shift-card-actions-wrapper{border-top:1px solid #f3f4f6;display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.25rem;padding-top:1rem}.shift-action-btn-delete,.shift-action-btn-edit{border:1px solid #0000;border-radius:.375rem;font-size:.8125rem;font-weight:500;padding:.375rem .75rem}.shift-action-btn-edit{background-color:#f3f4f6;border-color:#d1d5db;color:#374151}.shift-action-btn-edit:hover:not(:disabled){background-color:#e5e7eb}.shift-action-btn-delete{background-color:#fef2f2;border-color:#fecaca;color:#991b1b}.shift-action-btn-delete:hover:not(:disabled){background-color:#fee2e2}@media (max-width:768px){.shift-manager-container{flex-direction:column}}.shift-form-section{scroll-margin-top:2rem}.ot-container{background-color:#fff;border:1px solid #f3f4f6;border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;color:#374151;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:auto;padding:1.5rem;width:100%}.ot-header{border-bottom:1px solid #f3f4f6;margin-bottom:1.5rem;padding-bottom:1rem}.ot-header h1{color:#111827;font-size:1.5rem;font-weight:700;margin:0}.ot-header p{color:#6b7280;font-size:.875rem;margin:.25rem 0 0}.ot-form{gap:1.5rem}.ot-form,.ot-section{display:flex;flex-direction:column}.ot-section{gap:1rem}.ot-section h3{color:#111827;font-size:1.125rem;font-weight:500;margin:0}.ot-grid-2{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.ot-grid-2{grid-template-columns:1fr 1fr}}.ot-bg-box{background-color:#f9fafb;border-radius:.75rem;padding:1rem}.ot-info-text{align-items:flex-end;color:#9ca3af;display:flex;font-size:.75rem;padding-bottom:.75rem}.ot-strategy-group{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr}@media (min-width:768px){.ot-strategy-group{grid-template-columns:repeat(3,1fr)}}.ot-card{border:1px solid #e5e7eb;border-radius:.75rem;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;padding:1rem;transition:all .2s ease}.ot-card:hover{background-color:#f9fafb}.ot-card.active{background-color:#eff6ff80;border-color:#2563eb;box-shadow:0 0 0 1px #3b82f6}.ot-card-title{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.ot-card-title span{color:#111827;font-size:.875rem;font-weight:600}.ot-card p{color:#6b7280;font-size:.75rem;margin:0}.ot-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.ot-input,.ot-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem;box-sizing:border-box;font-size:.875rem;padding:.5rem .75rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.ot-input:focus,.ot-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f680;outline:none}.ot-sub-panel{background-color:#f9fafb;border:1px solid #f3f4f6;border-radius:.75rem;padding:1rem}.ot-input-inline{align-items:center;display:flex;gap:.5rem}.ot-input-inline input{text-align:center;width:6rem}.ot-input-inline span{color:#6b7280;font-size:.875rem}.ot-relative-input{position:relative}.ot-relative-input input{padding-right:4.5rem}.ot-unit-badge{color:#9ca3af;font-size:.75rem;pointer-events:none;position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.ot-days-flex{display:flex;flex-wrap:wrap;gap:.5rem}.ot-day-btn{background-color:#fff;border:1px solid #d1d5db;border-radius:9999px;color:#4b5563;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.ot-day-btn:hover{background-color:#f9fafb}.ot-day-btn.active{background-color:#2563eb;border-color:#2563eb;box-shadow:0 1px 2px 0 #0000000d;color:#fff}.ot-divider{border:0;margin:0}.ot-actions,.ot-divider{border-top:1px solid #f3f4f6}.ot-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem}.ot-btn-secondary{background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .15s ease}.ot-btn-secondary:hover{background-color:#f9fafb}.ot-btn-primary{background-color:#2563eb;border:1px solid #0000;border-radius:.5rem;box-shadow:0 1px 2px 0 #0000000d;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1.25rem;transition:background-color .15s ease}.ot-btn-primary:hover{background-color:#1d4ed8}.ot-list-empty,.ot-list-loading{background-color:#f9fafb;border:1px dashed #d1d5db;border-radius:.75rem;color:#6b7280;font-size:.9375rem;padding:3rem 1rem;text-align:center}.ot-table-wrapper{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow-x:auto;width:100%}.ot-table{border-collapse:collapse;font-size:.875rem;text-align:left;width:100%}.ot-table th{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;color:#374151;font-weight:600;padding:.75rem 1rem}.ot-table td{border-bottom:1px solid #f3f4f6;color:#4b5563;padding:1rem;vertical-align:middle}.ot-table tr:last-child td{border-bottom:none}.ot-td-bold{color:#111827!important;font-weight:600}.ot-text-muted{color:#6b7280;font-size:.8125rem}.ot-badge-gray{background-color:#f3f4f6;color:#1f2937}.ot-badge-action,.ot-badge-gray{border-radius:.375rem;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.ot-badge-action{display:inline-block}.ot-badge-action.increase-salary{background-color:#edf5ff;color:#0043ce}.ot-badge-action.add-leave{background-color:#e5fbe3;color:#0e6027}.ot-badge-action.none{background-color:#f4f4f4;color:#4d4d4d}.ot-table-days{display:flex;flex-wrap:wrap;gap:.25rem}.ot-day-mini-badge{background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:.25rem;color:#6b7280;font-size:.6875rem;padding:.125rem .375rem}.ot-action-buttons-group{display:flex;gap:.5rem;justify-content:flex-end}.ot-row-btn-delete,.ot-row-btn-edit{border:1px solid #0000;border-radius:.375rem;cursor:pointer;font-size:.8125rem;font-weight:500;padding:.375rem .75rem;transition:all .2s ease}.ot-row-btn-edit{background-color:#f3f4f6;border-color:#d1d5db;color:#374151}.ot-row-btn-edit:hover:not(:disabled){background-color:#e5e7eb;color:#111827}.ot-row-btn-delete{background-color:#fef2f2;border-color:#fecaca;color:#991b1b}.ot-row-btn-delete:hover:not(:disabled){background-color:#fee2e2;color:#7f1d1d}.ot-row-btn-delete:disabled,.ot-row-btn-edit:disabled{cursor:not-allowed;opacity:.5}.holiday-manager-container{display:flex;flex-direction:column-reverse;gap:32px;margin-top:24px;width:100%}.holiday-form-section,.holiday-list-section{background:#fff;border:1px solid #eef2f5;border-radius:12px;box-shadow:0 4px 12px #0000000d;padding:24px}.holiday-list-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.holiday-form-section h2,.holiday-list-header h2{color:#1e293b;font-size:1.35rem;margin:0 0 8px}.holiday-list-header p{color:#64748b;font-size:.92rem;margin:0}.holiday-year-filter{display:flex;flex-direction:column;gap:6px}.holiday-year-filter label{color:#475569;font-size:.8rem;font-weight:600}.holiday-year-filter select{background:#fff;border:1px solid #dbe3ea;border-radius:8px;min-width:110px;padding:8px 10px}.holiday-form{display:flex;flex-direction:column;gap:16px}.holiday-form .form-group{display:flex;flex-direction:column;gap:6px}.holiday-form .form-row{display:flex;gap:16px}.holiday-form .form-row .form-group{flex:1 1}.holiday-form label{color:#475569;font-size:.85rem;font-weight:600}.holiday-form input,.holiday-form select,.holiday-form textarea{border:1px solid #dbe3ea;border-radius:8px;font-size:.95rem;padding:10px 12px}.holiday-form textarea{resize:vertical}.holiday-form-actions{display:flex;gap:10px;justify-content:flex-end}.holiday-btn{border:none;border-radius:8px;cursor:pointer;font-weight:600;padding:10px 16px}.holiday-btn:disabled{cursor:not-allowed;opacity:.6}.holiday-btn--primary{background:linear-gradient(135deg,#2ed8a3,#1e6bd6);color:#fff}.holiday-btn--ghost{background:#f8fafc;border:1px solid #dbe3ea;color:#334155}.holiday-btn--danger{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}.holiday-table-wrap{overflow-x:auto}.holiday-table{border-collapse:collapse;width:100%}.holiday-table td,.holiday-table th{border-bottom:1px solid #eef2f5;padding:12px 10px;text-align:left;vertical-align:top}.holiday-table th{color:#64748b;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.holiday-table td strong{color:#0f172a;display:block}.holiday-table td small{color:#64748b;display:block;font-size:.82rem;margin-top:4px}.holiday-actions{display:flex;flex-wrap:wrap;gap:8px}.holiday-type-badge{background:#eff6ff;border-radius:999px;color:#1d4ed8;display:inline-block;font-size:.78rem;font-weight:600;padding:4px 10px}.holiday-type-badge--festival{background:#fff7ed;color:#c2410c}.holiday-type-badge--restricted{background:#faf5ff;color:#7e22ce}.holiday-type-badge--company{background:#ecfdf5;color:#047857}.holiday-empty{color:#64748b;margin:0}.holiday-status{border-radius:8px;font-size:.9rem;margin-bottom:16px;padding:10px 12px}.holiday-status--success{background:#ecfdf5;border:1px solid #bbf7d0;color:#047857}.holiday-status--error{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}@media (max-width:768px){.holiday-form .form-row,.holiday-list-header{flex-direction:column}}.weekoff-manager-container{display:flex;flex-direction:column-reverse;gap:32px;margin-top:24px;width:100%}.weekoff-form-section,.weekoff-list-section{background:#fff;border:1px solid #eef2f5;border-radius:12px;box-shadow:0 4px 12px #0000000d;padding:24px}.weekoff-form-section h2,.weekoff-list-header h2{color:#1e293b;font-size:1.35rem;margin:0 0 8px}.weekoff-list-header p{color:#64748b;font-size:.92rem;margin:0 0 20px}.weekoff-form{display:flex;flex-direction:column;gap:18px}.weekoff-form .form-group{display:flex;flex-direction:column;gap:8px}.weekoff-form label{color:#475569;font-size:.85rem;font-weight:600}.weekoff-form select{background:#fff;border:1px solid #dbe3ea;border-radius:8px;padding:10px 12px}.weekoff-field-hint{color:#64748b;font-size:.82rem;line-height:1.4}.weekoff-days-grid{display:flex;flex-wrap:wrap;gap:10px}.weekoff-day-btn{background:#f8fafc;border:1px solid #dbe3ea;border-radius:10px;color:#475569;cursor:pointer;font-weight:600;min-width:54px;padding:10px 12px}.weekoff-day-btn.active{background:linear-gradient(135deg,#2ed8a3,#1e6bd6);border-color:#0000;color:#fff}.weekoff-form-actions{display:flex;gap:10px;justify-content:flex-end}.weekoff-btn{border:none;border-radius:8px;cursor:pointer;font-weight:600;padding:10px 16px}.weekoff-btn:disabled{cursor:not-allowed;opacity:.6}.weekoff-btn--primary{background:linear-gradient(135deg,#2ed8a3,#1e6bd6);color:#fff}.weekoff-btn--ghost{background:#f8fafc;border:1px solid #dbe3ea;color:#334155}.weekoff-btn--danger{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}.weekoff-table-wrap{overflow-x:auto}.weekoff-table{border-collapse:collapse;width:100%}.weekoff-table td,.weekoff-table th{border-bottom:1px solid #eef2f5;padding:12px 10px;text-align:left;vertical-align:top}.weekoff-table th{color:#64748b;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.weekoff-table td strong{color:#0f172a;display:block}.weekoff-table td small{color:#64748b;display:block;font-size:.82rem;margin-top:4px}.weekoff-day-badges{display:flex;flex-wrap:wrap;gap:8px}.weekoff-day-badge{background:#eff6ff;border-radius:999px;color:#1d4ed8;display:inline-block;font-size:.8rem;font-weight:600;padding:4px 10px}.weekoff-actions{display:flex;flex-wrap:wrap;gap:8px}.weekoff-empty{color:#64748b;margin:0}.weekoff-status{border-radius:8px;font-size:.9rem;margin-bottom:16px;padding:10px 12px}.weekoff-status--success{background:#ecfdf5;border:1px solid #bbf7d0;color:#047857}.weekoff-status--error{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}@media (max-width:768px){.weekoff-days-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}}.payroll-page{background-color:#f8fafc;flex:1 1;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-y:auto;padding:28px}.glass-morphism{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #e2e8f0cc;border-radius:20px;box-shadow:0 4px 20px -2px #94a3b814,0 2px 8px -1px #94a3b80a;transition:transform .2s ease,box-shadow .2s ease}.payroll-header-banner{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:28px}.payroll-title{color:#0f172a;font-size:28px;font-weight:800;letter-spacing:-.5px}.payroll-subtitle{color:#64748b;font-size:14px;margin-top:4px}.payroll-header-actions{display:flex;gap:12px}.gradient-btn{align-items:center;background:linear-gradient(135deg,#1e6bd6,#2bb7da);border:none;border-radius:12px;box-shadow:0 4px 12px #1e6bd626;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:11px 20px;transition:all .2s ease}.gradient-btn:hover{box-shadow:0 6px 16px #1e6bd640;opacity:.95;transform:translateY(-1px)}.gradient-btn:active{transform:translateY(0)}.gradient-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.payroll-tabs-bar{border-bottom:1px solid #e2e8f0;display:flex;gap:8px;margin-bottom:24px;padding-bottom:8px}.tab-btn{align-items:center;background:none;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 18px;transition:all .2s ease}.tab-btn:hover{background:#f1f5f9;color:#0f172a}.tab-btn.active{background:#eff6ff;color:#1e6bd6}.payroll-stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-bottom:28px}.stat-card{align-items:center;display:flex;gap:18px;padding:22px 24px}.stat-card:hover{box-shadow:0 10px 25px -5px #94a3b826;transform:translateY(-2px)}.stat-icon-wrapper{align-items:center;border-radius:12px;display:flex;height:52px;justify-content:center;width:52px}.indigo-bg{background-color:#eff6ff}.green-bg{background-color:#ecfdf5}.red-bg{background-color:#fef2f2}.amber-bg{background-color:#fffbeb}.stat-label{color:#64748b;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.stat-value{color:#0f172a;font-size:24px;font-weight:800;letter-spacing:-.5px;margin-top:4px}.status-banner{align-items:center;animation:fadeIn .3s ease;border-radius:12px;display:flex;font-size:14px;font-weight:500;gap:12px;margin-bottom:24px;padding:14px 20px;position:relative}.status-banner.success{background-color:#d1fae5;border:1px solid #a7f3d0;color:#065f46}.status-banner.error{background-color:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.close-status{background:none;border:none;color:inherit;cursor:pointer;opacity:.6;position:absolute;right:14px;top:50%;transform:translateY(-50%)}.close-status:hover{opacity:1}.payroll-processor-card{margin-bottom:28px;padding:30px}.processor-head h2{color:#0f172a;font-size:18px;font-weight:700}.processor-head p{color:#64748b;font-size:13px;margin-top:4px}.processor-controls{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:28px;margin-top:24px}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{color:#475569;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.control-select{background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;color:#0f172a;font-size:14px;font-weight:500;height:46px;outline:none;padding:0 16px;transition:border-color .2s ease}.control-select:focus{border-color:#1e6bd6}.processor-actions-footer{border-top:1px solid #f1f5f9;display:flex;gap:12px;justify-content:flex-end;padding-top:20px}.btn-secondary-custom{align-items:center;background-color:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#334155;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:11px 20px;transition:all .2s ease}.btn-secondary-custom:hover{background-color:#f8fafc;border-color:#94a3b8}.btn-primary-custom{align-items:center;background-color:#1e6bd6;border:none;border-radius:12px;box-shadow:0 4px 12px #1e6bd626;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:11px 20px;transition:all .2s ease}.btn-primary-custom:hover{background-color:#1d4ed8;box-shadow:0 6px 16px #1e6bd640}.btn-primary-custom:disabled{cursor:not-allowed;opacity:.6}.history-table-container{margin-bottom:28px;padding:30px}.table-header-filters{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:22px}.table-header-filters h2{color:#0f172a;font-size:18px;font-weight:700}.filter-actions-row{align-items:center;display:flex;gap:12px}.table-search-bar{align-items:center;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;display:flex;gap:10px;height:42px;padding:0 14px;width:280px}.table-search-bar input{border:none;color:#0f172a;font-size:14px;outline:none;width:100%}.table-search-bar svg{color:#64748b}.btn-csv{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:10px;color:#334155;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px;height:42px;padding:0 16px;transition:all .2s ease}.btn-csv:hover{background-color:#f8fafc}.scrollable-table-wrapper{overflow-x:auto}.payroll-custom-table{border-collapse:collapse;text-align:left;width:100%}.payroll-custom-table th{border-bottom:1px solid #e2e8f0;color:#475569;font-size:12px;font-weight:700;letter-spacing:.5px;padding:14px 16px;text-transform:uppercase}.payroll-custom-table td{border-bottom:1px solid #f1f5f9;color:#334155;font-size:14px;padding:16px}.payroll-custom-table tr:hover td{background-color:#f8fafc}.payroll-code-text{color:#1e6bd6;font-weight:700}.emp-code-cell{color:#475569;font-weight:600}.emp-name-cell{color:#0f172a;font-weight:600}.net-salary-val{color:#0f172a;font-weight:700}.deduction-val{color:#ef4444}.badge-status{align-items:center;border-radius:9999px;display:inline-flex;font-size:12px;font-weight:600;padding:4px 12px}.badge-status.processed{background-color:#d1fae5;color:#065f46}.badge-status.pending{background-color:#fffbeb;color:#b45309}.row-action-buttons{display:flex;gap:8px;justify-content:center}.action-btn-pdf,.action-btn-view{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.action-btn-pdf svg,.action-btn-view svg{flex-shrink:0}.action-btn-view{background-color:#eff6ff;color:#3b82f6}.action-btn-view:hover{background-color:#dbeafe}.action-btn-pdf{background-color:#ecfdf5;color:#10b981}.action-btn-pdf:hover{background-color:#d1fae5}.empty-table-cell{color:#64748b;font-style:italic;padding:40px!important;text-align:center}.analytics-card{padding:30px}.chart-card-head h2{color:#0f172a;font-size:18px;font-weight:700}.chart-card-head p{color:#64748b;font-size:13px;margin-bottom:24px;margin-top:4px}.chart-empty{align-items:center;color:#94a3b8;display:flex;flex-direction:column;gap:12px;padding:60px 0}.details-overlay{animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a66;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:1000}.details-drawer{animation:slideLeft .3s cubic-bezier(.16,1,.3,1);background-color:#fff;border-radius:24px 0 0 24px;box-shadow:-10px 0 30px #0f172a1a;display:flex;flex-direction:column;gap:24px;height:100%;max-width:580px;overflow-y:auto;padding:32px;width:100%}.drawer-header{align-items:flex-start;display:flex;justify-content:space-between}.drawer-header h2{color:#0f172a;font-size:20px;font-weight:800}.drawer-header p{color:#64748b;font-size:13px;margin-top:4px}.close-drawer-btn{align-items:center;background-color:#f1f5f9;border:none;border-radius:50%;color:#475569;cursor:pointer;display:flex;height:36px;justify-content:center;transition:background-color .2s ease;width:36px}.close-drawer-btn:hover{background-color:#e2e8f0}.drawer-meta-grid{grid-gap:16px;background-color:#f8fafc;border-radius:12px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);padding:16px 20px}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-lbl{color:#94a3b8;font-size:11px;font-weight:600;text-transform:uppercase}.meta-item strong{color:#334155;font-size:14px}.details-card-block{border:1px solid #f1f5f9;border-radius:16px;padding:20px}.details-card-block h3{color:#0f172a;font-size:14px;font-weight:700;margin-bottom:14px}.grid-4-cols{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}.att-box{background-color:#f8fafc;border-radius:10px;display:flex;flex-direction:column;gap:6px;padding:12px}.att-box span{color:#64748b;font-size:11px}.att-box strong{color:#0f172a;font-size:16px}.att-box.present{background-color:#ecfdf5;color:#047857}.att-box.paid{background-color:#eff6ff;color:#1d4ed8}.att-box.absent{background-color:#fff1f2;color:#b91c1c}.att-box.absent strong,.att-box.paid strong,.att-box.present strong{color:inherit}.ot-badge-alert{background-color:#fffbeb;border:1px solid #fef3c7;border-radius:10px;color:#d97706;font-size:13px;margin-top:14px;padding:10px 14px}.earnings-deductions-sheet{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.sheet-column h4{border-bottom:2px solid #f1f5f9;font-weight:700;margin-bottom:12px;padding-bottom:6px;text-transform:uppercase}.item-row,.sheet-column h4{color:#475569;font-size:13px}.item-row{border-bottom:1px solid #f8fafc;display:flex;justify-content:space-between;padding:8px 0}.item-row.highlight-green{color:#10b981;font-weight:600}.item-row.highlight-red{color:#ef4444;font-weight:600}.total-summary-row{border-top:2px dashed #e2e8f0;color:#0f172a;display:flex;font-size:14px;font-weight:700;justify-content:space-between;margin-top:10px;padding-top:10px}.total-summary-row.red-total{color:#ef4444}.net-payout-banner{align-items:center;background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:16px;color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.net-payout-banner .net-lbl{color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase}.net-payout-banner .words-lbl{color:#cbd5e1;font-size:11px;font-style:italic;margin-top:4px}.net-val{color:#10b981;font-size:28px;font-weight:800}.formula-audit-card{background-color:#1e293b;border-radius:12px;color:#cbd5e1;padding:16px 20px}.formula-head{align-items:center;color:#94a3b8;display:flex;font-size:12px;font-weight:600;gap:8px;margin-bottom:10px;text-transform:uppercase}.formula-body{display:flex;flex-direction:column;font-family:Fira Code,Courier New,Courier,monospace;font-size:11px;gap:6px;line-height:1.6}.formula-body code{color:#38bdf8}.drawer-commit-row{display:flex;gap:12px;margin-top:auto}.btn-cancel{background-color:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#334155}.btn-cancel,.btn-primary-commit{cursor:pointer;flex:1 1;font-weight:600;height:48px}.btn-primary-commit{align-items:center;background-color:#10b981;border:none;border-radius:12px;box-shadow:0 4px 12px #10b98126;color:#fff;display:flex;gap:8px;justify-content:center}.btn-primary-commit:hover{background-color:#059669}.upload-modal{max-width:440px;width:100%}.upload-dropzone{border-radius:12px;margin-top:18px}.upload-results-box{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;color:#1e3a8a;font-size:13px;margin-top:14px;padding:12px 16px;text-align:left}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideLeft{0%{transform:translateX(100%)}to{transform:translateX(0)}}@media (max-width:768px){.drawer-meta-grid,.earnings-deductions-sheet{grid-template-columns:1fr}.grid-4-cols{grid-template-columns:repeat(2,1fr)}}.confirm-modal-overlay{align-items:center;animation:confirm-overlay-in .15s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f0f1973;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1100}@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}.confirm-modal{animation:confirm-modal-in .18s cubic-bezier(.34,1.56,.64,1);background:#fff;border-radius:18px;box-shadow:0 20px 60px #00000026,0 4px 16px #00000014;max-width:420px;padding:28px 28px 24px;position:relative;width:100%}@keyframes confirm-modal-in{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-modal--danger:before{background:linear-gradient(90deg,#ef4444,#f87171)}.confirm-modal--danger:before,.confirm-modal--warning:before{border-radius:18px 18px 0 0;content:"";display:block;height:4px;left:0;position:absolute;right:0;top:0}.confirm-modal--warning:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.confirm-modal--success:before{background:linear-gradient(90deg,#10b981,#34d399);border-radius:18px 18px 0 0;content:"";display:block;height:4px;left:0;position:absolute;right:0;top:0}.confirm-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;padding:4px;position:absolute;right:14px;top:14px;transition:color .15s,background .15s}.confirm-modal-close:hover{background:#f3f4f6;color:#374151}.confirm-modal-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.confirm-modal-icon{flex-shrink:0}.confirm-modal-icon.danger{color:#ef4444}.confirm-modal-icon.warning{color:#f59e0b}.confirm-modal-icon.success{color:#10b981}.confirm-modal-title{color:#111827;font-size:1.05rem;font-weight:700;margin:0}.confirm-modal-message{color:#6b7280;font-size:.875rem;line-height:1.55;margin:0 0 18px}.confirm-modal-input-block{margin-bottom:18px}.confirm-modal-input-label{color:#374151;display:block;font-size:.8rem;font-weight:600;margin-bottom:6px}.confirm-modal-textarea{border:1px solid #e5e7eb;border-radius:10px;box-sizing:border-box;color:#111827;font-family:inherit;font-size:.85rem;min-height:80px;outline:none;padding:9px 12px;resize:vertical;transition:border-color .15s;width:100%}.confirm-modal-textarea:focus{border-color:#6366f1}.confirm-modal-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-modal-btn{border:none;border-radius:10px;cursor:pointer;font-size:.875rem;font-weight:600;padding:9px 20px;transition:opacity .15s,transform .1s}.confirm-modal-btn:disabled{cursor:not-allowed;opacity:.55}.confirm-modal-btn:active:not(:disabled){transform:scale(.97)}.confirm-modal-btn.cancel{background:#f3f4f6;color:#374151}.confirm-modal-btn.cancel:hover:not(:disabled){background:#e5e7eb}.confirm-modal-btn.confirm--danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.confirm-modal-btn.confirm--danger:hover:not(:disabled){opacity:.9}.confirm-modal-btn.confirm--warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.confirm-modal-btn.confirm--warning:hover:not(:disabled){opacity:.9}.confirm-modal-btn.confirm--success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.confirm-modal-btn.confirm--success:hover:not(:disabled){opacity:.9}.toast-container{bottom:28px;display:flex;flex-direction:column;gap:10px;max-width:360px;pointer-events:none;position:fixed;right:24px;width:calc(100vw - 48px);z-index:1200}.toast-item{align-items:flex-start;animation:toast-slide-in .22s cubic-bezier(.34,1.56,.64,1);background:#fff;border-radius:14px;box-shadow:0 8px 30px #0000001f,0 2px 8px #0000000f;display:flex;gap:10px;overflow:hidden;padding:13px 14px;pointer-events:all;position:relative}@keyframes toast-slide-in{0%{opacity:0;transform:translateX(60px) scale(.95)}to{opacity:1;transform:translateX(0) scale(1)}}.toast-item:before{border-radius:14px 0 0 14px;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.toast-item--success:before{background:#10b981}.toast-item--error:before{background:#ef4444}.toast-item--warning:before{background:#f59e0b}.toast-item--info:before{background:#6366f1}.toast-icon{display:flex;flex-shrink:0;margin-top:1px}.toast-icon--success{color:#10b981}.toast-icon--error{color:#ef4444}.toast-icon--warning{color:#f59e0b}.toast-icon--info{color:#6366f1}.toast-message{color:#111827;flex:1 1;font-size:.875rem;font-weight:500;line-height:1.45;margin:0;word-break:break-word}.toast-close{background:none;border:none;border-radius:5px;color:#9ca3af;cursor:pointer;display:flex;flex-shrink:0;margin-top:1px;padding:2px;transition:color .15s,background .15s}.toast-close:hover{background:#f3f4f6;color:#374151}@media (max-width:480px){.toast-container{bottom:16px;left:12px;max-width:none;right:12px;width:auto}}.attendance-page{display:flex;flex-direction:column;gap:22px;max-width:1400px}.attendance-view-toolbar{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.attendance-view-toolbar-text h1{color:#0f172a;font-size:30px;font-weight:700;letter-spacing:-.02em;margin:0}.attendance-view-toolbar-text p{color:#64748b;font-size:15px;margin:6px 0 0}.attendance-role-select-wrap{display:flex;flex-direction:column;gap:6px;min-width:200px}.attendance-role-select-wrap label{color:#64748b;font-size:13px;font-weight:600}.attendance-role-select{background:#fff;border:1px solid #dbe4ef;border-radius:10px;color:#0f172a;cursor:pointer;font-size:14px;font-weight:600;min-height:42px;padding:10px 12px}.attendance-role-banner{align-items:center;border-radius:10px;display:flex;font-size:14px;font-weight:500;gap:10px;padding:12px 16px}.attendance-role-banner.manager{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.attendance-hr-actions{display:flex;flex-wrap:wrap;gap:10px}.attendance-hr-btn{align-items:center;background:#2563eb;border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:10px 16px}.attendance-hr-btn.secondary{background:#fff;border:1px solid #dbe4ef;color:#334155}.attendance-action-btn{background:#fff;border:1px solid #dbe4ef;border-radius:8px;color:#2563eb;cursor:pointer;font-size:13px;font-weight:600;padding:6px 12px}.attendance-checkin-card{background:#fff;border:1px solid #e8edf4;border-radius:16px;box-shadow:0 4px 24px #0f172a0f;overflow:hidden;padding:0}.attendance-checkin-card--hero .attendance-checkin-hero{align-items:flex-start;background:linear-gradient(135deg,#1e3a8a,#2563eb 55%,#3b82f6);color:#fff;display:flex;gap:16px;justify-content:space-between;padding:24px 28px}.attendance-checkin-hero-text h2{color:#fff;font-size:22px;font-weight:700;letter-spacing:-.02em;margin:8px 0 0}.attendance-checkin-card--hero .attendance-checkin-date{color:#ffffffd9;display:inline-block;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.attendance-checkin-card--hero .attendance-checkin-subtitle{color:#ffffffc7;font-size:14px;margin:8px 0 0}.attendance-status-pill{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff2e;border:1px solid #ffffff47;border-radius:999px;color:#fff;display:inline-flex;font-size:13px;font-weight:700;gap:6px;padding:8px 14px;white-space:nowrap}.attendance-status-pill.live{background:#22c55e40;border-color:#86efac80}.attendance-status-pill.present{background:#22c55e33}.attendance-status-pill.absent{background:#ef444433}.attendance-status-pill.late{background:#3b82f640}.attendance-status-pill.half-day{background:#f59e0b40}.attendance-metrics-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));padding:20px 28px 8px}.attendance-metric-card{align-items:center;background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;display:flex;gap:12px;padding:14px 16px;transition:transform .15s ease,box-shadow .15s ease}.attendance-metric-card:hover{box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.attendance-metric-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.attendance-metric-card.accent-green .attendance-metric-icon{background:#dcfce7;color:#16a34a}.attendance-metric-card.accent-slate .attendance-metric-icon{background:#f1f5f9;color:#475569}.attendance-metric-card.accent-blue .attendance-metric-icon{background:#dbeafe;color:#2563eb}.attendance-metric-card.accent-violet .attendance-metric-icon{background:#ede9fe;color:#7c3aed}.attendance-metric-label{color:#64748b;display:block;font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.attendance-metric-value{color:#0f172a;display:block;font-size:18px;font-weight:700;line-height:1.2;margin-top:4px}.attendance-checkin-actions--center{justify-content:center;padding:8px 28px 20px}.attendance-checkin-card--hero .checkin-btn{border-radius:12px;box-shadow:0 2px 8px #0f172a14;font-size:15px;min-width:148px;padding:14px 22px}.attendance-checkin-card--hero .checkin-btn.present{background:linear-gradient(135deg,#16a34a,#22c55e)}.attendance-checkin-card--hero .attendance-save-msg{margin:0;padding:0 28px 8px}.attendance-checkin-card--hero .attendance-today-sessions{background:#fafbfc;border-top:1px solid #f1f5f9;margin:0;padding:22px 28px 28px}.attendance-today-sessions-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.attendance-today-sessions-header h3{color:#0f172a;font-size:16px;font-weight:700;margin:0}.attendance-today-sessions-count{background:#fff;border:1px solid #e2e8f0;border-radius:999px;color:#64748b;font-size:13px;font-weight:600;padding:4px 10px}.attendance-sessions-timeline{display:flex;flex-direction:column;gap:0}.attendance-timeline-item{grid-gap:14px;align-items:stretch;display:grid;gap:14px;grid-template-columns:28px 1fr}.attendance-timeline-rail{align-items:center;display:flex;flex-direction:column;padding-top:18px}.attendance-timeline-dot{background:#2563eb;border:3px solid #dbeafe;border-radius:50%;flex-shrink:0;height:12px;width:12px}.attendance-timeline-item.open .attendance-timeline-dot{background:#16a34a;border-color:#bbf7d0;box-shadow:0 0 0 4px #22c55e26}.attendance-timeline-line{background:linear-gradient(180deg,#cbd5e1,#e2e8f0);flex:1 1;margin-top:6px;min-height:24px;width:2px}.attendance-timeline-card{background:#fff;border:1px solid #e8edf4;border-radius:14px;box-shadow:0 1px 3px #0f172a0a;margin-bottom:14px;padding:16px 18px}.attendance-timeline-item.open .attendance-timeline-card{background:linear-gradient(180deg,#f0fdf4,#fff);border-color:#86efac}.attendance-timeline-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.attendance-live-pill{background:#dcfce7;border-radius:999px;color:#16a34a;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.attendance-timeline-times{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.attendance-timeline-time{align-items:flex-start;background:#f8fafc;border-radius:10px;display:flex;gap:10px;padding:10px 12px}.attendance-timeline-time.in svg{color:#16a34a;flex-shrink:0;margin-top:2px}.attendance-timeline-time.out svg{flex-shrink:0;margin-top:2px}.attendance-timeline-time span{color:#94a3b8;display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.attendance-timeline-time strong{color:#0f172a;display:block;font-size:15px;font-weight:700;margin-top:2px}.attendance-sessions-empty-wrap{align-items:center;background:#fff;border:2px dashed #e2e8f0;border-radius:14px;color:#94a3b8;display:flex;flex-direction:column;gap:10px;justify-content:center;padding:32px 20px}.attendance-sessions-empty-wrap p{line-height:1.5;margin:0;max-width:280px;text-align:center}.attendance-employee-layout{grid-gap:22px;align-items:start;display:grid;gap:22px;grid-template-columns:1.1fr .9fr}.attendance-employee-primary,.attendance-employee-secondary{display:flex;flex-direction:column;gap:22px;min-width:0}.attendance-link-notice{padding:24px 28px}.attendance-checkin-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.attendance-checkin-header h2{color:#0f172a;font-size:18px;font-weight:700;margin:0}.attendance-checkin-date{color:#64748b;font-size:14px;font-weight:500}.attendance-checkin-body{align-items:center;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}.attendance-checkin-label{color:#64748b;display:block;font-size:13px;margin-bottom:4px}.attendance-checkin-times{color:#475569;display:flex;font-size:14px;gap:16px;margin-top:10px}.attendance-checkin-times span{align-items:center;display:inline-flex;gap:6px}.attendance-checkin-actions{display:flex;flex-wrap:wrap;gap:10px}.checkin-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:12px 18px}.checkin-btn.present{background:#16a34a;color:#fff}.checkin-btn.outline{background:#fff;border:1px solid #dbe4ef;color:#334155}.checkin-btn:disabled{cursor:not-allowed;opacity:.55}.attendance-checkin-subtitle{color:#64748b;font-size:13px;margin:6px 0 0}.attendance-link-notice p{margin:0}.attendance-section-heading{color:#0f172a;font-size:20px;font-weight:700;margin:0 0 14px}.attendance-today-sessions{border-top:1px solid #f1f5f9;margin-top:22px;padding-top:20px}.attendance-today-sessions h3{color:#0f172a;font-size:15px;font-weight:700;margin:0 0 12px}.attendance-sessions-list{display:flex;flex-direction:column;gap:10px}.attendance-session-row{grid-gap:12px;align-items:center;background:#f8fafc;border:1px solid #e8edf4;border-radius:10px;color:#334155;display:grid;font-size:14px;gap:12px;grid-template-columns:110px 1fr 1fr auto;padding:12px 14px}.attendance-session-row.open{background:#f0fdf4;border-color:#86efac}.attendance-session-badge{color:#475569;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.attendance-session-time{align-items:center;display:inline-flex;gap:6px}.attendance-session-hours{color:#0f172a;font-weight:600;text-align:right}.attendance-sessions-total{align-items:center;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:12px;color:#1d4ed8;display:flex;font-size:14px;justify-content:space-between;margin-top:6px;padding:14px 18px}.attendance-sessions-total strong{font-size:18px;font-weight:800}.attendance-sessions-empty{color:#94a3b8;font-size:14px;margin:0}.attendance-day-sessions-card{animation:attendance-fade-in .25s ease;background:#fff;border:1px solid #e8edf4;border-radius:16px;box-shadow:0 4px 20px #0f172a0d;padding:22px 24px}@keyframes attendance-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.attendance-day-sessions-card h2{border-bottom:1px solid #f1f5f9;color:#0f172a;font-size:17px;font-weight:700;margin:0 0 16px;padding-bottom:12px}.attendance-day-records{display:flex;flex-direction:column;gap:18px}.attendance-day-record{background:#fafbfc;border:1px solid #f1f5f9;border-radius:12px;padding:16px}.attendance-day-record-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.attendance-session-toggle{align-items:center;background:#fff;border:1px solid #dbe4ef;border-radius:8px;color:#2563eb;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:4px;padding:4px 8px}.attendance-sessions-expand-row td{background:#f8fafc;padding-top:0}.calendar-day{align-items:center;background:#fff;border:1px solid #0000;border-radius:10px;color:#334155;cursor:default;display:flex;flex-direction:column;font-family:inherit;font-size:14px;font-weight:600;gap:2px;justify-content:center;min-height:52px;padding:0}.calendar-day.has-sessions:not(:disabled){cursor:pointer}.calendar-day.has-sessions:not(:disabled):hover{box-shadow:0 0 0 2px #93c5fd}.calendar-day.selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb}.calendar-day:disabled{cursor:default}.calendar-day-sessions{align-items:center;background:#2563eb;border-radius:999px;color:#fff;display:inline-flex;font-size:10px;font-weight:800;height:18px;justify-content:center;line-height:1;min-width:18px;padding:0 4px}.calendar-day.has-sessions .calendar-day-sessions{margin-top:2px}.calendar-day.present .calendar-day-sessions{background:#15803d}.calendar-day.today .calendar-day-sessions{background:#4f46e5}.calendar-legend-hint{color:#94a3b8;font-size:12px;margin-left:auto}.attendance-timeline-time.out svg{color:#64748b}.attendance-session-location{align-items:center;color:#2563eb;display:inline-flex;font-size:13px;font-weight:500;gap:8px;margin-top:12px;text-decoration:none}.attendance-session-location:hover{text-decoration:underline}.attendance-session-locations{display:flex;flex-direction:column;gap:8px;margin-top:12px}.attendance-checkin-proof{border-top:1px solid #e8edf4;display:flex;flex-wrap:wrap;gap:24px;margin-top:18px;padding-top:18px}.attendance-checkin-selfie{border-top:none;margin-top:0;padding-top:0}.attendance-checkin-selfie img{border:1px solid #dbe4ef;border-radius:12px;display:block;height:120px;margin-top:8px;object-fit:cover;width:120px}.attendance-checkin-location-link{align-items:center;color:#2563eb;display:inline-flex;font-size:14px;font-weight:500;gap:8px;margin-top:8px;text-decoration:none}.attendance-checkin-location-link:hover{text-decoration:underline}.selfie-modal-backdrop{align-items:center;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1200}.selfie-modal{background:#fff;border-radius:16px;box-shadow:0 24px 48px #0f172a2e;overflow:hidden;width:min(100%,480px)}.selfie-modal-header{display:flex;gap:16px;justify-content:space-between;padding:20px 22px 0}.selfie-modal-header h2{color:#0f172a;font-size:18px;font-weight:700;margin:0}.selfie-modal-header p{color:#64748b;font-size:14px;margin:6px 0 0}.selfie-modal-close{align-items:center;background:#fff;border:1px solid #dbe4ef;border-radius:10px;color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.selfie-modal-body{padding:18px 22px}.selfie-preview,.selfie-video-wrap{aspect-ratio:4/3;background:#0f172a;border-radius:14px;overflow:hidden;width:100%}.selfie-video-wrap{position:relative}.selfie-preview,.selfie-video{display:block;height:100%;object-fit:cover;width:100%}.selfie-video-loading{align-items:center;background:#0f172a59;color:#fff;display:flex;font-size:14px;inset:0;justify-content:center;position:absolute}.selfie-error{color:#dc2626;font-size:14px;margin:12px 0 0}.selfie-modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:0 22px 22px}.selfie-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:11px 16px}.selfie-btn.primary{background:#16a34a;color:#fff}.selfie-btn.secondary{background:#fff;border:1px solid #dbe4ef;color:#334155}.selfie-btn:disabled{cursor:not-allowed;opacity:.65}.attendance-my-row{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding:8px 0}.attendance-my-details{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(4,minmax(80px,1fr))}.attendance-my-label{color:#94a3b8;display:block;font-size:12px;font-weight:600;margin-bottom:4px}.attendance-my-details strong{color:#0f172a;font-size:15px}.attendance-error{color:#dc2626;font-weight:600;margin:0}.attendance-page-header h1{color:#0f172a;font-size:30px;font-weight:700;letter-spacing:-.02em}.attendance-page-header p{color:#64748b;font-size:15px;margin-top:6px}.attendance-stats{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-stat-card{align-items:center;background:#fff;border:1px solid #e8edf4;border-radius:14px;box-shadow:0 1px 2px #0f172a0a;display:flex;gap:16px;padding:20px 22px}.attendance-stat-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.attendance-stat-icon.present{background:#ecfdf5;color:#10b981}.attendance-stat-icon.absent{background:#fef2f2;color:#ef4444}.attendance-stat-icon.half-day{background:#fff7ed;color:#f59e0b}.attendance-stat-icon.late{background:#eff6ff;color:#3b82f6}.attendance-stat-label{color:#64748b;display:block;font-size:14px;font-weight:500}.attendance-stat-body strong{color:#0f172a;display:block;font-size:30px;font-weight:700;line-height:1;margin-top:6px}.attendance-calendar-card,.attendance-table-card{background:#fff;border:1px solid #e8edf4;border-radius:16px;box-shadow:0 4px 20px #0f172a0d;padding:24px 26px}.attendance-mark-card{background:#fff;border:1px solid #e8edf4;border-radius:14px;box-shadow:0 1px 2px #0f172a0a;padding:20px 24px}.attendance-mark-card h2{color:#111827;font-size:18px;margin:0 0 12px}.attendance-mark-form{grid-gap:14px 12px;display:grid;gap:14px 12px;grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.attendance-form-field label,.attendance-form-label-spacer{color:#64748b;font-size:13px;font-weight:600;line-height:1.2}.attendance-form-label-spacer{visibility:hidden}.attendance-mark-form input[type=text],.attendance-mark-form input[type=time],.attendance-mark-form select{background:#fff;border:1px solid #dbe4ef;border-radius:10px;color:#0f172a;font-size:14px;min-height:42px;padding:10px 12px;width:100%}.attendance-mark-form input[type=time]{cursor:pointer}.attendance-form-submit button{width:100%}.attendance-mark-form button{background:#2563eb;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;min-height:42px}.attendance-save-msg{color:#2563eb;font-size:14px;margin-top:10px}.calendar-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.calendar-toolbar h2{color:#0f172a;font-size:18px;font-weight:700}.calendar-nav{display:flex;gap:6px}.calendar-nav button{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:flex;height:34px;justify-content:center;width:34px}.calendar-nav button:hover{background:#f8fafc}.calendar-days,.calendar-weekdays{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,1fr)}.calendar-weekdays span{color:#94a3b8;font-size:13px;font-weight:600;padding:4px 0 10px;text-align:center}.calendar-day.empty{background:#0000}.calendar-day.neutral{background:#fff;color:#475569;font-weight:500}.calendar-day.present{background:#dcfce7;color:#15803d}.calendar-day.absent{background:#fee2e2;color:#b91c1c}.calendar-day.half-day{background:#ffedd5;color:#c2410c}.calendar-day.late{background:#dbeafe;color:#1d4ed8}.calendar-day.holiday{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3}.calendar-day.holiday:not(:disabled){cursor:pointer}.calendar-day.week-off{background:#f8fafc;border:1px dashed #cbd5e1;color:#475569}.calendar-day.week-off:not(:disabled){cursor:pointer}.calendar-day-holiday{display:block;font-size:.58rem;font-weight:600;line-height:1.1;margin-top:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day-weekoff{color:#64748b;display:block;font-size:.62rem;font-weight:700;margin-top:2px}.calendar-day.today{border-color:#6366f1;box-shadow:0 0 0 2px #6366f1;font-weight:700;position:relative;z-index:1}.calendar-legend{border-top:1px solid #f1f5f9;display:flex;flex-wrap:wrap;gap:20px;margin-top:22px;padding-top:18px}.calendar-legend span{align-items:center;color:#64748b;display:inline-flex;font-size:13px;font-weight:500;gap:8px}.legend-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.legend-dot.present{background:#22c55e}.legend-dot.absent{background:#ef4444}.legend-dot.half-day{background:#f59e0b}.legend-dot.late{background:#3b82f6}.legend-dot.holiday{background:#6366f1}.legend-dot.week-off{background:#94a3b8}.attendance-holiday-banner{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;color:#312e81;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px;padding:12px 14px}.attendance-holiday-banner span{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.attendance-weekoff-banner{align-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;color:#334155;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px;padding:12px 14px}.attendance-weekoff-banner span{color:#64748b;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.attendance-table-card h2{color:#0f172a;font-size:18px;font-weight:700;margin-bottom:18px}.attendance-table-wrap{overflow-x:auto}.attendance-table{border-collapse:collapse;width:100%}.attendance-table th{border-bottom:1px solid #f1f5f9;color:#94a3b8;font-size:13px;font-weight:600;padding:12px 16px 14px 0;text-align:left}.attendance-table th:last-child{padding-right:0}.attendance-table td{border-bottom:1px solid #f8fafc;color:#334155;font-size:14px;padding:18px 16px 18px 0;vertical-align:middle}.attendance-table td:last-child{padding-right:0}.attendance-table tbody tr:last-child td{border-bottom:none}.attendance-empty{color:#94a3b8;text-align:center}.employee-cell{align-items:center;display:flex;gap:12px}.employee-info{display:flex;flex-direction:column;gap:2px}.employee-code{font-size:12px}.employee-avatar{align-items:center;background:#ede9fe;border-radius:50%;color:#7c3aed;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:38px;justify-content:center;width:38px}.employee-name{color:#0f172a;font-weight:600}.muted-cell{color:#64748b}.status-text{font-size:14px;font-weight:600}.status-text-present{color:#16a34a}.status-text-absent{color:#dc2626}.status-text-half-day{color:#ea580c}.status-text-late{color:#2563eb}@media (max-width:1100px){.attendance-mark-form,.attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-employee-layout{grid-template-columns:1fr}.attendance-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.attendance-mark-form,.attendance-session-row,.attendance-stats{grid-template-columns:1fr}.attendance-session-row{gap:8px}.attendance-metrics-grid,.attendance-timeline-times{grid-template-columns:1fr}.attendance-checkin-card--hero .attendance-checkin-hero{align-items:flex-start;flex-direction:column}.attendance-checkin-actions--center{flex-direction:column}.attendance-checkin-card--hero .checkin-btn{width:100%}.calendar-day{font-size:12px;min-height:40px}.attendance-my-details{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.attendance-view-toolbar{flex-direction:column}.attendance-role-select-wrap{width:100%}}.leave-page{display:flex;flex-direction:column;gap:20px;max-width:1400px}.leave-view-toolbar{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.leave-view-toolbar-text h1{color:#0f172a;font-size:30px;font-weight:700;letter-spacing:-.02em;margin:0}.leave-view-toolbar-text p{color:#64748b;font-size:15px;margin:6px 0 0}.leave-role-select-wrap{display:flex;flex-direction:column;gap:6px;min-width:200px}.leave-role-select-wrap label{color:#64748b;font-size:13px;font-weight:600}.leave-role-select{background:#fff;border:1px solid #dbe4ef;border-radius:10px;color:#0f172a;cursor:pointer;font-size:14px;font-weight:600;min-height:42px;padding:10px 12px}.leave-role-banner{align-items:center;border-radius:10px;display:flex;font-size:14px;font-weight:500;gap:10px;padding:12px 16px}.leave-role-banner.manager{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.leave-section-heading{color:#0f172a;font-size:20px;font-weight:700;margin:0 0 14px}.leave-self-section{display:flex;flex-direction:column;gap:18px}.leave-self-notice .leave-empty{margin:0}.leave-hr-actions{display:flex;flex-wrap:wrap;gap:10px}.leave-hr-btn{align-items:center;background:#2563eb;border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:10px 16px}.leave-hr-btn.secondary{background:#fff;border:1px solid #dbe4ef;color:#334155}.leave-team-balance-group{border-bottom:1px solid #f1f5f9;padding:12px 0}.leave-team-balance-group:last-child{border-bottom:none}.leave-team-balance-name{color:#0f172a;display:block;font-size:14px;margin-bottom:8px}.leave-error{color:#dc2626;margin:0}.leave-message{color:#2563eb;margin:0}.leave-summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.leave-card,.leave-summary-card{background:#fff;border:1px solid #e8edf4;border-radius:14px;box-shadow:0 1px 2px #0f172a0a}.leave-summary-card{align-items:center;display:flex;gap:12px;padding:18px}.leave-summary-card h3{font-size:32px;margin:0}.leave-summary-card p{color:#64748b;font-size:13px;margin:4px 0 0}.leave-icon{align-items:center;border-radius:12px;display:flex;height:44px;justify-content:center;width:44px}.leave-icon.blue{background:#eff6ff;color:#2563eb}.leave-icon.green{background:#ecfdf5;color:#16a34a}.leave-icon.amber{background:#fff7ed;color:#d97706}.leave-icon.purple{background:#f5f3ff;color:#7c3aed}.leave-layout-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:2fr 1.2fr}.leave-card{padding:18px 20px}.leave-card h3{align-items:center;display:flex;gap:8px;margin:0 0 12px}.leave-request-form{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.balance-editor input,.balance-editor select,.leave-request-form input,.leave-request-form select{border:1px solid #dbe4ef;border-radius:10px;min-height:42px;padding:10px 12px}.balance-editor button,.cancel-btn,.leave-request-form button{background:#2563eb;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;min-height:42px}.leave-list{display:flex;flex-direction:column;gap:10px}.leave-list-item{align-items:center;border:1px solid #f1f5f9;border-radius:10px;display:flex;justify-content:space-between;padding:10px 12px}.leave-list-item p{color:#64748b;font-size:13px;margin:2px 0 0}.leave-table{border-collapse:collapse;width:100%}.leave-table th{border-bottom:1px solid #f1f5f9;color:#64748b;font-size:13px;padding:10px 8px 12px 0;text-align:left}.leave-table td{border-bottom:1px solid #f8fafc;font-size:14px;padding:12px 8px 12px 0}.leave-status{border-radius:999px;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.leave-status.approved{background:#dcfce7;color:#15803d}.leave-status.pending{background:#fef3c7;color:#b45309}.leave-status.rejected{background:#fee2e2;color:#b91c1c}.leave-status.cancelled{background:#e2e8f0;color:#334155}.leave-actions{display:flex;gap:8px}.approve-btn,.reject-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;height:30px;justify-content:center;width:30px}.approve-btn{background:#dcfce7;color:#15803d}.reject-btn{background:#fee2e2;color:#b91c1c}.cancel-btn{background:#e2e8f0;color:#334155;min-height:30px;padding:0 10px}.balance-editor{display:flex;flex-direction:column;gap:10px}.balance-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:60px 1fr 1fr}.leave-balance-item{border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:10px 0}.leave-empty{color:#94a3b8;text-align:center}@media (max-width:1200px){.leave-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.leave-layout-grid{grid-template-columns:1fr}}@media (max-width:760px){.leave-request-form,.leave-summary-grid{grid-template-columns:1fr}.leave-view-toolbar{flex-direction:column}.leave-role-select-wrap{width:100%}}.manage-depts-container{box-sizing:border-box;color:#334155;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:2rem;width:100%}.manage-depts-stats{color:#64748b;font-size:.95rem;margin-bottom:1.25rem}.manage-depts-stats strong{color:#1e293b;font-weight:600}.manage-depts-toolbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.manage-depts-search{align-items:center;display:flex;flex:1 1;max-width:720px;position:relative}.manage-depts-search svg{color:#94a3b8;left:1rem;pointer-events:none;position:absolute}.manage-depts-search input{background-color:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#1e293b;font-size:.95rem;outline:none;padding:.75rem 1rem .75rem 2.75rem;transition:border-color .15s ease;width:100%}.manage-depts-search input:focus{border-color:#3b82f6}.manage-depts-actions{align-items:center;display:flex}.manage-depts-add-trigger{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:10px;box-shadow:0 2px 4px #2563eb33;color:#fff;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:opacity .15s ease}.manage-depts-add-trigger:hover{opacity:.95}.manage-depts-card{background-color:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;overflow:hidden;width:100%}.manage-depts-scrollable{overflow-x:auto;width:100%}.manage-depts-table{border-collapse:collapse;font-size:.95rem;text-align:left;width:100%}.manage-depts-table th{background-color:#fafafa;color:#64748b;font-weight:600;text-transform:capitalize}.manage-depts-table td,.manage-depts-table th{border-bottom:1px solid #f1f5f9;padding:1.25rem 1.5rem}.manage-depts-table td{color:#1e293b;vertical-align:middle}.manage-depts-table tr:last-child td{border-bottom:none}.manage-depts-empty{color:#94a3b8;font-style:italic;padding:4rem!important;text-align:center}.manage-depts-row-buttons{align-items:center;display:flex;gap:.5rem}.manage-depts-row-buttons button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;transition:transform .1s ease,background-color .15s ease;width:36px}.manage-depts-row-buttons button:active{transform:scale(.95)}.manage-depts-btn-view{background-color:#eff6ff;color:#2563eb}.manage-depts-btn-view:hover{background-color:#dbeafe}.manage-depts-btn-edit{background-color:#fef3c7;border:none!important;color:#d97706}.manage-depts-btn-edit:hover{background-color:#fde68a}.manage-depts-btn-delete{background-color:#fef2f2;color:#ef4444}.manage-depts-btn-delete:hover{background-color:#fee2e2}.manage-depts-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172a4d;display:flex;inset:0;justify-content:center;position:fixed;z-index:999}.manage-depts-modal{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;margin:1rem;max-height:85vh;width:100%}.manage-depts-modal--md{max-width:520px}.manage-depts-modal--lg{max-width:720px}.manage-depts-modal__header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.manage-depts-modal__header h3{color:#0f172a;font-size:1.2rem;font-weight:600;margin:0}.manage-depts-modal__close{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;display:inline-flex;padding:.25rem}.manage-depts-modal__close:hover{background-color:#f1f5f9}.manage-depts-modal__body{flex:1 1;overflow-y:auto;padding:1.5rem}.manage-depts-modal__footer{align-items:center;background-color:#fafafa;border-bottom-left-radius:12px;border-bottom-right-radius:12px;border-top:1px solid #f1f5f9;display:flex;gap:.75rem;justify-content:flex-end;padding:1.25rem 1.5rem}.manage-depts-section{margin-bottom:2rem}.manage-depts-section:last-child{margin-bottom:0}.manage-depts-section__head{margin-bottom:1.25rem}.manage-depts-section__head h4{color:#1e293b;font-size:1.05rem;font-weight:600;margin:0 0 .25rem}.manage-depts-section__head p{color:#64748b;font-size:.85rem;margin:0}.manage-depts-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,1fr)}.manage-depts-field{display:flex;flex-direction:column;gap:.5rem}.manage-depts-field--full{grid-column:span 2}.manage-depts-field label{color:#475569;font-size:.85rem;font-weight:600}.manage-depts-required{color:#ef4444;margin-left:.25rem}.manage-depts-field input[type=text],.manage-depts-field select,.manage-depts-field textarea{background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;box-sizing:border-box;color:#1e293b;font-size:.95rem;outline:none;padding:.65rem .85rem;width:100%}.manage-depts-field input[type=text]:focus,.manage-depts-field select:focus,.manage-depts-field textarea:focus{border-color:#3b82f6}.manage-depts-field input:disabled,.manage-depts-field select:disabled,.manage-depts-field textarea:disabled{background-color:#f8fafc;color:#64748b;cursor:not-allowed}.manage-depts-control-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;justify-content:center;padding:.65rem 1.5rem;transition:background-color .15s ease}.manage-depts-control-btn--secondary{background-color:#e2e8f0;color:#475569}.manage-depts-control-btn--secondary:hover{background-color:#cbd5e1}.manage-depts-control-btn--primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.manage-depts-control-btn--primary:hover{opacity:.95}@media (max-width:640px){.manage-depts-grid{grid-template-columns:1fr}.manage-depts-field--full{grid-column:span 1}.manage-depts-toolbar{align-items:stretch;flex-direction:column}}.expense-page{padding:0}.expense-view-toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px}.expense-view-toolbar-text h1{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.5rem;font-weight:700;margin:0}.expense-view-toolbar-text p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;margin:4px 0 0}.expense-summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.expense-summary-card{align-items:center;background:#fff;border-radius:14px;box-shadow:0 1px 4px #0000000f;display:flex;gap:14px;padding:18px 20px;transition:box-shadow .2s}.expense-summary-card:hover{box-shadow:0 4px 14px #0000001a}.expense-summary-card h3{color:#1a1a2e;font-size:1.4rem;font-weight:700;margin:0}.expense-summary-card p{color:#6b7280;font-size:.78rem;margin:2px 0 0}.expense-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:42px;justify-content:center;width:42px}.expense-icon.blue{background:#eff6ff;color:#3b82f6}.expense-icon.green{background:#ecfdf5;color:#10b981}.expense-icon.amber{background:#fffbeb;color:#f59e0b}.expense-icon.purple{background:#f3e8ff;color:#8b5cf6}.expense-icon.rose{background:#fff1f2;color:#f43f5e}.expense-layout-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:24px}@media (max-width:900px){.expense-layout-grid{grid-template-columns:1fr}}.expense-card{background:#fff;border-radius:14px;box-shadow:0 1px 4px #0000000f;padding:22px 24px}.expense-card h3{align-items:center;color:#1a1a2e;display:flex;font-size:1rem;font-weight:600;gap:8px;margin:0 0 16px}.expense-status{border-radius:999px;display:inline-block;font-size:.75rem;font-weight:600;padding:3px 10px;text-transform:capitalize}.expense-status.draft{background:#f3f4f6;color:#6b7280}.expense-status.pending{background:#fef3c7;color:#b45309}.expense-status.approved{background:#d1fae5;color:#065f46}.expense-status.rejected{background:#fee2e2;color:#991b1b}.expense-status.reimbursed{background:#dbeafe;color:#1e40af}.expense-table{border-collapse:collapse;font-size:.85rem;width:100%}.expense-table th{border-bottom:1px solid #e5e7eb;color:#6b7280;font-weight:600;padding:10px 12px;text-align:left;white-space:nowrap}.expense-table td{border-bottom:1px solid #f3f4f6;color:#374151;padding:10px 12px}.expense-table tbody tr:hover{background:#f9fafb}.expense-empty{color:#9ca3af;font-size:.85rem;padding:24px;text-align:center}.expense-actions{display:flex;gap:6px}.approve-expense-btn,.expense-actions button,.reimburse-btn,.reject-expense-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.78rem;font-weight:500;gap:4px;padding:5px 10px;transition:opacity .2s}.approve-expense-btn{background:#d1fae5;color:#065f46}.reject-expense-btn{background:#fee2e2;color:#991b1b}.reimburse-btn{background:#dbeafe;color:#1e40af}.cancel-expense-btn{background:#f3f4f6;color:#6b7280}.cancel-expense-btn,.delete-expense-btn{border:none;border-radius:8px;cursor:pointer;font-size:.78rem;font-weight:500;padding:5px 10px}.delete-expense-btn{background:#fee2e2;color:#991b1b}.edit-expense-btn{background:#eff6ff;border:none;border-radius:8px;color:#3b82f6;cursor:pointer;font-size:.78rem;font-weight:500;padding:5px 10px}.expense-form{display:flex;flex-direction:column;gap:12px}.expense-form input,.expense-form select,.expense-form textarea{border:1px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:.85rem;outline:none;padding:9px 12px;transition:border-color .2s;width:100%}.expense-form input:focus,.expense-form select:focus,.expense-form textarea:focus{border-color:#6366f1}.expense-form textarea{min-height:60px;resize:vertical}.expense-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}@media (max-width:600px){.expense-form-row{grid-template-columns:1fr}}.expense-form label{color:#374151;display:block;font-size:.8rem;font-weight:500;margin-bottom:4px}.expense-form button[type=submit]{align-self:flex-start;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:10px 20px;transition:opacity .2s}.expense-form button[type=submit]:hover{opacity:.9}.expense-form .file-input-wrapper{display:flex;flex-direction:column;gap:4px}.expense-form .file-input-wrapper small{color:#9ca3af;font-size:.75rem}.receipt-link{align-items:center;color:#6366f1;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:500;gap:4px;text-decoration:none}.receipt-link:hover{text-decoration:underline}.expense-error{background:#fee2e2;color:#991b1b}.expense-error,.expense-message{border-radius:10px;font-size:.85rem;margin-bottom:16px;padding:10px 16px}.expense-message{background:#d1fae5;color:#065f46}.expense-section-heading{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin:28px 0 16px}.category-breakdown{display:flex;flex-direction:column;gap:10px}.category-item{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:8px 0}.category-item:last-child{border-bottom:none}.category-name{color:#374151;font-size:.85rem;font-weight:500}.category-amount{color:#1a1a2e;font-size:.85rem;font-weight:600}.category-count{color:#9ca3af;font-size:.75rem;margin-left:6px}.expense-role-banner{align-items:center;border-radius:10px;display:flex;font-size:.85rem;font-weight:500;gap:10px;margin-bottom:20px;padding:12px 18px}.expense-role-banner.manager{background:#eff6ff;color:#2563eb}.expense-self-section{border-bottom:1px solid #e5e7eb;margin-bottom:28px;padding-bottom:28px}.reject-modal-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.reject-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;max-width:420px;padding:28px;width:90%}.reject-modal h3{font-size:1.05rem;font-weight:600;margin:0 0 16px}.reject-modal textarea{border:1px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:.85rem;margin-bottom:14px;min-height:80px;outline:none;padding:10px 12px;resize:vertical;width:100%}.reject-modal-actions{display:flex;gap:10px;justify-content:flex-end}.reject-modal-actions button{border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 18px}.reject-modal-actions .confirm-reject{background:#fee2e2;color:#991b1b}.reject-modal-actions .cancel-reject{background:#f3f4f6;color:#6b7280}.amount-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}
/*# sourceMappingURL=main.a4441e80.css.map*/