:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--color-bg:#eef2f1;--color-bg-mesh:radial-gradient(1200px 600px at 10% -10%, #0f766e14, transparent 50%), radial-gradient(900px 500px at 100% 0%, #d977060f, transparent 45%);--color-surface:#fff;--color-surface-muted:#f4f6f5;--color-border:#d8e0dd;--color-border-strong:#b8c5c0;--color-text:#122018;--color-text-muted:#5a6b65;--color-text-faint:#8a9a94;--color-brand:#0f766e;--color-brand-hover:#0d9488;--color-brand-muted:#0f766e1f;--color-accent:#c2410c;--color-accent-soft:#c2410c1a;--color-inn:#047857;--color-inn-hover:#059669;--color-inn-soft:#0478571f;--color-out:#be123c;--color-out-hover:#e11d48;--color-out-soft:#be123c1f;--color-danger:#b91c1c;--color-danger-bg:#b91c1c14;--radius-sm:.4rem;--radius-md:.65rem;--radius-lg:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px #1220180f;--shadow-md:0 4px 14px #12201814, 0 1px 3px #1220180f;--shadow-focus:0 0 0 3px var(--color-brand-muted);--transition:.18s ease;font-family:var(--font-sans);font-feature-settings:"kern" 1, "liga" 1;color:var(--color-text);background-color:var(--color-bg);background-image:var(--color-bg-mesh);-webkit-font-smoothing:antialiased;background-attachment:fixed;line-height:1.45}*{box-sizing:border-box}body{margin:0}h1,h2,h3{letter-spacing:-.02em;color:var(--color-text);font-weight:600}h1{font-size:1.5rem;line-height:1.2}h2{margin:0 0 .75rem;font-size:1.15rem}h3{color:var(--color-text-muted);margin:1rem 0 .5rem;font-size:.95rem;font-weight:600}p{color:var(--color-text-muted);margin:.35rem 0}a{color:inherit;text-decoration:none}a.nav-link{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);transition:border-color var(--transition), background var(--transition), box-shadow var(--transition);justify-content:center;align-items:center;gap:.35rem;padding:.5rem .95rem;font-size:.9rem;font-weight:500;display:inline-flex}a.nav-link:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted)}a.nav-link:focus-visible{box-shadow:var(--shadow-focus);outline:none}button,input,select{font:inherit}button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color var(--transition), background var(--transition), color var(--transition), box-shadow var(--transition);padding:.55rem .95rem;font-size:.9rem;font-weight:500}button:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-muted)}button:focus-visible{box-shadow:var(--shadow-focus);outline:none}button:disabled{opacity:.55;cursor:not-allowed}button.btn-primary{background:var(--color-brand);color:#fff;border-color:#0000;box-shadow:0 2px 8px #0f766e47}button.btn-primary:hover:not(:disabled){background:var(--color-brand-hover);border-color:#0000}button.btn-ghost{box-shadow:none;color:var(--color-text-muted);background:0 0;border-color:#0000}button.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}button.btn-inn{background:var(--color-inn);color:#fff;border-color:#0000;padding:.75rem 1rem;font-size:1rem;font-weight:600;box-shadow:0 2px 12px #0478574d}button.btn-inn:hover:not(:disabled){background:var(--color-inn-hover)}button.btn-out{background:var(--color-out);color:#fff;border-color:#0000;padding:.75rem 1rem;font-size:1rem;font-weight:600;box-shadow:0 2px 12px #be123c47}button.btn-out:hover:not(:disabled){background:var(--color-out-hover)}.page{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 2.5rem}.centered{place-content:center;min-height:100vh;padding:1.5rem;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{margin:0}.page.kiosk-page{flex-direction:column;min-height:100vh;display:flex}.page.kiosk-page .kiosk-top-bar{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:flex-start;margin-bottom:0;padding-bottom:1rem}.page.kiosk-page .kiosk-title-block h1{letter-spacing:-.03em;margin:0;font-size:1.5rem;line-height:1.2}.page.kiosk-page .kiosk-title-block .kiosk-subtitle{text-transform:uppercase;letter-spacing:.12em;color:var(--color-brand);margin:.2rem 0 0;font-size:.8rem;font-weight:600}.page.kiosk-page .kiosk-body{flex:1;place-content:center;min-height:0;padding:1.25rem 0;display:grid}.page.kiosk-page .kiosk-body>p{color:var(--color-text-muted);font-size:1rem}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:1.15rem 1.2rem}.login-card{border-top:3px solid var(--color-brand);width:100%;max-width:400px}.login-card h1{margin:0 0 .25rem;font-size:1.65rem}.login-card>p:first-of-type{margin:0 0 1rem;font-size:.95rem}.form{gap:.9rem;min-width:min(100%,320px);display:grid}.form label{color:var(--color-text-muted);gap:.4rem;font-size:.875rem;font-weight:500;display:grid}input,select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition), box-shadow var(--transition);padding:.6rem .75rem}input::placeholder{color:var(--color-text-faint)}input:hover,select:hover{border-color:var(--color-border-strong)}input:focus,select:focus{border-color:var(--color-brand);box-shadow:var(--shadow-focus);outline:none}.kiosk-form{min-width:min(100%,360px)}.kiosk-form .feedback{border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text);border:1px solid var(--color-border);margin:0;padding:.65rem .75rem;font-size:.9rem;font-weight:500}.kiosk-form .feedback.feedback-success{background:var(--color-inn-soft);color:var(--color-inn);border-color:#04785740}.kiosk-form .feedback.feedback-error{background:var(--color-danger-bg);color:var(--color-danger);border-color:#b91c1c33}.button-row{gap:.65rem;display:flex}.button-row>*{flex:1}.button-row.compact{flex-wrap:wrap}.button-row.compact>*{flex:0 auto}.error{color:var(--color-danger);margin:0;font-size:.9rem;font-weight:500}.success{color:var(--color-accent,#0d6efd);margin:0;font-size:.9rem;font-weight:500}.integrations-form{flex-direction:column;gap:1rem;max-width:28rem;display:flex}.integrations-form .payroll-setting-label input{width:100%}.integrations-status{color:var(--color-text-muted);margin:0;font-size:.9rem}.tabs{background:var(--color-surface-muted);border-radius:var(--radius-full);border:1px solid var(--color-border);flex-wrap:wrap;gap:.35rem;width:fit-content;max-width:100%;margin-bottom:1.1rem;padding:.3rem;display:flex}.tabs button{box-shadow:none;border-radius:var(--radius-full);color:var(--color-text-muted);background:0 0;border:none;padding:.45rem 1rem;font-weight:500}.tabs button:hover:not(:disabled){color:var(--color-text);background:#ffffffb3}.tabs button.tab-active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);font-weight:600}.filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.filters input,.filters select,.filters-date-shortcut{min-height:2.5rem}.filters-date-shortcut--active{border-color:var(--color-brand);background:color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));color:var(--color-brand)}table{border-collapse:collapse;width:100%;font-size:.9rem}thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);border-top:none;border-bottom:1px solid var(--color-border);background:var(--color-surface-muted);padding:.55rem .5rem;font-size:.75rem;font-weight:600}th,td{text-align:left;border-top:1px solid var(--color-border);padding:.55rem .5rem}tbody tr{transition:background var(--transition)}tbody tr:hover{background:#0f766e0a}td:nth-child(2){font-weight:500}.inline-form{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.inline-form input{min-width:140px}.list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.list li{grid-template-columns:1fr 100px auto;align-items:center;gap:.5rem;display:grid}.employee-list li{grid-template-columns:1fr minmax(7rem,9rem) 100px auto}.employee-create-form{flex-wrap:wrap}@media (width<=640px){.list li{grid-template-columns:1fr}}.list-plain li{border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border);padding:.5rem .65rem;font-weight:500;display:block}.list-plain li+li{margin-top:0}.time-suffix{color:var(--color-text-muted);font-weight:400}.badge-inn,.badge-out{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding:.2rem .5rem;font-size:.8rem;font-weight:600;display:inline-flex}.badge-inn{background:var(--color-inn-soft);color:var(--color-inn)}.badge-out{background:var(--color-out-soft);color:var(--color-out)}.section-lead{margin:0 0 .75rem;font-size:.95rem}.stat-pill{border-radius:var(--radius-full);background:var(--color-brand-muted);color:var(--color-brand);align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:1.1rem;font-weight:700;display:inline-flex}.reauth-card h2{margin-top:0}.reauth-card .reauth-inner{gap:.9rem;display:grid}.payroll-settings{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1.25rem;display:flex}.payroll-setting-label{color:var(--color-text-muted);gap:.4rem;min-width:12rem;font-size:.875rem;font-weight:500;display:grid}.payroll-setting-label select{min-height:2.5rem}.payroll-period-nav{background:var(--color-surface-muted);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.65rem .75rem;display:flex}.payroll-period-label{text-align:center;color:var(--color-text-muted);flex:1;min-width:12rem;font-size:.9rem}.payroll-period-label strong{color:var(--color-text);margin-bottom:.2rem;font-size:.95rem;display:block}.payroll-badge{border-radius:var(--radius-full);background:var(--color-brand-muted);color:var(--color-brand);margin-inline-start:.5rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.payroll-send-footer{border-top:1px solid var(--color-border);flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1.5rem;padding-top:1rem;display:flex}.payroll-hours-table{margin-top:.5rem}.worklog-anomaly-hint{color:var(--color-text-muted);font-size:.9rem}.worklog-table tbody tr[role=button]{cursor:pointer}.worklog-table tbody tr[role=button]:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.worklog-row--anomaly{border-inline-start:4px solid var(--color-danger);background:var(--color-danger-bg)!important}.worklog-row--anomaly:hover{background:#b91c1c1f!important}.worklog-anomaly-cell{max-width:14rem;font-size:.8rem}.worklog-anomaly-tag{color:var(--color-danger);margin-inline-end:.35rem;font-weight:600;display:inline-block}.worklog-section-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.worklog-section-header h2{margin:0}.worklog-edit-dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:min(100%,400px);box-shadow:var(--shadow-md);padding:0}.worklog-edit-dialog::backdrop{background:#0f172a59}.worklog-edit-form{gap:.9rem;padding:1.25rem;display:grid}.worklog-edit-form h3{margin:0}.button-row.worklog-edit-actions{align-items:center}.button-row.worklog-edit-actions>*{flex:0 auto}.button-row.worklog-edit-actions>.btn-primary{min-width:5.5rem;margin-left:auto}.worklog-edit-delete{border-radius:var(--radius-md);width:2.25rem;height:2.25rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.worklog-edit-delete:hover:not(:disabled){color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.worklog-edit-delete:disabled{opacity:.45;cursor:not-allowed}.worklog-edit-delete-icon{width:1.125rem;height:1.125rem}.worklog-edit-meta{color:var(--color-text-muted);margin:0;font-size:.9rem}.worklog-edit-form label{color:var(--color-text-muted);gap:.4rem;font-size:.875rem;font-weight:500;display:grid}.worklog-edit-form input[type=datetime-local]{min-height:2.5rem}
