@font-face{font-family:Fraunces;src:url(/fonts/fraunces.woff2)format("woff2");font-weight:300 700;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/instrument-sans.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-500.woff2)format("woff2");font-weight:500;font-display:swap}:root{--bitumen:#161410;--umber:#221e17;--plaster:#ede6d8;--limewash:#e0d6c2;--ink:#191713;--stone:#56503f;--mist:#a79f90;--bronze:#c29b5f;--bronze-hi:#d9b87e;--bronze-ink:#7e6132;--error:#9b2c15;--error-bg:#9b2c151a;--f-display:"Fraunces", Georgia, "Times New Roman", serif;--f-body:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;--f-mono:"IBM Plex Mono", "SF Mono", Menlo, monospace;--radius:14px;--tap:60px;--logo-tint:var(--bronze);--bitumen-hi:#2a241b;--line:#1917131a;--line-strong:#1917132e;--wash-bronze:#c29b5f29;--wash-lime:#e0d6c273;--shadow-card:0 1px 2px #1614100a, 0 6px 20px #1614100f;--shadow-raised:0 2px 6px #16141012, 0 18px 44px #1614101f;--dur:.16s;--dur-slow:.42s;--ease:cubic-bezier(.25, .1, .25, 1)}.level-line{background:linear-gradient(90deg, transparent, var(--bronze) 22%, var(--bronze) 78%, transparent);height:1px;position:relative}.level-line:after{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:6px solid var(--bronze);width:0;height:0;position:absolute;top:-6px;left:50%;transform:translate(-50%)}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{margin:0;padding:0}body{font-family:var(--f-body);background:var(--plaster);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:17px;line-height:1.45}#root{min-height:100dvh}.shell{max-width:480px;min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 14px) 20px calc(env(safe-area-inset-bottom,0px) + 24px);flex-direction:column;margin:0 auto;display:flex}.center-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.topbar{justify-content:flex-end;align-items:center;gap:12px;min-height:48px;display:flex}.topbar-brand{align-items:center;gap:10px;min-width:0;margin-right:auto;display:flex}.topbar-title{font-family:var(--f-display);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:600;overflow:hidden}.logo-mark{background:var(--logo-tint);display:inline-block;-webkit-mask:url(/logo-ink.png) 50%/contain no-repeat;mask:url(/logo-ink.png) 50%/contain no-repeat}.lang-switch{gap:6px;display:flex}.lang-pill{font-family:var(--f-body);min-width:52px;min-height:44px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #19171340;border-radius:999px;padding:0 12px;font-size:.95rem;font-weight:700}.lang-pill.is-active{background:var(--bitumen);border-color:var(--bitumen);color:var(--plaster)}.login-main{flex-direction:column;flex:1;justify-content:center;gap:28px;padding-bottom:5vh;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.brand-title{font-family:var(--f-display);letter-spacing:.01em;margin:10px 0 0;font-size:2rem;font-weight:600}.brand-sub{color:var(--stone);letter-spacing:.02em;margin:0;font-size:.95rem}.card{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-card);background:#fff;flex-direction:column;padding:24px 20px 22px;display:flex}.card-title{font-family:var(--f-display);margin:0 0 6px;font-size:1.5rem;font-weight:600}.card-sub{color:var(--stone);margin:0 0 20px;font-size:1rem}.field-label{letter-spacing:.01em;margin-bottom:8px;font-size:.95rem;font-weight:700}.phone-row{gap:8px;display:flex}.phone-prefix{background:var(--limewash);min-width:64px;font-family:var(--f-mono);border:2px solid #19171326;border-radius:12px;justify-content:center;align-items:center;font-size:1.25rem;font-weight:500;display:flex}.input{width:100%;min-height:var(--tap);color:var(--ink);font-family:var(--f-mono);background:#fff;border:2px solid #56503f73;border-radius:12px;padding:0 16px;font-size:1.35rem;font-weight:500}.input:focus{outline:3px solid var(--bronze);outline-offset:1px;border-color:var(--bronze-ink)}.input:disabled{opacity:.6}.phone-input{letter-spacing:.06em;flex:1}.code-input{text-align:center;letter-spacing:.45em;font-size:1.7rem}.field-help{color:var(--stone);margin:8px 0 0;font-size:.9rem}.btn{min-height:var(--tap);border-radius:var(--radius);font-family:var(--f-body);letter-spacing:.01em;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:2px solid #0000;width:100%;margin-top:20px;font-size:1.1rem;font-weight:700;transition:transform .12s,opacity .12s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn:focus-visible,.lang-pill:focus-visible,.btn-link:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.btn-primary{background:var(--bitumen);color:var(--plaster)}.btn-ghost{color:var(--ink);background:0 0;border-color:#19171359}.btn-link{color:var(--bronze-ink);font-family:var(--f-body);text-underline-offset:3px;cursor:pointer;touch-action:manipulation;background:0 0;border:none;min-height:44px;padding:0 8px;font-size:1rem;font-weight:700;text-decoration:underline}.login-links{justify-content:space-between;gap:8px;margin-top:14px;display:flex}.error-banner{background:var(--error-bg);border-left:4px solid var(--error);color:var(--error);border-radius:10px;margin:16px 0 0;padding:12px 14px;font-size:.98rem;font-weight:600}.home-main{flex-direction:column;flex:1;gap:18px;padding-top:26px;display:flex}.welcome-title{font-size:1.65rem}.profile-list{flex-direction:column;margin:10px 0 0;display:flex}.profile-row{border-top:1px solid #1917131f;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;display:flex}.profile-row dt{color:var(--stone);font-size:.98rem;font-weight:600}.profile-row dd{margin:0;font-size:1.05rem;font-weight:700}.mono{font-family:var(--f-mono);letter-spacing:.03em;font-weight:500}.role-chip{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:700;display:inline-block}.role-worker{background:var(--limewash);color:var(--ink);border:1px solid #56503f59}.role-admin{background:var(--bronze);color:var(--bitumen);border:1px solid var(--bronze-ink);box-shadow:0 2px 10px #c29b5f73}.coming-soon{text-align:center;color:var(--stone);margin:4px 12px;font-size:.95rem}.home-footer{padding-top:12px}.loading-pulse{animation:1.6s ease-in-out infinite pulse}.loading-text{color:var(--stone);margin-top:18px;font-weight:600}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.onboarding-main{flex-direction:column;flex:1;gap:18px;padding-top:18px;display:flex}.onboarding-intro{color:var(--stone);margin:8px 0 0}.wizard-progress{flex-direction:column;gap:8px;display:flex}.wizard-step-label{color:var(--stone);letter-spacing:.04em;text-transform:uppercase;font-size:.9rem;font-weight:700}.wizard-step-label:focus{outline:none}.wizard-bar{background:#1917131f;border-radius:999px;height:6px;overflow:hidden}.wizard-bar-fill{background:var(--bronze);border-radius:999px;height:100%;transition:width .24s}.wizard-nav{gap:12px;margin-top:20px;display:flex}.wizard-nav .btn{margin-top:0}.wizard-nav .btn-back{flex:none;width:auto;padding:0 20px}.onboarding-foot{justify-content:center;padding-top:10px;display:flex}.form-field{flex-direction:column;margin-top:18px;display:flex}.input-text{font-family:var(--f-body);letter-spacing:normal;font-size:1.15rem;font-weight:600}input[type=date].input{min-height:var(--tap);align-items:center;display:flex}.field-error{color:var(--error);margin:8px 0 0;font-size:.92rem;font-weight:600}.field-warning{color:var(--bronze-ink);margin:8px 0 0;font-size:.92rem;font-weight:600}.readonly-row{background:var(--limewash);border:1px solid #56503f40;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.readonly-label{font-size:.95rem;font-weight:700}.readonly-note{color:var(--stone);font-size:.85rem}.readonly-value{white-space:nowrap;font-size:1.05rem}.type-picker{flex-direction:column;gap:12px;display:flex}.type-card{text-align:left;border-radius:var(--radius);cursor:pointer;font-family:var(--f-body);touch-action:manipulation;background:#fff;border:2px solid #56503f59;flex-direction:column;gap:4px;padding:16px;display:flex}.type-card.is-selected{border-color:var(--bronze-ink);box-shadow:0 0 0 1px var(--bronze-ink);background:#c29b5f24}.type-card-title{color:var(--ink);font-size:1.1rem;font-weight:800}.type-card-desc{color:var(--stone);font-size:.95rem}.yesno{gap:10px;display:flex}.yesno-btn{min-height:var(--tap);border-radius:var(--radius);color:var(--ink);font-family:var(--f-body);cursor:pointer;touch-action:manipulation;background:#fff;border:2px solid #56503f59;flex:1;font-size:1.05rem;font-weight:800}.yesno-btn.is-selected{background:var(--bitumen);border-color:var(--bitumen);color:var(--plaster)}.type-card:focus-visible,.yesno-btn:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.abn-status-region{min-height:24px;display:block}.abn-verify-box{border-left:4px solid var(--bronze);background:#c29b5f29;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;margin-top:12px;padding:12px 14px;display:flex}.abn-verify-line{color:var(--bronze-ink);overflow-wrap:anywhere;font-size:.98rem;font-weight:700}.mock-tag{background:var(--bronze);color:var(--bitumen);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:800;display:inline-block}.mock-note{color:var(--stone);font-size:.9rem;font-weight:600}.abn-verify-hint{margin-top:10px}.abn-cancel{align-self:flex-start;margin-top:10px}.attention-banner{border-left:4px solid var(--bronze);color:var(--bronze-ink);background:#c29b5f29;border-radius:10px;margin:16px 0 0;padding:12px 14px;font-size:.98rem;font-weight:700}.btn-check{border:2px solid var(--bronze-ink);color:var(--bronze-ink);background:0 0;margin-top:12px}.yesno-btn:disabled,.type-card:disabled{opacity:.55;cursor:default}.licences-help{margin-top:4px}.licence-card{border-radius:var(--radius);background:#e0d6c240;border:1px solid #1917131f;margin-top:14px;padding:14px 14px 18px}.licence-head{justify-content:space-between;align-items:center;display:flex}.licence-title{font-weight:800}.btn-add{color:var(--ink);background:0 0;border:2px dashed #56503f80;margin-top:16px;font-weight:700}.profile-sections{flex-direction:column;flex:1;padding-top:18px;display:flex}.profile-section{margin-bottom:18px}.section-title{font-size:1.25rem}.section-optional{color:var(--stone);font-family:var(--f-body);font-size:.95rem;font-weight:600}.success-banner{border-left:4px solid var(--bronze);color:var(--bronze-ink);background:#c29b5f29;border-radius:10px;margin:16px 0 0;padding:12px 14px;font-size:.98rem;font-weight:700}.hours-main{flex-direction:column;flex:1;gap:16px;padding-top:18px;display:flex}.btn-add-day{margin-top:0}.btn-attention{border-color:var(--bronze-ink);color:var(--bronze-ink)}.week-nav{justify-content:space-between;align-items:center;gap:10px;display:flex}.week-nav-btn{min-width:52px;min-height:52px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #19171340;border-radius:999px;font-size:1.5rem;line-height:1}.week-nav-btn:disabled{opacity:.35;cursor:default}.week-nav-btn:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.week-nav-label{flex-direction:column;align-items:center;gap:2px;display:flex}.week-label{letter-spacing:.04em;text-transform:uppercase;color:var(--stone);font-size:.9rem;font-weight:700}.week-range{font-family:var(--f-display);font-size:1.05rem;font-weight:600}.week-card{padding-top:18px}.week-total-row{border-bottom:1px solid #1917131f;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:14px;display:flex}.week-total-label{color:var(--stone);font-size:.98rem;font-weight:700}.hours-badge{white-space:nowrap}.hours-badge-big{color:var(--bronze-ink);font-size:1.5rem}.hours-empty{color:var(--stone);text-align:center;margin:16px 0 4px}.entry-row{text-align:left;width:100%;font-family:var(--f-body);color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-top:1px solid #1917131f;justify-content:space-between;align-items:center;gap:12px;padding:14px 2px;font-size:1rem;display:flex}.entry-row:first-of-type{border-top:none}.entry-row:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;border-radius:8px}.entry-main{flex-direction:column;gap:2px;min-width:0;display:flex}.entry-day{align-items:center;gap:8px;font-weight:800;display:flex}.entry-site,.entry-work{color:var(--stone);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.entry-side{flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.entry-side .hours-badge{font-size:1.15rem;font-weight:500}.entry-times{color:var(--stone);font-size:.85rem}.status-chip{background:var(--bronze);color:var(--bitumen);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:800;display:inline-block}.time-row{gap:12px;display:flex}.time-row .form-field{flex:1}input[type=time].input{text-align:center;font-size:1.25rem}.hours-live-total{border-left:4px solid var(--bronze);background:#c29b5f29;border-radius:10px;justify-content:space-between;align-items:baseline;gap:12px;min-height:40px;margin-top:14px;padding:10px 14px;display:flex}.hours-live-label{color:var(--bronze-ink);font-size:.98rem;font-weight:700}.back-to-today{align-self:flex-start;margin-top:6px}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{max-width:100%;min-height:48px;color:var(--ink);font-family:var(--f-body);cursor:pointer;touch-action:manipulation;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:2px solid #56503f66;border-radius:999px;padding:8px 16px;font-size:1rem;font-weight:700;overflow:hidden}.chip.is-selected{background:var(--bitumen);border-color:var(--bitumen);color:var(--plaster)}.chip-new{color:var(--stone);background:0 0;border-style:dashed}.chip:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.chip-row+.input,.chip-row+.input+.field-help{margin-top:10px}.entry-delete{color:var(--error);align-self:center;margin-top:18px}.workdays-note{color:var(--bronze-ink);margin-top:14px;font-weight:600}.nudge-banner{text-align:left;width:100%;font-family:var(--f-body);cursor:pointer;touch-action:manipulation;border:none;display:block}.nudge-banner:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.notify-card .btn{margin-top:16px}.notify-body{color:var(--stone);margin:4px 0 0}.hours-admin-note{margin:0}.invoice-number-row{margin-top:18px}.invoices-main{flex-direction:column;flex:1;gap:16px;padding-top:18px;display:flex}.danger-banner{border:none;border-left:4px solid var(--error);background:var(--error-bg);width:100%;color:var(--error);font-family:var(--f-body);text-align:left;cursor:pointer;touch-action:manipulation;border-radius:10px;margin:16px 0 0;padding:14px;font-size:.98rem;font-weight:700;display:block}.danger-banner:focus-visible{outline:3px solid var(--error);outline-offset:2px}.invoice-card{gap:0}.invoice-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.invoice-head-main{flex-direction:column;gap:2px;min-width:0;display:flex}.invoice-worker{font-size:1.1rem;font-weight:800}.invoice-week{font-family:var(--f-display);font-size:1.05rem;font-weight:600}.invoice-number{color:var(--stone);font-size:.85rem}.invoice-chip-rate{background:var(--error-bg);color:var(--error)}.invoice-chip-pending{background:var(--limewash);color:var(--ink);border:1px solid #56503f59}.invoice-chip-confirmed{background:var(--bitumen);color:var(--plaster)}.invoice-chip-paid{background:var(--bronze-ink);color:var(--plaster)}.invoice-amounts{flex-direction:column;margin:14px 0 0;display:flex}.invoice-amount-row{border-top:1px solid #1917131a;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}.invoice-amount-row dt{color:var(--stone);font-size:.95rem;font-weight:600}.invoice-amount-row dd{margin:0;font-weight:500}.invoice-amount-total dt{color:var(--ink);font-weight:800}.invoice-amount-total dd{color:var(--bronze-ink);font-size:1.25rem}.invoice-refresh-note{margin-top:14px}.hours-toggle{align-self:flex-start;margin-top:10px;padding-left:0}.invoice-lines{flex-direction:column;margin-top:4px;display:flex}.invoice-line{border-top:1px solid #1917131a;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.invoice-line-main{flex-direction:column;gap:1px;min-width:0;display:flex}.invoice-line-date{font-size:.95rem;font-weight:700}.invoice-line-site,.invoice-line-work{color:var(--stone);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.invoice-line-total{border-top:2px solid #1917132e}.invoice-line-total-label{color:var(--stone);font-size:.95rem;font-weight:700}.week-summary-card{padding:18px 20px 16px}.week-summary-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.week-summary-total{color:var(--bronze-ink);font-size:1.5rem}.week-summary-workers{color:var(--stone);font-size:.95rem;font-weight:700}.week-summary-line{color:var(--stone);margin:10px 0 0;font-size:.92rem;font-weight:600}.outstanding-week{flex-direction:column;gap:16px;display:flex}.outstanding-week-heading{font-family:var(--f-display);margin:8px 0 0;font-size:1.1rem;font-weight:600}.invoice-rate-note,.invoice-state-note{margin-top:14px}.btn-arming{background:var(--bronze);color:var(--bitumen)}.invoices-empty{color:var(--stone);text-align:center;margin:24px 12px}.invoices-summary{color:var(--stone);text-align:center;margin:0;font-size:.95rem;font-weight:700}.notify-hint{color:var(--stone);text-align:center;margin:0 12px;font-size:.92rem}.entry-delete.is-confirming{background:var(--error-bg);border-radius:10px}.admin-main{flex-direction:column;flex:1;gap:16px;padding-top:18px;display:flex}.admin-search-field{margin-top:0}.worker-row{text-align:left;width:100%;font-family:var(--f-body);color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-top:1px solid #1917131f;justify-content:space-between;align-items:center;gap:12px;padding:14px 2px;font-size:1rem;display:flex}.worker-row:first-of-type{border-top:none}.worker-row:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;border-radius:8px}.worker-main{flex-direction:column;gap:2px;min-width:0;display:flex}.worker-name{overflow-wrap:anywhere;align-items:center;gap:8px;font-weight:800;display:flex}.worker-sub{color:var(--stone);font-size:.85rem}.worker-side{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.worker-rate{color:var(--bronze-ink);font-size:.95rem}.chip-mini{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:800;display:inline-block}.chip-type{background:var(--limewash);color:var(--ink);border:1px solid #56503f59}.chip-warn{background:var(--error-bg);color:var(--error)}.attention-dot{background:var(--bronze);border-radius:50%;flex:none;width:10px;height:10px;box-shadow:0 0 0 2px #c29b5f59}.admin-detail .profile-row dd{text-align:right;overflow-wrap:anywhere}.tel-link{min-height:44px;color:var(--bronze-ink);text-underline-offset:3px;align-items:center;padding:0 4px;text-decoration:underline;display:inline-flex}.tel-link:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;border-radius:8px}.name-review-note{margin-bottom:0}.rate-value{color:var(--bronze-ink);margin:8px 0 0;font-size:1.6rem}.admin-hours-heading{font-family:var(--f-display);margin:8px 0 0;font-size:1.25rem;font-weight:600}.entry-row-static{cursor:default}.entry-transport{color:var(--bronze-ink);font-size:.85rem;font-weight:600}.hours-transport-note{margin-top:-6px}.attention-card{padding-bottom:14px}.attn-group-head{cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-top:1px solid #1917131f;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:48px;padding:4px 2px;display:flex}.attn-group:first-of-type .attn-group-head{border-top:none}.attn-group-head:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;border-radius:8px}.attn-group-title{font-family:var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--bronze-ink);text-align:left;font-size:.82rem;font-weight:800}.attn-group-count{text-align:center;background:var(--limewash);min-width:34px;font-family:var(--f-mono);border:1px solid #56503f59;border-radius:999px;flex:none;padding:3px 10px;font-size:.85rem;font-weight:500}.attn-row{text-align:left;width:100%;min-height:48px;font-family:var(--f-body);color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:8px 2px 8px 14px;font-size:1rem;display:flex}.attn-row:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;border-radius:8px}.attn-row-name{overflow-wrap:anywhere;min-width:0;font-weight:700}.attn-row-note{color:var(--stone);font-size:.85rem}.attn-more-row{color:var(--bronze-ink);font-weight:700}@media (prefers-reduced-motion:reduce){.loading-pulse{animation:none}.btn{transition:none}.btn:active{transform:none}.wizard-bar-fill{transition:none}}@media (height>=760px){body{font-size:18px}}.btn{transition:transform .12s ease, opacity .12s ease, background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease)}.input{transition:border-color var(--dur) var(--ease)}.lang-pill{transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease)}.chip{transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease)}.week-nav-btn{transition:background-color var(--dur) var(--ease)}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.home-main,.hours-main,.invoices-main,.admin-main,.profile-sections,.onboarding-main{animation:fade-up .36s var(--ease) both}.time-row .form-field,.input{min-width:0}input[type=date].input,input[type=time].input{width:100%}.hours-empty,.invoices-empty{margin:6px 0;padding:26px 12px}.login-shell{flex-direction:column;min-height:100dvh;display:flex}.login-side{display:none}.login-pane{width:100%;max-width:480px;padding:calc(env(safe-area-inset-top,0px) + 14px) 20px calc(env(safe-area-inset-bottom,0px) + 24px);flex-direction:column;flex:1;margin:0 auto;display:flex}.brand-sub{text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:600}.brand-line{width:130px;margin-top:16px}.login-main .card{box-shadow:var(--shadow-raised);border-radius:20px;padding:26px 22px 24px}.login-brand{animation:rise-in var(--dur-slow) var(--ease) both}.login-main .card{animation:rise-in var(--dur-slow) var(--ease) both;animation-delay:60ms}@media (width>=900px){.login-shell{flex-direction:row}.login-side{background:var(--bitumen);flex-direction:column;flex:0 0 44%;justify-content:center;min-width:380px;max-width:600px;padding:64px 56px;display:flex;position:relative;overflow:hidden}.login-side:before{content:"";aspect-ratio:1;background:radial-gradient(closest-side,#c29b5f33,#0000 72%);width:85%;position:absolute;bottom:-30%;right:-25%}.login-side:after{content:"";background:var(--bronze);opacity:.07;width:540px;height:466px;position:absolute;bottom:-120px;right:-150px;-webkit-mask:url(/logo-ink.png) 50%/contain no-repeat;mask:url(/logo-ink.png) 50%/contain no-repeat}.login-side-inner{z-index:1;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:relative}.login-side-name{font-family:var(--f-display);color:var(--plaster);letter-spacing:.01em;margin-top:18px;font-size:2.4rem;font-weight:600}.login-side-company{color:var(--mist);text-transform:uppercase;letter-spacing:.16em;font-size:.82rem;font-weight:600}.login-side-line{width:150px;margin-top:30px}.login-pane{flex:1;max-width:none;margin:0;padding:32px 48px 44px}.login-main{width:100%;max-width:440px;margin:0 auto}.login-brand{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.loading-line{width:120px;margin-top:20px}.app-frame{min-height:100dvh}.app-frame .shell{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}.sidenav{display:none}.bottomnav{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px max(env(safe-area-inset-right,0px), 10px) calc(env(safe-area-inset-bottom,0px) + 6px) max(env(safe-area-inset-left,0px), 10px);background:#fffffff5;display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav-item{min-height:54px;font-family:var(--f-body);letter-spacing:.02em;color:var(--stone);cursor:pointer;touch-action:manipulation;transition:color var(--dur) var(--ease);background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 2px 4px;font-size:.72rem;font-weight:700;display:flex;position:relative}.bottomnav-item svg{width:23px;height:23px}.bottomnav-item.is-active{color:var(--ink)}.bottomnav-item.is-active svg{color:var(--bronze-ink)}.bottomnav-item.is-active:before{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--bronze);position:absolute;top:-1px;left:50%;transform:translate(-50%)}.bottomnav-item:focus-visible{outline:3px solid var(--bronze);outline-offset:-3px}@media (width>=900px){.app-frame{flex-direction:row;display:flex}.bottomnav{display:none}.sidenav{background:var(--bitumen);flex-direction:column;flex:0 0 250px;width:250px;height:100dvh;padding:26px 16px 20px;display:flex;position:sticky;top:0;overflow-y:auto}.app-main{flex:1;min-width:0}}.sidenav-brand{align-items:center;gap:10px;padding:2px 10px;display:flex}.sidenav-brand-name{font-family:var(--f-display);color:var(--plaster);font-size:1.18rem;font-weight:600}.sidenav-line{margin:18px 6px 14px}.sidenav-nav{flex-direction:column;gap:4px;display:flex}.sidenav-item{min-height:48px;color:var(--mist);font-family:var(--f-body);text-align:left;cursor:pointer;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;border-radius:11px;align-items:center;gap:12px;padding:0 12px 0 16px;font-size:.98rem;font-weight:600;display:flex;position:relative}.sidenav-item svg{flex:none;width:21px;height:21px}.sidenav-item.is-active{color:var(--bronze-hi);background:#c29b5f21}.sidenav-item.is-active:before{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid var(--bronze);position:absolute;top:50%;left:3px;transform:translateY(-50%)}.sidenav-item:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.sidenav-spacer{flex:1;min-height:18px}.sidenav-lang{padding:0 6px}.sidenav .lang-pill{min-width:46px;min-height:38px;color:var(--plaster);border-color:#ede6d847;padding:0 10px;font-size:.85rem}.sidenav .lang-pill.is-active{background:var(--plaster);border-color:var(--plaster);color:var(--bitumen)}.sidenav-user{border-top:1px solid #ede6d824;flex-direction:column;gap:2px;min-width:0;margin-top:16px;padding:14px 10px 0;display:flex}.sidenav-user-name{color:var(--plaster);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;overflow:hidden}.sidenav-user-role{color:var(--mist);letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:700}.sidenav-signout{min-height:44px;color:var(--plaster);font-family:var(--f-body);cursor:pointer;transition:background-color var(--dur) var(--ease);background:0 0;border:1.5px solid #ede6d847;border-radius:10px;margin:12px 6px 0;font-size:.95rem;font-weight:700}.sidenav-signout:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}@media (width>=900px){.app-main .shell{width:100%;max-width:1140px;margin:0;padding:30px 44px 56px}.app-main .topbar{justify-content:flex-start;min-height:0;margin-bottom:6px}.app-main .topbar .lang-switch,.app-main .topbar .logo-mark{display:none}.app-main .topbar-title{font-size:1.9rem}.app-main .home-shell .topbar,.app-main .home-footer{display:none}.app-main .card{padding:26px 24px 24px}.app-main .week-nav{max-width:460px}.hours-main{max-width:760px}.invoices-main--worker{max-width:640px}.profile-sections{max-width:680px}.admin-search-field{max-width:460px}.onboarding-shell{max-width:660px}}.page-back{display:none}@media (width>=900px){.page-back{min-height:32px;color:var(--stone);transition:color var(--dur) var(--ease);align-self:flex-start;align-items:center;gap:4px;padding:0;font-weight:700;text-decoration:none;display:inline-flex}}.home-welcome{font-family:var(--f-display);letter-spacing:.01em;margin:4px 0 0;font-size:1.55rem;font-weight:600}.home-grid{flex-direction:column;gap:18px;display:flex}.home-col{flex-direction:column;gap:16px;min-width:0;display:flex}.home-add{margin-top:0}.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.tile{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);min-height:96px;box-shadow:var(--shadow-card);font-family:var(--f-body);color:var(--ink);text-align:left;cursor:pointer;touch-action:manipulation;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);background:#fff;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;display:flex}.tile svg{color:var(--bronze-ink)}.tile-label{font-size:.98rem;font-weight:700;line-height:1.25}.tile:active{transform:scale(.98)}.tile.is-attention{border-color:var(--bronze-ink);box-shadow:0 0 0 1px var(--bronze-ink), var(--shadow-card)}.tile:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}.home-id .profile-row:first-child{border-top:none;padding-top:6px}@media (width>=900px){.home-welcome{margin-top:10px;font-size:2rem}.home-main{gap:20px}.home-grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:24px;display:grid}}.table-head{display:none}@media (width>=900px){.table-head{border-bottom:2px solid var(--line-strong);font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--stone);gap:0 16px;padding:0 8px 10px;font-size:.72rem;font-weight:500;display:grid}.table-head-end{text-align:right}.worker-table-head{grid-template-columns:minmax(220px,1.6fr) minmax(150px,1fr) 110px minmax(120px,1fr)}.worker-table .worker-row{grid-template-columns:minmax(220px,1.6fr) minmax(150px,1fr) 110px minmax(120px,1fr);align-items:center;gap:2px 16px;padding:13px 8px;display:grid}.worker-table .worker-main,.worker-table .worker-side{display:contents}.worker-table .worker-name{grid-area:1/1}.worker-table .worker-sub{grid-area:1/2;font-size:.95rem}.worker-table .worker-side .chip-type{grid-area:1/3;justify-self:start}.worker-table .worker-rate,.worker-table .worker-side .chip-warn{grid-area:1/4;justify-self:end}.hours-main .entry-row{grid-template-columns:150px 1.2fr 1fr auto 96px;align-items:center;gap:2px 18px;display:grid}.hours-main .entry-main,.hours-main .entry-side{display:contents}.hours-main .entry-day{grid-area:1/1}.hours-main .entry-site{grid-area:1/2}.hours-main .entry-work{grid-area:1/3}.hours-main .entry-times{grid-area:1/4;justify-self:end}.hours-main .entry-side .hours-badge{grid-area:1/5;justify-self:end}.hours-main .entry-transport{grid-area:2/2/auto/4}.invoice-table-head{grid-template-columns:minmax(230px,1.7fr) minmax(130px,.9fr) minmax(170px,1fr) minmax(240px,1.2fr);padding-inline:21px}.app-main .invoice-card--office{grid-template-columns:minmax(230px,1.7fr) minmax(130px,.9fr) minmax(170px,1fr) minmax(240px,1.2fr);align-items:center;gap:6px 20px;padding:16px 20px;display:grid}.invoice-card--office .invoice-head{display:contents}.invoice-card--office .invoice-head-main{grid-area:1/1}.invoice-card--office .invoice-head .status-chip{grid-area:1/2;justify-self:start}.invoice-card--office .invoice-amounts{grid-area:1/3;margin:0}.invoice-card--office .invoice-amount-row{border-top:none;justify-content:flex-end;gap:12px;padding:1px 0}.invoice-card--office .invoice-amount-row dt{font-size:.82rem}.invoice-card--office .invoice-amount-total dd{font-size:1.15rem}.invoice-card--office .invoice-actions{flex-wrap:wrap;grid-area:1/4;justify-content:flex-end;align-items:center;gap:10px;display:flex}.invoice-card--office .invoice-actions .btn{width:auto;min-height:46px;margin-top:0;padding:0 16px;font-size:.95rem}.invoice-card--office>.attention-banner,.invoice-card--office>.error-banner,.invoice-card--office>.field-help,.invoice-card--office>.hours-toggle,.invoice-card--office>.invoice-lines{grid-column:1/-1}}.seg-tabs{border:1px solid var(--line);background:#e0d6c28c;border-radius:14px;flex-wrap:nowrap;gap:4px;width:fit-content;max-width:100%;padding:4px;overflow-x:auto}.seg-tabs .chip{color:var(--stone);background:0 0;border:none;border-radius:10px;min-height:46px;padding:0 16px}.seg-tabs .chip.is-selected{color:var(--ink);background:#fff;box-shadow:0 1px 5px #16141024}.export-grid{flex-direction:column;gap:16px;display:flex}@media (width>=900px){.app-main .week-summary-card{flex-direction:row;justify-content:space-between;align-items:center;gap:24px;padding:18px 22px}.week-summary-top{align-items:center;gap:18px}.week-summary-total{font-size:1.7rem}.week-summary-line{text-align:right;margin:0}.export-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:18px;display:grid}.export-card .export-desc{flex:1}.export-range .time-row{max-width:460px}}.detail-grid,.detail-col{display:contents}.attention-card{border-left:4px solid var(--bronze)}@media (width>=900px){.detail-grid{grid-template-columns:1fr 1fr;align-items:start;gap:22px;display:grid}.detail-col{flex-direction:column;gap:16px;min-width:0;display:flex}}@media (hover:hover) and (pointer:fine){.btn-primary:not(:disabled):hover{background:var(--bitumen-hi)}.btn-ghost:not(:disabled):hover{background:var(--wash-lime)}.btn-check:not(:disabled):hover{background:var(--wash-bronze)}.btn-add:not(:disabled):hover{background:var(--wash-lime)}.btn-link:hover{text-decoration-thickness:2px}.page-back:hover{color:var(--ink)}.lang-pill:not(.is-active):hover{background:var(--wash-lime)}.sidenav .lang-pill:not(.is-active):hover{background:#ede6d81a}.chip:not(.is-selected):not(:disabled):hover{border-color:#56503fb3}.seg-tabs .chip:not(.is-selected):hover{color:var(--ink);background:#ffffff80;border-color:#0000}.week-nav-btn:not(:disabled):hover{background:var(--wash-lime)}.type-card:not(:disabled):not(.is-selected):hover,.yesno-btn:not(:disabled):not(.is-selected):hover{border-color:#56503f99}.input:not(:disabled):hover{border-color:#56503fa6}.worker-row:hover,.entry-row:not(.entry-row-static):hover,.attn-row:hover,.attn-group-head:hover{background:var(--wash-lime);border-radius:10px}.tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #16141012,0 14px 32px #1614101a}.sidenav-item:not(.is-active):hover{color:var(--plaster);background:#ede6d812}.sidenav-signout:hover{background:#ede6d817}.bottomnav-item:not(.is-active):hover{color:var(--ink)}}.lang-pill{white-space:nowrap}.home-shell .topbar-title,.app-frame .home-footer{display:none}@media (width<=899.98px){.app-frame .home-shell .home-footer,.app-frame .detail-footer{display:block}}@media (width>=900px){.app-main .hours-main .btn-add-day{align-self:flex-start;width:auto;padding:0 26px}.invoice-card--office>.hours-toggle{justify-self:start}}@media (prefers-reduced-motion:reduce){.btn,.input,.lang-pill,.chip,.week-nav-btn,.tile,.sidenav-item,.sidenav-signout,.bottomnav-item,.page-back{transition:none}.login-brand,.login-main .card,.home-main,.hours-main,.invoices-main,.admin-main,.profile-sections,.onboarding-main{animation:none}.tile:active,.tile:hover{transform:none}}
