.metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.brand{grid-template-columns:90px minmax(0,1fr);gap:10px;padding-inline:4px}.brand-logo{position:relative!important;display:block!important;width:90px!important;height:48px;overflow:hidden;border-radius:8px!important;background:#fff!important}.brand-logo img{position:absolute;width:112px;max-width:none;height:auto;transform:translate(-10px,-9px)}.brand strong{line-height:1.15}
.overview-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px;padding:19px 22px;border-radius:15px;background:linear-gradient(120deg,#092a3b,#0b4050);color:#fff;box-shadow:0 8px 22px #0a243418}.overview-intro h2{margin:0;font-size:1.35rem}.overview-intro p:not(.kicker){margin:5px 0 0;color:#bfd0d7}.overview-intro .kicker{color:#66d7d2}.overview-live{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:.78rem;font-weight:800;color:#d9f4f1}.overview-live i{width:9px;height:9px;border-radius:50%;background:#54d4a0;box-shadow:0 0 0 5px #54d4a020}
.dashboard-metric{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:inherit;position:relative;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.dashboard-metric:hover,.dashboard-metric:focus-visible{transform:translateY(-2px);border-color:#8dcfd0;box-shadow:0 10px 24px #15394712;outline:none}.dashboard-metric.warn{border-color:#f1cf9f}.dashboard-metric .metric-label{font-size:.78rem;font-weight:750;color:var(--muted)}.dashboard-metric strong{margin:8px 0 4px}.dashboard-metric.warn strong{color:#b76d09}.dashboard-metric .metric-detail{min-height:1.2em;color:var(--muted);font-size:.72rem}.dashboard-metric .metric-link{margin-top:15px;font-size:.72rem;font-weight:800;color:var(--teal)}.dashboard-metric .metric-link b{display:inline-block;transition:transform .16s ease}.dashboard-metric:hover .metric-link b{transform:translateX(3px)}
.dashboard-jobs .panel-head>div{display:grid;gap:4px}.dashboard-jobs .panel-head small{color:var(--muted)}.panel-link{font-size:.78rem;font-weight:800;color:var(--teal)}
.form-grid{max-height:calc(90vh - 112px);overflow-y:auto;align-items:start}
.form-grid>label,.form-grid input,.form-grid select,.form-grid textarea{min-width:0;width:100%}
.form-grid>.wide{grid-column:1/-1}
.form-actions{position:sticky;bottom:-25px;margin:8px -25px -25px;padding:16px 25px;background:#fff;border-top:1px solid var(--line);z-index:2;align-items:center}
.form-actions .secondary,.form-actions .primary{min-width:105px}
.field-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.field-action select{min-width:0}.field-action .secondary{padding-inline:14px}.inline-create-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:15px;border:1px solid var(--accent);border-radius:12px;background:#f0fafb}.inline-create-panel>div:first-child{grid-column:1/-1;display:grid;gap:3px}.inline-create-panel small{color:var(--muted)}.inline-create-panel label{margin:0}.inline-create-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
.row-actions{display:flex;gap:7px;justify-content:flex-end;white-space:nowrap}
.material-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px;background:#f5f8f9;border-radius:12px}
.material-summary div{display:grid;gap:5px}.material-summary small{color:var(--muted)}
.panel{overflow-x:auto;overscroll-behavior-inline:contain}.panel>table{min-width:760px}.panel-head{min-width:min-content}
html,body{height:100%;overflow:hidden}
main{height:100dvh;overflow-y:auto}
main.scrolling-list{display:flex;min-height:0;flex-direction:column;overflow:hidden}
main.scrolling-list header,main.scrolling-list .filters{flex:0 0 auto}
main.scrolling-list #content{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;overflow:hidden}
main.scrolling-list #content>.panel{min-height:0;flex:1 1 auto;overflow:auto}
main.scrolling-list #content>.view-tabs,main.scrolling-list #content>.report-summary{flex:0 0 auto}
main.scrolling-list #content>.panel thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line)}
.sort-heading{display:inline-flex;align-items:center;gap:6px;margin:-7px -9px;padding:7px 9px;border-radius:7px;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap}.sort-heading span{width:1em;color:#9babb2;font-size:.78rem}.sort-heading:hover,.sort-heading:focus-visible{background:#e9f1f3;color:#27444f;outline:none}.sort-heading.active{color:var(--teal)}.sort-heading.active span{color:var(--teal)}th.num .sort-heading{margin-left:auto}
.material-table{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:12px}.material-table table{min-width:980px}
.dialog-wide{width:min(1240px,calc(100% - 12px));max-height:calc(100dvh - 12px)}.dialog-wide .dialog-head{padding:18px 24px}.dialog-wide .form-grid{max-height:calc(100dvh - 91px);padding:18px 24px;gap:13px}.dialog-wide .form-actions{bottom:-18px;margin:6px -24px -18px;padding:12px 24px}
.filter-date{display:flex;align-items:center;gap:7px;margin:0;color:var(--muted);font-size:.75rem}.filter-date input{width:150px}
code{font-size:.72rem;white-space:normal;word-break:break-word;color:#42545d}
.dialog-error{margin:0;padding:12px 14px;border:1px solid #efb8be;border-radius:10px;background:#fff1f2;color:#9d1f2f;font-weight:700;line-height:1.35}
.notice{padding:13px 15px;background:#f5f8f9;border-radius:11px;display:grid;gap:5px}.notice small,.report-summary small{color:var(--muted)}.report-summary{margin-bottom:12px;background:#fff;border:1px solid var(--line);border-radius:14px}
.backup-summary{align-items:center}.backup-active{margin-bottom:12px;border:1px solid #f1cf9f;background:#fff8ed}.backup-history{display:grid;min-height:0;gap:9px;margin-top:18px}.backup-history h2{margin:0;font-size:1rem}.backup-history>.panel{max-height:280px}.backup-history code{display:block;max-width:420px;max-height:5.2em;overflow:auto}.pill.bad{white-space:nowrap}
.variant-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:5px 0;min-width:250px}.variant-row+.variant-row{border-top:1px solid var(--line)}.variant-row span{min-width:0}
.supplier-editor{margin-top:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafb}.supplier-editor-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.supplier-editor-head>div{display:grid;gap:3px}.supplier-editor-head small{color:var(--muted)}.supplier-card-list{display:grid;gap:8px}.supplier-card{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(420px,2fr) auto;align-items:center;gap:16px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:#fff}.supplier-card-main{display:grid;gap:4px;min-width:0}.supplier-card-main>div{display:flex;align-items:center;gap:8px}.supplier-card-main small{color:var(--muted);overflow-wrap:anywhere}.supplier-card dl{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));gap:12px;margin:0}.supplier-card dl div{display:grid;gap:2px}.supplier-card dt{font-size:.68rem;font-weight:700;text-transform:uppercase;color:var(--muted)}.supplier-card dd{margin:0;font-weight:700}.supplier-card .action{white-space:nowrap}
.text-link{appearance:none;border:0;background:transparent;color:var(--ink);padding:0;text-align:left;font:inherit;cursor:pointer}.text-link:hover,.text-link:focus-visible{color:var(--accent);text-decoration:underline}.job-link strong{font-size:inherit}.numeric-link{font-weight:800}.issue-warning{border-color:#efb8be;background:#fff1f2;color:#9d1f2f}
.num .unit-label{display:block;margin-top:3px;font-size:.68rem;font-weight:600;color:var(--muted);text-transform:none}
.view-tabs{display:flex;gap:6px;margin-bottom:14px}.view-tabs button{padding:10px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#526773;font-weight:750}.view-tabs button.active{background:var(--nav);border-color:var(--nav);color:#fff}
th.num,td.num{text-align:center!important}
.materials-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-top:8px}.materials-heading div{display:grid;gap:4px}.materials-heading small{color:var(--muted)}
.existing-job-materials{border:1px solid var(--line);border-radius:12px;background:#f8fafb;overflow:hidden}.existing-materials-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 14px;border-bottom:1px solid var(--line)}.existing-materials-heading small,.existing-material-row small{color:var(--muted)}.existing-material-list{display:grid;max-height:220px;overflow-y:auto}.existing-material-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}.existing-material-row:last-child{border-bottom:0}.existing-material-row span{display:grid;gap:2px}.existing-material-row span:last-child{text-align:right;min-width:90px}
#job-material-lines,#additional-job-materials{display:grid;gap:10px}.job-material-row{display:grid;grid-template-columns:minmax(360px,1fr) 170px auto;align-items:end;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafb}.job-material-row label{min-width:0}.job-material-row select{width:100%;min-width:0}.job-material-row .remove-material{margin-bottom:0}
#purchase-lines{display:grid;gap:10px}.purchase-line{display:grid;grid-template-columns:minmax(360px,1fr) 160px 190px auto;align-items:end;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafb}.purchase-line label{min-width:0}.purchase-line .remove-purchase-line{margin-bottom:0}
.delivery-documents{border:1px solid var(--line);border-radius:12px;overflow:hidden}.delivery-documents-heading,.delivery-document{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px}.delivery-documents-heading{background:#f4f7f8;border-bottom:1px solid var(--line)}.delivery-documents-heading small,.delivery-document small{display:block}.delivery-document+.delivery-document{border-top:1px solid var(--line)}
.product-field{display:grid;gap:6px;min-width:0}.product-field>span{font-size:.78rem;font-weight:700}.product-field>small{color:var(--muted)}.product-picker{position:relative}.product-picker>.product-search{width:100%}.product-results{position:fixed;z-index:20;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 30px #102b3a2e}.product-results[hidden]{display:none}.product-results button{display:grid;width:100%;gap:1px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:var(--ink);font-size:.82rem;line-height:1.2;text-align:left}.product-results button>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.product-results button em{padding:2px 6px;border-radius:99px;background:#eef2f4;color:var(--muted);font-size:.66rem;font-style:normal;font-weight:700}.product-results button:hover,.product-results button.active{background:#e8f5f5}.product-results button:disabled{cursor:not-allowed;opacity:.58}.product-results small{color:var(--muted);font-size:.7rem}.product-results p{margin:0;padding:9px;color:var(--muted);font-size:.82rem}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px) and (min-width:601px){.brand{display:block;padding:0}.brand-logo{width:54px!important;height:36px;margin:auto}.brand-logo img{width:72px;transform:translate(-7px,-6px)}}
@media(max-width:600px){.form-grid>.wide{grid-column:auto}.material-summary{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.job-material-row{grid-template-columns:1fr}.job-material-row .remove-material{justify-self:start}.materials-heading{align-items:start}}
@media(max-width:900px){.purchase-line{grid-template-columns:1fr 1fr}.purchase-line label:first-child{grid-column:1/-1}.purchase-line .remove-purchase-line{justify-self:start}}@media(max-width:600px){.purchase-line{grid-template-columns:1fr}.purchase-line label:first-child{grid-column:auto}}
@media(max-width:900px){.supplier-card{grid-template-columns:1fr auto}.supplier-card dl{grid-column:1/-1;grid-template-columns:repeat(2,1fr)}.supplier-editor-head{align-items:flex-start}}
@media(max-width:600px){aside{overflow-x:auto}aside nav{display:flex;min-width:max-content;gap:4px}aside nav button{flex:0 0 74px}main{padding-bottom:88px}dialog{max-height:calc(100dvh - 20px)}.dialog-head,.form-grid{padding:18px}.filters{align-items:stretch}.filters>*{width:100%!important}}
@media(max-width:600px){.inline-create-panel{grid-template-columns:1fr}.inline-create-panel>div:first-child,.inline-create-actions{grid-column:1}}
@media(max-width:520px){.supplier-editor-head{display:grid}.supplier-card{grid-template-columns:1fr}.supplier-card dl{grid-template-columns:1fr 1fr}.supplier-card .action{justify-self:start}}
@media(max-width:600px){.overview-intro{align-items:flex-start}.overview-live{margin-top:3px}.dashboard-metric{min-height:145px}}
@media(max-width:480px){.metrics{grid-template-columns:1fr}.material-summary{grid-template-columns:1fr}.overview-intro{display:grid}}
.secondary.danger{color:var(--danger);border-color:#efb7bd}
.access-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:12px;border:1px solid var(--line);border-radius:12px}.access-options legend{padding:0 6px;font-weight:800}.access-option{display:flex!important;align-items:flex-start;gap:10px;margin:0!important;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f8fafb;cursor:pointer}.access-option input{width:auto!important;margin-top:3px}.access-option span{display:grid;gap:3px}.access-option small{color:var(--muted);font-weight:500}
@media(max-width:600px){.access-options{grid-template-columns:1fr}}
