@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Geist+Mono:wght@400;500&display=swap";:root{--color-primary:#1e3a5f;--color-secondary:#2563eb;--color-accent:#059669;--color-background:#f8fafc;--color-foreground:#0f172a;--color-surface:#fff;--color-muted:#f1f5f9;--color-border:#e4e7eb;--color-text:#1a2332;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-destructive:#dc2626;--color-ring:#2563eb;--touch-min:44px;--sidebar-w:236px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--bp-mobile:767px;--bp-tablet:1023px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overflow-x:hidden}body{color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Plus Jakarta Sans,-apple-system,system-ui,sans-serif}.app-shell{height:100dvh;overflow-x:hidden}button,input,select,textarea{font:inherit}button{transition:transform .14s cubic-bezier(.34,1.56,.64,1),filter .14s,box-shadow .14s,background-color .12s}button:not(:disabled):hover{transform:translateY(-1px)}button:not(:disabled):active{transition-duration:80ms;transform:translateY(.5px)}button:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.btn-primary:not(:disabled):hover{filter:brightness(1.1)}.btn-ghost:not(:disabled):hover{box-shadow:0 3px 10px #091d2e17;background:#fafbfc!important}.nav-btn{transition:background-color .12s,color .12s,transform .12s!important}.nav-btn:not(:disabled):hover{background-color:#1e3a5f12!important;transform:none!important}.nav-btn:not(:disabled):active{background-color:#1e3a5f1f!important;transform:none!important}.back-btn{transition:color .12s!important}.back-btn:not(:disabled):hover{color:#1e3a5f!important;transform:none!important}.back-btn:not(:disabled):active{transform:none!important}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-ring);outline-offset:0;border-color:var(--color-ring)!important}.entry-block:active,.day-list-row:active,.month-cell:active{background-color:#eef0f3}::selection{background:#dbeafe}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd5e1 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8 padding-box content-box}.entry-block,.day-list-row,.month-cell{transition:box-shadow .12s,border-color .12s,background-color .12s}.entry-block:hover{box-shadow:0 4px 12px #0000001f}.day-list-row:hover{border-color:#dfe2e7}.month-cell:hover{background:#f8f9fb}.cal-cell{opacity:0;transition:border-color .12s,box-shadow .12s,transform .12s;animation:.26s forwards cal-cell-in}@keyframes cal-cell-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.cal-cell:hover{z-index:2;transform:translateY(-1px);box-shadow:0 3px 10px #1a1c200f;border-color:#c9cdd4!important}.cal-panel-body{animation:.18s cal-panel-in}@keyframes cal-panel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-spin{animation:.9s linear infinite sync-spin;display:block}@keyframes punch-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.punch-dot{background:#dc2626;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.4s ease-in-out infinite punch-pulse;display:inline-block}.cal-prow{transition:border-color .12s}.cal-prow:hover{border-color:#c9cdd4!important}.cal-add-entry:hover{color:#6b7280!important;background:#fff!important}.cal-glance-row:hover{background:#f5f6f8!important;border-color:#e2e4e8!important}@media (width<=767px){input,select,textarea{font-size:16px!important}}.fab{color:#fff;display:none}.drawer-backdrop{z-index:44;background:#0006;position:fixed;inset:0}@media (width<=767px){.sidebar{z-index:45;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 16px #00000026}.sidebar.sidebar--open{transform:translate(0)}.fab{right:16px;bottom:calc(16px + var(--safe-bottom));cursor:pointer;z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:fixed;box-shadow:0 4px 16px #00000040}.fab--secondary{right:16px;bottom:calc(16px + var(--safe-bottom) + 56px + 12px);cursor:pointer;z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:fixed;box-shadow:0 4px 16px #00000040}.week-grid{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overflow-x:auto}.week-col,.week-day-header{scroll-snap-align:start;min-width:220px;flex:0 0 78vw!important}.day-view-shell{flex-direction:column!important;overflow:auto!important}.day-view-aside{width:100%!important}.month-grid-wrap{padding:8px!important}.month-card{overflow-x:auto!important}.month-week-row,.month-dow-row{min-width:560px}.clock-view-shell{flex-direction:column!important;overflow:auto!important}.clock-view-calendar{flex:none!important;overflow:visible!important}.clock-view-aside{border-top:1px solid var(--color-border);border-left:none!important;flex:none!important;width:100%!important;overflow:visible!important}.cal-grid{grid-template-columns:26px repeat(5,1fr)!important;gap:4px!important}.cal-cell-earn{display:none!important}.clock-summary{grid-template-columns:1fr 1fr!important;row-gap:14px!important;display:grid!important}.clock-summary .clock-stat{border-left:1px solid #eef0f3!important;padding:0 12px!important}.clock-summary .clock-stat:nth-child(odd){border-left:none!important;padding-left:0!important}}.modal-drag-handle{display:none}@media (width<=767px){.cal-cell{min-height:48px!important}.proj-grid-header{display:none!important}.proj-list-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}.proj-list-row>:nth-child(2),.proj-list-row>:nth-child(3),.proj-list-row>:nth-child(4){display:none!important}.project-row:not(.proj-list-row){grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}.project-row:not(.proj-list-row)>:nth-child(2),.project-row:not(.proj-list-row)>:nth-child(3),.svc-grid-header{display:none!important}.service-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}.service-row>:nth-child(2),.service-row>:nth-child(3),.earnings-breakdown-header{display:none!important}.earnings-breakdown-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}.earnings-breakdown-row>:nth-child(2),.earnings-breakdown-row>:nth-child(3),.earnings-breakdown-row>:nth-child(5){display:none!important}.pill-group{-webkit-overflow-scrolling:touch;overflow-x:auto}.pill-group>button{white-space:nowrap;flex-shrink:0}.rate-history-row{grid-template-columns:1fr 1fr!important}.rate-history-row>:first-child{grid-column:1/-1!important}.rate-history-row>:nth-child(4){justify-self:end;min-height:44px;grid-column:2!important}.new-rate-row{grid-template-columns:1fr 1fr!important}.new-rate-row>:first-child{grid-column:1/-1!important}.new-rate-row>:nth-child(3){align-self:end;min-height:44px;grid-column:2!important}.detail-section-header{flex-direction:column!important;align-items:flex-start!important;gap:10px!important}.detail-actions-row{width:100%;flex-wrap:wrap!important}.detail-actions-row>button{white-space:nowrap!important;flex:auto!important;min-height:44px!important}.modal-overlay{align-items:flex-end!important;padding:0!important}.modal-sheet{width:100%!important;max-width:100%!important;max-height:90dvh!important;padding:0 20px 20px!important;padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;border-radius:20px 20px 0 0!important;overflow:hidden auto!important}.modal-drag-handle{background:#d1d5db;border-radius:2px;width:36px;height:4px;margin:10px auto 18px;display:block!important}.modal-date-range-row{flex-direction:column!important}.modal-preset-btn{min-height:40px!important;padding:8px 14px!important}.modal-footer{padding-top:12px!important;padding-bottom:env(safe-area-inset-bottom)!important;background:#fff!important;margin-top:16px!important;position:sticky!important;bottom:0!important}.modal-cancel-btn,.modal-save-btn,.modal-delete-btn{height:44px!important}}
