:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:#172033;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,rgba(20,83,45,.08),transparent 260px),#f8fafc}button,input,select,textarea{font:inherit}button{min-height:42px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}button:hover{border-color:#0f766e}button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.65}.button-link{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#172033;display:inline-flex;font-weight:750;gap:8px;min-height:42px;padding:0 14px;text-decoration:none;width:fit-content}.button-link:hover{border-color:#0f766e}input,select,textarea{max-width:100%;min-width:0;width:100%;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;padding:10px 12px}textarea{resize:vertical}label{display:grid;gap:6px;min-width:0;color:#475569;font-size:.9rem;font-weight:700}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{border-bottom:1px solid #e2e8f0;padding:10px 8px;text-align:left;vertical-align:top}th{color:#475569;font-size:.78rem;text-transform:uppercase}.app-shell{width:min(1180px,calc(100% - 24px));margin:0 auto;padding:18px 0 32px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0 12px}.topbar h1{margin:0;font-size:clamp(1.5rem,4vw,2.2rem);line-height:1.1}.topbar p{margin:5px 0 0;color:#64748b}.top-actions,.button-row,.quick-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.status{min-height:38px;border-radius:999px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:.9rem}.status.online{background:#dcfce7;color:#14532d}.status.offline{background:#fee2e2;color:#991b1b}.sync-alert{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#9a3412;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px;padding:10px 12px}.sync-alert button{border-color:#fdba74;color:#9a3412;flex:0 0 auto;min-height:36px}.tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:8px 0 18px}.tabs button{min-width:0;font-weight:800}.tabs button.active{background:#14532d;border-color:#14532d;color:#fff}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.9fr);gap:14px}.wide-content{display:grid;gap:14px;min-width:0}.panel{background:#ffffffeb;border:1px solid #e2e8f0;border-radius:8px;padding:16px;box-shadow:0 12px 24px #0f172a0f;display:grid;gap:14px;min-width:0}.work-panel{grid-row:span 2}.panel-title{display:flex;align-items:center;gap:9px;color:#14532d}.panel-title h2,.panel h2{margin:0;font-size:1.08rem;line-height:1.2;color:#172033}.timer-display{min-height:112px;border-radius:8px;background:#102a43;color:#fff;display:grid;align-content:center;gap:6px;padding:20px}.timer-display strong{font-size:clamp(2.2rem,7vw,4.4rem);line-height:1;letter-spacing:0}.timer-display span{color:#bae6fd;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.invoice-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.input-with-button{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:8px}.date-input{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) 42px;min-width:0;position:relative}.date-picker-button{min-height:42px;padding:0}.native-date-picker{height:1px;opacity:0;pointer-events:none;position:absolute;right:20px;top:50%;width:1px}.backend-summary{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.backend-auth{align-items:center;border:1px solid;border-radius:8px;display:inline-flex;font-size:.86rem;font-weight:850;gap:6px;min-height:34px;padding:0 10px}.backend-auth.authenticated{background:#ecfdf5;border-color:#a7f3d0;color:#166534}.backend-auth.required{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.sync-diagnostics{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0}.sync-diagnostics div{display:grid;gap:1px}.sync-diagnostics dt{color:#64748b;font-size:.68rem;font-weight:850;text-transform:uppercase}.sync-diagnostics dd{font-size:.86rem;font-variant-numeric:tabular-nums;font-weight:800;margin:0}.quick-row button,.food-buttons button{min-height:36px;padding:0 12px;background:#f1f5f9}.project-shortcuts{display:grid;gap:12px}.shortcut-group{display:grid;gap:8px}.shortcut-heading{display:flex;align-items:center;gap:7px;color:#475569;font-size:.82rem;font-weight:800}.project-shortcut{min-width:148px;min-height:56px;align-items:flex-start;flex-direction:column;gap:2px;padding:8px 12px;text-align:left}.project-shortcut strong,.project-shortcut span{width:100%;overflow-wrap:anywhere}.project-shortcut span{color:#64748b;font-size:.78rem;font-weight:700}.client-project-suggestions{padding-top:2px}.food-buttons button{background:#fff7ed;border-color:#fed7aa}.primary{background:#14532d;border-color:#14532d;color:#fff;font-weight:900}.success{background:#dcfce7;border-color:#86efac;color:#14532d;font-weight:900}.danger{background:#991b1b;border-color:#991b1b;color:#fff;font-weight:900}.wide{width:100%}.icon-button{width:46px;padding:0}.icon-button.small{width:36px;min-height:36px}.danger-outline{border-color:#fecaca;color:#b91c1c}.inline-message{margin:0;color:#475569;font-weight:700}.reminder{border-left:4px solid #eab308;background:#fef9c3;color:#713f12;padding:10px 12px;border-radius:6px;font-weight:800}.compact-list{display:grid;gap:7px;color:#475569;font-size:.92rem}.compact-list span{overflow-wrap:anywhere}.compact-list.spacious{gap:10px}.wellbeing-list-heading{align-items:center;border-top:1px solid #e2e8f0;display:flex;gap:10px;justify-content:space-between;padding-top:12px}.wellbeing-list-heading>strong{color:#334155;font-size:.86rem}.wellbeing-list-heading>strong span{color:#64748b;font-weight:700}.wellbeing-list-heading button{min-height:34px;padding:0 10px}.wellbeing-list{display:grid;min-width:0}.wellbeing-row{align-items:center;border-top:1px solid #f1f5f9;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-height:54px;padding:7px 0}.wellbeing-row>div:first-child{display:grid;gap:2px;min-width:0}.wellbeing-row strong,.wellbeing-row span{overflow-wrap:anywhere}.wellbeing-row strong{color:#27364d;font-size:.9rem}.wellbeing-row span{color:#64748b;font-size:.78rem}.checkbox-row{display:flex;flex-wrap:wrap;gap:18px}.table-wrap{max-width:100%;min-width:0;overflow-x:auto;width:100%}.summary-strip{min-height:58px;background:#ecfeff;border:1px solid #a5f3fc;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}.summary-strip span,.summary-strip strong{font-size:1.2rem}.table-input{min-width:96px;padding:8px}.week-heading,.day-heading,.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.week-heading{align-items:center}.week-heading h2,.day-heading h3,.modal-heading h2,.client-project-group h3{margin:0}.week-heading>strong{color:#14532d;font-size:1.25rem;white-space:nowrap}.eyebrow{color:#64748b;display:block;font-size:.72rem;font-weight:900;margin-bottom:3px;text-transform:uppercase}.history-day{border-top:1px solid #cbd5e1;display:grid;gap:12px;min-width:0;padding-top:16px}.history-week{min-width:0}.day-heading h3{font-size:1rem;text-transform:capitalize}.day-heading>div:first-child>span{color:#64748b;display:block;font-size:.85rem;font-weight:700;margin-top:4px}.day-totals{align-items:center;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:flex-end}.day-totals>span{color:#64748b;font-size:.85rem;white-space:nowrap}.day-totals strong{color:#172033}.day-totals .overlap-warning{align-items:center;background:#fef2f2;border-radius:6px;color:#991b1b;display:inline-flex;font-weight:800;gap:5px;padding:5px 8px}.timeline{display:grid;gap:4px}.timeline-track{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:4px;height:22px;overflow:hidden;position:relative}.timeline-session{background:#0f766e;border-left:1px solid #ffffff;border-right:1px solid #ffffff;bottom:0;min-width:3px;opacity:.9;position:absolute;top:0}.timeline-labels{color:#64748b;display:flex;font-size:.74rem;font-weight:700;justify-content:space-between}.gap-list{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:.8rem;gap:5px 12px}.gap-list>span:first-child{color:#475569;font-weight:900}.history-table{min-width:760px}.history-table th:first-child,.history-table th:nth-child(2),.history-table td:first-child,.history-table td:nth-child(2){white-space:nowrap}.inline-edit-button{background:transparent;border-color:transparent;color:#172033;font-variant-numeric:tabular-nums;font-weight:800;gap:5px;justify-content:flex-start;min-height:32px;padding:2px 5px}.inline-edit-button svg{color:#64748b;opacity:0;transition:opacity .15s ease}.inline-edit-button:hover,.inline-edit-button:focus-visible{background:#ecfdf5;border-color:#a7f3d0}.inline-edit-button:hover svg,.inline-edit-button:focus-visible svg{opacity:1}.inline-editor{display:grid;gap:4px;min-width:92px}.inline-editor input{font-variant-numeric:tabular-nums;font-weight:800;max-width:108px;padding:7px 8px}.inline-editor input.invalid{border-color:#b91c1c;outline-color:#b91c1c}.inline-edit-error{color:#b91c1c;font-size:.7rem;font-weight:700;line-height:1.25;max-width:170px;white-space:normal}.row-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.modal-backdrop{align-items:center;background:#0f172a8c;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:fixed;z-index:20}.modal{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 24px 60px #0f172a40;display:grid;gap:16px;max-height:calc(100vh - 40px);max-width:720px;overflow:hidden;padding:18px;width:100%}.compact-modal{max-width:520px}.modal-body{display:grid;gap:16px;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:1px}.modal-actions{border-top:1px solid #e2e8f0;justify-content:flex-end;padding-top:14px}.merge-warning{background:#fff7ed;border-left:4px solid #ea580c;color:#7c2d12;margin:0;padding:10px 12px}.checkbox-label{align-items:center;display:flex;gap:9px;width:fit-content}.checkbox-label input{height:18px;margin:0;width:18px}.form-error{background:#fef2f2;border-left:4px solid #b91c1c;color:#991b1b;margin:0;padding:9px 11px}.client-project-list{border-top:1px solid #e2e8f0;display:grid}.rate-client-list{border-top:1px solid #cbd5e1;display:grid}.rate-client{border-bottom:1px solid #cbd5e1;display:grid;gap:12px;padding:16px 0}.rate-client-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.rate-client-heading h3{font-size:1rem;margin:0 0 3px}.rate-client-heading span{color:#475569;font-size:.82rem;font-weight:700}.rate-editor-grid{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(100px,.8fr) minmax(150px,1fr) minmax(100px,.7fr) auto}.rate-save{min-height:42px}.rate-history{border-top:1px solid #e2e8f0;display:grid}.rate-history>div{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(100px,1fr) minmax(100px,1fr) 40px;min-height:48px}.rate-history>div+div{border-top:1px solid #f1f5f9}.client-project-group{align-items:center;border-bottom:1px solid #e2e8f0;display:grid;gap:12px;grid-template-columns:minmax(140px,.35fr) minmax(0,1fr);padding:12px 0}.client-project-heading{align-items:center;display:flex;gap:10px;justify-content:space-between;min-width:0}.client-project-heading>div:first-child{min-width:0}.client-project-heading>div:first-child>span{color:#64748b;font-size:.78rem}.client-project-group h3{font-size:.98rem;overflow-wrap:anywhere}.entity-actions{display:flex;flex:0 0 auto;gap:5px}.project-tags{display:flex;flex-wrap:wrap;gap:7px}.project-tags>span,.project-tag{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#334155;display:inline-flex;font-size:.82rem;font-weight:700;min-height:34px}.project-tags>span{padding:6px 9px}.project-tag>span{overflow-wrap:anywhere;padding:6px 8px}.project-tag button{background:transparent;border:0;border-left:1px solid #cbd5e1;border-radius:0;min-height:32px;padding:0;width:30px}.project-tag .project-delete{color:#b91c1c}.legacy-rate>span{color:#64748b}.muted,.empty-state p{color:#64748b;margin:0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:820px){.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:space-between}.tabs{display:flex;overflow-x:auto;padding-bottom:3px}.tabs button{flex:0 0 auto}.dashboard-grid,.form-grid,.invoice-filters{grid-template-columns:1fr}.work-panel{grid-row:auto}.day-heading{align-items:flex-start;flex-direction:column}.day-totals{justify-content:flex-start}.client-project-group{grid-template-columns:1fr}.rate-client-heading{align-items:flex-start;flex-direction:column}.rate-editor-grid{grid-template-columns:1fr 1fr}.rate-save{width:100%}.history-table{min-width:0}.history-table thead{display:none}.history-table,.history-table tbody,.history-table tr{display:block;width:100%}.history-table tr{border-top:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:9px 0}.history-table td{border:0;display:grid;gap:2px;min-width:0;overflow-wrap:anywhere;padding:6px}.history-table td:before{color:#64748b;content:attr(data-label);font-size:.68rem;font-weight:900;text-transform:uppercase}.history-table td:nth-child(6),.history-table td:nth-child(7){grid-column:1 / -1}.history-table td:nth-child(7):before{display:none}.inline-edit-button svg{opacity:1}}@media(max-width:520px){.app-shell{width:min(100% - 16px,1180px)}.panel{padding:14px}.sync-alert{align-items:stretch;flex-direction:column}.sync-alert button{width:100%}.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.tabs button{font-size:.86rem;padding-inline:8px}.week-heading{align-items:flex-start}.week-heading>strong{font-size:1.05rem}.history-week.panel{gap:10px;padding:10px}.history-week .week-heading h2{font-size:.96rem}.history-day{gap:8px;padding-top:10px}.day-heading{display:grid;gap:6px}.day-heading>div:first-child>span{font-size:.76rem;margin-top:2px}.day-totals{display:grid;gap:4px 10px;grid-template-columns:repeat(2,minmax(0,1fr))}.day-totals>span{font-size:.76rem}.day-totals .overlap-warning{grid-column:1 / -1}.timeline-track{height:18px}.gap-list{font-size:.73rem;gap:3px 8px}.history-table tr{grid-template-columns:repeat(6,minmax(0,1fr));padding:6px 0}.history-table td{padding:4px 3px}.history-table td:nth-child(1),.history-table td:nth-child(2),.history-table td:nth-child(5){grid-column:span 2}.history-table td:nth-child(3),.history-table td:nth-child(4){grid-column:span 3}.history-table td:nth-child(6),.history-table td:nth-child(7){grid-column:1 / -1}.history-table td:before{font-size:.62rem}.inline-edit-button{font-size:.86rem;gap:3px;min-height:28px;padding:0}.inline-editor{min-width:0}.inline-editor input{max-width:100%;padding:6px}.backend-summary{align-items:stretch;flex-direction:column}.sync-diagnostics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.sync-diagnostics dd{overflow-wrap:anywhere}.project-shortcut{min-width:132px}.modal-backdrop{align-items:center;padding:16px}.modal{max-height:calc(100dvh - 32px)}}
