@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f6cf6124dfc80171-s.0itc0wjx1mi4q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/12b42c2291621b31-s.1gwygi6ipeo67.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9d473eb2c81ea1b1-s.p.33u8lzvd44aqk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Fallback;src:local(Arial);ascent-override:90.59%;descent-override:21.46%;line-gap-override:0.0%;size-adjust:104.87%}.AIuZsa_className{font-family:Public Sans,Public Sans Fallback;font-style:normal}.AIuZsa_variable{--font-ui:"Public Sans", "Public Sans Fallback"}
:root{--brand:#1f5fa8;--on-brand:#fff;--bg:#f5f7f4;--surface:#fff;--sunken:#eaeee9;--text:#1b1f1d;--muted:#5e6662;--border:#d7ddd8;--danger:#a3261b;--radius:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121514;--surface:#191d1b;--sunken:#0e1110;--text:#e6ebe7;--muted:#9aa49e;--border:#2c332f;--danger:#f08a7e}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-ui), system-ui, sans-serif;font-variant-numeric:tabular-nums;margin:0;font-size:15px;line-height:1.5}h1,h2{letter-spacing:-.01em;line-height:1.2}h1{margin:0 0 4px;font-size:1.75rem;font-weight:700}h2{margin:32px 0 12px;font-size:1.1rem;font-weight:650}a{color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}label{gap:4px;font-size:.875rem;font-weight:600;display:grid}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:42px;padding:9px 11px;font-weight:400}input:focus-visible,select:focus-visible{outline:2px solid var(--brand);outline-offset:0;border-color:#0000}button{font:inherit;border-radius:var(--radius);border:1px solid var(--brand);background:var(--brand);min-height:42px;color:var(--on-brand);cursor:pointer;padding:9px 16px;font-weight:600}button:disabled{opacity:.6;cursor:progress}button.quiet{color:var(--text);border-color:var(--border);background:0 0}button.link{color:var(--muted);text-underline-offset:3px;background:0 0;border:none;min-height:0;padding:0;font-weight:500;text-decoration:underline}.error{color:var(--danger);margin:0;font-size:.875rem}.notice{color:var(--muted);margin:0;font-size:.875rem}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:20px 12px;display:flex}.brand{border-bottom:3px solid var(--brand);margin-bottom:12px;padding:0 10px 14px;font-size:1.05rem;font-weight:700}.sidebar ul{margin:0;padding:0;list-style:none}.nav-item{border-radius:var(--radius);padding:8px 10px;text-decoration:none;display:block}.nav-item:hover{background:var(--sunken)}.nav-item[aria-current=page]{background:var(--sunken);box-shadow:inset 3px 0 0 var(--brand);font-weight:600}.whoami{border-top:1px solid var(--border);gap:2px;margin-top:auto;padding:14px 10px 0;display:grid}.whoami>.nav-item{margin:0 -10px 10px}.whoami strong{overflow-wrap:anywhere;font-weight:600}.whoami form{margin-top:8px}.content{width:100%;min-width:0;max-width:1040px;padding:32px 40px}.muted{color:var(--muted)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}th{color:var(--muted);font-size:.8125rem;font-weight:600}code{background:var(--sunken);border-radius:4px;padding:1px 6px}.signin{grid-template-columns:minmax(0,5fr) minmax(0,4fr);min-height:100vh;display:grid}.signin-brand{background:var(--brand);color:var(--on-brand);flex-direction:column;justify-content:flex-end;padding:48px;display:flex}.signin-brand h1{letter-spacing:-.03em;overflow-wrap:anywhere;max-width:10ch;margin:0;font-size:clamp(2.5rem,6vw,5rem);font-weight:800;line-height:.95}.signin-brand p{opacity:.85;margin:16px 0 0}.signin-form{flex-direction:column;justify-content:center;gap:16px;width:100%;max-width:440px;margin:0 auto;padding:48px;display:flex}.signin-form h2{margin:0 0 8px}.signin-form p{margin:0}.signin-form .code-input{font-variant-numeric:tabular-nums;letter-spacing:.35em;max-width:9.5em;padding-left:.6em;font-size:1.75rem;font-weight:600}.enrol-steps{gap:12px;margin:0;padding-left:1.25em;display:grid}.enrol-steps li>span{font-size:.875rem;display:block}.enrol-qr{border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:168px;height:168px;margin:10px 0;padding:8px;display:block}.enrol-key{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.invite{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:2fr 2fr 1fr auto;align-items:end;gap:12px;padding:16px;display:grid}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.row-actions select{min-height:36px;padding:6px 8px}.row-actions button{min-height:36px;padding:6px 12px}.users-table .two-step{font-size:.8125rem;display:block}tr.archived td:not(:last-child){color:var(--muted)}.day{max-width:560px}.empty{border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted);padding:24px}@media (max-width:760px){.shell,.signin{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.content{padding:24px 16px}.signin-brand{min-height:34vh;padding:32px 16px}.signin-form{justify-content:flex-start;padding:32px 16px}.invite{grid-template-columns:1fr}.users-table thead{display:none}.users-table tr{border-bottom:1px solid var(--border);padding:8px 0;display:grid}.users-table td{border:none;padding:2px 0}.row-actions{justify-content:flex-start;padding-top:6px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.invite .error,.invite .notice{grid-column:1/-1}.row-actions .error{flex-basis:100%}.facts{grid-template-columns:max-content 1fr;gap:6px 24px;margin:20px 0;display:grid}.facts dt{color:var(--muted);font-size:.875rem}.facts dd{margin:0}.history{max-width:640px}.history-list{border-left:2px solid var(--border);margin:0;padding:0 0 0 18px;list-style:none}.history-list>li{padding:0 0 20px;position:relative}.history-list>li:before{content:"";background:var(--bg);border:2px solid var(--brand);border-radius:50%;width:10px;height:10px;position:absolute;top:7px;left:-24px}.history-list ul{margin:4px 0 0;padding:0;list-style:none}.history-meta{margin:4px 0 0;font-size:.875rem}.history-note{margin:4px 0 0;font-style:italic}.record-actions .row-actions{justify-content:flex-start}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.page-head h1{margin:0}a.button{border-radius:var(--radius);border:1px solid var(--brand);background:var(--brand);min-height:42px;color:var(--on-brand);align-items:center;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-flex}a.button.quiet{color:var(--text);border-color:var(--border);background:0 0}textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);resize:vertical;padding:9px 11px}.search{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 20px;display:flex}.search .grow{flex:260px}.search .grow input{width:100%}.records td:first-child a{font-weight:600;text-decoration:none}.records td:first-child a:hover{text-decoration:underline}.record-form{gap:14px;max-width:640px;margin-top:20px;display:grid}.form-field{gap:4px;display:grid}.form-field input,.form-field select,.form-field textarea{width:100%}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-row-3{grid-template-columns:2fr 1fr 1fr}.form-group{border:none;border-top:1px solid var(--border);gap:14px;margin:6px 0 0;padding:16px 0 0;display:grid}.form-group>legend{padding:0 0 8px;font-weight:650}label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;display:flex}label.check input{width:18px;height:18px;min-height:0;accent-color:var(--brand)}.checks{border:none;gap:6px;margin:0;padding:0;display:grid}.checks legend{padding:0 0 4px;font-size:.875rem;font-weight:600}.form-actions{gap:10px;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.prewrap{white-space:pre-wrap}.people{max-width:640px;margin:0 0 12px;padding:0;list-style:none}.people li{border-bottom:1px solid var(--border);padding:10px 0}.people a{font-weight:600}details.add{max-width:640px;margin-bottom:8px}details.add>summary{cursor:pointer;color:var(--brand);padding:6px 0;font-weight:600}details.add[open]>summary{margin-bottom:12px}@media (max-width:760px){.form-row,.form-row-3{grid-template-columns:1fr}.records thead{display:none}.records tr{border-bottom:1px solid var(--border);padding:8px 0;display:grid}.records td{border:none;padding:2px 0}}.num{text-align:right}.section-note{max-width:64ch;margin:-6px 0 14px;font-size:.875rem}.rate-timeline{max-width:640px;margin:0 0 12px;padding:0;list-style:none}.rate{border-left:2px solid var(--border);grid-template-columns:1fr auto;gap:2px 16px;padding:10px 14px;display:grid}.rate-when{color:var(--muted);grid-column:1;font-size:.875rem}.rate-amount{grid-column:1}.rate-remove{grid-area:1/2/span 2;align-self:center}.rate-future{border-left-style:dashed}.rate-current{border-left:4px solid var(--brand);background:var(--surface);padding-left:12px}.rate-current .rate-when{color:var(--text);font-weight:600}.rate-current .rate-amount strong{font-size:1.15rem}.rate-past .rate-amount{color:var(--muted)}.rate-past .rate-amount strong{font-weight:500}.restricted{background:var(--sunken);border-radius:var(--radius);max-width:672px;margin-top:32px;padding:2px 16px 12px}.restricted .rate-current{background:var(--bg)}.rate-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;gap:12px;max-width:640px;display:grid}.rate-form .form-actions{grid-column:1/-1}.remove-rate>summary{cursor:pointer;color:var(--muted);text-underline-offset:3px;font-size:.875rem;text-decoration:underline;list-style:none}.remove-rate>summary::-webkit-details-marker{display:none}.remove-rate[open] form{gap:8px;min-width:240px;margin-top:8px;display:grid}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--border);border-radius:var(--radius);padding:1px 8px;font-size:.875rem}@media (max-width:760px){.rate{grid-template-columns:1fr}.rate-remove{grid-area:auto/1}}.price-list{max-width:720px}.price-list h2{color:var(--muted);margin:28px 0 6px;font-size:1rem}.price-list ul{margin:0;padding:0;list-style:none}.price-list li{align-items:baseline;gap:8px;padding:7px 0;display:flex}.price-list li.archived{opacity:.6}.price-name a{font-weight:600;text-decoration:none}.price-name a:hover{text-underline-offset:3px;text-decoration:underline}.price-leader{border-bottom:2px dotted var(--border);flex:1;min-width:24px;transform:translateY(-4px)}.price-amount{white-space:nowrap;font-weight:700}.price-unit{color:var(--muted);font-weight:400}.price-tax{color:var(--muted);flex:0 0 52px;font-size:.75rem;font-weight:500}.item-price{margin:4px 0 0;font-size:1.25rem;font-weight:700}@media (max-width:520px){.price-list li{flex-wrap:wrap;gap:0 8px}.price-leader{display:none}.price-name{width:100%}.price-amount{flex:auto}}.planned-summary{margin:4px 0 8px}.assigned{max-width:640px;margin:0 0 8px;padding:0;list-style:none}.assigned li{border-bottom:1px solid var(--border);align-items:baseline;gap:12px;padding:6px 0;display:flex}.assigned-name{flex:1;font-weight:600}.assigned-qty{color:var(--muted);white-space:nowrap}.tasks{max-width:680px;margin:0 0 12px;padding:0 0 0 22px}.task{padding:4px 0 16px 6px}.task::marker{color:var(--brand);font-weight:700}.task-done .task-head strong{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.task-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:4px;display:flex}.task-actions{flex-wrap:wrap;align-items:flex-start;gap:4px 20px;display:flex}.task-actions details[open]{flex-basis:100%}h3{margin:20px 0 6px;font-size:1rem}.cost-lines{margin-bottom:8px}.cost-total{border-top:2px solid var(--border);margin-top:4px}.cost-total .price-name{font-weight:700}@media (max-width:520px){.assigned li{flex-wrap:wrap}.rate-form{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}.week-nav{flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin:4px 0 16px;display:flex}.table-scroll{max-width:100%;overflow-x:auto}.timesheet{min-width:720px}.timesheet th[scope=row]{text-align:left;white-space:nowrap;font-weight:600}.timesheet .today{background:var(--sunken)}.timesheet tr.approved th[scope=row]{box-shadow:inset 4px 0 0 var(--brand);padding-left:12px}.overtime{color:var(--danger);white-space:nowrap;font-size:.8125rem;font-weight:600;display:block}.approval{gap:2px;font-size:.875rem;display:grid}td .approval{min-width:14rem}@media (min-width:761px){.sidebar{height:100vh;position:sticky;top:0;overflow-y:auto}}.setup{grid-template-columns:220px minmax(0,640px);gap:48px;max-width:960px;margin:0 auto;padding:40px 24px;display:grid}.setup-title{margin:0 0 12px;font-weight:700}.setup ol{gap:8px;margin:0;padding-left:22px;display:grid}.setup ol button{color:var(--muted);text-decoration:none}.setup ol button[aria-current=step]{color:inherit;font-weight:650}.setup h1{margin:0}.setup .record-form{margin-top:0}.setup-later{color:var(--muted);border-left:3px solid var(--brand);padding-left:8px}.setup-worker{grid-template-columns:180px 120px;align-items:center;gap:12px;display:grid}.setup-worker label:not(.check){white-space:nowrap;align-items:center;gap:8px;display:flex}.setup-actions{gap:10px;margin-top:8px;display:flex}.setup-review{border-top:1px solid var(--border);margin:0}.setup-review>div{border-bottom:1px solid var(--border);grid-template-columns:180px minmax(0,1fr);gap:16px;padding:8px 0;display:grid}.setup-review dt{color:var(--muted)}.setup-review dd{overflow-wrap:anywhere;margin:0}.setup-done{max-width:640px;margin:0 auto;padding:40px 24px}@media (max-width:760px){.setup{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 16px}}.settings-links{flex-wrap:wrap;gap:8px 20px;display:flex}.settings-section{max-width:760px;margin-top:32px}.settings-section h2{margin-bottom:2px}.settings-section dl{border-top:1px solid var(--border);margin:12px 0 0}.settings-section dl>div{border-bottom:1px solid var(--border);grid-template-columns:200px minmax(0,1fr);gap:16px;padding:10px 0;display:grid}.settings-section dt{color:var(--muted)}.settings-section dd{overflow-wrap:anywhere;margin:0}.settings-section small{margin-top:2px;display:block}.settings-default{border-left:3px solid var(--brand);white-space:nowrap;margin-left:10px;padding-left:8px;font-size:.8125rem}.setting-actions{flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:4px;display:flex}.setting-form{border-left:3px solid var(--brand);gap:10px;max-width:420px;margin-top:8px;padding-left:12px;display:grid}.setting-form label:not(.check){gap:4px;display:grid}.setting-form input:not([type=checkbox]),.setting-form select,.setting-form textarea{width:100%}.setting-form label.check{align-items:flex-start}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:520px){.settings-section dl>div{grid-template-columns:minmax(0,1fr);gap:2px}}.entry-group h3 .muted{font-weight:400}.view-switch{gap:4px;display:flex}.view-switch a{border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;font-weight:600;text-decoration:none}.view-switch a[aria-current=page]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.calendar td{vertical-align:top;min-width:120px}.holiday-name{color:var(--muted);font-size:.75rem;font-weight:500;display:block}.timesheet td.holiday{background:repeating-linear-gradient(135deg, var(--sunken), var(--sunken) 6px, transparent 6px, transparent 12px)}.chip{border-left:3px solid var(--brand);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;margin:0 0 6px;padding:4px 8px;font-size:.8125rem;line-height:1.3;text-decoration:none;display:grid}.chip:hover .chip-title{text-decoration:underline}.chip-time{font-weight:700}.chip-where{color:var(--muted)}.capacity td.cap{vertical-align:top}.cap-open{font-size:1.125rem;font-weight:700;display:block}.cap-note{color:var(--muted);font-size:.75rem;display:block}.capacity td.over .cap-open,.capacity td.over .cap-note{color:var(--danger)}.cap-week{white-space:nowrap;font-size:.8125rem}.people-picker{grid-column:1/-1}.balances{flex-wrap:wrap;gap:8px 28px;margin:0 0 12px;padding:0;list-style:none;display:flex}.balances li{display:grid}.balance-name{color:var(--muted);font-size:.8125rem}.balance-left{font-size:1.125rem;font-weight:700}.balance-left.short{color:var(--danger)}.status-tag{border:1px solid var(--border);border-radius:var(--radius);white-space:nowrap;padding:1px 8px;font-size:.8125rem}.status-requested,.credential-expiring{border-color:var(--brand);color:var(--brand)}.credential-lapsed,.credential-missing,.status-declined{border-color:var(--danger);color:var(--danger)}.status-cancelled{color:var(--muted)}.attention{border-left:4px solid var(--danger);background:var(--surface);max-width:720px;margin:16px 0 20px;padding:4px 16px 10px}.attention h2{margin:10px 0 6px;font-size:1rem}.attention ul{margin:0;padding:0;list-style:none}.attention li{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px 12px;padding:6px 0;display:flex}.attention li a{font-weight:600}.attention-expiring strong{color:var(--brand)}.attention-lapsed strong,.attention-missing strong{color:var(--danger)}.notice-bar{margin:8px 0;font-weight:600}.day-kicker{margin:0 0 2px;font-size:.875rem}.run-sheet{margin:16px 0 8px;padding:0;list-style:none}.stop{grid-template-columns:76px minmax(0,1fr);gap:0 14px;display:grid}.stop-time{text-align:right;color:var(--muted);align-content:start;padding-top:2px;font-size:.8125rem;display:grid}.stop-time strong{color:var(--text);font-size:1.0625rem}.stop-body{border-left:3px solid var(--brand);gap:2px;min-width:0;padding:0 0 22px 16px;display:grid;position:relative}.stop-body:before{content:"";background:var(--surface);border:3px solid var(--brand);border-radius:50%;width:13px;height:13px;position:absolute;top:6px;left:-8px}.stop:last-child .stop-body{border-left-color:#0000}.stop-title{overflow-wrap:anywhere;font-size:1.0625rem;font-weight:650;text-decoration:none}.stop-title:hover{text-decoration:underline}.stop-customer{color:var(--muted)}.stop-address{overflow-wrap:anywhere;text-underline-offset:3px;padding:4px 0;display:inline-block}.stop-notes{background:var(--sunken);border-radius:var(--radius);margin:4px 0 0;padding:8px 10px;font-size:.875rem}a.button.stop-log{justify-self:start;min-height:44px;margin-top:8px}.run-sheet.compact .stop-body{padding-bottom:14px}.run-sheet.compact .stop-title{font-size:1rem}.week-day h3{margin:20px 0 0;font-size:.9375rem}.plain-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.small{font-size:.8125rem}.job-contact{margin:4px 0}.job-contact a{font-weight:600}.field-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0 8px;padding:4px 16px 16px}.field-card h2{margin-top:12px}.field-form{gap:12px;display:grid}.field-form input,.field-form select,.field-form button{width:100%;min-height:46px}.field-form-pair{grid-template-columns:minmax(0,1fr) minmax(0,7rem);gap:12px;display:grid}.saved{color:var(--brand);margin:0;font-weight:600}.hours-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.hours-list>li{border-bottom:1px solid var(--border);padding:12px 0}.hours-row{gap:2px;display:grid}.hours-job{overflow-wrap:anywhere}.hours-edit summary{color:var(--muted);cursor:pointer;min-height:32px;margin-top:6px}.hours-edit .field-form{margin:8px 0}.hours-total{margin:12px 0 0}@media (max-width:380px){.field-form-pair{grid-template-columns:1fr}.stop{grid-template-columns:62px minmax(0,1fr);gap:0 10px}}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.import{max-width:760px}.import-steps{counter-reset:step;gap:4px;margin:16px 0;padding:0;list-style:none;display:grid}.import-steps>li{counter-increment:step;border-left:2px solid var(--border);margin-left:14px;padding:0 0 20px 44px;position:relative}.import-steps>li:last-child{border-left-color:#0000;padding-bottom:4px}.import-steps>li:before{content:counter(step);background:var(--surface);border:2px solid var(--brand);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.875rem;font-weight:700;display:grid;position:absolute;top:0;left:-15px}.import-steps h2{margin:2px 0 8px;font-size:1rem}.import-steps p{margin:0 0 10px}.import-pick{grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:12px;margin-bottom:8px;display:grid}.import-pick input[type=file]{min-width:0;padding:8px}.import-result{border-top:3px solid var(--brand);margin-top:24px;padding-top:8px}.import-result h2{margin-top:12px}.import-result h3{margin:0;font-size:1rem}.tally{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:8px 0 20px;display:grid}.tally>div{padding:12px 16px}.tally>div+div{border-left:1px solid var(--border)}.tally dt{color:var(--muted);font-size:.875rem}.tally dd{margin:0;font-size:2rem;font-weight:700;line-height:1.1}.tally-fix dd{color:var(--danger)}.import-table{border-collapse:collapse;width:100%;margin:8px 0}.import-table th,.import-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:8px 10px}.import-table .num{text-align:right;width:3.5rem}@media (max-width:520px){.import-pick{grid-template-columns:1fr}.import-steps>li{padding-left:30px}.tally>div{padding:10px}.tally dd{font-size:1.5rem}}.cost-total.loss .price-amount,.profit-table tr.loss td:nth-last-child(-n+2){color:var(--danger)}.profit-notes{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:.875rem}.price-list li.revenue-part{padding:2px 0 2px 16px;font-size:.875rem}.revenue-part .price-amount{font-weight:500}.revenue-part.not-counted .price-amount{color:var(--muted)}.filter-links{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:12px 0 16px;display:flex}.filter-links a[aria-current=page]{font-weight:700;text-decoration:none}.profit-table{border-collapse:collapse;width:100%;min-width:820px}.profit-table th:first-child{min-width:180px}.profit-table th,.profit-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 10px}.profit-table .num{text-align:right;white-space:nowrap}.profit-table tfoot th,.profit-table tfoot td{border-bottom:none;border-top:2px solid var(--text);font-weight:700}.profit-sub{display:block}@media (max-width:520px){.profit-tally{grid-template-columns:1fr}.profit-tally>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.profit-tally>div+div{border-left:none;border-top:1px solid var(--border)}}.field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}fieldset.choice{border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:4px 20px;margin:0;padding:8px 14px 12px;display:flex}fieldset.choice legend{padding:0 4px;font-size:.875rem;font-weight:600}.contract-terms{margin:4px 0 12px}.cap-meter{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:12px 0 16px;padding:12px 14px}.cap-figures{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.cap-bar{background:var(--sunken);border-radius:5px;height:10px;margin-top:8px;display:block;overflow:hidden}.cap-bar span{background:var(--brand);height:100%;display:block}.cap-near .cap-bar span{background:#b7791f}.cap-over .cap-bar span{background:var(--danger)}.cap-note{margin:8px 0 0;font-size:.875rem;font-weight:600}.cap-over .cap-note{color:var(--danger)}.rate-groups{gap:12px;margin:0;padding:0;list-style:none;display:grid}.rate-groups h3{margin:0 0 4px;font-size:.9375rem}.milestones{border-top:1px solid var(--border);margin:0 0 8px;padding:0;list-style:none}.milestone{border-bottom:1px solid var(--border);border-left:3px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 0 10px 14px;display:flex}.milestone-ready{border-left-color:var(--brand)}.milestone-billed{border-left-color:var(--muted);color:var(--muted)}@media (max-width:520px){.field-pair{grid-template-columns:1fr}}.expense-list{border-top:1px solid var(--border);margin:0 0 8px;padding:0;list-style:none}.expense-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px 16px;padding:10px 0;display:flex}.expense-main,.expense-figures{min-width:0;display:grid}.expense-figures{text-align:right;white-space:nowrap}@media (max-width:520px){.expense-list li{flex-direction:column}.expense-figures{text-align:left;white-space:normal}}.estimate-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.estimate-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px 16px;padding:10px 0;display:flex}.estimate-list li>div:first-child{min-width:0;display:grid}.estimate-figures{white-space:nowrap;justify-items:end;gap:4px;display:grid}.estimate-table{border-collapse:collapse;width:100%;min-width:560px}.estimate-table th,.estimate-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 10px}.estimate-table .num{text-align:right;white-space:nowrap}.line-edit summary{color:var(--muted);cursor:pointer;font-size:.8125rem}.cost-inline{justify-content:flex-end;gap:4px;display:flex}.cost-inline input{width:6.5rem;min-height:34px;padding:4px 8px}.cost-inline button{min-height:34px;padding:4px 10px}.restricted-note{color:var(--muted);border-left:3px solid var(--border);padding-left:10px;font-size:.875rem}.estimate-totals{gap:4px;max-width:320px;margin:12px 0 0 auto;display:grid}.estimate-totals>div{justify-content:space-between;gap:16px;display:flex}.estimate-totals dd{margin:0}.estimate-total{border-top:2px solid var(--text);padding-top:6px;font-size:1.125rem;font-weight:700}.budget-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;max-width:600px}.budget-table th,.budget-table td{border-bottom:1px solid var(--border);vertical-align:baseline;padding:8px 0}.budget-table th{text-align:left;padding-right:16px;font-weight:400}.budget-table td{white-space:nowrap}.budget-table .status-tag{margin-left:8px}.budget-pending th,.budget-pending td{color:var(--muted)}.budget-total th,.budget-total td{border-top:2px solid var(--text);border-bottom:none;font-size:1.125rem;font-weight:700}.approval{border:1px solid var(--border);border-left:4px solid var(--brand);background:var(--surface);border-radius:0;padding:12px 16px}.signature-shown{aspect-ratio:3;width:100%;max-width:360px;color:var(--text);border-bottom:1px solid var(--border);display:block}.approve-page{max-width:640px;margin:0 auto;padding:28px 16px 48px;font-size:1.0625rem}.approve-brand{border-bottom:3px solid var(--brand);margin:0 0 18px;padding-bottom:8px;font-weight:700}.approve-lines{margin:18px 0;padding:0;list-style:none}.approve-lines li{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.approve-lines .approve-sub{color:var(--muted);border-bottom:none;padding:4px 0}.approve-lines .approve-new{color:var(--text);font-weight:600}.approve-total{border-top:2px solid var(--text);font-size:1.375rem;font-weight:700;border-bottom:none!important}.sign-form{gap:14px;margin-top:24px;display:grid}.sign-label{font-size:.875rem;font-weight:600}.signature{justify-items:start;gap:6px;display:grid}.signature canvas{aspect-ratio:3;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);touch-action:none;width:100%;color:var(--text);cursor:crosshair}.sign-button{min-height:52px;font-size:1.0625rem}.approve-back{margin-top:28px;font-size:.875rem}.status-overdue{color:var(--danger);border-color:var(--danger)}.unbilled{gap:16px;max-width:640px;display:grid}.unbilled-group{border:none;border-top:1px solid var(--border);margin:0;padding:0}.unbilled-group legend{justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:10px 0 4px;font-weight:600;display:flex}.unbilled-item{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 12px;padding:8px 0;font-weight:400;display:grid}.unbilled-item input{width:18px;height:18px;min-height:0;accent-color:var(--brand);margin:0}.unbilled-what{min-width:0}.unbilled-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-job th{text-align:left;padding-top:14px;font-weight:600}.link-panel{gap:8px;max-width:640px;display:grid}.link-panel input{width:100%;color:var(--muted);font-size:.875rem}.link-panel .form-actions{align-items:center}.send-form .form-actions{flex-wrap:wrap}.budget-figures{gap:10px;max-width:600px;margin-top:14px;display:grid}.budget-bar{height:16px;position:relative}.budget-bar-track{background:var(--sunken);border-right:2px solid var(--text);position:absolute;top:0;bottom:0;left:0}.budget-bar-actual{background:var(--brand);border-radius:2px;position:absolute;top:4px;bottom:4px;left:0}.budget-bar-over{background:var(--danger)}.budget-bar-mark{margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.budget-bar-planned{background:var(--muted);width:2px}.budget-bar-forecast{border-left:2px dashed var(--text)}.budget-numbers{font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px;margin:0;display:grid}.budget-numbers dt{color:var(--muted);align-items:center;gap:6px;font-size:.8125rem;display:flex}.budget-numbers dd{margin:0;font-weight:600}.budget-numbers dd .small{font-weight:400;display:block}.budget-key{width:10px;height:10px;display:inline-block}.budget-key-actual{background:var(--brand)}.budget-key-planned{background:var(--muted);width:2px}.budget-key-forecast{border-left:2px dashed var(--text);width:0}.budget-flags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.budget-flag{border:1px solid var(--muted);border-radius:var(--radius);padding:1px 8px;font-size:.8125rem}.budget-flag-over{color:var(--danger);border-color:var(--danger)}.budget-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.budget-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px 16px;padding:12px 0;display:flex}.budget-list-main,.budget-list-figures{align-content:start;gap:4px;min-width:0;display:grid}.budget-list-figures{text-align:right}.budget-used{font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:700}@media (max-width:520px){.budget-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-list li{flex-direction:column}.budget-list-figures{text-align:left}}.qb-lede{max-width:70ch;margin:0 0 8px}.qb-voids{border-left:3px solid var(--danger);background:var(--surface);max-width:70ch;margin:12px 0;padding:8px 12px}.qb-table caption{caption-side:bottom;text-align:left;padding-top:8px}.qb-batches{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.qb-batch{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.qb-batch-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.qb-batch-head h3{margin:0}.qb-files{counter-reset:qb-step;margin:12px 0 0;padding:0;list-style:none}.qb-files li{counter-increment:qb-step;padding:0 0 12px 36px;display:grid;position:relative}.qb-files li:last-child{padding-bottom:0}.qb-files li:before{content:counter(qb-step);background:var(--brand);width:24px;height:24px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:.8125rem;font-weight:700;display:grid;position:absolute;top:0;left:0}.qb-files li:not(:last-child):after{content:"";background:var(--border);width:2px;position:absolute;top:26px;bottom:2px;left:11px}.qb-files a{font-weight:600}.documents{margin-top:8px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-width:820px;margin:0 0 16px;padding:0;list-style:none;display:grid}.photo-grid a{display:block}.photo-grid img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);background:var(--sunken);width:100%;display:block}.photo-meta{margin:4px 0 0;font-size:.8125rem}.file-list{max-width:640px;margin:0 0 16px;padding:0;list-style:none}.file-list li{border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:6px 0}.file-list a{font-weight:600}.document-archive{font-size:.8125rem}.file-list .document-archive{margin-left:8px}.document-upload .row-actions{justify-content:flex-start}.document-warning{margin:8px 0 0;font-size:.8125rem}.document-status:empty{display:none}.document-status{overflow-wrap:anywhere;margin:4px 0 0;font-size:.8125rem}.document-problems{color:var(--danger);overflow-wrap:anywhere;margin:8px 0 0;padding-left:18px;font-size:.875rem}.credential-row{flex-wrap:wrap}.documents-compact{flex-basis:100%;margin-top:0}.documents-compact .photo-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin-bottom:8px}.documents-compact .file-list{margin-bottom:8px}.documents-compact .file-list li:last-child{border-bottom:none}
