body{margin:0;padding:0}:root{--primary:#0f92b1;--primary-dark:#0a6d84;--primary-light:#e0f5fa;--primary-mid:#b3e4f0;--bg:#f0f4f8;--surface:#fff;--surface-2:#f7fafc;--sidebar-bg:#0d1b2a;--sidebar-hover:#0f92b126;--sidebar-active:#0f92b1;--text-primary:#0d1b2a;--text-secondary:#64748b;--text-muted:#94a3b8;--text-sidebar:#ffffff8c;--text-sidebar-active:#fff;--border:#e2e8f0;--border-focus:#0f92b1;--success-bg:#ecfdf5;--success-color:#059669;--danger-bg:#fef2f2;--danger-color:#dc2626;--warning-bg:#fffbeb;--warning-color:#d97706;--info-bg:#eff6ff;--info-color:#2563eb;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #00000014;--sidebar-width:240px;--sidebar-collapsed:64px;--header-height:56px;--radius:12px;--radius-sm:8px;--transition:0.25s ease}[data-theme=dark]{--bg:#0d1b2a;--surface:#142032;--surface-2:#1a2940;--sidebar-bg:#091524;--sidebar-hover:#0f92b133;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#1e3147;--primary-light:#0f92b126;--success-bg:#05966926;--success-color:#34d399;--danger-bg:#dc262626;--danger-color:#f87171;--warning-bg:#d9770626;--warning-color:#fcd34d;--info-bg:#2563eb26;--info-color:#60a5fa;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0000004d}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:#f0f4f8;background:var(--bg);color:#0d1b2a;color:var(--text-primary);font-family:Inter,Segoe UI,sans-serif;transition:background .25s ease,color .25s ease;transition:background var(--transition),color var(--transition)}a{color:inherit;text-decoration:none}button{border:none;cursor:pointer}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#e2e8f0;background:var(--border);border-radius:99px}.app-shell{background:#f0f4f8;background:var(--bg);display:flex;height:100vh}.sidebar{background:#0d1b2a;background:var(--sidebar-bg);display:flex;flex-direction:column;flex-shrink:0;overflow:visible;position:relative;transition:width .25s ease;transition:width var(--transition);width:240px;width:var(--sidebar-width);z-index:100}.sidebar-footer,.sidebar-nav{overflow:hidden}.sidebar{overflow:visible!important}.app-shell{overflow:hidden}.sidebar.collapsed{width:64px;width:var(--sidebar-collapsed)}.sidebar-header{border-bottom:1px solid #ffffff0f;gap:8px;height:64px;overflow:visible;padding:0 10px;position:relative}.sidebar-header,.sidebar-logo{align-items:center;display:flex;flex-shrink:0}.sidebar-logo{background:#0f92b1;background:var(--primary);border-radius:10px;color:#fff;height:36px;justify-content:center;min-width:36px;transition:margin .25s ease;transition:margin var(--transition);width:36px}.sidebar-brand{color:#fff;flex:1 1;font-size:15px;font-weight:700;max-width:130px;opacity:1;overflow:hidden;transition:opacity .25s ease,max-width .25s ease,width .25s ease;transition:opacity var(--transition),max-width var(--transition),width var(--transition);white-space:nowrap;width:130px}.sidebar.collapsed .sidebar-brand{max-width:0;opacity:0;width:0}.sidebar.collapsed .sidebar-header{justify-content:center;padding:0}.sidebar.collapsed .sidebar-logo{margin:0 auto}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-y:auto;padding:12px 8px}.sidebar-section-label{color:#ffffff40;font-size:10px;font-weight:600;letter-spacing:.08em;overflow:hidden;padding:10px 8px 4px;text-transform:uppercase;transition:opacity .25s ease;transition:opacity var(--transition);white-space:nowrap}.sidebar.collapsed .sidebar-section-label{opacity:0}.nav-item{align-items:center;background:#0000;border:none;border-radius:9px;color:#ffffff8c;color:var(--text-sidebar);cursor:pointer;display:flex;gap:10px;padding:9px 10px;position:relative;text-align:left;transition:background .15s,color .15s;white-space:nowrap;width:100%}.nav-item:hover{background:#0f92b126;background:var(--sidebar-hover);color:#fff}.nav-item.active{background:#0f92b1;background:var(--primary);color:#fff}.nav-item .nav-icon{display:flex;flex-shrink:0}.nav-item .nav-label{font-size:13.5px;font-weight:500;opacity:1;overflow:hidden;transition:opacity .25s ease;transition:opacity var(--transition)}.sidebar.collapsed .nav-label{max-width:0;opacity:0;overflow:hidden}.sidebar.collapsed .nav-item{gap:0;justify-content:center;padding:9px 0}.sidebar.collapsed .nav-item .nav-icon{margin:0 auto}.nav-item .nav-tooltip{background:#1e3a5f;border-radius:6px;box-shadow:0 4px 12px #0000004d;color:#fff;display:none;font-size:12px;font-weight:500;left:56px;left:calc(var(--sidebar-collapsed) - 8px);padding:5px 10px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;z-index:999}.sidebar.collapsed .nav-item:hover .nav-tooltip{display:block}.sidebar-footer{border-top:1px solid #ffffff0f;padding:12px 8px}.sidebar.collapsed .sidebar-footer{display:flex;justify-content:center;padding:8px 0}.sidebar.collapsed .sidebar-footer button{justify-content:center;padding:9px 0;width:42px}.main-area{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.header{background:#fff;background:var(--surface);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);flex-shrink:0;gap:12px;height:56px;height:var(--header-height);padding:0 20px;transition:background .25s ease,border-color .25s ease;transition:background var(--transition),border-color var(--transition)}.header,.header-breadcrumb{align-items:center;display:flex}.header-breadcrumb{flex:1 1;gap:8px}.breadcrumb{gap:8px;min-width:0}.breadcrumb,.breadcrumb-home{align-items:center;display:flex}.breadcrumb-home{color:#94a3b8;color:var(--text-muted);flex-shrink:0;font-size:12px;gap:4px}.breadcrumb .page-name{color:#0d1b2a;color:var(--text-primary);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-page{display:none}.header-right{gap:8px}.header-right,.icon-btn{align-items:center;display:flex}.icon-btn{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:9px;color:#64748b;color:var(--text-secondary);cursor:pointer;height:36px;justify-content:center;transition:background .15s,color .15s;width:36px}.icon-btn:hover{background:#e0f5fa;background:var(--primary-light);border-color:#b3e4f0;border-color:var(--primary-mid);color:#0f92b1;color:var(--primary)}.timer-btn{align-items:center;background:#0f92b1;background:var(--primary);border:none;border-radius:9px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:7px;height:36px;padding:0 16px;transition:background .15s;white-space:nowrap}.timer-btn:hover{background:#0a6d84;background:var(--primary-dark)}.timer-btn.running{background:#dc2626;background:var(--danger-color)}.avatar{align-items:center;background:#0f92b1;background:var(--primary);border:2px solid #b3e4f0;border:2px solid var(--primary-mid);border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:34px;justify-content:center;width:34px}.sidebar-open-btn{background:#e0f5fa!important;background:var(--primary-light)!important;border-color:#b3e4f0!important;border-color:var(--primary-mid)!important;color:#0f92b1!important;color:var(--primary)!important}.page-content{background:#f0f4f8;background:var(--bg);flex:1 1;overflow-y:auto;padding:24px}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.page-header h1{color:#0d1b2a;color:var(--text-primary);font-size:20px;font-weight:700}.page-header p{color:#64748b;color:var(--text-secondary);font-size:13px;margin-top:2px}.card{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);transition:background .25s ease,border-color .25s ease;transition:background var(--transition),border-color var(--transition)}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px;padding:16px 20px 0}.card-title{color:#0d1b2a;color:var(--text-primary);font-size:14px;font-weight:600}.card-body{padding:0 20px 20px}.stats-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.stat-card{align-items:center;background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;padding:18px 20px;transition:box-shadow .2s,background .25s ease;transition:box-shadow .2s,background var(--transition)}.stat-card:hover{box-shadow:0 4px 12px #00000014;box-shadow:var(--shadow-md)}.stat-info .stat-label{color:#64748b;color:var(--text-secondary);font-size:12px;font-weight:500;margin-bottom:4px}.stat-info .stat-value{color:#0d1b2a;color:var(--text-primary);font-size:26px;font-weight:700;line-height:1}.stat-info .stat-sub{color:#94a3b8;color:var(--text-muted);font-size:11px;margin-top:3px}.stat-icon-wrap{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.charts-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:20px}.chart-full{grid-column:1/-1}.tables-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.data-table{border-collapse:collapse;font-size:13px;width:100%}.data-table th{color:#94a3b8;color:var(--text-muted);font-size:11px;font-weight:600;padding:8px 12px;text-align:left;white-space:nowrap}.data-table td,.data-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border)}.data-table td{color:#64748b;color:var(--text-secondary);padding:11px 12px;transition:background .1s}.data-table td.td-primary{color:#0d1b2a;color:var(--text-primary);font-weight:500}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#f7fafc;background:var(--surface-2)}.badge{align-items:center;border-radius:99px;display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:3px 10px;white-space:nowrap}.badge-todo{background:#fffbeb;background:var(--warning-bg);color:#d97706;color:var(--warning-color)}.badge-inprogress{background:#eff6ff;background:var(--info-bg);color:#2563eb;color:var(--info-color)}.badge-done{background:#ecfdf5;background:var(--success-bg);color:#059669;color:var(--success-color)}.badge-high,.badge-onhold{background:#fef2f2;background:var(--danger-bg);color:#dc2626;color:var(--danger-color)}.badge-medium{background:#fffbeb;background:var(--warning-bg);color:#d97706;color:var(--warning-color)}.badge-low,.badge-present{background:#ecfdf5;background:var(--success-bg);color:#059669;color:var(--success-color)}.badge-absent{background:#fef2f2;background:var(--danger-bg);color:#dc2626;color:var(--danger-color)}.badge-late{background:#fffbeb;background:var(--warning-bg);color:#d97706;color:var(--warning-color)}.form-card{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px;transition:background .25s ease,border-color .25s ease;transition:background var(--transition),border-color var(--transition)}.form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full-width{grid-column:1/-1}.form-group label{color:#64748b;color:var(--text-secondary);font-size:12px;font-weight:600}.form-group input,.form-group select,.form-group textarea{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);color:#0d1b2a;color:var(--text-primary);font-size:13.5px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s,background .25s ease;transition:border-color .15s,box-shadow .15s,background var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;background:var(--surface);border-color:#0f92b1;border-color:var(--primary);box-shadow:0 0 0 3px #0f92b11f}.form-group textarea{min-height:80px;resize:none}.btn-primary{align-items:center;background:#0f92b1;background:var(--primary);border:none;border-radius:8px;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:600;gap:7px;padding:10px 22px;transition:background .15s,transform .1s}.btn-primary:hover{background:#0a6d84;background:var(--primary-dark)}.btn-primary:active{transform:scale(.98)}.btn-ghost{align-items:center;background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);color:#64748b;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:9px 18px;transition:background .15s}.btn-ghost:hover{background:#e0f5fa;background:var(--primary-light);border-color:#b3e4f0;border-color:var(--primary-mid);color:#0f92b1;color:var(--primary)}.alert-success{align-items:center;background:#ecfdf5;background:var(--success-bg);border:1px solid #059669;border:1px solid var(--success-color);color:#059669;color:var(--success-color);font-size:13px;font-weight:500;gap:8px;margin-bottom:16px;padding:10px 14px}.alert-success,.tab-row{border-radius:8px;border-radius:var(--radius-sm);display:flex}.tab-row{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);gap:6px;padding:4px}.tab-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#64748b;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:7px 16px;transition:all .15s}.tab-btn:hover{background:#e2e8f0;background:var(--border);color:#0d1b2a;color:var(--text-primary)}.tab-btn.active{background:#fff;background:var(--surface);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);color:#0f92b1;color:var(--primary);font-weight:600}.search-wrap{position:relative}.search-wrap input{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);color:#0d1b2a;color:var(--text-primary);font-size:13px;min-width:200px;outline:none;padding:8px 12px 8px 34px;transition:border-color .15s,background .25s ease;transition:border-color .15s,background var(--transition)}.search-wrap input:focus{border-color:#0f92b1;border-color:var(--primary);box-shadow:0 0 0 3px #0f92b11a}.search-wrap .search-icon{left:10px;position:absolute;top:50%;transform:translateY(-50%)}.coming-soon,.search-wrap .search-icon{color:#94a3b8;color:var(--text-muted);display:flex}.coming-soon{align-items:center;flex-direction:column;gap:10px;justify-content:center;min-height:50vh}.coming-soon h2{color:#64748b;color:var(--text-secondary);font-size:18px;font-weight:600}.coming-soon p{font-size:13px}.sidebar-overlay{background:#00000080;display:none;inset:0;position:fixed;z-index:99}.kanban-view-toggle{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;display:inline-flex;gap:0;padding:4px}.kanban-view-toggle button{align-items:center;background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 14px;transition:background .15s,color .15s}.kanban-view-toggle button.active{background:#fff;background:var(--surface);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);color:#0f92b1;color:var(--primary)}.kanban{display:flex;flex-direction:column;gap:14px}.kanban-toolbar{align-items:center;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:14px 16px}.kanban-project-select,.kanban-toolbar{background:#fff;background:var(--surface)}.kanban-project-select{border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:9px;color:#0d1b2a;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13.5px;min-width:220px;padding:9px 12px}.kanban-project-select:focus{border-color:#0f92b1;border-color:var(--primary);outline:none}.kanban-progress{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;font-size:13px;gap:10px}.kanban-progress-label{align-items:center;display:inline-flex;font-size:11.5px;font-weight:600;gap:6px;letter-spacing:.03em;text-transform:uppercase}.kanban-progress-bar{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:99px;height:6px;overflow:hidden;width:140px}.kanban-progress-bar span{background:#10b981;border-radius:99px;display:block;height:100%;transition:width .3s}.kanban-progress strong{color:#0d1b2a;color:var(--text-primary);font-size:13px;white-space:nowrap}.kanban-columns{grid-gap:14px;-webkit-overflow-scrolling:touch;align-items:start;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(260px,1fr));overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}.kanban-column{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;min-height:320px;scroll-snap-align:start;transition:border-color .15s,background .15s}.kanban-column.drop-target{background:#e0f5fa;background:var(--primary-light);border-color:#0f92b1;border-color:var(--primary)}.kanban-column-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);border-radius:12px 12px 0 0;border-top:3px solid #0000;display:flex;gap:8px;padding:14px 14px 12px}.kanban-column-header h3{color:#0d1b2a;color:var(--text-primary);font-size:12.5px;font-weight:700;letter-spacing:.04em;margin:0;text-transform:uppercase}.kanban-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.kanban-count{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:99px;color:#64748b;color:var(--text-secondary);font-size:12px;font-weight:700;margin-left:auto;min-width:24px;padding:2px 8px;text-align:center}.kanban-column-body{display:flex;flex:1 1;flex-direction:column;gap:10px;padding:12px}.kanban-empty{align-items:center;border:1.5px dashed #e2e8f0;border:1.5px dashed var(--border);border-radius:10px;color:#94a3b8;color:var(--text-muted);display:flex;flex:1 1;flex-direction:column;font-size:12.5px;gap:4px;justify-content:center;min-height:120px}.kanban-empty p{font-weight:600;margin:0}.kanban-card{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;padding:12px 12px 10px;transition:box-shadow .15s,border-color .15s,opacity .15s}.kanban-card:hover{border-color:#b3e4f0;border-color:var(--primary-mid,var(--border));box-shadow:0 4px 12px #00000014;box-shadow:var(--shadow-md)}.kanban-card.draggable{cursor:grab}.kanban-card.draggable:active{cursor:grabbing}.kanban-card.saving{opacity:.6}.kanban-card-top{align-items:center;display:flex;gap:6px}.kanban-grip{margin-left:auto}.kanban-grip,.kanban-saving{color:#94a3b8;color:var(--text-muted)}.kanban-saving{font-size:11px;font-weight:600}.kanban-badge{border-radius:99px;font-size:10.5px;font-weight:700;padding:2px 8px;white-space:nowrap}.kanban-card-title{color:#0d1b2a;color:var(--text-primary);font-size:13.5px;font-weight:600;line-height:1.35}.kanban-card-desc,.kanban-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin:0;overflow:hidden;word-break:break-word}.kanban-card-desc{color:#64748b;color:var(--text-secondary);font-size:12px;line-height:1.45}.kanban-card-meta{color:#94a3b8;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:11.5px;gap:6px 12px}.kanban-card-meta span{align-items:center;display:inline-flex;gap:4px}.kanban-card-meta .overdue{color:#ef4444;font-weight:600}.kanban-avatars{align-items:center;display:flex;min-width:0}.kanban-avatar{align-items:center;background:#e0f5fa;background:var(--primary-light);border:2px solid #fff;border:2px solid var(--surface);border-radius:50%;color:#0f92b1;color:var(--primary);display:inline-flex;flex-shrink:0;font-size:9px;font-weight:700;height:24px;justify-content:center;margin-left:-6px;width:24px}.kanban-avatar:first-child{margin-left:0}.kanban-avatar.more{background:#f7fafc;background:var(--surface-2)}.kanban-avatar-names,.kanban-avatar.more{color:#64748b;color:var(--text-secondary)}.kanban-avatar-names{font-size:12px;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-card-footer{align-items:flex-end;border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding-top:8px}.kanban-card-actions{align-items:center;display:flex;gap:4px;margin-left:auto}.kanban-card-actions select{background:#f7fafc;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:6px;color:#64748b;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:11.5px;max-width:108px;padding:4px 6px}.kanban-icon-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;height:28px;justify-content:center;width:28px}.kanban-icon-btn.view{background:#e0f5fa;background:var(--primary-light);color:#0f92b1;color:var(--primary)}.kanban-icon-btn.edit{background:#8b5cf61a;color:#8b5cf6}@media (max-width:768px){.kanban-columns{grid-template-columns:repeat(4,minmax(250px,82vw))}.kanban-toolbar{padding:12px}.kanban-project-select{min-width:0;width:100%}.kanban-progress{width:100%}.kanban-progress-bar{flex:1 1;width:auto}}.emp-cards{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(5,minmax(170px,1fr));margin-bottom:18px;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}.emp-card{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;min-height:196px;padding:18px 18px 14px;scroll-snap-align:start;transition:box-shadow .15s,border-color .15s}.emp-card:hover{box-shadow:0 4px 12px #00000014;box-shadow:var(--shadow-md)}.emp-card-icon{align-items:center;background:#f7fafc;background:var(--surface-2);border-radius:11px;color:#b8862b;display:inline-flex;height:42px;justify-content:center;margin-bottom:18px;width:42px}.emp-card-label{color:#64748b;color:var(--text-secondary);font-size:14px;margin:0 0 8px}.emp-card-value{align-items:baseline;display:flex;gap:6px;margin:0;min-height:38px}.emp-card-value strong{color:#0d1b2a;color:var(--text-primary);font-size:32px;font-weight:700;line-height:1.1}.emp-card-value span{color:#64748b;color:var(--text-secondary);font-size:13.5px}.emp-card-link,.emp-card-sub{color:#64748b;color:var(--text-secondary);font-size:12.5px;margin:auto 0 0;padding:12px 0 0}.emp-card-link{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-family:inherit;gap:6px;justify-content:space-between;text-align:left;width:100%}.emp-card-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-card-link:hover{color:#0f92b1;color:var(--primary)}.emp-skeleton{animation:emp-pulse 1.5s infinite;background:#f7fafc;background:var(--surface-2);border-radius:8px;display:inline-block;height:30px;width:56px}@keyframes emp-pulse{0%,to{opacity:1}50%{opacity:.45}}.emp-panels{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-bottom:18px}.emp-panel{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;min-width:0;padding:20px 22px}.emp-panel-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:14px}.emp-panel-head h3{color:#0d1b2a;color:var(--text-primary);font-size:15.5px;font-weight:700;margin:0}.emp-panel-meta{color:#94a3b8;color:var(--text-muted);font-size:13px;font-weight:400}.emp-panel-body{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:200px}.emp-panel-foot{color:#94a3b8;color:var(--text-muted);font-size:12.5px;margin:14px 0 0}.emp-attendance{grid-gap:28px;align-items:center;display:grid;gap:28px;grid-template-columns:180px minmax(0,1fr)}.emp-donut{height:180px;width:180px}.emp-donut-pct{fill:#0d1b2a;fill:var(--text-primary);font-size:30px;font-weight:700}.emp-donut-cap{fill:#94a3b8;fill:var(--text-muted);font-size:9.5px;letter-spacing:.08em}.emp-legend{display:flex;flex-direction:column;gap:14px;list-style:none;margin:0;padding:0}.emp-legend li{grid-gap:12px;align-items:center;display:grid;font-size:14px;gap:12px;grid-template-columns:10px 1fr auto}.emp-legend-dot{border-radius:50%;height:9px;width:9px}.emp-legend-label{color:#64748b;color:var(--text-secondary)}.emp-legend strong{color:#0d1b2a;color:var(--text-primary);font-weight:600}.emp-state{align-items:center;background:#f7fafc;background:var(--surface-2);border-radius:10px;color:#94a3b8;color:var(--text-muted);display:flex;flex-direction:column;font-size:13px;gap:8px;justify-content:center;min-height:180px;text-align:center}.emp-state p{margin:0}.emp-state.error{color:#dc2626;color:var(--danger-color,#ef4444)}@media (max-width:1100px){.emp-panels{grid-template-columns:1fr}}@media (max-width:768px){.emp-cards{grid-template-columns:repeat(5,minmax(160px,70vw))}.emp-panel{padding:16px}.emp-attendance{gap:18px;grid-template-columns:1fr;justify-items:center}.emp-legend{width:100%}}@media (max-width:1024px){.stats-row{grid-template-columns:repeat(2,1fr)}.charts-row,.tables-row{grid-template-columns:1fr}}@media (max-width:768px){.sidebar{height:100%;left:0;overflow:hidden;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;transition:transform var(--transition);width:240px!important;width:var(--sidebar-width)!important;z-index:200}.sidebar.mobile-open{transform:translateX(0)}.sidebar-overlay{display:block;opacity:0;pointer-events:none;transition:opacity .25s ease;transition:opacity var(--transition)}.sidebar-overlay.visible{opacity:1;pointer-events:all}.sidebar.collapsed .sidebar-header{justify-content:flex-start;padding:0 10px}.sidebar.collapsed .sidebar-brand{max-width:130px;opacity:1;width:130px}.sidebar.collapsed .nav-label{max-width:200px;opacity:1;overflow:visible}.sidebar.collapsed .nav-item{gap:10px;justify-content:flex-start;padding:9px 10px}.sidebar.collapsed .nav-item .nav-icon{margin:0}.sidebar.collapsed .nav-item:hover .nav-tooltip{display:none}.sidebar.collapsed .sidebar-section-label{opacity:1}.sidebar.collapsed .sidebar-footer{justify-content:flex-start;padding:12px 8px}.sidebar.collapsed .sidebar-footer button{justify-content:flex-start;padding:9px 10px;width:100%}.page-content{padding:14px}.stats-row{gap:12px;grid-template-columns:repeat(2,1fr)}.charts-row{gap:12px}.form-grid{grid-template-columns:1fr}.timer-btn span.timer-text{display:none}.page-header h1{font-size:17px}.breadcrumb-header{display:none}.breadcrumb-page{display:flex;gap:6px;margin-bottom:8px}.breadcrumb-page .page-name{font-size:13px}}@media (max-width:480px){.stats-row{gap:10px;grid-template-columns:1fr 1fr}.stat-card{padding:14px}.stat-info .stat-value{font-size:20px}.stat-icon-wrap{height:40px;width:40px}.page-content{padding:12px}}.settings-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:220px 1fr}.settings-sidebar{display:flex;flex-direction:column;gap:14px}.settings-mobile-nav{display:none}@media (max-width:768px){.settings-grid{grid-template-columns:1fr}.settings-sidebar{display:none}.settings-mobile-nav{display:block}}.sa-stat-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:28px}.sa-home-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 300px}.sa-header-actions{display:flex;flex-shrink:0;gap:8px}@media (max-width:768px){.sa-stat-grid{gap:12px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}.sa-home-grid{grid-template-columns:1fr}.sa-header-actions{justify-content:flex-end;width:100%}.page-header{align-items:flex-start!important;flex-direction:column;gap:12px}}.search-icon-mobile{display:none!important}.search-full{display:flex!important}.hdr-quick-actions{display:contents}@media (max-width:768px){.hdr-quick-actions,.search-full,.search-icon-mobile{display:none!important}.profile-btn{background:#0000!important;border-color:#0000!important;padding:2px!important}.profile-name{display:none!important}}@media (max-width:1024px){.tf-grid-6{grid-template-columns:repeat(3,1fr)!important}}@media (max-width:768px){.tf-stack{grid-template-columns:1fr!important}.tf-grid-3,.tf-grid-5,.tf-grid-6{grid-template-columns:repeat(2,1fr)!important}.data-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}@media (max-width:480px){.tf-grid-5,.tf-stack-sm{grid-template-columns:1fr!important}}@keyframes checkin-glow{0%,to{box-shadow:0 4px 12px #0f92b14d,0 0 0 0 #0f92b173}50%{box-shadow:0 4px 14px #0f92b166,0 0 0 7px #0f92b100}}.checkin-glow{animation:checkin-glow 2.2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.checkin-glow{animation:none;box-shadow:0 0 0 3px #0f92b159}}
/*# sourceMappingURL=main.59183d67.css.map*/