.layout{min-height:100vh;display:flex;flex-direction:row}.sidebar{width:240px;min-width:240px;background:var(--sidebar-bg);display:flex;flex-direction:column;padding:0;position:sticky;top:0;align-self:flex-start;max-height:100vh;overflow:hidden;transition:width .28s cubic-bezier(.4,0,.2,1),min-width .28s cubic-bezier(.4,0,.2,1);z-index:10}.sidebar.collapsed{width:0;min-width:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--sidebar-border);flex-shrink:0;min-height:64px}.sidebar-brand{font-family:var(--font-display);font-size:1.125rem;font-weight:800;letter-spacing:.05em;color:#fff;white-space:nowrap;overflow:hidden;display:flex;align-items:center;gap:.5rem}.sidebar-brand:before{content:"";display:inline-block;width:8px;height:8px;background:var(--sidebar-active-accent);border-radius:2px;flex-shrink:0}.sidebar-brand a{text-decoration:none;color:inherit;letter-spacing:inherit}.sidebar-toggle{background:none;border:none;cursor:pointer;color:var(--sidebar-text);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0;font-size:1.125rem;line-height:1;transition:background .15s ease,color .15s ease}.sidebar-toggle:hover{background:#ffffff14;color:#fff}.hamburger-btn{position:fixed;top:1rem;left:1rem;z-index:100;background:var(--surface);border:1.5px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:1.125rem;padding:.375rem .5rem;box-shadow:var(--shadow-md);color:var(--text-primary);line-height:1;transition:var(--transition-fast);display:none}.hamburger-btn:hover{background:var(--background);border-color:var(--primary-color);color:var(--primary-color)}.sidebar-section-label{padding:1rem 1.25rem .375rem;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ffffff40;white-space:nowrap;flex-shrink:0}.sidebar-menu{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto;overflow-x:hidden;padding:.75rem;min-height:0}.sidebar-menu::-webkit-scrollbar{width:3px}.sidebar-menu::-webkit-scrollbar-thumb{background:#ffffff1a}.nav-link{display:flex;align-items:center;gap:.625rem;padding:.5625rem .75rem;color:var(--sidebar-text);text-decoration:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;transition:background .15s ease,color .15s ease;position:relative;border-left:2px solid transparent}.nav-link:hover{background:#ffffff0f;color:var(--sidebar-text-hover)}.nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600;border-left-color:var(--sidebar-active-accent)}.sidebar-user{display:flex;flex-direction:column;gap:.75rem;padding:.875rem 1rem;border-top:1px solid var(--sidebar-user-border);margin-top:auto;flex-shrink:0;background:#00000026}.user-info{display:flex;align-items:center;gap:.625rem;min-width:0}.user-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.03em}.user-details{display:flex;flex-direction:column;min-width:0;overflow:hidden}.user-name{font-size:var(--font-size-sm);font-weight:600;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.user-role{font-size:11px;color:#fff6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;text-transform:capitalize}.sidebar-user .user-info:not(:has(.user-avatar)){font-size:var(--font-size-xs);color:var(--sidebar-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content-area{flex:1;display:flex;flex-direction:column;min-height:100vh;min-width:0}.main-content{flex:1;padding:1.75rem 2rem;max-width:var(--container-lg);width:100%;margin:0 auto}.footer{background:var(--surface);border-top:1px solid var(--border-color);padding:.875rem 2rem;text-align:center;color:var(--text-muted);font-size:var(--font-size-xs);letter-spacing:.01em}.sidebar-backdrop{display:none}@media (max-width: 768px),(orientation: landscape) and (max-height: 500px){.layout{flex-direction:row}.sidebar{width:0;min-width:0;padding:0;border-right:none;position:fixed;top:0;left:0;height:100vh;z-index:200;box-shadow:none}.sidebar:not(.collapsed){width:240px;min-width:240px;box-shadow:4px 0 24px #0000004d}.hamburger-btn{display:flex}.main-content{padding:4rem 1rem 1rem}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:199}}@media (max-width: 480px){.main-content{padding:3.5rem .75rem .75rem}}.login-container{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--background)}.login-container:before{content:"";display:block;background:radial-gradient(ellipse at 30% 20%,rgba(13,148,136,.35) 0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(245,158,11,.2) 0%,transparent 55%),linear-gradient(145deg,#18181b,#0f172a);position:relative}.login-card{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:3rem 2.5rem;background:var(--surface);min-height:100vh}.login-header{text-align:center;margin-bottom:2.25rem;width:100%;max-width:380px}.login-brand-mark{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.75rem}.login-brand-mark-dot{width:10px;height:10px;background:var(--primary-color);border-radius:2px;display:inline-block}.login-brand-name{font-family:var(--font-display);font-size:1rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-primary)}.login-header h1{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem;letter-spacing:-.02em;line-height:1.2}.login-header p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.login-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:380px}.login-form .form-group label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.login-form .form-group input{padding:.625rem .875rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:border-color .15s ease,box-shadow .15s ease}.login-form .form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.login-form .btn-primary{padding:.6875rem 1rem;font-size:var(--font-size-base);font-weight:700;letter-spacing:.01em;margin-top:.25rem}.login-footer{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border-color);text-align:center;width:100%;max-width:380px}.login-footer p{font-size:var(--font-size-xs);color:var(--text-muted);background:var(--background);padding:.5rem .75rem;border-radius:var(--radius-md);line-height:var(--line-height-relaxed)}.password-strength{font-size:var(--font-size-xs);font-weight:600;padding:.25rem .5rem;border-radius:var(--radius-sm);margin-top:.25rem}.password-weak{background:var(--danger-light);color:var(--danger-text)}.password-medium{background:var(--warning-light);color:var(--warning-text)}.password-strong{background:var(--success-light);color:var(--success-text)}@media (max-width: 768px){.login-container{grid-template-columns:1fr}.login-container:before{display:none}.login-card{justify-content:flex-start;padding-top:3rem}}.dashboard-container{max-width:var(--container-lg);margin:0 auto}.dashboard-header{margin-bottom:2rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dashboard-header-left h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}.dashboard-header-left p{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:.25rem}.dashboard-header h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.user-role-badge{background:var(--primary-muted);color:var(--primary-color);padding:.3125rem .875rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(13,148,136,.2)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem}.dashboard-card{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border-color);box-shadow:var(--shadow);transition:box-shadow .2s ease,transform .2s ease;min-height:180px}.dashboard-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.dashboard-card h2{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:700;margin-bottom:1.25rem;color:var(--text-primary);letter-spacing:.01em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem}.dashboard-card h2:before{content:"";display:inline-block;width:3px;height:14px;background:var(--primary-color);border-radius:2px}.profile-info{display:flex;flex-direction:column;gap:0}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0;border-bottom:1px solid var(--border-color)}.info-row:last-child{border-bottom:none;padding-bottom:0}.info-row .label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.info-row .value{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;gap:.3125rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.action-buttons{display:flex;flex-direction:column;gap:.5rem}.action-button{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:var(--background);border:1.5px solid var(--border-color);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;transition:all .2s ease}.action-button:hover{background:var(--surface);border-color:var(--primary-color);color:var(--primary-color);box-shadow:var(--shadow-md);transform:translate(3px)}.action-button .icon{font-size:1.25rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--surface);border-radius:var(--radius-sm);flex-shrink:0}.feature-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.feature-list li{padding:.5rem .75rem .5rem 2rem;position:relative;font-size:var(--font-size-sm);color:var(--text-secondary);background:var(--background);border-radius:var(--radius-sm);border-left:2px solid var(--success-color)}.feature-list li:before{content:"✓";position:absolute;left:.625rem;color:var(--success-color);font-weight:700}.info-grid{display:grid;gap:.75rem}.info-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem .875rem;background:var(--background);border-radius:var(--radius-md);border:1px solid var(--border-color)}.info-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.info-value{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.status-active{color:var(--success-color)}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:flex-start}}.user-management-container{max-width:var(--container-lg);margin:0 auto}.page-header h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.filters{display:flex;gap:.75rem;margin-bottom:1.125rem;padding:.875rem 1rem;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:center}.filter-select{padding:.4375rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);transition:border-color .15s ease}.users-table-container{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f8fafc;border-bottom:2px solid var(--border-color)}.users-table th{padding:.75rem 1rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em}.users-table td{padding:.8125rem 1rem;border-bottom:1px solid var(--border-color);font-size:var(--font-size-sm);color:var(--text-primary)}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr{transition:background .12s ease}.users-table tbody tr:hover{background:#f8fafc}.role-badge{display:inline-flex;align-items:center;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.role-badge.role-admin{background:#ede9fe;color:#5b21b6}.role-badge.role-manager{background:var(--warning-light);color:var(--warning-text)}.role-badge.role-supervisor{background:var(--info-light);color:var(--info-text)}.role-badge.role-employee{background:#f1f5f9;color:var(--text-secondary)}.action-buttons{display:flex;gap:.375rem;flex-wrap:wrap}.no-data{padding:3rem;text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.table-footer{padding:.75rem 1rem;background:#f8fafc;font-size:var(--font-size-xs);color:var(--text-muted);text-align:right;border-top:1px solid var(--border-color);font-weight:500}.modal-content{background:var(--surface);border-radius:var(--radius-xl);border-top:3px solid var(--primary-color);box-shadow:var(--shadow-xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .28s cubic-bezier(.34,1.56,.64,1)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.125rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.close-button{background:none;border:none;font-size:1.375rem;cursor:pointer;color:var(--text-muted);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition-fast)}.close-button:hover{background:var(--danger-light);color:var(--danger-color)}.modal-content form{padding:1.25rem 1.5rem}.checkbox-label{display:flex;align-items:center;gap:.4375rem;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.modal-actions{display:flex;gap:.625rem;justify-content:flex-end;margin-top:1.25rem;padding-top:.875rem;border-top:1px solid var(--border-color)}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start}.filters{flex-direction:column}.users-table-container{overflow-x:auto}.users-table{min-width:760px}}.management-container{max-width:var(--container-lg);margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.page-header h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin:0}.management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.management-header h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin:0}.filters{display:flex;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1rem;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:center}.management-filters{display:flex;gap:.5rem .75rem;margin-bottom:1.25rem;flex-wrap:wrap;align-items:center;padding:.875rem 1rem;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.management-filters>.search-input{flex:1 1 180px;min-width:160px;max-width:300px}.management-filters>.filter-select{flex:0 0 auto;min-width:140px;width:auto}.management-filters>.filter-date-range{flex:0 0 auto;min-width:190px}.filter-checkbox{display:flex;align-items:center;gap:.375rem;cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.filter-select{padding:.4375rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;transition:border-color .15s ease}.filter-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.search-box{position:relative;flex:1;max-width:360px}.search-box input{width:100%;padding:.4375rem .875rem .4375rem 2.25rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);background:var(--surface);transition:border-color .15s ease}.search-box input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.search-icon{position:absolute;left:.625rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;font-size:.875rem}.search-input{flex:1;min-width:220px;padding:.4375rem .875rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.table-container{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;overflow-x:auto;width:100%}.data-table,.management-table{width:100%;border-collapse:collapse;min-width:800px}.data-table thead,.management-table thead{background:#f8fafc;border-bottom:2px solid var(--border-color)}.data-table th,.management-table th{padding:.75rem 1rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table td,.management-table td{padding:.8125rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:var(--font-size-sm);vertical-align:middle}.data-table tbody tr:last-child td,.management-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr,.management-table tbody tr{transition:background .12s ease}.data-table tbody tr:hover,.management-table tbody tr:hover{background:#f8fafc}.sortable-header,.management-table th.sortable,.management-table th{cursor:pointer;position:relative;padding-right:1.5rem}.sortable-header:hover,.management-table th.sortable:hover,.management-table th:hover{background:#f1f5f9;color:var(--text-primary)}.sort-indicator{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);font-size:.625rem;color:var(--text-muted)}.sort-indicator.active{color:var(--primary-color)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.4375rem .875rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast);white-space:nowrap;text-decoration:none;line-height:var(--line-height-tight)}.btn-sm{padding:.3125rem .625rem;font-size:11px}.action-buttons{display:flex;gap:.375rem;flex-wrap:nowrap}.btn-view{background:var(--primary-muted);color:var(--primary-color);border:1px solid rgba(13,148,136,.2);padding:.3125rem .625rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.btn-edit{background:#d9770614;color:var(--warning-color);border:1px solid rgba(217,119,6,.2);padding:.3125rem .625rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.btn-delete{background:#dc262614;color:var(--danger-color);border:1px solid rgba(220,38,38,.2);padding:.3125rem .625rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.btn-delete:hover{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.badge{display:inline-flex;align-items:center;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.03em}.badge-success{background:var(--success-light);color:var(--success-text)}.badge-warning{background:var(--warning-light);color:var(--warning-text)}.badge-info{background:var(--info-light);color:var(--info-text)}.badge-danger{background:var(--danger-light);color:var(--danger-text)}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.status-badge.active{background:var(--success-light);color:var(--success-text)}.status-badge.inactive{background:var(--danger-light);color:var(--danger-text)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:modalBackdropIn .2s ease-out}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:var(--modal-md);width:100%;max-height:90vh;overflow-y:auto;border-top:3px solid var(--primary-color);animation:modalSlideUp .28s cubic-bezier(.34,1.56,.64,1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-body{padding:1.5rem;font-size:var(--font-size-sm)}.modal-footer{display:flex;justify-content:flex-end;gap:.625rem;padding:1.25rem 1.5rem;border-top:1px solid var(--border-color);background:#f8fafc;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.form-group{margin-bottom:1.125rem}.form-group label{display:block;font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);margin-bottom:.375rem;letter-spacing:.03em;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box;line-height:var(--line-height-normal)}.form-group input:hover,.form-group select:hover{border-color:var(--border-hover)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-help{display:block;margin-top:.25rem;font-size:var(--font-size-xs);color:var(--text-muted)}.form-sections{max-height:calc(90vh - 200px);overflow-y:auto;padding:1.5rem}.form-section{margin-bottom:1.75rem;padding-bottom:1.75rem;border-bottom:1px solid var(--border-color)}.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section h3{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:.5rem}.form-section h3:before{content:"";display:inline-block;width:3px;height:12px;background:var(--primary-color);border-radius:2px}.modal-form{display:flex;flex-direction:column}.alert{padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:var(--font-size-sm);font-weight:500;border-left:3px solid}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--surface);border-top:1px solid var(--border-color);flex-wrap:wrap;gap:.75rem}.pagination-info{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:500}.pagination-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.items-per-page{display:flex;align-items:center;gap:.375rem;font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:500}.items-per-page-select{padding:.25rem .5rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-xs);background:var(--surface);color:var(--text-primary)}.pagination-buttons{display:flex;gap:.25rem}.pagination-btn{padding:.3125rem .625rem;border:1.5px solid var(--border-color);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);min-width:32px;text-align:center}.pagination-btn:hover:not(:disabled):not(.ellipsis){background:var(--background);border-color:var(--primary-color);color:var(--primary-color)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.pagination-btn.ellipsis{border:none;cursor:default;pointer-events:none;color:var(--text-muted)}.loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem;color:var(--text-muted);font-size:var(--font-size-sm)}.modal-view{max-width:var(--modal-xl)}.view-content{padding:1.5rem;max-height:calc(90vh - 150px);overflow-y:auto}.view-section{margin-bottom:1.75rem}.view-section:last-child{margin-bottom:0}.view-section h3,.section-title{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.08em;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.view-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.view-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:var(--background);border-radius:var(--radius-md);border:1px solid var(--border-color)}.view-item label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.view-item span{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500}.view-item.full-width{grid-column:1 / -1}.view-item.full-width span{white-space:pre-wrap;word-break:break-word}.modal-actions{display:flex;justify-content:flex-end;gap:.625rem;padding:1.25rem 1.5rem;border-top:1px solid var(--border-color)}.checkbox-group{display:flex;align-items:center}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin-bottom:0;font-size:var(--font-size-sm);font-weight:500;text-transform:none;letter-spacing:normal}.checkbox-group input[type=checkbox]{width:auto;margin:0;cursor:pointer;accent-color:var(--primary-color)}.filter-date-range{display:flex;flex-direction:row;align-items:center;gap:.5rem;flex-basis:100%}.filter-date-range label{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;min-width:5rem;font-weight:600}.employee-view-header{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);color:#fff;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.employee-header-photo{width:72px;height:72px;border-radius:var(--radius-full);object-fit:cover;border:3px solid rgba(255,255,255,.35);box-shadow:0 4px 12px #0003}.employee-header-info h2{margin:0 0 .25rem;font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.employee-id{margin:0 0 .375rem;font-size:var(--font-size-xs);opacity:.8;font-family:var(--font-mono)}.employee-header-info .status-badge{background:#ffffff2e;color:#fff;border:1px solid rgba(255,255,255,.3)}.tabs-navigation{display:flex;border-bottom:2px solid var(--border-color);background:#f8fafc;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:0}.tabs-navigation::-webkit-scrollbar{height:3px}.tabs-navigation::-webkit-scrollbar-thumb{background:var(--border-color)}.tab-button{padding:.75rem 1rem;border:none;background:none;color:var(--text-muted);font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap;flex-shrink:0}.tab-button:hover{color:var(--primary-color);background:#0d94880a}.tab-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:var(--surface)}.tab-content{padding:1.5rem;max-height:calc(90vh - 320px);overflow-y:auto}.tab-panel{animation:tabFadeIn .25s ease-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.photo-upload-container{margin-top:.375rem}.photo-upload{border:2px dashed var(--border-color);border-radius:var(--radius-md);padding:1.5rem;text-align:center;background:var(--background);transition:var(--transition-fast);cursor:pointer}.photo-upload:hover{border-color:var(--primary-color);background:var(--primary-muted)}.photo-input{display:none}.photo-upload-label{display:flex;flex-direction:column;align-items:center;gap:.375rem;cursor:pointer;color:var(--text-secondary)}.upload-icon{font-size:2rem}.upload-hint{font-size:var(--font-size-xs);color:var(--text-muted)}.photo-preview{display:flex;flex-direction:column;align-items:center;gap:.75rem}.photo-preview img{width:120px;height:120px;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--border-color)}.btn-remove-photo{padding:.375rem .75rem;background:var(--danger-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast)}.btn-remove-photo:hover{background:var(--danger-dark)}.view-photo-section{display:flex;justify-content:center;padding:1rem;margin-bottom:1.25rem;background:var(--background);border-radius:var(--radius-md)}.view-employee-photo{width:120px;height:120px;object-fit:cover;border-radius:var(--radius-full);border:3px solid var(--primary-color);box-shadow:var(--shadow-md)}.leave-status-applied{display:inline-flex;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;background:var(--info-light);color:var(--info-text)}.leave-status-approved{display:inline-flex;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;background:var(--success-light);color:var(--success-text)}.leave-status-rejected{display:inline-flex;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;background:var(--danger-light);color:var(--danger-text)}.leave-status-cancelled{display:inline-flex;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;background:#f1f5f9;color:var(--text-secondary)}.numeric-cell{text-align:right;font-family:var(--font-mono);font-weight:500;font-size:var(--font-size-xs)}.positive-balance{color:var(--success-color);font-weight:700}.negative-balance{color:var(--danger-color);font-weight:700}.zero-balance{color:var(--text-muted);font-weight:500}.financial-year-selector{display:flex;align-items:center;gap:.5rem}.financial-year-selector label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary)}.contact-info{display:flex;flex-direction:column;gap:.125rem}.email-text{color:var(--text-muted);font-size:var(--font-size-xs)}.mandatory-field{font-weight:700!important;color:var(--text-primary)!important}.required{color:var(--danger-color);margin-left:.2rem;font-weight:700}.btn-action-fixed{min-width:110px;text-align:center}.searchable-select{position:relative;display:flex;flex-direction:column;width:100%}.searchable-select .search-input{width:100%;padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--surface)}.searchable-select .search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1.5px solid var(--border-color);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);max-height:220px;overflow-y:auto;z-index:10;box-shadow:var(--shadow-lg)}.searchable-select .search-option{padding:.5rem .75rem;cursor:pointer;font-size:var(--font-size-sm);transition:background .12s}.searchable-select .search-option:hover{background:var(--background)}.searchable-select .search-no-results{padding:.75rem;text-align:center;color:var(--text-muted);font-size:var(--font-size-xs)}.searchable-select .selected-employee{margin-top:.375rem;padding:.375rem .625rem;background:var(--primary-muted);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;color:var(--primary-color)}@media (max-width: 768px){.management-container{padding:.75rem}.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}.page-header h1{font-size:var(--font-size-xl)}.management-header{flex-direction:column;align-items:flex-start;gap:.75rem}.management-header .btn,.management-header button{width:100%;justify-content:center}.filters{flex-direction:column}.form-row{grid-template-columns:1fr}.action-buttons{flex-wrap:wrap}.modal-content{margin:0;max-height:100vh;border-radius:0;border-top:none}.view-grid{grid-template-columns:1fr}.management-filters{flex-direction:column}.search-input{min-width:100%}.financial-year-selector{width:100%}.financial-year-selector select{flex:1}.tab-button{padding:.625rem .75rem;font-size:10px}}@media (max-width: 480px){.tab-button{padding:.5rem;font-size:9px}}@media (max-width: 640px){.data-table,.management-table{min-width:0;width:100%}.management-table thead,.data-table thead{display:none}.management-table tbody,.data-table tbody{display:block}.management-table tbody tr,.data-table tbody tr{display:block;margin-bottom:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;background:var(--surface);box-shadow:var(--shadow-xs)}.management-table tbody tr:hover,.data-table tbody tr:hover{background:var(--surface)}.management-table tbody td,.data-table tbody td{display:flex;justify-content:space-between;align-items:center;padding:.4375rem 0;border-bottom:1px solid #f1f5f9;font-size:var(--font-size-xs);text-align:right}.management-table tbody td:last-child,.data-table tbody td:last-child{border-bottom:none}.management-table tbody td:before,.data-table tbody td:before{content:attr(data-label);font-weight:700;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;flex-shrink:0;margin-right:.75rem;text-align:left}.management-table tbody td.actions-cell,.data-table tbody td.actions-cell{justify-content:flex-end;border-bottom:none;flex-wrap:wrap;gap:.375rem;padding-top:.625rem}.management-table tbody td.actions-cell:before,.data-table tbody td.actions-cell:before{display:none}.management-table tbody td .action-buttons,.data-table tbody td .action-buttons{flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.table-container{overflow:visible;border:none;box-shadow:none;background:transparent}}.modal-large{width:90%;max-width:var(--modal-xl);max-height:90vh;overflow-y:auto}.radio-group{display:flex;flex-direction:column;gap:.5rem;margin-top:.375rem}.radio-label{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);font-size:var(--font-size-sm)}.radio-label:hover{background:var(--primary-muted);border-color:var(--primary-color)}.radio-label input[type=radio]{cursor:pointer;accent-color:var(--primary-color)}.radio-label span{font-weight:600;color:var(--text-primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}.employee-checkbox-list{max-height:280px;overflow-y:auto;border:1.5px solid var(--border-color);border-radius:var(--radius-md);padding:.625rem;background:var(--background)}.checkbox-label{display:flex;align-items:center;gap:.4375rem;padding:.4375rem .5rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s;font-size:var(--font-size-sm)}.checkbox-label:hover{background:var(--border-color)}.checkbox-label input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--primary-color)}.checkbox-label span{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500}.info-box{background:var(--info-light);border:1px solid rgba(37,99,235,.2);border-left:3px solid var(--info-color);border-radius:var(--radius-md);padding:.875rem 1rem;margin-top:.875rem}.info-box h4{margin:0 0 .375rem;color:var(--info-text);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.info-box p{margin:.1875rem 0;color:var(--info-text);font-size:var(--font-size-xs)}.warning-text{color:var(--warning-text)!important;background:var(--warning-light);padding:.375rem .625rem;border-radius:var(--radius-sm);margin-top:.375rem;font-size:var(--font-size-xs);font-weight:600}.btn-sm{padding:.3125rem .625rem;font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.btn-danger{background:var(--danger-color);color:#fff;border:none;padding:.4375rem .875rem;border-radius:var(--radius-md);cursor:pointer;font-weight:700;font-size:var(--font-size-sm);transition:var(--transition-fast)}.form-hint{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:.1875rem;font-style:italic}.progress-bar{width:100%;height:20px;background:var(--border-color);border-radius:var(--radius-full);overflow:hidden;margin:.875rem 0}.progress-fill{height:100%;background:var(--primary-color);transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700}.operation-log{max-height:180px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.375rem;background:var(--background);font-family:var(--font-mono);font-size:var(--font-size-xs)}.log-entry{padding:.1875rem 0;border-bottom:1px solid var(--border-color)}.log-entry:last-child{border-bottom:none}.log-success{color:var(--success-color)}.log-error{color:var(--danger-color)}.log-info{color:var(--info-color)}.filter-section{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.125rem;margin-bottom:1.25rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:.875rem}.filter-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-start}.filter-group{display:flex;flex-direction:column;gap:.375rem;flex:1 1 170px;min-width:160px;max-width:300px}.filter-group label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.filter-input{padding:.4375rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease;width:100%}.filter-input:hover{border-color:var(--border-hover)}.filter-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.filter-input:disabled{background:#f8fafc;cursor:not-allowed;opacity:.65}@media (max-width: 768px){.filter-row{flex-direction:column;gap:.75rem}.filter-group{max-width:100%;min-width:0}}.assignment-status{display:inline-flex;align-items:center;padding:.1875rem .5rem;border-radius:var(--radius-sm);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.assignment-status.today{background:var(--info-color);color:#fff}.assignment-status.past{background:var(--text-muted);color:#fff}.assignment-status.future{background:var(--success-color);color:#fff}.shift-badge{display:inline-flex;align-items:center;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700}.shift-badge.general{background:var(--info-light);color:var(--info-text)}.shift-badge.morning{background:#ffedd5;color:#9a3412}.shift-badge.night{background:#ede9fe;color:#5b21b6}.shift-badge.noon{background:var(--success-light);color:var(--success-text)}.shift-badge.custom{background:#f1f5f9;color:var(--text-secondary)}.date-past{color:var(--text-muted)}.date-today{color:var(--primary-color);font-weight:700}.date-future{color:var(--text-primary)}.employee-info{display:flex;flex-direction:column;gap:.125rem}.employee-id{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary)}.employee-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.date-presets{display:flex;gap:.375rem;flex-wrap:wrap}.date-preset-btn{padding:.25rem .625rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);transition:var(--transition-fast);white-space:nowrap}.date-preset-btn:hover{background:var(--background);border-color:var(--primary-color);color:var(--primary-color)}.date-preset-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.375rem;font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em}.form-input,.form-select{width:100%;padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.form-readonly{padding:.5rem .75rem;background:var(--background);border:1.5px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--font-size-sm)}.form-hint{margin-top:.25rem;font-size:var(--font-size-xs);color:var(--text-muted)}.required{color:var(--danger-color)}.current-shift-info{padding:.75rem 1rem;background:var(--warning-light);border:1px solid rgba(217,119,6,.25);border-left:3px solid var(--warning-color);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.current-shift-info .shift-code{font-weight:700;color:var(--warning-text)}.current-shift-info .shift-details{color:#78350f}.info-box p{margin:0}.warning-message{background:var(--warning-light);border-left:3px solid var(--warning-color);padding:.875rem 1rem;border-radius:var(--radius-md);margin-bottom:.875rem}.warning-message p{margin:0;color:var(--warning-text);font-weight:600;font-size:var(--font-size-sm)}.info-message{background:#ede9fe;border-left:3px solid #6366f1;padding:.875rem 1rem;border-radius:var(--radius-md);margin:.875rem 0}.info-message p{margin:0;color:#3730a3;font-size:var(--font-size-sm)}.delete-details{background:var(--background);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.875rem;margin-bottom:.875rem}.delete-details p{margin:.375rem 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.delete-details strong{color:var(--text-primary);font-weight:700}.radio-group{display:flex;gap:1.25rem;margin-bottom:.375rem;flex-wrap:wrap}.radio-group label{display:flex;align-items:center;gap:.4375rem;cursor:pointer;font-weight:500;font-size:var(--font-size-sm);color:var(--text-primary)}.radio-group input[type=radio]{cursor:pointer;accent-color:var(--primary-color)}.action-buttons{display:flex;gap:.375rem;justify-content:center}.btn-icon{padding:.25rem .375rem;border:none;background:none;cursor:pointer;font-size:1.125rem;transition:transform .15s ease;border-radius:var(--radius-sm)}.btn-icon:hover{transform:scale(1.15)}.btn-edit:hover{color:var(--primary-color)}.btn-delete:hover{color:var(--danger-color)}.modal-medium{max-width:600px;width:90%}.btn-danger{background:var(--danger-color);color:#fff;border:none;padding:.4375rem .875rem;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:var(--transition-fast)}.btn-danger:disabled{background:#94a3b8;cursor:not-allowed}.table-info{margin-bottom:.875rem;color:var(--text-muted);font-size:var(--font-size-xs)}.employee-attendance-container{max-width:var(--container-lg);margin:0 auto}.filter-group select,.filter-group input[type=text],.filter-group input[type=date]{padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.filter-group select:focus,.filter-group input[type=text]:focus,.filter-group input[type=date]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin-bottom:0;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.checkbox-group span{font-weight:500;color:var(--text-primary)}.employee-ids-group{grid-column:span 2}.field-hint{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:.25rem}.filter-actions{grid-column:span 2;display:flex;gap:.625rem;justify-content:flex-end;padding-top:.75rem}.btn-primary,.btn-secondary{padding:.5rem 1.125rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:var(--transition-fast)}.stat-value{font-family:var(--font-display);font-size:1.625rem;font-weight:700;color:var(--text-primary);line-height:1}.stat-value.stat-success{color:var(--success-color)}.stat-value.stat-danger{color:var(--danger-color)}.stat-value.stat-info{color:var(--info-color)}.stat-value.stat-warning{color:var(--warning-color)}.data-table-card{background:var(--surface);padding:0;margin-top:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;margin-left:-2.5rem;margin-right:-2.5rem}.loading-text,.no-data-text{text-align:center;color:var(--text-muted);padding:3rem;font-size:var(--font-size-sm)}.attendance-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.attendance-table thead{background:#f8fafc;border-bottom:2px solid var(--border-color)}.attendance-table th{padding:.75rem 1rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;-webkit-user-select:none;user-select:none}.attendance-table th.sortable{cursor:pointer;transition:background .15s}.attendance-table th.sortable:hover{background:#f1f5f9;color:var(--text-primary)}.attendance-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .12s ease}.attendance-table tbody tr:hover{background:#f8fafc}.attendance-table tbody tr:last-child{border-bottom:none}.attendance-table td{padding:.8125rem 1rem;color:var(--text-primary);font-size:var(--font-size-sm);vertical-align:middle}.emp-id-cell,.numeric-cell{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;font-variant-numeric:tabular-nums}.name-cell{font-weight:600}.date-cell{color:var(--text-secondary);white-space:nowrap;font-size:var(--font-size-xs)}.time-cell{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-secondary)}.punches-cell{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-secondary);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.punches-cell:hover{overflow:visible;white-space:normal;word-wrap:break-word}.btn-action{padding:.25rem .625rem;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast);margin:0 .1875rem}.status-badge{display:inline-flex;align-items:center;padding:.1875rem .5625rem;border-radius:var(--radius-full);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.status-badge.status-present{background:var(--success-light);color:var(--success-text)}.status-badge.status-absent{background:var(--danger-light);color:var(--danger-text)}.status-badge.status-paid{background:var(--info-light);color:var(--info-text)}.status-badge.status-unpaid{background:#ffedd5;color:#9a3412}.status-badge.status-missing{background:var(--warning-light);color:var(--warning-text)}.status-badge.status-weekly-off{background:#ede9fe;color:#5b21b6}.status-badge.status-default{background:#f1f5f9;color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--surface);border-radius:var(--radius-xl);border-top:3px solid var(--primary-color);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .28s cubic-bezier(.34,1.56,.64,1)}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--text-primary);margin:0;font-weight:700}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.punch-table{width:100%;border-collapse:collapse;margin-top:.75rem}.punch-table thead{background:#f8fafc}.punch-table th{padding:.625rem .75rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--border-color)}.punch-table td{padding:.5625rem .75rem;color:var(--text-primary);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:var(--font-size-xs)}.punch-table tbody tr:hover{background:#f8fafc}.punch-table tbody tr:last-child td{border-bottom:none}.modal-footer{padding:1.125rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.625rem;background:#f8fafc}.form-section{margin-bottom:1.25rem}.form-section h3{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin:0 0 .875rem;padding-bottom:.375rem;border-bottom:2px solid var(--border-color)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.875rem}.form-group label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.03em}.form-control{padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease;background:var(--surface)}.textarea-field{font-family:var(--font-body);resize:vertical;min-height:90px;font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.punches-editor{display:flex;flex-direction:column;gap:.625rem}.punch-row{display:flex;gap:.625rem;align-items:flex-end;padding:.875rem;background:var(--background);border-radius:var(--radius-md);border:1px solid var(--border-color)}.punch-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem;flex:1}.btn-sm{padding:.3125rem .625rem;font-size:var(--font-size-xs);border-radius:var(--radius-sm);border:none;cursor:pointer;font-weight:600;transition:var(--transition-fast)}.btn-danger:hover{background:var(--danger-dark)}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.modal-large{max-width:900px}.modal-small{max-width:500px}.modal-fullwidth{max-width:95vw;width:calc(100% - 2rem);margin:0 auto}@media (max-width: 1200px){.modal-fullwidth{max-width:90vw}}@media (max-width: 768px){.modal-fullwidth{max-width:95vw}}.warning-text{font-size:var(--font-size-sm);font-weight:700;color:var(--danger-color);margin-bottom:.375rem}.detail-text{color:var(--text-secondary);margin-bottom:1.25rem;font-size:var(--font-size-sm)}.records-preview{background:var(--background);padding:.875rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.records-preview h4{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.07em}.records-preview ul{margin:0;padding-left:1.25rem}.records-preview li{color:var(--text-primary);margin-bottom:.375rem;font-size:var(--font-size-sm)}.status-cell{padding:.375rem!important}.status-select{padding:.25rem 1.875rem .25rem .5rem;border:1.5px solid transparent;border-radius:var(--radius-full);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right .375rem center;background-size:.875rem}.status-select:hover{border-color:var(--border-hover)}.status-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.status-select.status-present{background-color:var(--success-light);color:var(--success-text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%2314532d' d='M4.5 8l2 2 5-5'/%3E%3C/svg%3E")}.status-select.status-absent{background-color:var(--danger-light);color:var(--danger-text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23991b1b' d='M4.5 8l2 2 5-5'/%3E%3C/svg%3E")}.status-select.status-paid{background-color:var(--info-light);color:var(--info-text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%231e40af' d='M4.5 8l2 2 5-5'/%3E%3C/svg%3E")}.status-select.status-unpaid{background-color:#ffedd5;color:#9a3412;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%239a3412' d='M4.5 8l2 2 5-5'/%3E%3C/svg%3E")}.status-select.status-missing{background-color:var(--warning-light);color:var(--warning-text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%2392400e' d='M4.5 8l2 2 5-5'/%3E%3C/svg%3E")}.status-select.status-weekly-off{background-color:#ede9fe;color:#5b21b6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%235b21b6' d='M4.5 8l2 2 5-5'/%3E%3C/svg%3E")}.header-content{display:flex;justify-content:space-between;align-items:center}.btn-create{white-space:nowrap}.checkbox-cell{width:36px;text-align:center;padding:.375rem!important}.checkbox-cell input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.bulk-actions{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--warning-light);border-radius:var(--radius-md);margin-bottom:.875rem;border:1px solid rgba(217,119,6,.25);border-left:3px solid var(--warning-color)}.bulk-info{font-weight:700;font-size:var(--font-size-sm);color:var(--warning-text)}.btn-delete-bulk{padding:.375rem .875rem;background:var(--danger-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:700;cursor:pointer;transition:var(--transition-fast)}.btn-delete-bulk:hover{background:var(--danger-dark);box-shadow:0 2px 6px #dc26264d}.btn-edit{background:#d9770614;color:var(--warning-color);border:1px solid rgba(217,119,6,.2);margin-left:.25rem;padding:.25rem .625rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition-fast)}.info-box{background:var(--info-light);border-left:3px solid var(--info-color);padding:.875rem 1rem;border-radius:var(--radius-md);margin-top:1.25rem;font-size:var(--font-size-xs);color:var(--info-text)}.info-box strong{font-weight:700;color:#1e3a8a}.mono-text{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--background);padding:.1875rem .375rem;border-radius:var(--radius-sm);word-break:break-all}.remarks-text{margin:0;padding:.625rem .75rem;background:var(--background);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word}@media (max-width: 1024px){.filters-grid{grid-template-columns:repeat(2,1fr)}.employee-ids-group,.filter-actions{grid-column:span 2}}@media (max-width: 768px),(orientation: landscape) and (max-height: 500px){.employee-attendance-container{padding:.75rem}.filters-grid{grid-template-columns:1fr}.employee-ids-group,.filter-actions{grid-column:span 1}.summary-stats{grid-template-columns:1fr 1fr}.attendance-table th,.attendance-table td{padding:.5rem}.data-table-card{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.detail-grid{grid-template-columns:1fr}.modal-content{max-height:95vh}}@media (max-width: 480px){.summary-stats{grid-template-columns:1fr}.stat-value{font-size:1.375rem}.filter-actions{flex-direction:column}.filter-actions button{width:100%}}@media (max-width: 640px),(orientation: landscape) and (max-height: 500px){.attendance-table{min-width:0;width:100%}.attendance-table thead{display:none}.attendance-table tbody{display:block}.data-table-card{margin-left:0;margin-right:0;padding-left:0;padding-right:0;border-radius:var(--radius-lg)}.attendance-table tbody tr{display:block;margin-bottom:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;background:var(--surface);box-shadow:var(--shadow-xs)}.attendance-table tbody tr:hover{background:var(--surface)}.attendance-table tbody td{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0;border-bottom:1px solid #f1f5f9;font-size:var(--font-size-xs);text-align:right}.attendance-table tbody td:last-child{border-bottom:none}.attendance-table tbody td:before{content:attr(data-label);font-weight:700;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;flex-shrink:0;margin-right:.75rem;text-align:left}.attendance-table tbody td.checkbox-cell,.attendance-table thead th.checkbox-cell{display:none}.attendance-table tbody td.actions-cell{justify-content:flex-end;border-bottom:none;flex-wrap:wrap;gap:.375rem;padding-top:.5rem;text-align:right}.attendance-table tbody td.actions-cell:before{display:none}.punches-cell{max-width:none;white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:break-word}.header-content{flex-direction:column;align-items:flex-start;gap:.75rem}.header-content .btn-primary,.header-content button{width:100%;justify-content:center}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:90vh;display:flex;flex-direction:column;border-top:3px solid var(--primary-color);animation:slideUp .28s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content.modal-small{width:90%;max-width:var(--modal-sm)}.modal-content.modal-medium{width:90%;max-width:var(--modal-md)}.modal-content.modal-large{width:90%;max-width:var(--modal-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-close{background:none;border:none;font-size:1.375rem;color:var(--text-muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition-fast);line-height:1}.modal-body{flex:1;overflow-y:auto;padding:1.5rem;font-size:var(--font-size-sm)}.modal-footer{display:flex;justify-content:flex-end;gap:.625rem;padding:1.125rem 1.5rem;border-top:1px solid var(--border-color);background:#f8fafc;flex-shrink:0;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-section{background:var(--background);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}.detail-section.full-width{grid-column:1 / -1}.detail-section.error-section{background:var(--danger-light);border-color:#dc262640}.section-title{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 .875rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5625rem 0;border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-row label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);flex-shrink:0;margin-right:.75rem}.detail-value{font-size:var(--font-size-sm);color:var(--text-primary);text-align:right;font-weight:500}.detail-value.highlight{font-weight:700;color:var(--primary-color);font-size:var(--font-size-md)}.detail-value.metric{font-weight:700;font-variant-numeric:tabular-nums}.detail-value.file-name{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--success-color)}.success-text{color:var(--success-color);font-weight:700}.error-text{color:var(--danger-color);font-weight:600}.user-badge{background:var(--info-light);color:var(--info-text);padding:.1875rem .625rem;border-radius:var(--radius-full);font-weight:600;font-size:var(--font-size-xs)}.summary-text,.comments-text,.error-text{font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.65;white-space:pre-wrap;word-wrap:break-word;background:var(--surface);padding:.875rem;border-radius:var(--radius-md);border:1px solid var(--border-color);margin:0;color:var(--text-primary)}.error-text{background:var(--danger-light);color:var(--danger-text);border-color:#dc262633}.info-section{background:var(--background);border-radius:var(--radius-md);padding:.875rem 1rem;margin-bottom:1.25rem;border:1px solid var(--border-color)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.info-item label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.form-section{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em}.form-control{padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-body);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease;line-height:var(--line-height-normal)}.form-control:hover{border-color:var(--border-hover)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.form-control:disabled{background:#f8fafc;cursor:not-allowed;opacity:.65}textarea.form-control{resize:vertical;min-height:80px}.error-message{padding:.75rem 1rem;background:var(--danger-light);border:1px solid rgba(220,38,38,.2);border-left:3px solid var(--danger-color);border-radius:var(--radius-md);color:var(--danger-text);font-size:var(--font-size-sm)}.error-message strong{font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:var(--transition-fast);white-space:nowrap;line-height:var(--line-height-tight)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 3px 8px #0d948840}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.status-badge.success{background:var(--success-light);color:var(--success-text)}.status-badge.failed{background:var(--danger-light);color:var(--danger-text)}.status-badge.partial{background:var(--warning-light);color:var(--warning-text)}.status-badge.pending{background:var(--info-light);color:var(--info-text)}@media (max-width: 768px){.detail-grid,.info-grid{grid-template-columns:1fr}.modal-content{width:95%;max-height:95vh;border-radius:var(--radius-lg)}.modal-header,.modal-body,.modal-footer{padding:1rem}}.payroll-runs-container{padding:0;max-width:var(--container-lg);margin:0 auto}.page-header h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.02em}.process-payroll-section,.payroll-runs-list{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow-xs)}.process-payroll-section h2,.payroll-runs-list h2,.attendance-runs-list h2,.process-attendance-section h2{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:700;color:var(--text-primary);margin:0 0 1.125rem;text-transform:uppercase;letter-spacing:.06em;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color);display:flex;align-items:center;gap:.5rem}.process-payroll-form{display:flex;flex-direction:column;gap:1.25rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.875rem}.form-group{display:flex;flex-direction:column}.form-group-full{grid-column:1 / -1}.form-group label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.form-group input:disabled,.form-group select:disabled{background:#f8fafc;cursor:not-allowed;opacity:.65}.btn-process{background:var(--primary-color);color:#fff;padding:.5625rem 1.5rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:var(--transition-fast);align-self:flex-start}.btn-process:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 3px 8px #0d948840}.btn-process:disabled{opacity:.45;cursor:not-allowed}.filters-row{display:flex;gap:.75rem;margin-bottom:1.125rem;flex-wrap:wrap}.filter-group{flex:1;min-width:180px}.search-input,.filter-select{width:100%;padding:.4375rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.table-container{overflow-x:auto;margin-bottom:1.25rem;border:1px solid var(--border-color);border-radius:var(--radius-md)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table thead{background:#f8fafc;position:sticky;top:0;border-bottom:2px solid var(--border-color)}.data-table th{padding:.75rem 1rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background:#f1f5f9;color:var(--text-primary)}.data-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .12s ease}.data-table tbody tr:hover{background:#f8fafc}.data-table tbody tr:last-child{border-bottom:none}.data-table td{padding:.8125rem 1rem;color:var(--text-secondary);font-size:var(--font-size-sm)}.comments-cell{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-data{text-align:center;padding:2.5rem;color:var(--text-muted);font-style:italic;font-size:var(--font-size-sm)}.status-badge{display:inline-flex;align-items:center;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;text-transform:capitalize}.status-pending{background:var(--warning-light);color:var(--warning-text)}.status-processing{background:var(--info-light);color:var(--info-text)}.status-completed{background:var(--success-light);color:var(--success-text)}.status-failed{background:var(--danger-light);color:var(--danger-text)}.done-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.done-checkbox:disabled{cursor:not-allowed;opacity:.6}.action-buttons{display:flex;gap:.375rem}.btn-view,.btn-edit,.btn-delete{padding:.3125rem .625rem;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:700;cursor:pointer;transition:var(--transition-fast)}.btn-delete{background:#dc262614;color:var(--danger-color);border:1px solid rgba(220,38,38,.2)}.btn-delete:hover:not(:disabled){background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn-delete:disabled{opacity:.4;cursor:not-allowed}.loading{text-align:center;padding:2rem;color:var(--text-muted);font-size:var(--font-size-sm)}.run-info-section{margin-bottom:1.75rem}.run-info-section h3{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin:0 0 .875rem;padding-bottom:.375rem;border-bottom:1px solid var(--border-color)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item-full{grid-column:1 / -1}.info-item label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.info-item span{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500}.info-box{background:var(--background);padding:.875rem;border-radius:var(--radius-md);margin-bottom:1.25rem;border:1px solid var(--border-color)}.info-box p{margin:.25rem 0;color:var(--text-primary);font-size:var(--font-size-sm)}.results-section{margin-top:1.5rem}.results-section h3{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin:0 0 .875rem;padding-bottom:.375rem;border-bottom:1px solid var(--border-color)}.results-table-container{overflow-x:auto;margin-bottom:1.25rem;max-height:480px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md)}.results-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.results-table thead{background:#f8fafc;position:sticky;top:0;z-index:10;border-bottom:2px solid var(--border-color)}.results-table th{padding:.625rem .75rem;text-align:left;font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.results-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .12s}.results-table tbody tr:hover{background:#f8fafc}.results-table tbody tr:last-child{border-bottom:none}.results-table td{padding:.5rem .75rem;color:var(--text-secondary);white-space:nowrap;font-size:var(--font-size-xs)}.results-table tfoot{background:#f8fafc;position:sticky;bottom:0;font-weight:700}.results-table tfoot td{padding:.625rem .75rem;color:var(--text-primary);border-top:2px solid var(--border-color);font-size:var(--font-size-xs)}.employee-name{font-weight:600;color:var(--text-primary);min-width:130px}.amount-highlight{color:var(--success-color);font-weight:700}.amount-deduction{color:var(--danger-color);font-weight:700}.amount-net{color:var(--primary-color);font-weight:700}.totals-row{background:#f8fafc}.no-results{text-align:center;padding:2rem;color:var(--text-muted);font-style:italic;font-size:var(--font-size-sm)}.error{text-align:center;padding:2rem;color:var(--danger-color);font-weight:600;font-size:var(--font-size-sm)}.summary-section{margin-top:1.25rem;background:var(--background);padding:1.125rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.summary-section h4{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin:0 0 .875rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.summary-item label{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:600}.summary-item span{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:700;font-family:var(--font-mono)}@media (max-width: 768px){.payroll-runs-container{padding:0}.process-payroll-section,.payroll-runs-list{padding:1rem}.form-row{grid-template-columns:1fr}.filters-row{flex-direction:column}.filter-group{min-width:100%}.action-buttons{flex-direction:column}.btn-view,.btn-edit{width:100%}.info-grid,.summary-grid{grid-template-columns:1fr}}.employee-payrolls-container{max-width:var(--container-xl);margin:0 auto}.page-header{margin-bottom:1.5rem}.header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.page-header h1{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.page-description{color:var(--text-secondary);margin:0;font-size:var(--font-size-sm)}.filters-card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-xs);margin-bottom:1.25rem}.filters-card h2{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:700;color:var(--text-primary);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;align-items:start}.filter-group{display:flex;flex-direction:column}.filter-group label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.05em}.filter-group select,.filter-group input[type=text],.filter-group input[type=number]{padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.filter-group select:disabled,.filter-group input:disabled{background:#f8fafc;cursor:not-allowed;opacity:.65}.checkbox-group{padding-top:1.5rem}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;margin:0}.checkbox-group input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.employee-ids-group{grid-column:1 / -1}.field-hint{font-size:var(--font-size-xs);color:var(--text-muted);margin:.25rem 0 0}.filter-actions{grid-column:1 / -1;display:flex;gap:.625rem;flex-wrap:wrap;justify-content:flex-end;margin-top:.75rem}.btn-primary,.btn-secondary{padding:.5rem 1.125rem;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:var(--transition-fast);border:none}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 3px 8px #0d948840}.btn-secondary:hover{background:var(--secondary-dark);transform:translateY(-1px)}.btn-export{padding:.5rem 1.125rem;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:var(--transition-fast);border:none;background:var(--success-color);color:#fff}.btn-export:hover{background:var(--success-dark);transform:translateY(-1px)}.btn-export:disabled{background:#94a3b8;cursor:not-allowed;opacity:.65}.btn-payslip{padding:.5rem 1.125rem;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:var(--transition-fast);border:none;background:var(--info-color);color:#fff}.btn-payslip:hover{background:var(--info-dark);transform:translateY(-1px)}.btn-payslip:disabled{background:#94a3b8;cursor:not-allowed;opacity:.65}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.875rem;margin-bottom:1.25rem}.stat-card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.125rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:.375rem;border-left:3px solid var(--border-color);transition:box-shadow .2s ease,transform .2s ease}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.stat-value{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1}.stat-success{color:var(--success-color)}.stat-danger{color:var(--danger-color)}.stat-info{color:var(--info-color)}.stat-warning{color:var(--warning-color)}.data-table-card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-top:.875rem;overflow:hidden}.loading-text,.no-data-text{text-align:center;padding:3rem;color:var(--text-muted);font-size:var(--font-size-sm)}.payroll-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.payroll-table thead{background:#f8fafc;position:sticky;top:0;z-index:10;border-bottom:2px solid var(--border-color)}.payroll-table th{padding:.75rem .875rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.payroll-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.payroll-table th.sortable:hover{background:#f1f5f9;color:var(--text-primary)}.payroll-tab{padding:.125rem .75rem;border-bottom:1px solid #f1f5f9;font-size:var(--font-size-xs)}.payroll-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .12s ease}.payroll-table tbody tr:hover{background:#f8fafc}.payroll-table tbody tr:last-child{border-bottom:none}.emp-id-cell{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;color:var(--primary-color)}.name-cell{font-weight:600;min-width:140px}.type-cell{min-width:90px}.type-badge{display:inline-flex;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700}.type-badge.type-staff{background:var(--info-light);color:var(--info-text)}.type-badge.type-operator{background:var(--warning-light);color:var(--warning-text)}.numeric-cell{text-align:center;font-family:var(--font-mono);font-size:var(--font-size-xs)}.month-cell{min-width:90px;font-size:var(--font-size-xs)}.amount-cell{text-align:right;font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;font-variant-numeric:tabular-nums}.deduction-cell{color:var(--danger-color)}.net-pay-cell{color:var(--success-color);font-weight:700}.actions-cell{text-align:center}.btn-action{border:none;cursor:pointer;font-size:var(--font-size-xs);padding:.25rem .5625rem;border-radius:var(--radius-sm);font-weight:600;transition:var(--transition-fast);margin:0 .1875rem}.btn-action:hover{transform:scale(1.05)}.btn-view{background:var(--primary-muted);color:var(--primary-color);border:1px solid rgba(13,148,136,.2)}.btn-view:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-edit{background:#d9770614;color:var(--warning-color);border:1px solid rgba(217,119,6,.2)}.btn-edit:hover{background:var(--warning-color);color:#fff;border-color:var(--warning-color)}.btn-payslip{background:var(--info-muted, rgba(37,99,235,.08));color:var(--info-color);border:1px solid rgba(37,99,235,.2)}.btn-payslip:hover{background:var(--info-color);color:#fff;border-color:var(--info-color)}.btn-payslip:disabled{background:#f1f5f9;color:var(--text-muted);border-color:var(--border-color);cursor:not-allowed;opacity:.65}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-content{background:var(--surface);border-radius:var(--radius-xl);border-top:3px solid var(--primary-color);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .28s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--surface);z-index:10}.modal-header h2{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.01em}.modal-close{background:none;border:none;font-size:1.375rem;color:var(--text-muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition-fast)}.modal-close:hover{background:var(--danger-light);color:var(--danger-color)}.modal-body{padding:1.5rem}.modal-footer{padding:1.125rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.625rem;position:sticky;bottom:0;background:var(--surface);z-index:10}.detail-section{margin-bottom:1.75rem}.detail-section:last-child{margin-bottom:0}.detail-section h3{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .875rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.detail-item{display:flex;flex-direction:column;gap:.25rem;padding:.625rem .75rem;background:var(--background);border-radius:var(--radius-md);border:1px solid var(--border-color)}.detail-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.detail-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.detail-value.net-pay-highlight{color:var(--success-color);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:700}.edit-modal{max-width:700px}.edit-info{background:var(--info-light);border:1px solid rgba(37,99,235,.2);border-left:3px solid var(--info-color);border-radius:var(--radius-md);padding:.875rem 1rem;margin-bottom:1.25rem}.edit-info p{margin:.1875rem 0;color:var(--info-text);font-size:var(--font-size-sm)}.edit-info p strong{font-weight:700}.edit-section{margin-bottom:1.25rem}.edit-section:last-of-type{margin-bottom:0}.edit-section h3{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .875rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.edit-field{display:flex;flex-direction:column}.edit-field label{font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem}.edit-field input{padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease}.edit-field input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.edit-field input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.edit-field input::placeholder{color:var(--text-muted)}@media (max-width: 768px),(orientation: landscape) and (max-height: 500px){.employee-payrolls-container{padding:.75rem}.page-header h1{font-size:var(--font-size-xl)}.filters-grid,.summary-stats{grid-template-columns:1fr}.payroll-table th,.payroll-table td{padding:.5rem .375rem}.modal-overlay{padding:0;align-items:flex-end}.modal-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:95dvh;width:100%}.filter-actions{width:100%;flex-direction:column}.filter-actions button{width:100%;justify-content:center}.header-content{flex-direction:column;align-items:flex-start}}@media (max-width: 480px){.filter-actions{flex-direction:column}.filter-actions button{width:100%}}@media (max-width: 640px),(orientation: landscape) and (max-height: 500px){.payroll-table{min-width:0;width:100%}.payroll-table tbody{display:block}.payroll-table thead{display:none}.payroll-table tbody tr{display:block;margin-bottom:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;background:var(--surface);box-shadow:var(--shadow-xs)}.payroll-table tbody tr:hover{background:var(--surface)}.payroll-table tbody td{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0;border-bottom:1px solid #f1f5f9;font-size:var(--font-size-xs);text-align:right}.payroll-table tbody td:last-child{border-bottom:none}.payroll-table tbody td:before{content:attr(data-label);font-weight:700;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;flex-shrink:0;margin-right:.75rem;text-align:left}.payroll-table tbody td[style*="display: none"]{display:none!important}.payroll-table tbody td.actions-cell{justify-content:flex-end;border-bottom:none;flex-wrap:wrap;gap:.375rem;padding-top:.5rem}.payroll-table tbody td.actions-cell:before{display:none}.payroll-table tbody td.amount-cell,.payroll-table tbody td.duration-cell{font-family:var(--font-mono)}}.inactive-payroll-section{margin-top:2rem;border:1px solid var(--border-color, #e2e8f0);border-radius:var(--radius-md, 6px);overflow:hidden}.inactive-section-toggle{width:100%;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--surface-secondary, #f8fafc);border:none;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-muted, #64748b);text-align:left}.inactive-section-toggle:hover{background:var(--surface-hover, #f1f5f9);color:var(--text-secondary, #475569)}.inactive-section-icon{font-size:.75rem}.inactive-section-body{border-top:1px solid var(--border-color, #e2e8f0);overflow-x:auto}.inactive-table{opacity:.75}.inactive-table tbody tr:hover{background:var(--surface-hover, #f8fafc)}.mc-code{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.8rem;background:var(--surface-muted, #f1f5f9);padding:2px 6px;border-radius:4px;color:var(--primary-color, #0d9488);letter-spacing:.03em}.mc-badge-global{background:#dbeafe;color:#1d4ed8}.mc-badge-company{background:#fef3c7;color:#b45309}.mc-badge-datatype{background:#f3f4f6;color:#374151}.mc-value-cell{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.82rem}.mc-range-cell,.mc-desc-cell{font-size:.82rem;color:var(--text-muted, #64748b);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-row-disabled td{opacity:.5}.mc-toggle-btn{padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600;border:none;cursor:pointer;transition:opacity .15s}.mc-toggle-btn:hover{opacity:.8}.mc-toggle-enabled{background:#d1fae5;color:#065f46}.mc-toggle-disabled{background:#fee2e2;color:#991b1b}.filter-select{padding:.4rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:var(--radius-sm, 6px);background:var(--surface-color, #fff);font-size:.875rem;color:var(--text-primary, #1e293b);cursor:pointer}.modal-lg{max-width:640px;width:100%}.mc-checkbox-group label{display:flex;align-items:center;gap:.5rem;font-weight:500;cursor:pointer}.mc-checkbox-group input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-hint{font-size:.75rem;color:var(--text-muted, #64748b);margin-top:2px;display:block}.dc-empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted, #64748b);font-size:.95rem}.dc-division-banner{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--surface-muted, #f1f5f9);border-left:3px solid var(--primary-color, #0d9488);border-radius:0 6px 6px 0;margin-bottom:1rem;font-size:.875rem;color:var(--text-primary, #1e293b)}.dc-count{margin-left:auto;font-size:.8rem;color:var(--text-muted, #64748b)}.dc-row-overridden{background:#0d94880a}.dc-row-overridden td:first-child{border-left:3px solid var(--primary-color, #0d9488)}.dc-override-value{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.82rem;color:var(--primary-color, #0d9488);font-weight:600}.dc-using-global{font-size:.8rem;color:var(--text-muted, #94a3b8);font-style:italic}.dc-badge-overridden{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;background:#d1fae5;color:#065f46}.dc-badge-global{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;background:#f1f5f9;color:#94a3b8}.dc-inline-edit{display:flex;flex-direction:column;gap:4px}.dc-inline-edit input,.dc-inline-edit select{padding:4px 8px;font-size:.85rem;border:1px solid var(--primary-color, #0d9488);border-radius:4px;outline:none;min-width:120px}.dc-field-error{font-size:.72rem;color:#dc2626}.error-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background);padding:2rem}.error-card{text-align:center;max-width:480px;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:3rem 2rem;box-shadow:var(--shadow-lg)}.error-card h1{font-family:var(--font-display);font-size:5rem;font-weight:800;color:var(--primary-color);margin-bottom:.75rem;line-height:1;letter-spacing:-.04em}.error-card h2{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin-bottom:.875rem;letter-spacing:-.01em}.error-card p{color:var(--text-secondary);margin-bottom:2rem;font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}#root{min-height:100vh;display:flex;flex-direction:column}:root{--primary-color: #0d9488;--primary-dark: #0f766e;--primary-hover: #0f766e;--primary-light: #ccfbf1;--primary-muted: rgba(13, 148, 136, .08);--secondary-color: #64748b;--secondary-dark: #475569;--sidebar-bg: #18181b;--sidebar-border: rgba(255,255,255,.06);--sidebar-text: rgba(255,255,255,.55);--sidebar-text-hover: rgba(255,255,255,.9);--sidebar-active-text: #ffffff;--sidebar-active-bg: rgba(245,158,11,.12);--sidebar-active-accent: #f59e0b;--sidebar-user-border: rgba(255,255,255,.08);--success-color: #16a34a;--success-dark: #15803d;--success-light: #dcfce7;--success-text: #14532d;--danger-color: #dc2626;--danger-dark: #b91c1c;--danger-light: #fee2e2;--danger-text: #991b1b;--warning-color: #d97706;--warning-dark: #b45309;--warning-light: #fef3c7;--warning-text: #92400e;--info-color: #2563eb;--info-dark: #1d4ed8;--info-light: #dbeafe;--info-text: #1e40af;--background: #f1f5f9;--surface: #ffffff;--surface-raised: #ffffff;--border-color: #e2e8f0;--border-hover: #cbd5e1;--text-primary: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .04);--shadow: 0 1px 3px 0 rgb(0 0 0 / .08), 0 1px 2px -1px rgb(0 0 0 / .06);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .06);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .06);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .08);--font-display: "Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 36px;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--container-sm: 800px;--container-md: 1200px;--container-lg: 1600px;--container-xl: 1800px;--container-full: 2000px;--modal-xs: 400px;--modal-sm: 500px;--modal-md: 760px;--modal-lg: 1000px;--modal-xl: 1200px;--transition-fast: all .15s ease;--transition-normal: all .25s ease;--transition-slow: all .35s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,pre{font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;line-height:var(--line-height-tight);cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--transition-fast);position:relative;outline:none}.btn:focus-visible{box-shadow:0 0 0 3px #0d94884d}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary-color);color:#fff;box-shadow:0 1px 2px #0d948840}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 4px 8px #0d94884d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--secondary-dark);transform:translateY(-1px)}.btn-danger{background:var(--danger-color);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-dark);transform:translateY(-1px)}.btn-warning{background:var(--warning-color);color:#fff}.btn-warning:hover:not(:disabled){background:var(--warning-dark);transform:translateY(-1px)}.btn-link{background:none;color:var(--primary-color);padding:.375rem .5rem;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--primary-dark)}.btn-block{width:100%}.btn-sm{padding:.3125rem .75rem;font-size:var(--font-size-xs)}.btn-lg{padding:.75rem 1.5rem;font-size:var(--font-size-md)}.alert{padding:.75rem 1rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;margin-bottom:1rem;border-left:3px solid}.alert-error{background:var(--danger-light);color:var(--danger-text);border-color:var(--danger-color)}.alert-success{background:var(--success-light);color:var(--success-text);border-color:var(--success-color)}.alert-warning{background:var(--warning-light);color:var(--warning-text);border-color:var(--warning-color)}.alert-info{background:var(--info-light);color:var(--info-text);border-color:var(--info-color)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.375rem;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);letter-spacing:.01em}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease;line-height:var(--line-height-normal)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--border-hover)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0d94881f}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f8fafc;cursor:not-allowed;opacity:.65}.loading{display:flex;align-items:center;justify-content:center;gap:.625rem;min-height:50vh;font-size:var(--font-size-base);color:var(--text-muted)}.loading:before{content:"";width:20px;height:20px;border:2.5px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-center{text-align:center}.font-semibold{font-weight:600}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}::selection{background:#0d948826;color:var(--text-primary)}
