@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2) format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2) format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2) format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2) format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2) format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-ext-700-normal-BOP2Nhf0.woff2) format("woff2"),url(/assets/montserrat-latin-ext-700-normal-DdDFr05Z.woff) format("woff")}:root{font-family:Montserrat,ui-sans-serif,system-ui,sans-serif;color:#333;background:#f9f9f9;font-synthesis:none;--brand-navy: #0d1e33;--brand-cyan: #2bb7da;--brand-cyan-soft: #e8f7fb;--brand-border: #d8e0e6;--brand-muted: #666666}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.loading,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.loading,.login-page{background:var(--brand-navy)}.login-form{width:min(100%,390px);border-top:4px solid var(--brand-cyan);background:#fff;padding:30px;box-shadow:0 18px 50px #0000003d}.login-logo{display:block;width:210px;height:auto;margin:0 auto 22px}.login-logo .logo-text{fill:var(--brand-navy)}.login-logo .logo-line{fill:var(--brand-cyan)}.login-form h1{margin:0 0 4px;font-size:24px}.login-form label{display:grid;gap:6px;margin-top:16px;font-size:14px;font-weight:600}.login-form input,.month-picker select{border:1px solid #aeb8c3;padding:9px 10px;background:#fff}.login-form input:focus,.month-picker select:focus,select:focus{border-color:var(--brand-cyan);outline:2px solid rgb(43 183 218 / 18%)}.login-form button{width:100%;margin-top:18px;border:2px solid var(--brand-cyan);padding:10px;color:#fff;background:var(--brand-cyan);font-weight:700}.login-form button:hover{color:var(--brand-cyan);background:#fff}.muted{color:var(--brand-muted);font-size:14px}.error,.has-error{color:#b91c1c}.success{color:#166534}.app-header{min-height:72px;padding:0 24px;border-bottom:1px solid #e9e9e9;background:#fff;box-shadow:0 2px 10px #0d1e330f;display:flex;align-items:center;gap:28px}.app-brand{display:flex;align-items:center;gap:14px;flex:0 0 auto}.app-logo{width:116px;height:auto}.app-logo .logo-text{fill:var(--brand-navy)}.app-logo .logo-line{fill:var(--brand-cyan)}.app-brand span{padding-left:14px;border-left:1px solid rgb(13 30 51 / 18%);color:var(--brand-navy);font-size:13px;font-weight:600;white-space:nowrap}.app-header nav{align-self:stretch;display:flex}.app-header nav button,.user-menu button{border:0;background:transparent;color:var(--brand-muted);padding:0 12px;font-weight:600}.app-header nav button:hover,.user-menu button:hover{color:var(--brand-navy)}.app-header nav button.active{color:var(--brand-cyan);box-shadow:inset 0 -3px var(--brand-cyan)}.user-menu{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--brand-navy);font-size:14px}.user-menu button{padding:5px 8px;text-decoration:underline}.content{padding:20px 20px 36px;max-width:1600px;margin:0 auto}.toolbar{min-height:54px;display:flex;align-items:center;gap:18px;margin-bottom:10px}.month-picker,.client-picker{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.client-picker select{min-width:160px;border:1px solid #aeb8c3;padding:9px 10px;background:#fff}.save-status{min-height:20px;color:var(--brand-muted);font-size:13px}.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--brand-border);box-shadow:0 3px 14px #0d1e3312}.sheet{width:100%;border-collapse:collapse;font-size:14px}.sheet th,.sheet td{height:36px;padding:6px 10px;border-right:1px solid #e3e8ed;border-bottom:1px solid #e3e8ed;text-align:left;white-space:nowrap}.sheet thead th{position:sticky;top:0;z-index:1;background:var(--brand-cyan-soft);color:var(--brand-navy);font-weight:600}.sheet tfoot th{background:var(--brand-cyan-soft);border-bottom:0}.sheet tr.weekend td{background:#f3f3f3;color:var(--brand-muted)}.hours-column,.editable-cell,.total,.number{width:150px;text-align:right!important}.editable-cell{padding:0!important}.editable-cell input{width:100%;height:35px;border:0;padding:6px 10px;text-align:right;background:transparent;outline:none}.editable-cell input:focus{box-shadow:inset 0 0 0 2px var(--brand-cyan);background:#fff}.weekday{text-transform:capitalize}.reports-toolbar{align-items:flex-start;flex-wrap:wrap}.multiselect-filter{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.multiselect-filter-label{white-space:nowrap}.filter-multiselect{position:relative;min-width:220px;font-weight:400}.filter-multiselect summary{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:16px;border:1px solid #aeb8c3;padding:8px 10px;background:#fff;cursor:pointer;list-style:none}.filter-multiselect summary::-webkit-details-marker{display:none}.filter-multiselect summary:after{content:"";width:7px;height:7px;border-right:1.5px solid var(--brand-navy);border-bottom:1.5px solid var(--brand-navy);transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}.filter-multiselect[open] summary{border-color:var(--brand-cyan);box-shadow:0 0 0 2px #2bb7da24}.filter-multiselect[open] summary:after{transform:rotate(225deg) translate(-2px,-1px)}.filter-picker{position:absolute;z-index:10;top:calc(100% + 5px);left:0;display:grid;width:100%;max-height:260px;gap:0;overflow-y:auto;border:1px solid var(--brand-border);padding:5px;margin:0;background:#fff;box-shadow:0 8px 24px #0d1e3324}.filter-picker label{display:flex;align-items:center;gap:8px;min-height:34px;padding:6px 8px;font-size:13px;font-weight:400;white-space:nowrap;cursor:pointer}.filter-picker label:hover{background:var(--brand-cyan-soft)}.empty-state{padding:24px;border:1px dashed #cbd5e1;color:#64748b;background:#fff}.timesheet-wrap{max-width:100%}.horizontal-timesheet{width:max-content;min-width:100%;table-layout:fixed;font-size:12px}.horizontal-timesheet .employee-column,.horizontal-timesheet .employee-name{position:sticky;left:0;z-index:2;width:120px;min-width:120px;background:#fff}.horizontal-timesheet thead .employee-column{z-index:3;background:var(--brand-cyan-soft)}.horizontal-timesheet thead th{min-width:38px;width:38px;padding:6px 2px;text-align:center;background:var(--brand-cyan-soft)}.horizontal-timesheet thead th.weekend,.horizontal-timesheet td.weekend{background:#e5e7eb;color:#64748b}.horizontal-timesheet thead th.holiday,.horizontal-timesheet td.holiday{background:#e8eef4;color:#64748b}.horizontal-timesheet td.missing-entry{background:#fee2e2}.horizontal-timesheet td.annual-leave{background:#fef3c7}.horizontal-timesheet td.sick-leave{background:#ffedd5}.horizontal-timesheet .employee-name{padding:6px 10px;text-align:left;font-weight:600}.horizontal-timesheet .editable-cell{width:38px;min-width:38px;padding:0!important}.horizontal-timesheet .editable-cell input{width:38px;padding:6px 2px;text-align:center}.horizontal-timesheet .report-entry{width:38px;min-width:38px;padding:6px 2px;text-align:center}.horizontal-timesheet .total-column,.horizontal-timesheet .total{position:sticky;right:0;z-index:2;width:84px;min-width:84px;text-align:center!important}.horizontal-timesheet .total{background:#dff4f9;color:var(--brand-navy);font-weight:700}.horizontal-timesheet .total-column{z-index:3;background:#bdeaf5!important}.horizontal-timesheet .total-column small{display:block;margin-top:2px;color:var(--brand-muted);font-size:10px;font-weight:500;white-space:nowrap}.timesheet-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:9px;color:var(--brand-muted);font-size:12px}.timesheet-legend strong{display:inline-grid;width:20px;height:20px;place-items:center;border:1px solid #cbd5e1;background:#fef3c7}.timesheet-legend span:nth-child(2) strong{background:#ffedd5}.missing-swatch{width:20px;height:20px;border:1px solid #fecaca;background:#fee2e2}.users-page h1,.clients-page h1{margin:0 0 14px;color:var(--brand-navy);font-size:22px;font-weight:700}.user-form{display:grid;grid-template-columns:1.1fr 1.3fr 120px 1.2fr auto;gap:10px;align-items:end;margin-bottom:16px;padding:12px;border:1px solid #cbd5e1;background:#fff}.user-form label,.edit-user-form label{display:grid;gap:5px;font-size:13px;font-weight:600}.user-form input,.user-form select,.edit-user-form input,.edit-user-form select{min-width:0;border:1px solid #94a3b8;padding:8px 9px;background:#fff}.user-form button,.edit-user-form>button{border:2px solid var(--brand-cyan);padding:7px 12px;color:#fff;background:var(--brand-cyan);font-weight:700;white-space:nowrap}.users-table .actions{display:flex;gap:7px}.actions button,.edit-user-heading button{border:1px solid #94a3b8;padding:5px 9px;color:#334155;background:#fff}.actions button.danger{border-color:#dc2626;color:#b91c1c}.actions button:disabled{cursor:not-allowed;opacity:.45}.edit-user-form{width:min(100%,520px);display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid #94a3b8;background:#fff}.edit-user-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.edit-user-heading h2{margin:0;font-size:18px}.client-form{display:flex;align-items:end;gap:10px;margin-bottom:16px;padding:12px;border:1px solid #cbd5e1;background:#fff}.client-form label,.edit-client-form label{display:grid;gap:5px;font-size:13px;font-weight:600}.client-form input,.edit-client-form input{border:1px solid #94a3b8;padding:8px 9px;background:#fff}.client-form button,.edit-client-form>button{border:2px solid var(--brand-cyan);padding:7px 12px;color:#fff;background:var(--brand-cyan);font-weight:700}.clients-table{max-width:700px}.edit-client-form{width:min(100%,420px);display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid #94a3b8;background:#fff}@media(max-width:640px){.app-header{padding:0 10px;gap:8px;flex-wrap:wrap}.app-brand{width:100%;padding-top:9px}.app-logo{width:100px}.app-brand span{font-size:12px}.app-header nav{height:38px;order:2}.user-menu{position:absolute;top:10px;right:6px}.user-menu span{display:none}.content{padding:12px 8px 24px}.toolbar{align-items:flex-start;flex-direction:column;gap:8px}.user-form{grid-template-columns:1fr}.sheet th,.sheet td{padding:6px 8px}.horizontal-timesheet .employee-column,.horizontal-timesheet .employee-name{width:104px;min-width:104px}}
