.attendance-settings{display:flex;flex-direction:column;gap:20px}.attendance-settings__notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #dbeafe;border-radius:8px;background:#f5f9ff;color:#64748b;font-size:12px;line-height:1.7}.attendance-settings__notice>svg{flex-shrink:0;margin-top:2px;color:#3b82f6}.attendance-settings__fieldset{min-width:0;border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:24px}.attendance-settings__section{min-width:0}.attendance-settings__section-heading{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:#475569}.attendance-settings__section-heading h3{color:#1e293b;font-size:14px;font-weight:600}.attendance-settings__toolbar{display:grid;grid-template-columns:minmax(280px,1.3fr) minmax(180px,.8fr) minmax(200px,1fr);gap:20px;align-items:end;padding:16px;border:1px solid #e8edf3;border-radius:8px;background:#f8fafc;margin-bottom:16px}.attendance-settings__field{display:flex;flex-direction:column;gap:7px;min-width:0}.attendance-settings__field>span{display:flex;align-items:center;gap:5px;color:#64748b;font-size:12px;font-weight:500}.attendance-settings__auto{display:flex;align-items:center;gap:10px;min-height:36px;color:#475569;font-size:13px;cursor:pointer}.attendance-settings__table-scroll{min-width:0;border:1px solid #e8edf3;border-radius:8px;overflow:hidden}.attendance-settings__table th{font-size:12px;font-weight:500;background:#f8fafc}.attendance-settings__table th,.attendance-settings__table td{padding:12px;white-space:nowrap}.attendance-settings__table th:first-child,.attendance-settings__table td:first-child{padding-left:16px}.attendance-settings__table td:first-child{font-weight:500;color:#334155}.attendance-settings__table th:nth-child(2),.attendance-settings__table td:nth-child(2),.attendance-settings__table th:nth-child(5),.attendance-settings__table td:nth-child(5){text-align:center}.attendance-settings__table tr:last-child td{border-bottom:0}.attendance-settings__table .is-rest td{background:#fafbfc;color:#94a3b8}.attendance-settings__time-range{display:flex;align-items:center;gap:8px}.attendance-settings__time-range>span{color:#cbd5e1}.attendance-settings__time-range .ant-picker{min-width:108px}.attendance-settings__net{display:inline-flex;align-items:baseline;gap:5px;color:#2563eb;font-weight:600;font-variant-numeric:tabular-nums}.attendance-settings__net small{color:#94a3b8;font-size:11px;font-weight:400}.is-rest .attendance-settings__net{color:#94a3b8}.attendance-settings__apply{padding-top:12px}.attendance-settings__hint{color:#94a3b8;font-size:12px;line-height:1.7;margin:-6px 0 16px}.attendance-settings__leave-form{display:grid;grid-template-columns:180px 180px minmax(160px,1fr) auto;gap:12px;align-items:end;margin-bottom:16px}.attendance-settings__leave-form>.ant-btn{height:36px}.attendance-settings__leave{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f1f5f9;font-size:13px;color:#475569;font-variant-numeric:tabular-nums}.attendance-settings__leave>svg{color:#94a3b8}.attendance-settings__leave-notes{flex:1;min-width:80px;color:#94a3b8;overflow-wrap:anywhere}.attendance-settings__leave.is-cancelled{color:#94a3b8}.attendance-settings__history{border-top:1px solid #e8edf3;padding-top:16px;font-size:13px}.attendance-settings__history summary{display:flex;align-items:center;gap:8px;list-style:none;color:#64748b;cursor:pointer}.attendance-settings__history summary::-webkit-details-marker{display:none}.attendance-settings__history summary>svg:last-child{margin-left:auto;transition:transform .15s}.attendance-settings__history[open] summary{margin-bottom:12px}.attendance-settings__history[open] summary>svg:last-child{transform:rotate(90deg)}@media(max-width:850px){.attendance-settings__toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.attendance-settings__auto{grid-column:1 / -1}.attendance-settings__leave-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.attendance-settings__leave-form>.ant-btn{justify-self:end}}@media(max-width:480px){.attendance-settings__toolbar,.attendance-settings__leave-form{grid-template-columns:minmax(0,1fr)}.attendance-settings__leave-form>.ant-btn{width:100%}}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #dbeafe;--color-primary-50: #eff6ff;--color-success: #10b981;--color-success-light: #d1fae5;--color-success-50: #ecfdf5;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-danger-50: #fef2f2;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-warning-50: #fffbeb;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-white: #ffffff;--sidebar-width: 260px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .04);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-sans);background:var(--color-gray-50);color:var(--color-gray-800);line-height:1.5;-webkit-font-smoothing:antialiased;font-size:14px}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}img{max-width:100%;display:block}ul,ol{list-style:none}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--color-gray-900);color:var(--color-gray-300);display:flex;flex-direction:column;z-index:100}.sidebar-logo{padding:20px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);display:flex;align-items:center;justify-content:center}.sidebar-logo-text{font-size:17px;font-weight:700;color:#fff}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-section-title{font-size:11px;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;padding:12px 12px 8px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--color-gray-300);margin-bottom:2px;transition:all .15s;cursor:pointer}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #2563eb4d}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-item .badge{margin-left:auto;background:var(--color-danger);color:#fff;font-size:11px;padding:2px 8px;border-radius:var(--radius-full);font-weight:600}.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.06)}.user-mini{display:flex;align-items:center;gap:12px;padding:8px;border-radius:var(--radius-md)}.user-mini:hover{background:#ffffff0d}.user-mini-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.user-mini-info{flex:1;min-width:0}.user-mini-name{font-size:13px;font-weight:600;color:#fff}.user-mini-role{font-size:11px;color:var(--color-gray-500)}.main{margin-left:var(--sidebar-width);min-height:100vh}.topbar{height:64px;background:var(--color-white);border-bottom:1px solid var(--color-gray-200);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:50}.topbar-left{display:flex;align-items:center;gap:20px}.page-title{font-size:18px;font-weight:700;color:var(--color-gray-900)}.topbar-right{display:flex;align-items:center;gap:12px}.search-box{position:relative;width:280px}.search-box input{width:100%;padding:8px 12px 8px 36px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);font-size:13px;background:var(--color-gray-50);outline:none;font-family:inherit;transition:all .15s}.search-box input:focus{border-color:var(--color-primary);background:var(--color-white);box-shadow:0 0 0 3px var(--color-primary-light)}.search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--color-gray-400)}.icon-btn{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-gray-500);position:relative;transition:all .15s}.icon-btn:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.icon-btn .notif-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--color-danger);border-radius:50%;border:2px solid white}.content{padding:24px 32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:600;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-white);color:var(--color-gray-700);border:1px solid var(--color-gray-300)}.btn-secondary:hover{background:var(--color-gray-50)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{padding:6px 12px;font-size:12px}.btn svg{width:14px;height:14px}.card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200)}.card-header{padding:16px 20px;border-bottom:1px solid var(--color-gray-100);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:15px;font-weight:600;color:var(--color-gray-900)}.card-body{padding:20px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.kpi-card{background:var(--color-white);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200);transition:box-shadow .2s}.kpi-card:hover{box-shadow:var(--shadow-md)}.kpi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.kpi-label{font-size:13px;color:var(--color-gray-500);font-weight:500}.kpi-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}.kpi-icon.blue{background:var(--color-primary-light);color:var(--color-primary)}.kpi-icon.green{background:var(--color-success-light);color:var(--color-success)}.kpi-icon.red{background:var(--color-danger-light);color:var(--color-danger)}.kpi-icon.orange{background:var(--color-warning-light);color:var(--color-warning)}.kpi-value{font-size:28px;font-weight:700;color:var(--color-gray-900);margin-bottom:6px;font-variant-numeric:tabular-nums}.kpi-change{font-size:12px;display:flex;align-items:center;gap:4px}.kpi-change.up{color:var(--color-success)}.kpi-change.down{color:var(--color-danger)}.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:24px}.grid-2-equal{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.chart-container{width:100%;height:280px;display:flex;align-items:flex-end;gap:8px;padding:10px 0}.chart-bar{flex:1;background:linear-gradient(to top,var(--color-primary),#60a5fa);border-radius:4px 4px 0 0;position:relative;transition:opacity .2s;cursor:pointer;min-height:8px}.chart-bar:hover{opacity:.8}.chart-bar-label{position:absolute;bottom:-22px;left:50%;transform:translate(-50%);font-size:11px;color:var(--color-gray-500);white-space:nowrap}.pie-chart{width:160px;height:160px;border-radius:50%;background:conic-gradient(var(--color-success) 0deg 252deg,var(--color-warning) 252deg 288deg,var(--color-danger) 288deg 324deg,var(--color-gray-300) 324deg 360deg);margin:0 auto 20px;position:relative}.pie-chart:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:#fff;border-radius:50%}.legend{display:flex;flex-direction:column;gap:10px}.legend-item{display:flex;align-items:center;justify-content:space-between;font-size:13px}.legend-dot{width:10px;height:10px;border-radius:50%;margin-right:8px}.legend-dot.green{background:var(--color-success)}.legend-dot.yellow{background:var(--color-warning)}.legend-dot.red{background:var(--color-danger)}.legend-dot.gray{background:var(--color-gray-300)}.legend-label{color:var(--color-gray-600);display:flex;align-items:center}.legend-value{font-weight:600;color:var(--color-gray-800)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.badge-success{background:var(--color-success-light);color:#047857}.badge-danger{background:var(--color-danger-light);color:#b91c1c}.badge-warning{background:var(--color-warning-light);color:#b45309}.badge-primary{background:var(--color-primary-light);color:#1d4ed8}.badge-gray{background:var(--color-gray-100);color:var(--color-gray-600)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.3px;background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200)}.data-table td{padding:14px 16px;font-size:13px;color:var(--color-gray-700);border-bottom:1px solid var(--color-gray-100)}.data-table tbody tr:hover{background:var(--color-gray-50)}.data-table tbody tr:last-child td{border-bottom:none}.table-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;margin-right:10px;vertical-align:middle}.table-actions{display:flex;gap:6px}.table-actions button{padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;color:var(--color-primary);font-weight:500}.table-actions button:hover{background:var(--color-primary-light)}.table-actions button.danger{color:var(--color-danger)}.table-actions button.danger:hover{background:var(--color-danger-light)}.switch{position:relative;display:inline-block;width:40px;height:22px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-gray-300);transition:.3s;border-radius:22px}.slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px #0003}input:checked+.slider{background-color:var(--color-success)}input:checked+.slider:before{transform:translate(18px)}.filter-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-bar .search-box{width:260px}.filter-select{padding:8px 32px 8px 12px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:13px;background:#fff;color:var(--color-gray-700);outline:none;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 10px center;background-repeat:no-repeat;background-size:16px}.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.filter-spacer{flex:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;visibility:hidden;transition:all .2s}.modal-overlay.show{opacity:1;visibility:visible}.modal{background:#fff;border-radius:var(--radius-lg);width:90%;max-width:480px;box-shadow:var(--shadow-xl);transform:translateY(10px) scale(.98);transition:transform .2s}.modal-overlay.show .modal{transform:translateY(0) scale(1)}.modal-header{padding:20px 24px;border-bottom:1px solid var(--color-gray-100);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:16px;font-weight:600;color:var(--color-gray-900)}.modal-close{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-gray-400);transition:all .15s}.modal-close:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.modal-body{padding:20px 24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--color-gray-100);display:flex;justify-content:flex-end;gap:10px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--color-gray-700);margin-bottom:6px}.form-input{width:100%;padding:9px 12px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:13px;color:var(--color-gray-800);outline:none;font-family:inherit;transition:all .15s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input[readonly]{background:var(--color-gray-50);color:var(--color-gray-500)}.form-select{width:100%;padding:9px 32px 9px 12px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:13px;background:#fff;color:var(--color-gray-700);outline:none;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-thumb{width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);cursor:pointer;transition:transform .2s}.photo-thumb:hover{transform:scale(1.1)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--color-gray-100)}.pagination-info{font-size:13px;color:var(--color-gray-500)}.pagination-btns{display:flex;gap:4px}.page-btn{min-width:32px;height:32px;padding:0 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--color-gray-600);display:inline-flex;align-items:center;justify-content:center;transition:all .15s}.page-btn:hover{background:var(--color-gray-100)}.page-btn.active{background:var(--color-primary);color:#fff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.split-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:calc(100vh - 180px);min-height:500px}.map-container{background:#e5e7eb;border-radius:var(--radius-lg);position:relative;overflow:hidden;background-image:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);background-size:40px 40px}.map-marker{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;cursor:pointer}.map-marker-pin{width:28px;height:28px;border-radius:50% 50% 50% 0;background:var(--color-primary);transform:rotate(-45deg);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center}.map-marker-pin:after{content:"";width:10px;height:10px;border-radius:50%;background:#fff;transform:rotate(45deg)}.geofence-circle{position:absolute;border:2px dashed var(--color-primary);border-radius:50%;background:#2563eb1a;transform:translate(-50%,-50%);pointer-events:none}.geofence-circle.active{border-color:var(--color-success);background:#10b9811a;border-style:solid}.map-controls{position:absolute;bottom:20px;left:20px;right:20px;background:#fff;border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-lg)}.range-slider{width:100%;margin-top:8px}.steps{display:flex;align-items:center;margin-bottom:24px}.step{display:flex;align-items:center;flex:1}.step-num{width:32px;height:32px;border-radius:50%;background:var(--color-gray-200);color:var(--color-gray-500);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step.active .step-num{background:var(--color-primary);color:#fff}.step.completed .step-num{background:var(--color-success);color:#fff}.step-label{margin-left:10px;font-size:13px;font-weight:500;color:var(--color-gray-500);white-space:nowrap}.step.active .step-label{color:var(--color-gray-800)}.step.completed .step-label{color:var(--color-success)}.step-line{flex:1;height:2px;background:var(--color-gray-200);margin:0 12px}.step.completed+.step-line{background:var(--color-success)}.live-feed{max-height:calc(100vh - 240px);overflow-y:auto}.feed-item{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-gray-100);transition:background .15s;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feed-item:hover{background:var(--color-gray-50)}.feed-time{width:80px;font-size:12px;color:var(--color-gray-500);font-variant-numeric:tabular-nums}.feed-employee{width:180px;display:flex;align-items:center;gap:10px}.feed-store{width:150px;font-size:13px;color:var(--color-gray-600)}.feed-type{width:80px}.feed-location{flex:1;font-size:12px;color:var(--color-gray-500)}.feed-status{width:100px}.feed-photo{width:50px}.feed-actions{width:80px;display:flex;justify-content:flex-end}.live-indicator{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-success);font-weight:500}.live-dot{width:8px;height:8px;background:var(--color-success);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.total-row td{background:var(--color-gray-50);font-weight:600;color:var(--color-gray-800);border-top:2px solid var(--color-gray-200)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.text-right{text-align:right}.text-center{text-align:center}.mt-4{margin-top:16px}.mb-0{margin-bottom:0!important}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}}.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px 22px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;justify-content:space-between;transition:all .2s cubic-bezier(.4,0,.2,1);box-sizing:border-box;min-height:140px}.stat-card:hover{border-color:#cbd5e1;box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;transform:translateY(-2px)}.stat-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.stat-card-title{font-size:13px;font-weight:600;color:#64748b;letter-spacing:.01em}.stat-card-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-icon-blue{background:#eff6ff;color:#2563eb}.stat-card-icon-red{background:#fef2f2;color:#ef4444}.stat-card-icon-green{background:#ecfdf5;color:#10b981}.stat-card-icon-purple{background:#faf5ff;color:#8b5cf6}.stat-card-value{font-size:28px;font-weight:700;color:#0f172a;line-height:1.2;margin-bottom:10px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:2px}.stat-card-value span{font-size:16px;font-weight:500;color:#94a3b8}.stat-card-footer{display:flex;align-items:center;font-size:12px;color:#64748b;padding-top:10px;border-top:1px solid #f1f5f9;min-height:28px}.stat-trend{display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:12px}.stat-trend.trend-up{color:#10b981}.stat-trend.trend-down{color:#ef4444}.calendar-kpi-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.calendar-kpi-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between}.calendar-kpi-item .label{font-size:12px;color:#64748b;font-weight:500}.calendar-kpi-item .value{font-size:16px;font-weight:700;color:#0f172a}.calendar-grid-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;margin-bottom:18px}.calendar-weekdays-row{display:grid;grid-template-columns:repeat(7,1fr);background:#f1f5f9;border-bottom:1px solid #e2e8f0;text-align:center;font-weight:600;font-size:12px;color:#475569}.calendar-weekday-cell{padding:8px 4px}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e2e8f0}.calendar-day-cell{background:#fff;min-height:64px;padding:6px 8px;cursor:pointer;transition:all .15s ease;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box}.calendar-day-cell:hover:not(.empty-cell){background:#f8fafc;box-shadow:inset 0 0 0 1px #cbd5e1}.calendar-day-cell.is-selected{background:#eff6ff!important;box-shadow:inset 0 0 0 2px #2563eb!important}.calendar-day-cell.is-today .day-number{color:#2563eb;font-weight:700}.calendar-day-cell.empty-cell{background:#f8fafc;cursor:default}.calendar-day-header{display:flex;align-items:center;justify-content:space-between}.calendar-day-header .day-number{font-size:13px;font-weight:500;color:#1e293b}.calendar-day-header .today-badge{font-size:10px;padding:1px 4px;background:#2563eb;color:#fff;border-radius:4px;font-weight:600}.calendar-day-content{display:flex;flex-direction:column;gap:2px;margin-top:4px}.cal-tag{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;border-radius:4px;padding:2px 4px;line-height:1;white-space:nowrap}.cal-tag-normal{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.cal-tag-abnormal{background:#fff7ed;color:#ea580c;border:1px solid #fed7aa}.cal-tag-rest{background:#f1f5f9;color:#94a3b8;border:1px solid #e2e8f0}.cal-tag-leave{background:#f5f3ff;color:#7c3aed;border:1px solid #ddd6fe}.calendar-leave-details{margin-top:12px;padding:12px;border-radius:8px;background:#f5f3ff;color:#6d28d9;font-size:13px}.calendar-leave-period{display:flex;flex-direction:column;gap:4px;margin-top:8px;overflow-wrap:anywhere;white-space:pre-wrap}.cal-tag-missing{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.cal-tag-in-progress{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.calendar-detail-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:16px}.calendar-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e2e8f0}.calendar-punch-cards-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.calendar-punch-cards-row{grid-template-columns:1fr}}.calendar-punch-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px}.ant-app{min-height:100vh}.admin-layout{min-height:100vh;width:100%}.admin-layout .sidebar{position:fixed;background:#111827}.sidebar .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.sidebar-nav .ant-menu{background:transparent}.sidebar-nav .ant-menu-item-group-title{font-size:11px;color:#9ca3af}.sidebar-nav .ant-menu-item{display:flex;align-items:center}.sidebar-nav .ant-menu-item-icon{flex-shrink:0}.admin-layout .topbar{padding:0 24px;line-height:normal}.topbar-search{width:240px}.topbar-user{display:flex;align-items:center;gap:8px;margin-inline-start:8px}@media(max-width:1100px){.topbar-search,.topbar-user,.topbar-date{display:none}}.ant-card{margin-bottom:20px}.ant-card .ant-card-body{padding:20px}.ant-card .ant-card-head{min-height:54px}.ant-card .ant-card-head-title{white-space:normal}.ant-btn .lucide{flex-shrink:0}.ant-btn+.ant-btn{margin-inline-start:6px}.ant-modal-footer .ant-btn+.ant-btn{margin-inline-start:0}.ant-table-wrapper{min-width:0;max-width:100%}.ant-table-cell{vertical-align:middle}.ant-table-cell .ant-btn{margin-top:3px;margin-bottom:3px}.ant-table-cell .ant-tag{white-space:nowrap}.admin-modal{max-width:calc(100vw - 32px)}.admin-modal .ant-modal-title{padding-right:20px}.admin-modal .ant-modal-footer{border-top:1px solid #f1f5f9;padding-top:14px}.admin-modal .ant-modal-body{padding-top:16px;padding-right:2px}.ant-select,.ant-picker{font-variant-numeric:tabular-nums}.employee-attendance-calendar{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.employee-attendance-calendar .ant-picker-calendar-date{height:70px;padding:6px}.employee-attendance-calendar .ant-picker-cell-inner{min-height:66px}.attendance-calendar-status{margin-top:6px}.attendance-calendar-status .cal-tag{font-size:10px;max-width:100%;white-space:normal}@media(max-width:640px){.ant-card .ant-card-body{padding:14px}.ant-modal-footer{gap:6px}.calendar-kpi-bar{grid-template-columns:1fr}.employee-attendance-calendar .ant-picker-calendar-date{height:60px;padding:3px}}
