/* ESTIND CANONICAL UI — industrial estimating workbench
   Loaded last: feature stylesheets retain layout hooks; this is the visual contract. */
:root{--navy:#19313a;--navy2:#253e47;--blue:#b9572d;--cyan:#d07a4e;--green:#386b58;--danger:#9b3f3f;--amber:#a66a22;--page:#ebe8e0;--surface:#f9f8f4;--surface-2:#f1eee7;--surface-3:#e5e1d8;--border:#c8c4ba;--border-strong:#9f9b91;--text:#20282b;--muted:#626b6d;--radius:3px;--shadow:none}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#9d9990 transparent}html{scroll-behavior:smooth;background:var(--page)}body{margin:0;overflow-x:hidden;background:var(--page);color:var(--text);font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:13px;line-height:1.42;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{touch-action:manipulation}button:disabled{cursor:not-allowed!important}h1,h2,h3,h4,strong,.amount,.catalog-selling-price{font-family:Bahnschrift,"Arial Narrow","Segoe UI",Arial,sans-serif}.hidden{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;left:12px;top:10px;z-index:10000;transform:translateY(-160%);background:#fff;color:var(--navy);border:2px solid var(--blue);padding:8px 12px;font-weight:700;text-decoration:none}.skip-link:focus{transform:translateY(0)}

/* Shell */
.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;z-index:30;width:208px;flex:0 0 208px;height:100vh;display:flex;flex-direction:column;background:#202d31;color:#d7dcda;border-right:1px solid #111a1d}.side-brand{height:54px;min-height:54px;display:flex;align-items:center;justify-content:flex-start;padding:7px 15px;border-bottom:1px solid #3c484b}.side-brand img{width:36px;height:36px;object-fit:contain;border-radius:2px}.sidebar nav{display:flex;flex-direction:column;gap:1px;padding:10px 8px}.sidebar button{width:100%;height:39px;min-height:39px;display:flex;align-items:center;gap:10px;padding:0 11px;border:0;border-left:3px solid transparent;border-radius:1px;background:transparent;color:#bdc6c5;font-size:12.5px;font-weight:600;text-align:left;cursor:pointer}.sidebar button i{width:19px;height:19px;display:grid;place-items:center;flex:0 0 19px;border:0;background:transparent;color:#9faead}.sidebar button i::after{content:none!important}.sidebar button svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar button:hover{background:#2a393d;color:#fff;border-left-color:#6f7d7e}.sidebar button.active{background:#344247;color:#fff;border-left-color:#d16a38;box-shadow:none}.sidebar button.active i{color:#e18455;background:transparent;border:0}.sidebar .help{margin:auto 8px 10px;width:auto;border:1px solid #465357;border-left:3px solid #465357;color:#aeb9b8}.workspace{min-width:0;max-width:100%;flex:1;overflow-x:hidden}.workspace>.app-topbar{height:54px;min-height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:#f7f5ef;color:var(--text);border-bottom:1px solid var(--border);box-shadow:none}.workspace>.app-topbar .topbar-brand,.workspace>.app-topbar .topbar-wordmark{width:auto;height:auto;display:flex;background:transparent}.topbar-brand{align-items:center;gap:10px;min-width:0}.topbar-mark{display:none}.topbar-wordmark{flex-direction:column;justify-content:center;line-height:1}.topbar-wordmark strong{font-size:20px;font-weight:800;letter-spacing:.07em;color:#1c3037;white-space:nowrap}.topbar-wordmark strong span{color:#bd572c}.topbar-wordmark small{margin-top:4px;color:#71797a;font-size:7px;font-weight:700;letter-spacing:.11em;white-space:nowrap}.topbar-version{margin-left:auto;padding:3px 7px;border:1px solid #c9c5bc;border-radius:2px;background:#efede7;color:#667071;font-size:9px;font-weight:700;letter-spacing:.04em}.content{width:100%;max-width:1720px;margin:0 auto;padding:15px 20px 24px}

/* Compact page mastheads */
.app-page-hero,.projects-hero,.catalog-head,.labor-hero,.settings-hero{min-height:82px;margin:0 0 10px;padding:12px 2px 13px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:0;border-bottom:2px solid #435157;border-radius:0;background:transparent;background-image:none;color:var(--text);box-shadow:none}.app-page-hero>div,.projects-hero>div,.catalog-head>div,.labor-hero>div,.settings-hero>div{min-width:0}.app-page-hero small,.projects-hero small,.catalog-head small,.labor-hero small,.settings-hero small,.dashboard-toolbar small,.report-card-head small,.settings-card-head small,.labor-builder-title small,.labor-section-head small{display:block;color:#a84f2a!important;font-size:9px!important;font-weight:700!important;letter-spacing:.035em!important;text-transform:none!important}.app-page-hero h2,.projects-hero h2,.catalog-head h2,.labor-hero h2,.settings-hero h2{margin:2px 0 1px!important;color:#1e2d32!important;font-size:24px!important;line-height:1.14;letter-spacing:-.015em}.app-page-hero p,.projects-hero p,.catalog-head p,.labor-hero p,.settings-hero p{margin:0!important;max-width:850px;color:#626b6d!important;font-size:12px;overflow-wrap:anywhere}.hero-action-btn,.new-project-btn{min-height:38px;padding:9px 14px!important;border:1px solid #9a4423!important;border-radius:2px!important;background:#b9572d!important;background-image:none!important;color:#fff!important;font-size:12px!important;font-weight:700!important;box-shadow:none!important;white-space:nowrap;cursor:pointer}.hero-action-btn:hover,.new-project-btn:hover{background:#9f4826!important;transform:none!important}.catalog-actions{display:flex;gap:6px}.catalog-head .secondary{background:#f5f3ed;color:#384548;border-color:#aaa69c}.labor-hero-total{padding-left:20px;border-left:1px solid #b9b5ac;text-align:right}.labor-hero-total span{color:#a84f2a;font-size:9px;letter-spacing:.03em}.labor-hero-total strong{margin:1px 0;color:#1f3339;font-size:23px}.labor-hero-total small{color:#6c7475!important}.settings-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.settings-status{padding:6px 9px;border:1px solid #aaa69d;border-radius:2px;background:#efede7;color:#475255;font-size:10px;font-weight:700}.settings-status.saved{background:#e4ece7;color:#315b4b;border-color:#9daf9f}.settings-status.unsaved{background:#f6e9d4;color:#7d5115;border-color:#cba96f}.settings-status.error{background:#f2dddd;color:#853535;border-color:#c69191}.settings-save-button{min-height:38px;padding:8px 13px;border:1px solid #9a4423;border-radius:2px;background:#b9572d;color:#fff;font-weight:700;box-shadow:none;cursor:pointer}.settings-save-button:hover{background:#9f4826}.settings-save-button:disabled{background:#aaa69d;border-color:#aaa69d;color:#efede7}

/* Surfaces, buttons, inputs */
.panel,.project-card,.settings-card,.project-metrics article,.dashboard-metrics article,.reports-metrics article{border:1px solid var(--border);border-radius:2px;background:var(--surface);box-shadow:none}.panel:hover{box-shadow:none}.primary,.secondary,.save-project,.settings-apply,.rate-add-actions button{min-height:36px;padding:8px 12px;border-radius:2px;font-size:12px;font-weight:700;box-shadow:none;cursor:pointer}.primary,.save-project,.settings-apply,.rate-add-actions button{border:1px solid #9a4423;background:#b9572d;background-image:none;color:#fff}.primary:hover,.save-project:hover,.settings-apply:hover,.rate-add-actions button:hover{background:#9f4826}.secondary{border:1px solid #aaa69d;background:#f8f6f1;color:#344145}.secondary:hover{border-color:#777e7d;background:#ebe8e1}.export,.save-to-project{min-height:52px;border:1px solid #32454c;border-radius:2px;background:#293c42;background-image:none;color:#fff;box-shadow:none}.save-to-project{border-color:#9a4423;background:#b9572d}.export:hover{background:#1f3238}.save-to-project:hover{background:#9f4826}.export>span,.save-to-project>span{font-size:20px}.export small,.save-to-project small{font-size:8px;letter-spacing:.03em}label{color:#4d585a;font-size:11px;font-weight:700;letter-spacing:0;text-transform:none}input,select,textarea{border-color:#aaa69d!important;border-radius:2px!important;background:#fffefb!important;color:#222c2f!important;box-shadow:none!important;transition:border-color .12s ease,outline-color .12s ease}input:hover,select:hover,textarea:hover{border-color:#777e7d!important}input:focus,select:focus,textarea:focus,button:focus-visible,[role="button"]:focus-visible{outline:2px solid #d17649!important;outline-offset:1px!important;border-color:#9f4826!important;box-shadow:none!important}input[readonly],input:disabled,select:disabled{background:#eae7df!important;color:#676f70!important}.project-bar,.catalog-toolbar,.projects-tools{margin-top:8px;padding:10px 11px;border-radius:2px;background:#f6f4ee;box-shadow:none}.project-bar{gap:10px}.project-bar input,.project-bar select,.catalog-toolbar input,.catalog-toolbar select,.projects-tools input,.projects-tools select{height:34px;min-height:34px;margin-top:4px;padding:0 8px}.catalog-toolbar{grid-template-columns:2fr 1fr 1fr 105px;gap:8px}.catalog-stat{height:49px;padding:6px 9px;border:0;border-left:3px solid #b9572d;border-radius:0;background:#e9e5dc}.catalog-stat small{font-size:8px;letter-spacing:.02em;text-transform:none}.catalog-stat strong{color:#26393f;font-size:21px;font-variant-numeric:tabular-nums}

/* KPI ledger */
.dashboard-metrics,.reports-metrics,.project-metrics{display:grid;gap:0;margin:0 0 10px;border:1px solid var(--border);background:var(--surface)}.dashboard-metrics,.reports-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.project-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}.dashboard-metrics article,.reports-metrics article,.project-metrics article{min-width:0;padding:10px 12px;border:0;border-right:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none}.dashboard-metrics article:last-child,.reports-metrics article:last-child,.project-metrics article:last-child{border-right:0}.dashboard-metrics small,.reports-metrics small,.project-metrics span{display:block;color:#656e6f;font-size:9px;font-weight:700;letter-spacing:.015em;text-transform:none}.dashboard-metrics strong,.reports-metrics strong,.project-metrics strong{display:block;margin:2px 0 0;color:#1e3036;font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.dashboard-metrics span,.reports-metrics span,.project-metrics small{color:#777f80;font-size:10px}

/* Panels and data ledgers */
.panel-title{height:auto;min-height:48px;padding:8px 11px;border-bottom:1px solid var(--border);background:#f0ede6}.panel-title h2{margin:0;color:#27363b;font-size:16px;letter-spacing:0}.panel-title small{margin-bottom:1px;color:#a84f2a;font-size:8px;letter-spacing:.02em}.dashboard-panel,.monthly-table-panel,.report-chart-card,.catalog-panel{overflow:hidden;padding:0}.dashboard-toolbar{display:flex;align-items:end;gap:8px;padding:10px 11px;border-bottom:1px solid var(--border);background:#f8f6f1}.dashboard-toolbar>div{margin-right:auto}.dashboard-toolbar h2{margin:1px 0 0;font-size:17px}.dashboard-toolbar input,.dashboard-toolbar select{min-width:165px;height:34px;margin-top:3px;padding:0 8px}.dashboard-note{padding:8px 11px;border-top:1px solid var(--border);background:#efede7;color:#666f70;font-size:10px}.catalog-panel{margin-top:8px}.table-wrap,.catalog-table-wrap,.dashboard-table-wrap,.monthly-table-wrap{overflow:auto;scrollbar-gutter:stable}.catalog-table-wrap{max-height:calc(100vh - 238px)}table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}th{height:34px;padding:0 7px;border-bottom:1px solid #98988f;background:#ddd9d0;color:#303c3f;font-size:10px;font-weight:700;letter-spacing:0;text-align:left;text-transform:none;white-space:nowrap}td{height:42px;padding:6px 7px;border-bottom:1px solid #d5d1c8;color:#30383a}td+td,th+th{border-left:1px solid #e2ded5}tbody tr:nth-child(even){background:#f5f3ed}tbody tr:hover{background:#eee9df}.dashboard-table th,.monthly-report-table th,.catalog-table th{background:#dcd8cf;color:#2d393c;text-transform:none;letter-spacing:0}.dashboard-table td,.monthly-report-table td{padding:7px;border-bottom-color:#d5d1c8}.dashboard-table tr:hover td{background:#eee9df}.dashboard-table tr.completed-row td{background:#edf2ee}.dashboard-table tr.completed-row:hover td{background:#e3ebe5}.catalog-table td{line-height:1.32}.material-catalog-view td,.equipment-catalog-view td{padding:8px!important}.catalog-selling-price,.amount,.profit-value,.compact-total strong,.summary dd{font-variant-numeric:tabular-nums}.catalog-selling-price{color:#315f50;font-size:13px}.supplier-summary{gap:1px}.supplier-summary small{font-size:10px;color:#697273}.supplier-summary a{margin-top:2px;color:#984723;font-size:10px}.catalog-row-actions{gap:3px!important}.catalog-row-actions button{min-height:28px;padding:5px 7px!important;border-radius:2px!important;font-size:10px!important}.modify-catalog{border:1px solid #9c988e!important;background:#eeeae1!important;color:#394548!important}.modify-catalog:hover{background:#dfdbd2!important}.add-estimate{border:1px solid #9a4423!important;background:#b9572d!important;color:#fff!important}.delete-catalog{border:1px solid #c6a8a8!important;background:transparent!important;color:#873c3c!important}.table-empty-state,.dashboard-empty{padding:36px 18px!important;text-align:center!important;background:#f9f8f4!important;color:#687172!important}.table-empty-state strong{display:block;margin-bottom:2px;color:#344145;font-size:13px}.table-empty-state span{font-size:11px}
@media(min-width:901px){.catalog-table th:last-child,.catalog-table td:last-child{position:sticky;right:0;z-index:1;background:#f9f8f4;box-shadow:-1px 0 #bdb9af}.catalog-table th:last-child{z-index:3;background:#dcd8cf}.catalog-table tbody tr:nth-child(even) td:last-child{background:#f5f3ed}.catalog-table tbody tr:hover td:last-child{background:#eee9df}}

/* Estimate workbench */
.estimate-project-bar{grid-template-columns:minmax(190px,1.1fr) minmax(190px,1.1fr) minmax(145px,.75fr) minmax(130px,.7fr);align-items:end}#estimatesPage .estimate-project-bar .linked-project{grid-column:1/-1;min-height:54px;padding:8px 11px;border:1px solid #aaa69d;border-left:3px solid #71797a;border-radius:0;background:#efede7;box-shadow:none}#estimatesPage .linked-project small{font-size:9px;letter-spacing:.02em}#estimatesPage .linked-project strong{margin-top:2px;color:#27373c;font-size:13px}#estimatesPage .linked-project span{margin-top:1px;color:#697172;font-size:10px}#estimatesPage .linked-project.linked{border-color:#9dae9f;border-left-color:#386b58;background:#e8eee9;box-shadow:none}.estimate-layout{grid-template-columns:minmax(0,1fr) minmax(285px,330px);gap:8px;margin-top:8px;align-items:start}.estimate-sections{gap:8px}.estimate-summary-rail{top:64px;gap:7px}.summary dl{padding:5px 11px 9px}.summary dl>div{min-height:34px}.summary .grand{margin-top:3px;padding-top:8px;border-color:#9f9b91;color:#8f431f}.summary .grand dd{font-size:21px;color:#8f431f}.estimate-table-head{min-height:34px;padding:0 10px;border-bottom:1px solid #aaa69d;background:#ddd9d0;color:#344145;font-size:10px;gap:7px}.estimate-wide-panel .rental-row,.estimate-wide-panel .labor-estimate-row{min-height:44px;padding:6px 10px;gap:7px;border-bottom-color:#d5d1c8;background:#f9f8f4}.estimate-wide-panel .rental-row:nth-child(even),.estimate-wide-panel .labor-estimate-row:nth-child(even){background:#f3f1eb}.equipment-table-head,.estimate-wide-panel .rental-row.equipment-estimate-row{grid-template-columns:25px minmax(205px,1.8fr) 76px 78px 154px 96px 26px}.labor-table-head,.labor-table-row{grid-template-columns:25px 90px minmax(175px,1.4fr) 62px 62px 82px 108px 92px 26px}.locked-estimate-field,.catalog-locked-field,.locked-price{min-height:31px;height:31px;border:1px solid #bbb7ad;border-radius:2px;background:#e9e6df;color:#394548;font-size:11px}.editable-qty,.items-panel .qty-editable{height:31px!important;border:1px solid #b9572d!important;border-left:3px solid #b9572d!important;border-radius:1px!important;background:#fffaf4!important;color:#3d302a!important;font-size:12px!important}.table-delete,.items-panel .trash{width:24px;height:24px;border:1px solid #c9a9a9!important;border-radius:2px!important;background:transparent!important;color:#8d3d3d!important;font-size:16px!important}.table-delete:hover,.items-panel .trash:hover{background:#8d3d3d!important;color:#fff!important}.equipment-subtotal,.labor-subtotal{min-height:40px;padding:0 11px;border-top:1px solid var(--border);background:#efede7}

/* Estimate v2 adjustments and internal profitability ledger */
.estimate-pricing-summary{overflow:hidden}.pricing-summary-head{min-height:45px}.pricing-summary-head>div{display:grid;gap:1px}.pricing-summary-head small{color:#727a7a;font-size:8px;font-weight:700;letter-spacing:.04em}.pricing-currency{padding:3px 6px;border:1px solid #aaa69d;background:#ebe8e0;color:#495659;font:700 9px/1 Bahnschrift,"Arial Narrow",sans-serif}.estimate-pricing-summary dl{margin:0}.estimate-pricing-summary dl>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px}.estimate-pricing-summary dt{color:#4d585a;font-size:10px}.estimate-pricing-summary dd,.estimate-pricing-summary output{margin:0;color:#27373c;font:700 11px/1.2 Bahnschrift,"Arial Narrow",sans-serif;font-variant-numeric:tabular-nums}.pricing-line-summary{padding:5px 11px 0!important}.pricing-line-summary .pricing-subtotal{margin-top:3px;border-top:1px solid #b9b5ab}.pricing-line-summary .pricing-subtotal dt,.pricing-line-summary .pricing-subtotal dd{color:#26383e;font-weight:700}.pricing-adjustments{margin:7px 0 0;padding:0 11px 7px;border:0;border-top:1px solid #aaa69d}.pricing-adjustments legend{padding:7px 5px 5px 0;color:#667071;font-size:8px;font-weight:700;letter-spacing:.025em;text-transform:uppercase}.pricing-adjustment{display:grid;grid-template-columns:minmax(82px,1fr) 64px 54px 61px;gap:5px;align-items:center;min-height:43px;border-bottom:1px solid #d1cdc3}.pricing-adjustment-label{display:grid;gap:1px}.pricing-adjustment-label label{color:#344145;font-size:10px;font-weight:700}.pricing-adjustment-label small,.pricing-sales-tax label small{color:#747b7b;font-size:8px;font-weight:400;line-height:1.2}.pricing-rate-control{position:relative;display:block}.pricing-rate-control input{width:100%;height:29px;padding:5px 17px 5px 6px;border:1px solid #aaa69d;border-left:2px solid #b9572d;border-radius:1px;background:#fffdf8;color:#27373c;font-size:10px;font-variant-numeric:tabular-nums}.pricing-rate-control>span{position:absolute;top:50%;right:6px;color:#707777;font-size:9px;pointer-events:none;transform:translateY(-50%)}.pricing-taxable{display:flex!important;align-items:center;gap:3px;color:#5c6668!important;font-size:8px!important;font-weight:600!important;white-space:nowrap}.pricing-taxable input{width:13px!important;height:13px!important;min-height:0!important;margin:0;accent-color:#b9572d}.pricing-adjustment>output{text-align:right}.pricing-discount-adjustment{grid-template-columns:minmax(82px,1fr) 72px 57px 61px}.pricing-discount-adjustment select,.pricing-discount-value input{width:100%;height:29px;padding:4px 5px;border:1px solid #aaa69d;border-radius:1px;background:#fffdf8;color:#344145;font-size:9px}.pricing-discount-value{position:relative}.pricing-discount-value input{padding-left:16px;font-variant-numeric:tabular-nums}.pricing-discount-prefix{position:absolute;top:50%;left:6px;color:#707777;font-size:9px;pointer-events:none;transform:translateY(-50%)}.pricing-calculation-summary{padding:4px 11px!important;background:#efede7}.pricing-calculation-summary>div+div{border-top:1px solid #d0ccc2}.pricing-sales-tax{padding:6px 11px 8px;border-top:1px solid #aaa69d;border-bottom:1px solid #aaa69d}.pricing-sales-tax-row{display:grid;grid-template-columns:minmax(100px,1fr) 64px 65px;gap:6px;align-items:center}.pricing-sales-tax-row label{display:grid;gap:1px;color:#344145;font-size:10px;font-weight:700}.pricing-sales-tax-row output{text-align:right}.pricing-helper{margin:5px 0 0;color:#687172;font-size:8px;line-height:1.35}.pricing-tax-warning{margin:6px 0 0;padding:5px 6px;border:1px solid #c59564;border-left:3px solid #b9572d;background:#f4e9da;color:#654222;font-size:8px;line-height:1.35}.pricing-tax-warning:empty{display:none}.pricing-total-summary{padding:5px 11px 8px!important}.pricing-total-summary .grand{min-height:42px!important;margin:0!important;padding:4px 0 0!important}.pricing-profitability{border-top:1px solid #25363c;background:#34474d;padding:8px 11px 9px;color:#f5f1e8}.pricing-profitability h3{margin:0;color:#fff;font:700 11px/1.2 Bahnschrift,"Arial Narrow",sans-serif}.pricing-profitability>p{margin:2px 0 5px;color:#bdc6c5;font-size:8px;line-height:1.35}.pricing-profitability dl{padding:0!important}.pricing-profitability dl>div{min-height:25px;border-top:1px solid rgba(255,255,255,.12)}.pricing-profitability dt{color:#d7ddda}.pricing-profitability dd{color:#fff}.pricing-profitability dl>div:nth-child(2) dd,.pricing-profitability dl>div:nth-child(3) dd{color:#efb08b}

/* Immutable estimate revision register */
#estimatesPage .linked-project.linked{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:start}
#estimatesPage .linked-project.linked>small,#estimatesPage .linked-project.linked>strong,#estimatesPage .linked-project.linked>.estimate-revision-current,#estimatesPage .linked-project.linked>.estimate-revision-history{grid-column:1}
#estimatesPage .linked-project.linked>.estimate-edit-state,#estimatesPage .linked-project.linked>.estimate-create-draft-revision,#estimatesPage .linked-project.linked>.estimate-cancel-draft-revision{grid-column:2;grid-row:1/4;align-self:center}
#estimatesPage .estimate-edit-state{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid #93a69a;background:#f4f7f4;color:#315b4b!important;font-size:9px!important;font-weight:700}
#estimatesPage .estimate-create-draft-revision,#estimatesPage .estimate-cancel-draft-revision{min-height:31px;padding:6px 9px;border:1px solid #9a4423;border-radius:1px;background:#b9572d;color:#fff;font-size:10px;font-weight:700;cursor:pointer}
#estimatesPage .estimate-cancel-draft-revision{border-color:#9d9990;background:#f5f3ed;color:#455154}
#estimatesPage .estimate-revision-history{margin-top:6px;border-top:1px solid #c7cbc5;padding-top:5px}
#estimatesPage .estimate-revision-history summary{width:max-content;color:#3f5054;font-size:9px;font-weight:700;cursor:pointer}
#estimatesPage .estimate-revision-history ol{display:grid;gap:3px;margin:6px 0 0;padding:0;list-style:none}
#estimatesPage .estimate-revision-entry{display:grid;grid-template-columns:85px minmax(180px,1fr) minmax(180px,1fr);gap:8px;padding:5px 7px;border:1px solid #c9c5bc;background:#f7f5ef}
#estimatesPage .estimate-revision-entry.is-active{border-left:3px solid #386b58;background:#edf2ee}
#estimatesPage .estimate-revision-entry strong{margin:0;color:#26383e;font-size:10px}
#estimatesPage .estimate-revision-entry span{margin:0;color:#667071;font-size:9px;font-variant-numeric:tabular-nums}
@media(max-width:700px){#estimatesPage .linked-project.linked{grid-template-columns:1fr}#estimatesPage .linked-project.linked>.estimate-edit-state,#estimatesPage .linked-project.linked>.estimate-create-draft-revision,#estimatesPage .linked-project.linked>.estimate-cancel-draft-revision{grid-column:1;grid-row:auto;margin-top:6px;width:100%;justify-content:center}#estimatesPage .estimate-revision-entry{grid-template-columns:1fr;gap:1px}}

/* Explicit draft-only catalog price review */
.price-cell-stack{display:flex;flex-direction:column;gap:4px;min-width:132px}.price-change-review{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:5px;border:1px solid #c59564;border-left:3px solid #b9572d;border-radius:1px;background:#f4e9da;color:#654222;line-height:1.2}.price-change-label{font-size:8px;font-weight:700;letter-spacing:0;text-transform:none}.price-change-values{font-size:9px;font-variant-numeric:tabular-nums;white-space:normal}.price-change-locked{font-size:9px;color:#75634e}.reprice-line{min-height:26px;padding:4px 6px;border:1px solid #9a4423;border-radius:1px;background:#b9572d;color:#fff;font-size:9px;font-weight:700;cursor:pointer;text-align:center}.reprice-line:hover{background:#9f4826}.items-panel td:nth-child(7){min-width:164px;vertical-align:top}.equipment-estimate-row>.price-cell-stack{grid-column:5}.equipment-estimate-row:has(.price-change-review){align-items:start;padding-top:7px;padding-bottom:7px}

/* Project register */
.projects-tools{grid-template-columns:2fr 1fr;gap:8px}.projects-grid{grid-template-columns:repeat(3,minmax(255px,1fr));gap:7px;margin-top:8px}.project-card,.project-card-v101{min-height:0!important;padding:11px 12px 10px!important;border:1px solid #bdb9af;border-left:3px solid #657276;border-radius:1px;background:#f9f8f4;box-shadow:none}.project-card:hover{border-color:#777f7f;box-shadow:none}.project-card-v101.project-completed{border:1px solid #8ca394;border-left:3px solid #386b58;background:#f0f4f0}.project-card-v101 .compact-card-head{margin:0 0 7px!important}.project-card-v101 .compact-quote small,.project-card-v101 .compact-meta small{color:#727979;font-size:8px;letter-spacing:.015em}.project-card-v101 .compact-project-main{padding:7px 0;border-color:#d4d0c7}.project-card-v101 .compact-project-main h3{font-size:15px}.project-card-v101 .compact-company{font-size:10px}.project-card-v101 .compact-total{margin-top:7px;padding:6px 8px;border:1px solid #b4b7aa;border-radius:1px;background:#eeeee8}.project-card-v101 .compact-total small{color:#687172;letter-spacing:.015em}.project-card-v101 .compact-total strong{color:#315f50;font-size:17px}.status,.status-chip{padding:3px 6px;border-radius:1px!important;font-size:8px;letter-spacing:.015em;text-transform:none}.project-card-v101 .compact-actions{margin-top:7px!important;gap:3px!important}.project-card-v101 .compact-actions button,.project-card-actions button{min-height:28px!important;padding:5px 4px!important;border:1px solid #aaa69d;border-radius:1px;background:#f1eee7;color:#334145;font-size:9px!important;box-shadow:none}.project-card-v101 .compact-actions button:first-child{background:#34474d;border-color:#34474d;color:#fff}.project-card-actions button[data-download-word],.project-card-actions button[data-download-pdf]{background:#e5e2da;color:#334145;border-color:#aaa69d}.project-card-actions .danger-link{background:transparent!important;color:#8d3d3d!important;border-color:#c9a9a9!important}.projects-empty,.projects-no-results{margin-top:8px;padding:36px 18px;border:1px dashed #aaa69d;border-radius:1px;background:#f7f5ef;color:#687172;text-align:center}

/* Labor, travel, reports */
.labor-builder,.travel-builder{margin-top:8px;padding:12px;border-left:3px solid #b9572d}.labor-builder-title,.travel-title{padding-bottom:8px;border-bottom-color:#c8c4ba}.labor-builder-title h3,.labor-section-head h3,.travel-title h3{margin:1px 0 0;font-size:16px}.labor-form-grid{gap:7px;padding:10px 0}.labor-form-grid input,.labor-form-grid select,.travel-fields input{height:34px;margin-top:3px}.labor-calculation{gap:0;padding:0;border:1px solid var(--border);border-radius:0;background:#f2efe8}.labor-calculation article{padding:8px 9px;border:0;border-right:1px solid var(--border);border-radius:0;background:transparent}.labor-calculation article span{font-size:8px;letter-spacing:.015em}.labor-calculation article strong{margin-top:1px;font-size:14px}.labor-calculation>button,.travel-fields>button{border:1px solid #9a4423;border-radius:0;background:#b9572d;background-image:none;color:#fff}.travel-builder{border-left-color:#6b7476}.travel-icon{width:34px;height:34px;border-radius:1px;background:#4d5d62;background-image:none}.travel-fields{gap:6px;padding-top:10px}.travel-fields article{height:49px;padding:7px 8px;border-radius:1px;background:#efede7}.travel-fields .travel-total{border-left:3px solid #b9572d;background:#f3e8da}.travel-total strong{color:#84421f}.labor-content-grid{gap:8px;margin-top:8px}.labor-rate-card,.labor-plan-card{padding:12px}.rate-group{border-radius:1px}.rate-group h4{padding:7px 9px;background:#e5e1d8}.rate-row{padding:5px}.plan-icon{border-radius:1px;background:#4e5d61!important}.labor-plan>article{padding:7px 3px}.labor-plan-total{padding-top:9px}.labor-plan-total strong{color:#315f50}.reports-grid{gap:8px;margin-bottom:8px}.report-card-head{padding:9px 11px;background:#f0ede6}.report-card-head h3{margin:1px 0 0;font-size:16px}.chart-wrap{height:300px}.collection-wrap{min-height:300px;grid-template-rows:190px auto;padding:10px}.collection-wrap canvas{height:190px}.collection-detail{gap:4px}.collection-detail>div{padding:8px 8px 8px 23px;border-radius:1px;background:#f5f3ed}.monthly-table-panel{margin-top:0}

/* Settings ledger */
.settings-grid{grid-template-columns:1.1fr .9fr;gap:8px}.settings-company,.settings-terms{grid-column:1/-1}.settings-card{padding:13px;border-radius:1px}.settings-card-head{gap:9px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #bdb9af}.settings-card-head>span{width:27px;height:27px;border-radius:1px;background:#3b4b50;color:#fff;font-size:10px}.settings-card-head h3{margin:1px 0 0;font-size:16px}.settings-fields{gap:8px}.settings-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-fields label{gap:3px;font-size:10px}.settings-fields input,.settings-fields select,.settings-fields textarea{padding:8px;border-radius:2px}.settings-fields input,.settings-fields select{height:34px}.settings-logo-row,.settings-signature-row{gap:8px;margin-bottom:12px}.image-uploader{gap:8px}.image-uploader>div{width:112px;height:64px;border-radius:1px;background:#efede7}.image-uploader.signature>div{width:165px;height:70px}.project-number-preview{margin-top:11px;padding:9px 10px;border:1px solid #acb3a9;border-left:3px solid #386b58;border-radius:1px;background:#e8eee9}.project-number-preview small{font-size:8px;letter-spacing:.02em}.project-number-preview strong{margin-top:2px;color:#315f50;font-size:18px}.settings-reset-sequence{margin-top:7px}.settings-rate-database{margin-top:14px;padding-top:12px}.rate-add-actions{gap:4px}

/* Modals and feedback */
.catalog-item-modal,.project-modal{background:rgba(24,31,33,.78);backdrop-filter:none}.catalog-item-dialog,.project-dialog{border:1px solid #60696a;border-radius:2px;background:#efede7;box-shadow:0 18px 45px rgba(0,0,0,.28)}.catalog-item-modal-head,.project-dialog-head{padding:13px 16px;border-radius:0;background:#29393e;background-image:none;color:#fff}.catalog-item-modal-head small,.project-dialog-head small{color:#df8a5e;font-size:8px;letter-spacing:.025em}.catalog-item-modal-head h2,.project-dialog-head h2{margin:2px 0;font-size:19px}.project-dialog-head p{color:#bdc6c5;font-size:10px}.modal-close,.project-dialog-head>button{width:31px;height:31px;border:1px solid #718083;border-radius:1px;background:transparent;color:#fff}.catalog-item-dialog form{padding:12px}.project-dialog form{padding:10px}.catalog-form-section,.form-section{margin-bottom:7px;padding:11px;border:1px solid #c8c4ba;border-radius:1px;background:#f9f8f4}.form-section{padding:0;grid-template-columns:37px 1fr}.section-number{padding-top:14px;background:#e2ded5;color:#8f431f}.section-content{padding:12px 14px}.section-content h3,.catalog-form-section h3{margin:0 0 8px;font-size:14px}.catalog-form-grid,.form-grid{gap:8px}.catalog-form-grid input,.catalog-form-grid select,.catalog-form-grid textarea,.section-content input,.section-content select,.section-content textarea{margin-top:3px;padding:7px;font-family:inherit}.catalog-form-grid input,.catalog-form-grid select{height:34px}.pricing-form-section{background:#f2eee5;border-color:#b9afa0}.price-grid #catalogFormPrice{background:#e6ece7!important;color:#315f50}.price-calculation-note{color:#6b655e}.catalog-form-actions,.project-form-footer{position:sticky;bottom:0;z-index:3;padding:8px 0 2px;border-top:1px solid #c8c4ba;background:#efede7}.drop-zone{padding:18px;border:1px dashed #878f8f;border-radius:1px;background:#f2f0ea;color:#4e5c60}.drop-zone:hover,.drop-zone.dragging{border-color:#b9572d;background:#f4e9da}.drop-icon{color:#b9572d;font-size:22px}.picture-preview figure{border-radius:1px}.picture-preview button{border-radius:1px;background:#29393e}.toast{right:18px;bottom:18px;padding:9px 12px;border:1px solid #213f34;border-radius:2px;background:#315f50;color:#fff;font-size:11px;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.2)}

/* Responsive */
@media(max-width:1300px){.dashboard-metrics,.reports-metrics{grid-template-columns:repeat(3,1fr)}.dashboard-metrics article:nth-child(3),.reports-metrics article:nth-child(3){border-right:0}.dashboard-metrics article:nth-child(-n+3),.reports-metrics article:nth-child(-n+3){border-bottom:1px solid var(--border)}.projects-grid{grid-template-columns:repeat(2,minmax(255px,1fr))}}
@media(max-width:1100px) and (min-width:701px){.sidebar{width:62px;flex-basis:62px}.side-brand{padding-left:13px}.side-brand img{width:34px;height:34px}.sidebar nav{padding:8px 6px}.sidebar button{padding:0 13px;justify-content:center;font-size:0}.sidebar button i,.sidebar button svg{width:20px;height:20px}.sidebar button i{flex-basis:20px}.sidebar .help{font-size:0;justify-content:center;padding:0}.estimate-layout{grid-template-columns:1fr}.estimate-summary-rail{position:static;display:grid;grid-template-columns:1fr 1fr}.estimate-summary-rail .summary{grid-column:1/-1}.estimate-summary-rail .secondary{width:100%}.settings-grid{grid-template-columns:1fr}.settings-company,.settings-terms{grid-column:auto}}
@media(max-width:900px){.content{padding:12px 12px 20px}.app-page-hero,.projects-hero,.catalog-head,.labor-hero,.settings-hero{align-items:flex-start;flex-direction:column;gap:8px}.hero-action-btn,.new-project-btn{align-self:stretch}.catalog-actions,.settings-hero-actions{width:100%;justify-content:stretch}.catalog-actions>*{flex:1}.settings-save-button{flex:1}.catalog-toolbar,.equipment-toolbar{grid-template-columns:1fr 1fr}.catalog-toolbar label:first-child{grid-column:1/-1}.project-metrics{grid-template-columns:repeat(2,1fr)}.project-metrics article:nth-child(2){border-right:0}.project-metrics article:nth-child(-n+2){border-bottom:1px solid var(--border)}.dashboard-toolbar{align-items:stretch;flex-direction:column}.dashboard-toolbar>div{margin-right:0}.dashboard-toolbar input,.dashboard-toolbar select{width:100%;min-width:0}.reports-grid{grid-template-columns:1fr}}
@media(max-width:700px){body{padding-bottom:59px}.app-shell{display:block}.workspace{width:100%;max-width:100%;overflow-x:hidden}.sidebar{position:fixed;inset:auto 0 0 0;z-index:4500;width:100%;height:59px;display:flex;flex-direction:row;border:0;border-top:1px solid #111a1d;box-shadow:0 -5px 16px rgba(0,0,0,.16)}.side-brand,.sidebar .help{display:none}.sidebar nav{width:100%;padding:4px;display:flex;flex-direction:row;gap:1px;overflow-x:auto;overscroll-behavior-inline:contain}.sidebar button{min-width:66px;width:66px;height:50px;min-height:50px;padding:3px;flex:0 0 66px;display:flex;flex-direction:column;justify-content:center;gap:2px;border-left:0;border-bottom:2px solid transparent;border-radius:1px;font-size:8px;line-height:1}.sidebar button i{width:18px;height:18px;flex:0 0 18px}.sidebar button svg{width:18px;height:18px}.sidebar button.active{border-left:0;border-bottom-color:#d16a38}.workspace>.app-topbar{height:48px;min-height:48px;padding:0 10px}.workspace>.app-topbar .topbar-brand,.workspace>.app-topbar .topbar-wordmark{display:flex}.topbar-wordmark strong{font-size:18px}.topbar-wordmark small{font-size:6px}.topbar-version{display:none}.content{width:100%;min-width:0;padding:8px 7px 16px}.app-page-hero,.projects-hero,.catalog-head,.labor-hero,.settings-hero{min-height:0;margin-bottom:7px;padding:8px 1px 10px}.app-page-hero h2,.projects-hero h2,.catalog-head h2,.labor-hero h2,.settings-hero h2{font-size:20px!important}.app-page-hero p,.projects-hero p,.catalog-head p,.labor-hero p,.settings-hero p{font-size:11px}.dashboard-metrics,.reports-metrics,.project-metrics{grid-template-columns:1fr 1fr}.dashboard-metrics article,.reports-metrics article,.project-metrics article{padding:8px}.dashboard-metrics article:nth-child(odd),.reports-metrics article:nth-child(odd),.project-metrics article:nth-child(odd){border-right:1px solid var(--border)}.dashboard-metrics article:nth-child(even),.reports-metrics article:nth-child(even),.project-metrics article:nth-child(even){border-right:0}.dashboard-metrics article:not(:nth-last-child(-n+2)),.reports-metrics article:not(:nth-last-child(-n+2)),.project-metrics article:not(:nth-last-child(-n+2)){border-bottom:1px solid var(--border)}.dashboard-metrics strong,.reports-metrics strong,.project-metrics strong{font-size:18px}.catalog-toolbar,.equipment-toolbar,.projects-tools,.project-bar{grid-template-columns:1fr;gap:7px;padding:8px}.catalog-toolbar label:first-child{grid-column:auto}.projects-grid{grid-template-columns:1fr}.panel-title{align-items:center;gap:7px}.panel-title .primary{white-space:nowrap}.estimate-layout{grid-template-columns:1fr}.estimate-summary-rail{position:static;display:flex;margin-top:0}.estimate-summary-rail>*{width:100%}.estimate-wide-panel .rental-row.equipment-estimate-row{grid-template-columns:25px minmax(150px,1fr) 65px 68px;overflow-x:auto}.equipment-estimate-row>.price-cell-stack{grid-column:auto;grid-row:2}.price-cell-stack{min-width:145px}.settings-grid,.settings-fields.two{grid-template-columns:1fr}.settings-company,.settings-terms,.settings-fields .wide{grid-column:auto}.labor-form-grid,.labor-calculation,.labor-rates,.travel-fields{grid-template-columns:1fr}.labor-calculation article{border-right:0;border-bottom:1px solid var(--border)}.labor-hero-total{text-align:left;border-left:0;padding:5px 0 0}.catalog-item-modal,.project-modal{padding:0;place-items:stretch}.catalog-item-dialog,.project-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0}.catalog-item-modal-head,.project-dialog-head{padding:11px}.catalog-form-actions,.project-form-footer{padding:8px 0 max(8px,env(safe-area-inset-bottom))}.catalog-form-actions button{min-width:0;flex:1}.toast{right:7px;left:7px;bottom:66px;text-align:center}}
@media(max-width:430px){.dashboard-metrics,.reports-metrics,.project-metrics{grid-template-columns:1fr}.dashboard-metrics article,.reports-metrics article,.project-metrics article{border-right:0!important;border-bottom:1px solid var(--border)!important}.dashboard-metrics article:last-child,.reports-metrics article:last-child,.project-metrics article:last-child{border-bottom:0!important}.panel-title{align-items:stretch;flex-direction:column}.panel-title .primary{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.sidebar,.app-topbar,.skip-link{display:none!important}body{padding:0;background:#fff}.content{max-width:none;padding:0}.panel{border-color:#888}}
