/* Clear hierarchy and large field labels, using the existing navy/orange palette. */
.workspace-on #app{max-width:1280px;margin-left:auto;margin-right:auto;width:calc(100% - 32px);box-sizing:border-box}
.workspace-on #app.roomy{max-width:none}
@media(min-width:1001px){.workspace-on.estimates-page #app{width:100%;max-width:none;padding:16px 20px}}
.workspace-on.estimates-page #app>.crumb,.workspace-on.estimates-page #app>.tabs{display:none}
.workspace-on #bar{flex-wrap:wrap;gap:10px;z-index:30}.workspace-on #bar>.lockup{order:1;flex-shrink:0;margin-right:8px}.workspace-on #bar>.spacer{display:none}.workspace-on #who{order:3;max-width:180px}.workspace-on #signout{order:4;flex-shrink:0}
#workspace-nav{display:flex;align-items:center;gap:3px;flex:1;order:2;min-width:0;overflow-x:auto;scrollbar-width:thin;color:var(--on-brand);padding:2px 0}
#workspace-nav>button{display:flex;align-items:center;gap:7px;flex-shrink:0;text-align:left;margin:0;padding:12px 9px;border:0;border-radius:7px;background:transparent;color:inherit;font-size:13px;font-weight:600;white-space:nowrap}
#workspace-nav>button:hover{background:#ffffff14}#workspace-nav>button[aria-current]{background:#ffffff21;color:#fff;box-shadow:inset 0 -3px var(--accent)}#workspace-nav>button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}#workspace-nav svg{width:16px;height:16px;flex-shrink:0}
.workspace-actions>button:first-child,#estimate-preview,#pgo,.workspace-heading>button{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.workspace-on .estimate-budget-table,.workspace-on .estimate-item-table,.workspace-on .estimate-service-table{font-size:13px}
.estimate-line-warning{color:var(--warn)!important}
.workspace-brand,.eyebrow{display:block;font-size:12px;font-weight:700;color:var(--muted,#52677a);letter-spacing:.07em;margin:0 0 16px;text-transform:uppercase}
.workspace-context{display:flex;align-items:center;gap:12px;padding:8px 24px;border-bottom:1px solid var(--line,#cbd5e1);background:var(--card);font-size:12px}.workspace-context>span{color:var(--muted);flex-shrink:0}
.workspace-context button{display:block;background:none;color:inherit;border:0;text-align:left;padding:4px 0;white-space:normal;overflow-wrap:anywhere}.workspace-context [data-current-job]{font-weight:600;min-width:0}.workspace-context [data-clear-job]{margin-left:auto;flex-shrink:0;color:var(--muted)}
.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.workspace-heading h1,.workspace-heading h2{margin:0}.workspace-heading p{margin-top:8px}
.workspace-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}
.work-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px;margin-bottom:22px}
.work-counts>button{margin:0;text-align:left;color:inherit;white-space:normal;padding:22px;cursor:pointer}
.work-counts strong{display:block;font-size:32px;color:var(--tone,var(--ink,#173545))}
.work-counts span{display:block;font-size:14px;margin-top:8px}
.workspace-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.workspace-row{display:flex;width:100%;gap:14px;align-items:center;justify-content:space-between;text-align:left;padding:16px 0!important;border:0!important;border-bottom:1px solid var(--line,#d8e1e8)!important;border-radius:0!important;white-space:normal;box-sizing:border-box;color:inherit}
.workspace-row>span:first-child{min-width:0}.workspace-row strong{overflow-wrap:anywhere}
.workspace-row span span{display:block;font-size:13px;color:var(--muted,#52677a);margin-top:6px}
.workspace-row>button{flex-shrink:0}.workspace-row:last-child{border-bottom:0!important}
.job-tree-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0}
.job-tree-tools p{margin:0;font-size:13px}.job-tree-tools>div{display:flex;gap:8px}
.job-tree>details{border:1px solid var(--line);border-radius:10px;margin:10px 0;overflow:hidden}
.job-tree summary{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 14px;box-sizing:border-box;cursor:pointer;list-style:none;background:var(--sunken);font-weight:600}
.job-tree summary::-webkit-details-marker{display:none}
.job-tree summary::before{content:'›';font-size:22px;line-height:1;flex:0 0 12px;text-align:center}
.job-tree details[open]>summary::before{transform:rotate(90deg)}
.job-tree-label{min-width:0;overflow-wrap:anywhere;flex:1}
.job-tree-badge{font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap}
.job-tree-children{margin:8px 12px 12px 22px;padding-left:12px;border-left:2px solid var(--line)}
.job-tree-children details{margin:5px 0}.job-tree-children summary{border-radius:6px;background:transparent}
.job-tree .job-tree-open{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;width:100%;min-height:48px;padding:12px;border:0;border-bottom:1px solid var(--line);border-radius:0;color:inherit;background:transparent;white-space:normal}
.job-tree-open>span:first-child{min-width:0;overflow-wrap:anywhere}.job-tree-open>span:last-child{flex-shrink:0;color:var(--muted);font-size:12px}
.job-tree summary:hover,.job-tree .job-tree-open:hover{background:var(--sunken)}
.job-tree summary:focus-visible,.job-tree-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media(max-width:700px){.job-tree-children{margin-left:12px;margin-right:4px;padding-left:8px}.job-tree summary{gap:8px;padding:10px}.job-tree .job-tree-open{padding:10px 6px}.job-tree-badge{font-size:11px}}
.work-save{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:12px 16px;margin-bottom:16px;border-radius:8px;background:var(--sunken);font-size:13px}
[data-draft-conflict]:not([hidden]){flex-basis:100%;padding:12px;border:1px solid #a96919;border-radius:6px}
.workflow-steps{display:flex;list-style:none;padding:0;gap:20px;flex-wrap:wrap;margin:12px 0 24px;font-size:13px;color:var(--muted,#52677a)}
.workflow-steps li{display:flex;align-items:center;gap:8px}.workflow-steps li>span{display:inline-grid;place-content:center;width:25px;height:25px;border-radius:50%;border:1px solid currentColor}
.workflow-steps [aria-current]{color:var(--ink,#173545);font-weight:700}.workflow-steps [aria-current]>span{background:#173545;color:#fff}
.workspace-on label{font-size:13px;line-height:1.5;letter-spacing:.025em}
.workspace-on .estimate-actions{position:sticky;bottom:0;background:var(--card);padding:14px;z-index:12;border-top:1px solid var(--line,#cbd5e1)}
.workspace-on .estimate-footer{position:sticky;bottom:76px;background:var(--card);z-index:11;padding:12px 14px}
/* The line table scrolls with the page. It used to sit in a box 68% of the screen
   tall with a scroll bar of its own, so a 250-line budget meant scrolling inside
   the box and then the page, and the owner asked for the page alone. Headings
   stay in view below the top bar (--estimate-sticky-top is set by estimates.js).
   A table wider than the screen still scrolls sideways — .is-wide — and there
   its headings scroll with it, because a sideways scroll box cannot also let
   them stick to the page. */
.workspace-on .estimate-scroll,.workspace-on .estimate-budget-scroll{max-height:none;overflow:visible}
.workspace-on .estimate-scroll.is-wide{overflow-x:auto}
.workspace-on .estimate-scroll thead,.workspace-on .estimate-budget-scroll thead{position:sticky;top:var(--estimate-sticky-top,0px);z-index:5;background:#173545;color:#fff}
.estimate-attention{border-left:3px solid #b56c10}.estimate-line-warning{display:block;font-size:12px;color:#915109;margin-top:5px;white-space:normal}
.estimate-auto-class{font-size:11px;display:block;color:var(--muted,#52677a);margin-top:5px}
.estimate-extra-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.estimate-review-filter{display:flex;align-items:center;gap:9px;margin:12px 0}.estimate-review-filter input{width:auto}
.crew-shortcuts{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px;margin-bottom:16px;background:var(--sunken);border-radius:8px}
.estimate-mobile-more{display:none}
.workspace-on .estimate-budget-section{position:sticky;top:calc(var(--estimate-sticky-top,0px) + var(--estimate-sticky-head,40px));z-index:3}
.workspace-on [hidden]{display:none!important}
@media(max-width:1100px){#workspace-nav{order:5;flex-basis:100%;border-top:1px solid #ffffff20;padding-top:8px}.workspace-on #who{margin-left:auto;max-width:50%}.workspace-columns{grid-template-columns:1fr}.workspace-on .estimate-footer{bottom:76px}}
@media(max-width:700px){
 .workspace-on .estimate-scroll,.workspace-on .estimate-scroll.is-wide{max-height:none;overflow:visible}
 .workspace-on .estimate-budget-layout{display:block}
 .workspace-on :is(.estimate-budget-table,.estimate-service-table,.estimate-item-table){display:block;min-width:0;width:100%}
 .workspace-on :is(.estimate-budget-table,.estimate-service-table,.estimate-item-table)>:is(thead,colgroup){display:none}
 .workspace-on :is(.estimate-budget-table,.estimate-service-table,.estimate-item-table)>tbody{display:block;margin:14px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
 .workspace-on :is([data-budget-row],.estimate-service-row,[data-row-id]>tr:first-child){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:10px;gap:10px}
 .workspace-on :is([data-budget-row],.estimate-service-row,[data-row-id]>tr:first-child)>td{display:block;padding:0;border:0;min-width:0;text-align:left;white-space:normal}
 .workspace-on [data-cell-label]::before{content:attr(data-cell-label);display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
 .workspace-on [data-budget-row]>:is(td:nth-child(3),td:nth-child(4),td:nth-child(5),td:last-child){grid-column:1/-1}
 .workspace-on [data-budget-row]:not(.mobile-expanded)>:is(td:nth-child(2),td:nth-child(7),td:nth-child(9),td:nth-child(10)){display:none}
 .workspace-on .estimate-service-row>:is(td:nth-child(4),td:nth-child(5)){grid-column:1/-1}
 .workspace-on .estimate-service-row>:is(td:nth-child(2),td:nth-child(3),td:nth-child(6),td:nth-child(7),td:nth-child(8)){display:none}
 .workspace-on .is-open>.estimate-service-row>:is(td:nth-child(2),td:nth-child(3),td:nth-child(6),td:nth-child(7),td:nth-child(8)){display:block}
 .workspace-on .estimate-budget-section{position:static}
 .workspace-on .estimate-service-detail,.workspace-on .estimate-service-detail>td,.workspace-on .estimate-item-detail,.workspace-on .estimate-item-detail>td{display:block}
 .workspace-on [data-row-id]>tr:first-child>:is(td:nth-child(3),td:last-child){grid-column:1/-1}
 .workspace-on .estimate-item-details{display:block;min-width:0}.workspace-on .estimate-item-details>*{display:block;margin-bottom:12px}
 .workspace-on .estimate-budget-section,.workspace-on .estimate-budget-subtotal,.workspace-on .estimate-budget-add{display:flex;flex-wrap:wrap;background:var(--sunken)}
 .workspace-on .estimate-budget-section>td:nth-child(3){flex:1;min-width:120px}.workspace-on .estimate-budget-section>td:nth-child(2){width:55px}
 .workspace-on .estimate-budget-add>td{width:100%}.workspace-on .estimate-item-tools{flex-wrap:wrap}.workspace-on .estimate-item-tools>*{min-width:0;max-width:100%}
 .workspace-on .estimate-mobile-more{display:inline-block;margin-right:10px}.workspace-on .estimate-mobile-hint{display:none}
 .workspace-on #app{width:calc(100% - 16px);padding-bottom:24px}
 .workspace-on #bar{gap:8px;padding-left:12px;padding-right:12px}.workspace-on #who{max-width:calc(100% - 220px)}.workspace-on #signout{font-size:12px;padding:10px 12px}#workspace-nav{gap:3px;scrollbar-width:none}#workspace-nav::-webkit-scrollbar{display:none}#workspace-nav>button{padding:10px 12px;font-size:13px}
 .workspace-context{padding:8px 16px;gap:8px;flex-wrap:wrap}.workspace-context [data-current-job]{flex:1}.workspace-context [data-clear-job]{font-size:12px}
 .workspace-heading{align-items:flex-start;flex-wrap:wrap}.workspace-heading h1{font-size:25px}
 .workspace-columns{display:block}.work-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.work-counts>button{padding:16px}
 .workspace-on .card{padding:18px}.workspace-on button{min-height:42px}.workspace-on input,.workspace-on select,.workspace-on textarea{font-size:16px}
 .workflow-steps{gap:10px;font-size:12px}.workflow-steps li>span{width:22px;height:22px}
 .workspace-on .estimate-actions{bottom:0;padding:10px;gap:8px}.workspace-on .estimate-footer{position:static}
 .workspace-row{font-size:14px}.workspace-row>span:last-child{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

[hidden]{display:none!important}
#who{display:flex;align-items:center;gap:10px;min-width:0}
#who>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.company-logo{width:44px;height:38px;object-fit:contain;background:white;border-radius:5px;padding:3px;flex-shrink:0}
.branding-preview{display:flex;align-items:center;gap:16px;margin:12px 0 20px;font-size:20px}
.branding-preview img{width:100px;height:72px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:8px;padding:8px}
#branding-form{max-width:600px}#branding-form>button{margin-top:16px}
/* Receipt capture hides native file inputs globally; branding uses the picker itself. */
#branding-logo{display:block;width:100%;box-sizing:border-box}
#branding-logo::file-selector-button{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin-right:12px;cursor:pointer}
.receipt-selected-jobs>div{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:8px}
.receipt-selected-jobs>div>span{flex:1;min-width:0;overflow-wrap:anywhere}.receipt-selected-jobs button{flex-shrink:0}
.receipt-job-names{padding-left:20px;overflow-wrap:anywhere}
.receipt-path{overflow-wrap:anywhere;white-space:normal}
/* Both picker layouts must sit above the receipt dialog that opened them. */
body:has(.receipt-allocation-dialog) .treelist,body:has(.receipt-allocation-dialog) .jobsheet{z-index:400}
.role-profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:20px 0}
.role-profile>div{border:1px solid var(--line);border-radius:8px;padding:16px}.role-profile h3{margin:0}
.job-folder h2{display:flex;align-items:center;gap:8px}.job-folder h2 svg{width:20px;height:20px}
.job-folder .workspace-row>span{min-width:0;overflow-wrap:anywhere}.job-folder .workspace-row>button{flex-shrink:0}
.job-folder .file-picker{display:block;margin-top:20px}.job-folder input[type=file]{display:block;width:100%;box-sizing:border-box;margin-top:8px}
.job-folder [data-file-status]{overflow-wrap:anywhere}
.crew-home{display:block}.today-job{align-items:flex-start}.today-job>span{min-width:0;overflow-wrap:anywhere}
.today-job-details{display:block;margin:10px 0}.today-job-details>span{display:block;margin:4px 0}.today-job-notes{white-space:pre-wrap}
/* A manager sees every job running today; the ones that are theirs stand out.
   !important only because .workspace-row sets its borders and padding that way. */
.workspace-row.today-job.is-mine{border-left:4px solid var(--accent,#b94b17)!important;padding-left:12px!important;padding-right:12px!important;background:color-mix(in srgb,var(--accent,#b94b17) 6%,transparent);border-radius:8px!important}
.workspace-row .today-job-mine{display:block;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--accent,#b94b17);margin:0 0 4px}
.role-views{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 24px;border-bottom:1px solid var(--line);background:var(--card,#fff)}
.role-views label{margin:0;font-size:12px}.role-views select{width:auto;max-width:240px;margin:0}.role-views span{flex:1;min-width:180px;font-size:12px}.role-views.active{background:#fff4d9;color:#48380d}.role-views button{width:auto}
.role-views.active label,.role-views.active button{color:#48380d}.role-views.active button{background:#fff;border-color:#8d742e}
@media(max-width:760px){.role-views{margin-left:0;padding:10px 16px}.role-views span{flex-basis:100%}}
.draft-row{display:flex;align-items:center;gap:12px;min-width:0}.draft-row>button:first-child{flex:1;min-width:0}.draft-row>button:last-child:not(:first-child){flex-shrink:0}.draft-inline{display:inline-flex;align-items:center;gap:6px;margin:4px 8px 4px 0}.receiptrow>[data-delete-receipt]{align-self:center;flex-shrink:0}
#submission-overview{padding:12px 20px}#submission-overview summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;cursor:pointer;list-style:none}#submission-overview summary::-webkit-details-marker{display:none}
#submission-overview summary>span:first-child{display:flex;align-items:baseline;gap:6px 16px;flex-wrap:wrap}#submission-overview summary .muted,.submission-toggle{font-size:13px}.submission-toggle{display:flex;align-items:center;gap:8px;flex-shrink:0}
#submission-overview details:not([open]) .when-open,#submission-overview details[open] .when-closed{display:none}#submission-overview details[open] .submission-toggle>[aria-hidden]{transform:rotate(180deg)}.submission-drafts{max-height:320px;overflow-y:auto}.submission-drafts .workspace-row{padding:10px 0}
.job-folder-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.job-folder-link{display:flex;align-items:center;gap:16px;text-align:left}.job-folder-link>svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.job-folder-link>span:nth-child(2){flex:1;min-width:0}.job-folder-link strong{display:block;font-size:18px}.job-folder-link strong+span{display:block;margin-top:6px;font-size:13px;font-weight:400}
.job-contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:8px 0}.job-contact-grid>div,.job-contact-grid>label{min-width:0}.job-contact-grid dt{font-size:12px;color:var(--muted);margin-bottom:5px}.job-contact-grid dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.job-contact-grid .contact-wide{grid-column:span 2}.job-contact-grid input,.job-contact-grid textarea{width:100%;box-sizing:border-box;margin-top:8px}.job-contact-grid+ .row{margin-top:20px}
.job-document-browser{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:18px;align-items:start}.job-document-list,.job-document-viewer{min-width:0}.job-document-list #folder-files{max-height:65vh;overflow:auto}.job-document-list button{width:100%;text-align:left}.job-document-list button[aria-current]{background:var(--wash,#edf4f5);outline:2px solid var(--accent,#23816b);outline-offset:-2px}.job-document-list strong,.job-document-viewer h2{overflow-wrap:anywhere}.job-document-viewer h2{font-size:18px}.job-document-viewer .workspace-heading{gap:12px}.job-document-viewer .workspace-heading button{flex-shrink:0}.job-file-upload{font-size:14px}.job-file-upload input[type=file]{display:block;max-width:300px;margin-top:8px}
.document-media{display:block;max-width:100%;max-height:70vh;margin:auto}.document-pdf{display:block;border:0;width:100%;height:70vh;min-height:420px}.document-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6;max-height:65vh;overflow:auto}.document-table{overflow:auto;max-height:60vh}.document-table table{border-collapse:collapse;width:max-content;min-width:100%;font-size:13px}.document-table th,.document-table td{border:1px solid var(--line);padding:8px 12px;max-width:340px;white-space:pre-wrap;overflow-wrap:anywhere}.document-table th{background:var(--card);position:sticky;top:0;text-align:left}
@media(max-width:900px){.job-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.job-document-browser{grid-template-columns:1fr}.job-document-list #folder-files{max-height:240px}}
@media(max-width:560px){.job-folder-links{grid-template-columns:1fr;gap:0}.job-contact-grid{grid-template-columns:1fr}.job-contact-grid .contact-wide{grid-column:auto}.job-document-viewer .workspace-heading{flex-wrap:wrap}}
.job-document-list button[aria-current]{background:color-mix(in srgb,var(--accent,#23816b) 12%,var(--card,#fff));color:var(--ink,#18232b)}
.job-folder-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.job-folder-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 20px;font-size:14px}.job-folder-breadcrumbs>span[aria-current]{font-weight:600;overflow-wrap:anywhere}.job-subfolder strong{font-weight:600}.job-move-form{padding:16px;margin-bottom:16px;border:1px solid var(--line);border-radius:8px}.job-move-form .row{margin-top:12px}#folder-create .row{align-items:center;flex-wrap:wrap}#folder-create input{flex:1;min-width:180px}
/* File browsing uses the whole page; previews open above the list and keep its place. */
.job-files-browser{display:block}.workspace-on .card.job-file-explorer{padding:0;overflow:hidden}
.job-files-toolbar{display:flex;align-items:center;gap:12px;padding:18px 20px}.job-files-toolbar h2{flex:1;font-size:16px;margin:0;white-space:nowrap}.job-files-toolbar input{width:260px;max-width:100%;margin:0}.job-files-toolbar select{width:150px;margin:0}
.job-file-filters{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--sunken);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.job-file-filters label{margin:0;font-size:13px}.job-file-filters select{width:auto;max-width:220px;margin:0;font-size:13px}.job-file-filters>span{margin-left:auto;text-align:right}
.job-files-add{padding:10px 20px;border-bottom:1px solid var(--line)}.job-files-add>button{display:flex;align-items:center;gap:10px;min-height:40px;font-size:15px}.job-files-add>button>span{display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:30px;height:30px;font-size:24px;line-height:1}.job-files-add #job-add-options{display:flex;align-items:flex-start;gap:20px;padding:12px 0;flex-wrap:wrap}.job-files-add .job-file-upload{margin:0;font-size:14px}.job-file-limits{padding:12px 20px;margin:0;border-top:1px solid var(--line)}
.job-file-explorer #folder-create{padding:18px 20px;border-bottom:1px solid var(--line)}.job-file-explorer #folder-create label{margin-top:0}
.workspace-on button.job-explorer-row{display:flex;align-items:center;gap:16px;width:100%;min-height:72px;padding:12px 20px;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-align:left;font-weight:400;box-shadow:none}.workspace-on button.job-explorer-row:last-child{border-bottom:0}.workspace-on button.job-explorer-row:hover,.workspace-on button.job-explorer-row[aria-current]{background:var(--sunken)}.workspace-on button.job-explorer-row:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.job-file-icon{width:46px;height:44px;flex-shrink:0}.job-explorer-row>span{min-width:0}.job-explorer-row strong{display:block;overflow-wrap:anywhere;font-size:14px;font-weight:500}.job-explorer-row strong+span{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:5px;overflow-wrap:anywhere}.job-folder-empty{padding:24px 20px;margin:0}
.job-files-add>button{color:var(--ink);font-weight:500}.job-files-add>button>span{color:var(--accent)}
.job-explorer-entry{display:flex;align-items:center;border-bottom:1px solid var(--line)}.job-explorer-entry:last-child{border-bottom:0}.workspace-on .job-explorer-entry>button.job-explorer-row{flex:1;min-width:0;width:auto;border-bottom:0}.job-entry-delete{flex-shrink:0;margin-right:16px;font-size:13px}.job-file-dialog.job-delete-dialog{width:min(520px,calc(100vw - 24px))}.job-delete-name{font-weight:600;overflow-wrap:anywhere}.job-delete-dialog .row{margin-top:24px}
.job-file-dialog{width:min(1120px,calc(100vw - 40px));max-width:none;max-height:90vh;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);box-sizing:border-box;box-shadow:0 20px 80px #0006}.job-file-dialog::backdrop{background:#0008}.job-preview-content{padding:24px}.job-file-dialog .workspace-heading{gap:16px;flex-wrap:wrap}.job-file-dialog h2{font-size:20px;overflow-wrap:anywhere;min-width:0}.job-file-dialog .workspace-heading>.row{flex-wrap:wrap;gap:8px}.job-file-dialog [data-preview-content]{min-height:120px}.job-file-dialog select{max-width:100%}
@media(max-width:700px){.job-files-toolbar{flex-wrap:wrap;padding:16px}.job-files-toolbar h2{flex-basis:100%}.job-files-toolbar input{flex:1;min-width:120px}.job-files-toolbar select{width:138px}.job-file-filters{padding:10px 16px;gap:8px;flex-wrap:wrap}.job-file-filters>span{font-size:12px}.job-files-add{padding:10px 16px}.workspace-on button.job-explorer-row{padding:12px 16px;gap:12px}.job-file-dialog{width:calc(100vw - 16px);max-height:94vh}.job-preview-content{padding:16px}.job-file-dialog .document-pdf{min-height:300px}}
/* "Average crew hours" on a drafted invoice. */
.average-crews{display:flex;gap:10px;align-items:flex-start;margin:.8rem 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--sunken);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}
.average-crews input{width:auto;margin-top:3px}.average-crews strong{display:block;font-size:14px}.average-crews .tiny{display:block;margin-top:2px}
.average-crews-added{display:inline;font-size:12px;color:var(--ink)}
/* Which sub-job a record or folder belongs to, on a parent job's (All) view. */
.job-sub-label{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:var(--sunken);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.02em;vertical-align:middle}

/* ── The palette the screens colour themselves with ───────────────────────────
   Four colours, all of them the company's: the navy from the logo, the orange,
   the slate blue the schedule already used for today, and grey. Nothing else —
   the first version of this had six hues of its own and the owner was right
   that they belonged to some other company.

   The names are what the screens ask for and they stay, but they point at the
   four: orange for anything waiting on somebody (amber, rose), slate blue for
   what QuickBooks and the office are doing (blue), navy for the solid facts
   (green, teal), grey for the quiet ones (violet). Two names sharing a colour
   is deliberate — a screen should read as two colours and a lot of white. */
:root{--tone-blue:#2C5A7A;--tone-green:#1E2E3C;--tone-amber:#B94B17;--tone-violet:#5C6B78;--tone-rose:#B94B17;--tone-teal:#1E2E3C}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--tone-blue:#6FA8CC;--tone-green:#C9D8E4;--tone-amber:#FF915F;--tone-violet:#A1B0BC;--tone-rose:#FF915F;--tone-teal:#C9D8E4}}
:root[data-theme="dark"]{--tone-blue:#6FA8CC;--tone-green:#C9D8E4;--tone-amber:#FF915F;--tone-violet:#A1B0BC;--tone-rose:#FF915F;--tone-teal:#C9D8E4}
.tone-blue{--tone:var(--tone-blue)}.tone-green{--tone:var(--tone-green)}.tone-amber{--tone:var(--tone-amber)}.tone-violet{--tone:var(--tone-violet)}.tone-rose{--tone:var(--tone-rose)}.tone-teal{--tone:var(--tone-teal)}
.customer-avatar{flex:none;display:inline-grid;place-content:center;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--tone) 18%,var(--card));color:var(--tone);font-weight:700;font-size:14px;letter-spacing:.02em}
.customer-avatar.small{width:30px;height:30px}.customer-avatar.large{width:58px;height:58px}
.customer-avatar svg{width:20px;height:20px}.customer-avatar.small svg{width:15px;height:15px}.customer-avatar.large svg{width:27px;height:27px}
.customer-chip{display:inline-block;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--tone) 15%,var(--card));color:var(--tone);font-size:11px;font-weight:600;white-space:nowrap}
.customer-search{margin-bottom:14px}.customer-search input{margin-top:6px}
.customer-rows{display:grid;gap:8px}
.customer-row,.customer-job-hit{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--card);min-height:0}
.customer-row:hover,.customer-job-hit:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))!important;background:color-mix(in srgb,var(--accent) 4%,var(--card))}
.customer-row-name,.customer-job-hit>span:nth-child(2){flex:1;min-width:0}.customer-row-name strong,.customer-job-hit strong{display:block;font-size:15px;overflow-wrap:anywhere}
.customer-row-name span,.customer-job-hit>span:nth-child(2)>span{display:block;font-size:12px;color:var(--muted)}
.customer-row-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.customer-row-go{color:var(--accent);font-size:18px}
.customer-hits-title{font-size:15px;margin:20px 0 8px}
.customer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:10px 0 16px;padding:18px;border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}
.customer-id{display:flex;align-items:center;gap:14px;min-width:0}.customer-id h1{margin:0;font-size:24px;overflow-wrap:anywhere}.customer-id .eyebrow{margin:0}
.customer-where{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 0;font-size:13px;color:var(--muted)}.customer-where svg{width:14px;height:14px}
.customer-actions{position:relative}.customer-actions>summary{list-style:none;cursor:pointer;padding:10px 18px;border-radius:8px;background:var(--accent);color:var(--on-accent);font-weight:600}
.customer-actions>summary::-webkit-details-marker{display:none}.customer-actions>summary:after{content:' ▾'}
.customer-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:grid;min-width:220px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 12px 30px #0002}
.customer-menu button{display:flex;gap:10px;align-items:center;justify-content:flex-start;border:0!important;text-align:left}.customer-menu svg{width:16px;height:16px}
.customer-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:16px;scrollbar-width:thin}
.customer-tabs button{flex:none;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;background:none;padding:10px 14px!important;color:var(--muted);font-weight:600;white-space:nowrap}
.customer-tabs button[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)!important}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px;margin-bottom:16px}
.stat-card{position:relative;display:grid;gap:4px;padding:16px;border-radius:14px;text-align:left;color:inherit;background:color-mix(in srgb,var(--tone) 10%,var(--card));border:1px solid color-mix(in srgb,var(--tone) 28%,var(--line))}
button.stat-card{cursor:pointer;min-height:0;margin:0}
button.stat-card:hover{background:color-mix(in srgb,var(--tone) 17%,var(--card))!important;border-color:color-mix(in srgb,var(--tone) 45%,var(--line))}
.stat-card>span:nth-child(2){font-size:13px;color:var(--muted)}.stat-card strong{font-size:24px;color:var(--tone);font-variant-numeric:tabular-nums}
.stat-card-icon{position:absolute;top:12px;right:12px;margin:0!important;color:var(--tone);opacity:.9}.stat-card-icon svg{width:18px;height:18px}
.stat-card small{font-size:11px;color:var(--muted);line-height:1.3}
.customer-qb-note{margin:-6px 0 16px;font-size:12px;color:var(--muted)}.customer-qb-note.tone-rose{color:var(--tone)}
.customer-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}.customer-col{display:grid;gap:16px;min-width:0}
.customer-section,.card.toned{border-top:4px solid var(--tone)!important}.customer-section h2{margin:0 0 10px}
.customer-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.customer-section-head h2{margin:0 0 10px}
.customer-tree,.customer-tree ul{list-style:none;margin:0;padding:0}.customer-tree ul{margin-left:18px;border-left:2px solid color-mix(in srgb,var(--tone-teal) 30%,var(--line));padding-left:8px}
.customer-job-node{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0!important;background:none;padding:7px 6px!important;min-height:0;border-radius:8px!important}
.customer-job-node:hover:not(:disabled){background:color-mix(in srgb,var(--tone-teal) 10%,var(--card))}.customer-job-node:disabled{opacity:1;color:var(--muted);cursor:default}
.customer-job-node svg{width:16px;height:16px;color:var(--tone-teal);flex:none}.customer-job-node>span:first-of-type{flex:1;min-width:0;overflow-wrap:anywhere}.customer-job-node.has-children>span:first-of-type{font-weight:600}
.customer-event{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;padding:10px 12px!important;margin:0 0 8px;border-radius:10px!important;border:1px solid color-mix(in srgb,var(--tone) 30%,var(--line))!important;background:color-mix(in srgb,var(--tone) 9%,var(--card));min-height:0}
.customer-event svg{width:18px;height:18px;color:var(--tone);flex:none;margin-top:2px}.customer-event strong{display:block;color:var(--tone);font-size:13px}.customer-event span span{display:block;font-size:12px;color:var(--muted)}
.customer-recent-title{font-size:13px;margin:14px 0 6px;color:var(--muted)}
.customer-recent{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.customer-list-rows .workspace-row{gap:10px}
@media(max-width:760px){.customer-grid{grid-template-columns:1fr}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{padding:12px}.stat-card strong{font-size:19px}.stat-card-icon{display:none}.customer-head{padding:14px}.customer-actions,.customer-actions>summary{width:100%;text-align:center}.customer-menu{left:0;right:0}.customer-row-badges{display:none}.customer-id h1{font-size:20px}}
/* What a receipt was actually for, under the vendor: the items coded to this
   job, with what each one cost. A vendor and a date say a receipt exists. */
.receipt-items{display:grid;gap:2px;margin-top:6px;font-size:12px;color:var(--muted)}
.receipt-items>span{display:flex;justify-content:space-between;gap:12px;max-width:520px}
.receipt-items>span>span:last-child{font-variant-numeric:tabular-nums;flex:none}
/* A detail Tally is showing from QuickBooks rather than from anything typed here. */
.client-from-qb{margin-left:7px;padding:1px 6px;border-radius:999px;background:var(--sunken);color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:none}

.daily-log-wide{grid-column:1/-1;min-width:0}
.daily-log-intro p{color:var(--muted);font-size:14px;max-width:760px}
.daily-log-day{border:1px solid var(--line);border-radius:14px;margin-top:20px;overflow:hidden;background:var(--card)}
.daily-log-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px;background:var(--bg);color:var(--ink)}
.daily-log-heading h3{font-size:18px;margin:0 0 6px}.daily-log-heading p{font-size:12px;color:var(--muted);margin:0}
.daily-log-total{display:flex;flex-direction:column;text-align:right;flex-shrink:0}.daily-log-total strong{font-size:27px;line-height:1.2}.daily-log-total span{font-size:12px;color:var(--muted)}
.daily-log-draft{padding:10px 20px;margin:0;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.daily-log-crew{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 24px;padding:16px 20px;border-bottom:1px solid var(--line)}
.daily-log-crew>div{display:flex;justify-content:space-between;gap:16px;font-size:14px;padding:5px 0}.daily-log-crew strong{white-space:nowrap}.daily-log-crew small{font-weight:400;color:var(--muted)}
.daily-log-entry{padding:20px;border-bottom:1px solid var(--line)}.daily-log-entry:last-child{border:0}
.daily-log-entry-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:13px}.daily-log-entry-head>span{border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:11px}.daily-log-entry-head button{margin-left:auto}
.daily-log-subjob,.daily-log-sheet-crew{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.daily-log-note,.daily-log-task{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;font-size:14px}.daily-log-task{border-left:2px solid var(--line);padding-left:12px;font-size:12px}
.daily-log-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;max-width:800px;margin-top:16px}.daily-log-photos figure{margin:0}.daily-log-photo{width:100%;height:140px;padding:0;overflow:hidden;border-radius:10px;background:var(--bg);font-size:12px}.daily-log-photo img{width:100%;height:100%;object-fit:cover}.daily-log-photos figcaption{font-size:12px;margin-top:6px;overflow-wrap:anywhere;color:var(--muted)}
.daily-log-viewer{max-width:94vw;max-height:94dvh;padding:52px 16px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink)}.daily-log-viewer::backdrop{background:#000b}.daily-log-viewer img{display:block;max-width:85vw;max-height:72dvh;object-fit:contain}.daily-log-viewer button{position:absolute;right:12px;top:8px;font-size:24px;min-width:40px}.daily-log-viewer p{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:600px){.daily-log-heading{padding:16px;gap:12px;align-items:flex-start}.daily-log-heading h3{font-size:16px}.daily-log-total strong{font-size:24px}.daily-log-total span{font-size:10px}.daily-log-crew{grid-template-columns:1fr;padding:12px 16px}.daily-log-entry{padding:16px}.daily-log-entry-head button{margin-left:0}.daily-log-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-log-photo{height:125px}}
