*{box-sizing:border-box}body{color:#17212b;background:#f4f6f8;min-width:320px;min-height:100vh;margin:0;font-family:Arial,Helvetica,sans-serif}button,select,input{font:inherit}.app-shell{justify-content:center;align-items:flex-start;min-height:100vh;padding:24px 16px;display:flex}.card{background:#fff;border-radius:14px;width:100%;max-width:520px;padding:28px;box-shadow:0 8px 24px #00000014}h1{margin:0 0 12px;font-size:32px;line-height:1.1}.welcome{margin:0 0 28px;font-size:18px}.label{margin-bottom:8px;font-weight:700;display:block}.field{background:#fff;border:1px solid #b8c0c8;border-radius:8px;width:100%;min-height:52px;padding:10px 12px}.job-card,.gps-card{border:1px solid #d7dce1;border-radius:8px;margin-top:16px;padding:16px;line-height:1.5}.secondary-button,.clock-button,.signout-button{cursor:pointer;border-radius:8px;width:100%}.secondary-button{background:#fff;border:1px solid #66727e;margin-top:18px;padding:14px;font-weight:700}.clock-button{color:#fff;background:#166534;border:0;margin-top:14px;padding:20px;font-size:24px;font-weight:800}.clock-button:disabled{opacity:.6}.message{min-height:24px;margin:18px 0;font-weight:700}.signout-button{background:0 0;border:0;padding:12px;text-decoration:underline}.active-card{background:#ecfdf3;border:1px solid #86efac;border-radius:8px;margin-bottom:20px;padding:16px;line-height:1.5}.clockout-button{color:#fff;cursor:pointer;background:#b91c1c;border:0;border-radius:8px;width:100%;margin-top:14px;padding:20px;font-size:24px;font-weight:800}.clockout-button:disabled{opacity:.6}.hint{color:#66727e;margin-top:10px;font-size:14px}.management-button{color:#fff;cursor:pointer;background:#1d4ed8;border:0;border-radius:8px;width:100%;margin-bottom:22px;padding:14px;font-weight:800}.admin-shell{background:#f4f6f8;min-height:100vh;padding:24px 16px}.admin-card{background:#fff;border-radius:14px;width:100%;max-width:1100px;margin:0 auto;padding:28px;box-shadow:0 8px 24px #00000014}.admin-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.compact-button{width:auto;margin:0}.filter-row{flex-wrap:wrap;gap:8px;margin:24px 0;display:flex}.filter-row button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:10px 16px}.filter-row .filter-active{color:#fff;background:#17212b}.timesheet-list{gap:16px;display:grid}.timesheet-card{border:1px solid #d8dee5;border-radius:10px;padding:18px}.timesheet-top{justify-content:space-between;gap:16px;display:flex}.employee-name{font-size:18px;display:block}.status-badge{text-transform:uppercase;border-radius:999px;height:fit-content;padding:6px 10px;font-size:13px;font-weight:800}.status-submitted{color:#92400e;background:#fef3c7}.status-approved{color:#166534;background:#dcfce7}.status-rejected{color:#991b1b;background:#fee2e2}.status-draft{color:#334155;background:#e2e8f0}.time-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px;display:grid}.time-grid div{background:#f8fafc;border-radius:8px;padding:12px}.time-grid span,.time-grid strong{display:block}.time-grid span{color:#64748b;text-transform:uppercase;margin-bottom:4px;font-size:12px}.gps-summary{flex-wrap:wrap;gap:18px;margin-top:16px;display:flex}.gps-summary a{color:#1d4ed8;font-weight:700}.approval-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.approve-button,.reject-button{color:#fff;cursor:pointer;border:0;border-radius:8px;padding:14px;font-weight:800}.approve-button{background:#166534}.reject-button{background:#b91c1c}.rejection-box{background:#fff1f2;border-radius:8px;margin-top:16px;padding:12px}.empty-state{text-align:center;color:#64748b;padding:30px}@media (width<=700px){.admin-header{flex-direction:column;align-items:stretch}.compact-button{width:100%}.time-grid{grid-template-columns:1fr 1fr}}.distance-result{border-top:1px solid #d7dce1;margin-top:12px;padding-top:12px}.onsite{color:#166534;margin-top:5px;font-weight:800}.offsite{color:#b91c1c;margin-top:5px;font-weight:800}.distance-summary{background:#f8fafc;border-radius:8px;margin-top:16px;padding:12px;line-height:1.6}.offsite-inline{color:#b91c1c;font-weight:800}.management-filters{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;display:grid}.weekly-total-card{background:#eef2ff;border-radius:10px;justify-content:space-between;align-items:center;margin-top:18px;padding:18px;display:flex}.weekly-total-card span{color:#475569;font-weight:700}.weekly-total-card strong{font-size:28px}@media (width<=700px){.management-filters{grid-template-columns:1fr}}.admin-header-actions{flex-wrap:wrap;gap:10px;display:flex}.payroll-button{color:#fff;cursor:pointer;background:#7c3aed;border:0;border-radius:8px;width:auto;padding:14px 18px;font-weight:800}.payroll-total-card{background:#f3e8ff;border-radius:10px;justify-content:space-between;align-items:center;margin:20px 0;padding:20px;display:flex}.payroll-total-card span{font-weight:700}.payroll-total-card strong{font-size:30px}.payroll-break-row{color:#64748b;margin-top:14px;font-weight:700}@media (width<=700px){.admin-header-actions{flex-direction:column}.payroll-button{width:100%}}.export-button{color:#fff;cursor:pointer;background:#0f766e;border:0;border-radius:8px;width:100%;margin-bottom:20px;padding:14px;font-weight:800}.export-button:disabled{opacity:.5;cursor:not-allowed}.employee-management-button{color:#fff;cursor:pointer;background:#334155;border:0;border-radius:8px;width:100%;margin-top:-10px;margin-bottom:22px;padding:14px;font-weight:800}.employee-admin-card{max-width:760px}.employee-form{margin-top:28px}.employee-form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.employee-form-row{margin-top:18px}.employee-security-note{color:#475569;background:#f8fafc;border:1px solid #d8dee5;border-radius:8px;margin-top:20px;padding:14px;line-height:1.5}.create-employee-button{color:#fff;cursor:pointer;background:#166534;border:0;border-radius:8px;width:100%;margin-top:22px;padding:16px;font-size:18px;font-weight:800}.create-employee-button:disabled{opacity:.6;cursor:not-allowed}.employee-message{margin-top:20px}@media (width<=700px){.employee-form-grid{grid-template-columns:1fr}}.employee-roster-section{border-top:1px solid #d8dee5;margin-top:36px;padding-top:28px}.employee-roster-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.employee-roster-header h2{margin-bottom:4px}.employee-roster-list{gap:14px;display:grid}.employee-roster-card{background:#fff;border:1px solid #d8dee5;border-radius:10px;padding:18px}.employee-roster-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.employee-roster-name{font-size:19px;display:block}.employee-roster-email{color:#64748b;margin-top:3px}.employee-account-status{text-transform:uppercase;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.status-active{color:#166534;background:#dcfce7}.status-invited,.status-pending{color:#92400e;background:#fef3c7}.status-inactive{color:#991b1b;background:#fee2e2}.status-not_linked{color:#475569;background:#e2e8f0}.employee-roster-details{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.employee-roster-details div{background:#f8fafc;border-radius:8px;padding:10px}.employee-roster-details span,.employee-roster-details strong{display:block}.employee-roster-details span{color:#64748b;text-transform:uppercase;margin-bottom:3px;font-size:12px}.employee-roster-actions{margin-top:16px}.roster-action-button{border:0;border-radius:8px;width:100%;padding:12px;font-weight:800}.invite-action{color:#fff;background:#f59e0b}.reset-action{color:#fff;background:#1d4ed8}.roster-action-button:disabled{opacity:.5}@media (width<=700px){.employee-roster-header{flex-direction:column;align-items:stretch}.employee-roster-details{grid-template-columns:1fr}}.invite-link-box{background:#fffbeb;border:1px solid #f59e0b;border-radius:10px;margin-top:18px;padding:16px}.invite-link-box strong{margin-bottom:6px;display:block}.invite-link-box p{color:#64748b;margin-bottom:12px}.copy-invite-button{color:#fff;cursor:pointer;background:#92400e;border:0;border-radius:8px;width:100%;margin-top:12px;padding:12px;font-weight:800}.employee-edit-panel{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;margin-top:28px;padding:18px}.employee-edit-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.edit-cancel-button{background:#fff;border:1px solid #94a3b8;border-radius:8px;padding:8px 12px;font-weight:800}.save-employee-button{color:#fff;background:#166534;border:0;border-radius:8px;width:100%;margin-top:18px;padding:14px;font-weight:800}.employee-roster-actions{gap:10px;display:grid}.edit-action{color:#fff;background:#334155}.deactivate-action{color:#fff;background:#b91c1c}.reactivate-action{color:#fff;background:#166534}.login-help-links{justify-content:space-between;gap:12px;margin-top:18px;display:flex}.login-help-links button,.auth-link-button{color:#1d4ed8;cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline}.auth-link-button{width:100%;margin-top:18px}.auth-help-text{color:#475569;margin-bottom:22px;line-height:1.5}.forgot-email-box{background:#f8fafc;border:1px solid #d8dee5;border-radius:10px;margin-top:20px;padding:18px;line-height:1.5}.forgot-email-box strong{margin-bottom:10px;display:block}.forgot-email-box p+p{margin-top:12px}@media (width<=480px){.login-help-links{flex-direction:column;align-items:center}}
