@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&family=Roboto+Mono:wght@400;500;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-bg:#f3f4f6;--color-surface:#fff;--color-surface-elevated:#f8fafc;--color-panel:#eef2f7;--color-border:#d7dee7;--color-border-strong:#2563eb47;--color-primary:#2563eb;--color-accent:#0891b2;--color-text:#111827;--color-text-secondary:#4b5563;--color-text-muted:#6b7280;--color-success:#16a34a;--color-warning:#d97706;--color-error:#dc2626;--font-heading:"Space Grotesk","Inter",system-ui,sans-serif;--font-body:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"Roboto Mono",monospace;--shadow-elevated:0 14px 32px #0f172a14}#root,body,html{height:100%}body{background:#f3f4f6;background:var(--color-bg);color:#111827;color:var(--color-text);font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font-body);font-weight:400;margin:0}button,input,select,textarea{font:inherit}.app-shell{background:#f3f0ea;color:#1f2520;display:grid;font-family:Roboto,Inter,system-ui,-apple-system,sans-serif;grid-template-columns:252px 1fr;height:100vh;overflow:hidden}.sidebar{align-self:stretch;background:#1f3a2f;box-sizing:border-box;color:#f6f4ef;display:flex;flex-direction:column;gap:12px;height:100%;min-height:100%;overflow:hidden;padding:20px 18px;position:sticky;top:0}.sidebar-panel{grid-gap:10px;background:#ffffff0d;border:1px solid #456454;border-radius:14px;display:grid;gap:10px;padding:14px}.sidebar-panel.collapsed{gap:8px;padding:12px}.sidebar-panel-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.sidebar-panel h2{font-size:18px;margin:0}.sidebar-toggle{background:#0000;border:1px solid #456454;border-radius:999px;color:#d6e3da;cursor:pointer;font-size:12px;padding:6px 10px}.sidebar-project-summary{grid-gap:2px;display:grid;gap:2px}.sidebar-project-summary p{color:#f6f4ef;line-height:1.3;margin:0}.sidebar-project-summary p:last-child{color:#d6e3da;font-size:13px}.sidebar-field{grid-gap:4px;display:grid;gap:4px}.sidebar-field span{color:#d6e3da;font-size:13px}.sidebar-field input{background:#f6f4ef;border:1px solid #456454;border-radius:10px;box-sizing:border-box;color:#1f2520;padding:10px 12px;width:100%}.sidebar-meta,.sidebar-status{font-size:13px;line-height:1.4;margin:0}.sidebar-meta{color:#d6e3da}.sidebar-status{color:#f0c36c}.project-save-state{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;letter-spacing:.02em;margin:0 0 10px;min-height:28px;padding:4px 10px;width:fit-content}.project-save-state.is-saved{background:#e6f3e7;color:#25592b}.project-save-state.is-dirty{background:#fbe9d7;color:#8a4a12}.sidebar-actions .danger-button,.sidebar-actions .secondary-button{font-size:13px;padding:8px 10px}.nav-list{grid-gap:10px;display:grid;gap:10px;padding-bottom:12px}.nav-group{--nav-group-bg:#ffffff0a;--nav-group-border:#365245;--nav-group-label-color:#b6c9bc;--nav-button-primary-bg:#ffffffc7;--nav-button-primary-border:#456454b8;--nav-button-primary-icon-bg:#fffffff5;--nav-button-primary-icon-border:#45645438;--nav-button-secondary-bg:#ffffff94;--nav-button-secondary-border:#4564546b;--nav-button-secondary-icon-bg:#ffffffe6;--nav-button-secondary-icon-border:#45645429;--nav-button-tertiary-bg:#ffffff61;--nav-button-tertiary-border:#45645438;--nav-button-tertiary-icon-bg:#ffffffd6;--nav-button-tertiary-icon-border:#4564541f;--nav-button-hover-bg:#ffffffe0;--nav-button-hover-border:#456454cc;grid-gap:6px;background:var(--nav-group-bg);border:1px solid var(--nav-group-border);border-left-width:3px;border-radius:14px;display:grid;gap:6px;padding:8px}.nav-group-workflow{--nav-group-bg:linear-gradient(180deg,#5f92ce29,#ffffff0d);--nav-group-border:#77a7d957;--nav-group-label-color:#c8ddf4;--nav-button-primary-bg:#d1e3f7b3;--nav-button-primary-border:#5f92ce94;--nav-button-primary-icon-bg:#ecf4ffeb;--nav-button-primary-icon-border:#5f92ce47;--nav-button-secondary-bg:#e0ecf87a;--nav-button-secondary-border:#5f92ce52;--nav-button-secondary-icon-bg:#f1f7ffdb;--nav-button-secondary-icon-border:#5f92ce2e;--nav-button-tertiary-bg:#f1f7ff52;--nav-button-tertiary-border:#5f92ce2e;--nav-button-tertiary-icon-bg:#f7fbffd6;--nav-button-tertiary-icon-border:#5f92ce1f;--nav-button-hover-bg:#e2eefbd1;--nav-button-hover-border:#5f92ce85}.nav-group-core-libraries{--nav-group-bg:linear-gradient(180deg,#70aa8029,#ffffff0d);--nav-group-border:#70aa8057;--nav-group-label-color:#cfe5d2;--nav-button-primary-bg:#dbecdeb3;--nav-button-primary-border:#70aa808f;--nav-button-primary-icon-bg:#f2f9f4eb;--nav-button-primary-icon-border:#70aa8042;--nav-button-secondary-bg:#e5f1e77a;--nav-button-secondary-border:#70aa804d;--nav-button-secondary-icon-bg:#f4faf5db;--nav-button-secondary-icon-border:#70aa802e;--nav-button-tertiary-bg:#f5faf657;--nav-button-tertiary-border:#70aa802b;--nav-button-tertiary-icon-bg:#f9fcf9d6;--nav-button-tertiary-icon-border:#70aa801f;--nav-button-hover-bg:#e6f1e7d1;--nav-button-hover-border:#70aa8080}.nav-group-room-setup{--nav-group-bg:linear-gradient(180deg,#bfa47a29,#ffffff0d);--nav-group-border:#b99c6e57;--nav-group-label-color:#e7dbc4;--nav-button-primary-bg:#f3e9d6bd;--nav-button-primary-border:#b99c6e8f;--nav-button-primary-icon-bg:#faf5ecf0;--nav-button-primary-icon-border:#b99c6e47;--nav-button-secondary-bg:#f5eee280;--nav-button-secondary-border:#b99c6e4d;--nav-button-secondary-icon-bg:#fbf7f0e0;--nav-button-secondary-icon-border:#b99c6e2e;--nav-button-tertiary-bg:#faf6f057;--nav-button-tertiary-border:#b99c6e2b;--nav-button-tertiary-icon-bg:#fdfaf5d6;--nav-button-tertiary-icon-border:#b99c6e1f;--nav-button-hover-bg:#f6eee0d6;--nav-button-hover-border:#b99c6e7a}.nav-group-label{color:#b6c9bc;font-size:11px;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.nav-group-core-libraries .nav-group-label,.nav-group-room-setup .nav-group-label,.nav-group-workflow .nav-group-label{color:var(--nav-group-label-color)}.nav-group-items{grid-gap:6px;display:grid;gap:6px}.nav-button{align-items:center;background:#ffffffe6;border:1px solid #d6e3da14;border-radius:12px;color:#1f2937;cursor:pointer;display:flex;font-size:14px;gap:10px;overflow:hidden;padding:10px 12px;position:relative;text-align:left;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.nav-button-primary{font-weight:500}.nav-button-primary,.nav-button-secondary,.nav-button-tertiary{background:#ffffffe6;border-color:#1118270f}.nav-button-icon{align-items:center;background:#1118270a;border:1px solid #11182714;border-radius:9px;color:#1f2937;display:inline-flex;flex:0 0 auto;font-size:14px;height:26px;justify-content:center;line-height:1;position:relative;width:26px;z-index:1}.nav-button-primary .nav-button-icon,.nav-button-secondary .nav-button-icon,.nav-button-tertiary .nav-button-icon{background:#1118270a;border-color:#11182714}.nav-button-label{min-width:0;position:relative;z-index:1}.nav-button:hover{background:#e5e7eb;border-color:#0000;color:#1f2937}.nav-button.active{background:#111827;border-color:#0000;color:#fff;font-weight:600}.nav-button.active .nav-button-icon{background:#0000;border-color:#0000;color:#fff}.nav-button:hover .nav-button-icon{color:#1f2937}.nav-button-priority{background:#f0c36c1f;border-color:#6a8a78;font-weight:600}.nav-button-priority.active{background:#f0c36c;border-color:#f0c36c}.content{box-sizing:border-box;display:grid;grid-template-rows:auto 1fr;height:100vh;min-height:0;overflow:hidden}.app-topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f3f0eaf5;border-bottom:1px solid #ddd6cb;height:60px;min-height:60px;overflow:hidden;padding:0 24px;position:sticky;top:0;z-index:10}.app-header,.app-topbar{align-items:center;box-sizing:border-box;display:flex}.app-header{flex-wrap:nowrap;gap:20px;height:100%;justify-content:space-between;min-width:0;width:100%}.app-header__center,.app-header__left,.app-header__right{align-items:center;box-sizing:border-box;display:flex;flex-wrap:nowrap;height:100%;min-width:0}.app-header__left{flex:1 1 auto;gap:16px;overflow:hidden;white-space:nowrap}.app-header__center{flex:1 1 auto;justify-content:flex-end;overflow:hidden}.app-header__right{flex:0 0 auto;justify-content:flex-end}.app-header__workspace-switcher{flex:0 0 auto;max-width:100%}.app-topbar-identity{color:#111;font-family:Space Grotesk,Inter,system-ui,sans-serif;font-size:15px;font-weight:600;letter-spacing:.08em;line-height:1;text-transform:lowercase;-webkit-user-select:none;user-select:none}.project-menu{align-items:center;display:flex;height:100%;position:relative}.project-menu-trigger{align-items:center;background:#fffdf9eb;border:1px solid #d7d0c5;border-radius:12px;box-sizing:border-box;color:#1f2520;cursor:pointer;display:inline-flex;gap:10px;height:36px;justify-content:space-between;line-height:1;min-height:36px;min-width:220px;padding:0 14px}.project-menu-trigger-label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-menu-trigger-caret{color:#6b7280;flex:0 0 auto}.project-menu-panel{grid-gap:4px;background:#fffdf9;border:1px solid #ded8cf;border-radius:14px;box-shadow:0 14px 28px #2a302b1f;display:grid;gap:4px;min-width:220px;padding:8px;position:absolute;right:0;top:calc(100% + 8px)}.project-menu-summary{grid-gap:2px;border-bottom:1px solid #ece6dd;display:grid;gap:2px;margin-bottom:2px;padding:8px 10px 10px}.project-menu-summary strong{font-size:14px}.project-menu-summary span{color:#6b7280;color:var(--color-text-muted);font-size:12px}.project-menu-item{background:#0000;border:0;border-radius:10px;color:inherit;cursor:pointer;padding:9px 10px;text-align:left}.project-menu-item:hover{background:#1f3a2f14}.content-body{min-height:0;overflow-y:auto;padding:24px}.content-body--workspace{padding:4px 6px 6px}.section-card{background:#fffdf9;border:1px solid #ded8cf;border-radius:18px;box-shadow:0 10px 24px #2a302b0d;padding:20px}.section-header{margin-bottom:18px}.section-header h2{font-size:24px;margin:0 0 6px}.section-header p{color:#5f665f;line-height:1.5;margin:0}.estimate-groups,.page-grid,.room-custom-items,.structure-grid,.summary-grid,.summary-sections{grid-gap:16px;display:grid;gap:16px}.structure-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.page-grid{align-items:start;grid-template-columns:minmax(260px,340px) minmax(0,1fr)}.assembly-library-layout{grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr)}.assembly-library-page-toolbar{align-items:center;gap:6px;justify-content:flex-end;padding-bottom:2px}.assembly-library-toolbar-button{border-radius:8px;font-size:12px;line-height:1.15;min-height:30px;padding:6px 10px}.assembly-library-form{grid-gap:8px;background:#faf7f2;border:1px solid #e5ddd2;border-radius:12px;display:grid;gap:8px;min-width:0;padding:10px 12px}.assembly-library-form-grid{grid-gap:6px 8px;align-items:end;display:grid;gap:6px 8px;grid-template-columns:minmax(180px,2fr) minmax(180px,1.8fr) minmax(110px,.9fr) minmax(120px,1fr) minmax(120px,1fr) minmax(120px,1fr) auto}.assembly-library-form .field{gap:2px}.assembly-library-form .field label{font-size:11px}.assembly-library-form .field input,.assembly-library-form .field select{min-height:32px;padding:6px 8px}.assembly-library-form-actions{align-items:end;padding-top:0}.assembly-library-form-actions .primary-button{min-height:32px;padding:0 12px}.assembly-library-form .field:nth-child(10),.assembly-library-form .field:nth-child(11),.assembly-library-form .field:nth-child(12),.assembly-library-form .field:nth-child(13),.assembly-library-form .field:nth-child(7),.assembly-library-form .field:nth-child(8),.assembly-library-form .field:nth-child(9){grid-row:2}.assembly-library-form .field:nth-child(13) input{max-width:64px}.assembly-library-table-panel{grid-gap:8px;display:grid;gap:8px;min-width:0}.assembly-library-toolbar-actions{gap:6px;justify-content:flex-end}.assembly-library-filters{align-items:end;gap:6px 8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.assembly-groups{grid-gap:6px;display:grid;gap:6px}.assembly-group-card{background:#fbf8f3;border:1px solid #e5ddd2;border-radius:12px;overflow:hidden}.assembly-group-header{align-items:center;background:#fbf8f3;border-bottom:1px solid #ece5dc;display:flex;gap:8px;justify-content:space-between;padding:6px 10px}.assembly-group-title-row{align-items:center;display:inline-flex;gap:4px;min-width:0}.assembly-group-card-expanded{background:#f3f8fd;border-color:#cfe0ef}.assembly-group-card-expanded .assembly-group-header{background:#eaf3fb;border-bottom-color:#d6e5f1;box-shadow:inset 3px 0 0 #b9d4ea}.assembly-group-meta{align-items:center;color:#657066;display:flex;flex-wrap:nowrap;font-size:13px;gap:6px}.assembly-group-actions{align-items:center;display:inline-flex;flex-wrap:nowrap;gap:4px}.assembly-group-actions .cost-library-row-action,.assembly-group-actions .estimate-builder-icon-button{min-height:26px;min-width:26px;padding:0;width:26px}.assembly-group-rename{flex:0 0 auto}.assembly-group-card .assembly-library-table-wrap{padding:0 10px 10px}.assembly-group-card .assembly-library-table th{background:#0000}.assembly-group-body{background:#f5f9fd;padding:6px 8px 8px}.assembly-group-card-expanded .assembly-preview-panel{background:#eef5fb;border-top:1px solid #d6e5f1}.assembly-preview-panel{grid-gap:8px;display:grid;gap:8px;padding:0 10px 10px}.assembly-preview-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.assembly-preview-section{grid-gap:12px;background:#fff;border:1px solid #e5ddd2;border-radius:12px;display:grid;gap:12px;padding:14px}.assembly-preview-section h4{margin:0}.assembly-preview-inputs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.assembly-preview-metrics{grid-gap:10px;display:grid;gap:10px}.assembly-preview-metric{background:#faf7f2;border:1px solid #ece5dc;border-radius:10px;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.structure-grid pre{background:#f5f1ea;border-radius:14px;margin:8px 0 0;overflow-x:auto;padding:16px}.form-grid{grid-gap:14px;display:grid;gap:14px}.field{grid-gap:6px;display:grid;gap:6px}.field label{font-size:14px;font-weight:600}.field input,.field select{background:#fff;border:1px solid #cbc3b8;border-radius:10px;box-sizing:border-box;padding:10px 12px;width:100%}.data-table input,.data-table select{background:#fff;border:1px solid #cbc3b8;border-radius:8px;box-sizing:border-box;padding:8px 10px;width:100%}.action-row{display:flex;flex-wrap:wrap;gap:10px}.danger-button,.primary-button,.secondary-button{border-radius:10px;cursor:pointer;padding:10px 14px}.primary-button{background:#1f3a2f;border:1px solid #1f3a2f;color:#fff}.secondary-button{background:#0000;border:1px solid #b9b1a5;color:#1f2520}.danger-button{background:#0000;border:1px solid #8a4338;color:#8a4338}.table-wrap{overflow-x:auto}.assembly-library-table-wrap{min-width:0}.data-table{border-collapse:collapse;width:100%}.assembly-library-table{min-width:1120px}.assembly-library-table input,.assembly-library-table select{background:#0000;border:1px solid #0000;border-radius:5px;box-shadow:none;color:inherit;font-family:inherit;font-size:13px;line-height:1.18;min-height:0;min-width:100%;padding:3px 5px;transition:border-color .16s ease,background-color .16s ease}.assembly-library-table input:hover,.assembly-library-table select:hover{background:#faf7f2;border-color:#ddd2c5}.assembly-library-table input:focus,.assembly-library-table select:focus{background:#fff;border-color:#b7ad9f;outline:none}.assembly-library-table td,.assembly-library-table th{padding-bottom:3px;padding-top:3px;white-space:nowrap}.assembly-col-category{min-width:88px}.assembly-col-assembly,.assembly-col-item{min-width:220px}.assembly-col-cost-code{min-width:112px}.assembly-col-element,.assembly-col-room-type,.assembly-col-stage,.assembly-col-trade,.assembly-col-work-type{min-width:96px}.assembly-col-core{min-width:140px}.assembly-col-labour-hours{min-width:78px}.assembly-col-unit{min-width:64px}.assembly-col-rate{min-width:84px}.assembly-col-qty-rule{min-width:120px}.assembly-col-sort{max-width:52px;min-width:46px}.assembly-library-table td,.assembly-library-table th{padding-left:6px;padding-right:6px}.assembly-library-table th{font-size:11px;line-height:1.18}.assembly-library-table td{background:#ffffffeb;font-size:13px;line-height:1.18;vertical-align:middle}.assembly-library-table tbody tr:nth-child(2n) td{background:#fafcfff5}.assembly-library-table .assembly-col-primary{color:#1f2520}.assembly-library-table .assembly-col-primary input,.assembly-library-table .assembly-col-primary select{color:#1f2520;font-weight:500}.assembly-library-table .assembly-col-secondary{color:#667167}.assembly-library-table .assembly-col-secondary input,.assembly-library-table .assembly-col-secondary select{color:#5f665f}.assembly-library-table .assembly-col-sort input{color:#6f786f;text-align:center}.assembly-group-card .table-col-actions .action-row,.assembly-library-table .table-col-actions{white-space:nowrap}.assembly-library-table .table-col-actions .action-row{justify-content:flex-end}.assembly-library-table .assembly-col-cost-code,.assembly-library-table .assembly-col-item,.assembly-library-table .assembly-col-labour-hours,.assembly-library-table .assembly-col-qty-rule,.assembly-library-table .assembly-col-rate,.assembly-library-table .assembly-col-room-type,.assembly-library-table .assembly-col-stage,.assembly-library-table .assembly-col-trade,.assembly-library-table .assembly-col-unit,.assembly-library-table .assembly-col-work-type,.assembly-library-table .table-col-actions{position:relative}.assembly-library-table .assembly-col-qty-rule,.assembly-library-table .assembly-col-room-type,.assembly-library-table .assembly-col-stage{padding-left:10px}.assembly-library-table .assembly-col-qty-rule:before,.assembly-library-table .assembly-col-room-type:before,.assembly-library-table .assembly-col-stage:before{background:#94a3b82e;bottom:7px;content:"";left:0;position:absolute;top:7px;width:1px}.assembly-library-static-muted{color:#6b7280;color:var(--color-text-muted)}.assembly-library-table .assembly-group-end-classification,.assembly-library-table .assembly-group-end-identity,.assembly-library-table .assembly-group-end-values{padding-right:12px}.data-table td,.data-table th{border-bottom:1px solid #ece5dc;padding:12px;text-align:left;vertical-align:top}.data-table th{color:#657066;font-size:13px;letter-spacing:.06em;text-transform:uppercase}.table-sort-button{background:#0000;border:0;color:inherit;cursor:pointer;font:inherit;font-weight:600;letter-spacing:inherit;padding:0;text-transform:inherit}.stage-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;line-height:1.2;min-height:24px;padding:2px 10px;white-space:nowrap}.stage-chip,.stage-select{font-weight:600}.empty-state{color:#657066;margin:0}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.summary-card{background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;padding:16px}.summary-card h3,.summary-card p{margin:0}.summary-card h3{color:#5f665f;font-size:14px}.summary-card p{font-size:28px;font-weight:700;margin-top:8px}.summary-section{background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;padding:16px}.summary-section h3{margin:0 0 12px}.summary-table{max-width:100%;table-layout:auto;width:max-content}.summary-section .table-wrap{display:inline-block;max-width:100%}.summary-table .labour-summary-col-group,.summary-table .summary-col-group{min-width:180px}.summary-table .summary-col-total{text-align:right;width:120px}.summary-table .labour-summary-col-hours{text-align:right;width:90px}.summary-table .labour-summary-col-cost{text-align:right;width:120px}.summary-table td.labour-summary-col-cost,.summary-table td.labour-summary-col-hours,.summary-table td.summary-col-total{font-feature-settings:"tnum";font-family:Roboto Mono,monospace;font-variant-numeric:tabular-nums;text-align:right}.room-custom-items{margin-top:20px}.custom-item-form,.custom-item-room,.estimate-group,.room-template-panel,.room-type-parameters-panel{background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;padding:16px}.room-template-panel{grid-gap:12px;display:grid;gap:12px}.room-custom-items-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.room-template-selector{max-width:420px}.room-type-parameters-panel{grid-gap:6px;display:grid;gap:6px}.room-type-parameters-editor{margin-top:8px;padding:10px 12px}.room-type-parameters-header h3,.room-type-parameters-header p{margin:0}.room-type-parameters-header p{color:#5f665f;margin-top:4px}.room-type-master-detail{grid-gap:10px;align-items:start;display:grid;gap:10px;grid-template-columns:minmax(360px,430px) minmax(0,1fr)}.room-type-detail-column,.room-type-master-column{grid-gap:8px;display:grid;gap:8px;min-width:0}.room-type-library-form{grid-gap:8px;display:grid;gap:8px}.room-type-library-form-grid{align-items:end;display:flex;flex-wrap:wrap;gap:8px 10px}.room-type-form-name{flex:1 1 220px;min-width:220px}.room-type-form-name .field input{max-width:320px}.room-type-form-small{flex:0 1 92px;min-width:92px}.room-type-form-active{flex:0 1 128px;min-width:128px}.room-type-form-active .field select,.room-type-form-small .field input,.room-type-form-small .field select{max-width:none;width:100%}.room-type-parameters-panel .field{gap:2px}.room-type-parameters-panel .field label{font-size:11px}.room-type-parameters-panel .field input,.room-type-parameters-panel .field select{min-height:32px;padding:6px 8px}.room-type-parameter-form{grid-gap:6px;display:grid;gap:6px}.room-type-parameter-grid{align-items:end;display:flex;flex-wrap:wrap;gap:6px 8px}.room-type-parameter-field{flex:0 1 126px;min-width:126px}.room-type-parameter-field-wide{flex:1 1 210px;min-width:210px}.room-type-parameter-field-medium{flex:0 1 136px;min-width:136px}.room-type-parameter-field-narrow{flex:0 1 82px;min-width:82px}.room-type-parameter-field-action{flex:0 1 auto;min-width:fit-content}.room-type-parameter-actions{align-items:end}.room-type-library-list-header h3,.room-type-library-list-header p{margin:0}.room-type-library-list-header p{color:#5f665f;margin-top:4px}.room-type-library-list,.room-type-library-row{grid-gap:4px;display:grid;gap:4px}.room-type-library-row{align-items:center;background:#fff;border:1px solid #e1d9cd;border-radius:10px;cursor:pointer;min-width:0;padding:8px 10px}.room-type-library-row-selected{background:#eef6ef;border-color:#2f5d49;box-shadow:0 0 0 1px #2f5d491f}.room-type-library-row-main{align-items:end;display:flex;flex-wrap:nowrap;gap:6px;min-width:0;width:100%}.room-type-library-row-name{flex:1 1 140px;min-width:120px}.room-type-library-row-small{flex:0 1 54px;min-width:54px}.room-type-library-row-name,.room-type-library-row-small,.room-type-parameter-row-field{grid-gap:2px;display:grid;gap:2px}.room-type-library-row-name label,.room-type-library-row-small label,.room-type-parameter-row-field label{color:#657066;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.room-type-library-row-name input,.room-type-library-row-small input,.room-type-library-row-small select,.room-type-parameter-row input,.room-type-parameter-row select{background:#0000;border:1px solid #0000;border-radius:6px;box-sizing:border-box;min-height:30px;padding:4px 6px;transition:border-color .16s ease,background-color .16s ease;width:100%}.room-type-library-row-name input:hover,.room-type-library-row-small input:hover,.room-type-library-row-small select:hover,.room-type-parameter-row input:hover,.room-type-parameter-row select:hover{background:#faf7f2;border-color:#ddd2c5}.room-type-library-row-name input:focus,.room-type-library-row-small input:focus,.room-type-library-row-small select:focus,.room-type-parameter-row input:focus,.room-type-parameter-row select:focus{background:#fff;border-color:#b7ad9f;outline:none}.room-type-library-row-pill,.room-type-parameter-readonly{align-items:center;background:#f6f1e8;border:1px solid #ddd4c8;border-radius:6px;color:#3d4740;display:inline-flex;max-width:100%;min-height:30px;padding:4px 5px;width:fit-content}.room-type-library-row-actions{align-items:center;border-left:1px solid #e4dbcf;display:flex;flex:0 0 auto;gap:0;justify-content:flex-end;margin-left:10px;min-width:fit-content;padding-left:8px}.room-type-parameter-list{grid-gap:2px;display:grid;gap:2px}.room-type-parameter-row{align-items:flex-start;background:#fff;border:1px solid #e5ddd2;border-radius:8px;display:flex;gap:4px;padding:4px 6px}.room-type-parameter-row-main{align-items:start;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:2px 8px;min-width:0}.room-type-parameter-row-parameter{flex:0 1 210px;margin-right:6px;min-width:210px}.room-type-parameter-row-code{flex:0 1 84px;min-width:84px}.room-type-parameter-row-default,.room-type-parameter-row-label{flex:0 1 118px;min-width:118px}.room-type-parameter-row-tiny{flex:0 1 72px;min-width:72px}.room-type-parameter-row-default{flex:0 1 104px;min-width:104px}.room-type-parameter-row-field{min-width:0}.room-type-parameter-readonly,.room-type-parameter-row input,.room-type-parameter-row select,.room-type-parameter-row-field label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-type-parameter-row-field label{line-height:1}.room-type-parameter-row-parameter select{color:#1f2520;font-size:13px;font-weight:600}.room-type-parameter-row-code .room-type-parameter-readonly,.room-type-parameter-row-label .room-type-parameter-readonly,.room-type-parameter-row-tiny .room-type-parameter-readonly{white-space:nowrap}.room-type-parameter-row-actions{align-self:flex-start;display:inline-flex;gap:3px;justify-content:flex-end;margin-left:auto;margin-top:0;padding-top:0}.room-type-library-row-actions .estimate-builder-icon-button,.room-type-parameter-row-actions .estimate-builder-icon-button{font-size:12px;height:24px;min-width:24px;width:24px}.room-template-preview{grid-gap:16px;background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;display:grid;gap:16px;margin-top:16px;padding:16px}.room-template-preview-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.room-template-preview-header h3,.room-template-preview-header p{margin:0}.room-template-preview-header p{color:#5f665f;margin-top:4px}.room-template-preview-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.room-template-preview-metric{grid-gap:4px;background:#fff;border:1px solid #e5ddd2;border-radius:12px;display:grid;gap:4px;padding:12px}.room-template-preview-metric strong{font-size:13px}.room-template-preview-metric span{color:#445046}.room-template-page{align-items:flex-start;grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.room-template-editor,.room-template-list-panel{grid-gap:16px;display:grid;gap:16px;min-width:0}.room-template-line-header,.room-template-list-header,.room-template-section-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.room-template-section-header p{color:#5f665f}.room-template-add-grid,.room-template-line-grid,.room-template-list-stack{grid-gap:12px;display:grid;gap:12px}.room-template-inline-actions{align-items:end}.room-template-import-row{grid-gap:8px;display:grid;gap:8px;max-width:220px}.room-template-line-card{background:#fff;border:1px solid #e5ddd2;border-radius:12px;padding:12px}.room-template-card-list{grid-gap:12px;display:grid;gap:12px}.room-template-card{grid-gap:10px;background:#faf7f2;border:1px solid #ddd4c8;border-radius:14px;display:grid;gap:10px;padding:12px;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease}.room-template-card:hover{background:#fffaf2;border-color:#bba98d;box-shadow:0 8px 18px #2a302b0f}.room-template-card-selected{background:#eef6ef;border-color:#2f5d49;box-shadow:0 0 0 2px #2f5d4924}.room-template-card-button{grid-gap:10px;background:#0000;border:0;color:inherit;cursor:pointer;display:grid;gap:10px;padding:0;text-align:left;width:100%}.room-template-card-actions,.room-template-card-footer,.room-template-card-header,.room-template-editor-header,.room-template-editor-header-meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.room-template-card-title{grid-gap:3px;display:grid;gap:3px}.room-template-card-title strong{font-size:15px}.room-template-card-footer,.room-template-card-type,.room-template-editor-kicker,.room-template-editor-metric{color:#5f665f}.room-template-card-metadata{display:flex;flex-wrap:wrap;gap:8px}.room-template-card-footer span,.room-template-card-metadata span,.room-template-editor-metric,.room-template-selected-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;line-height:1.2;min-height:28px;padding:4px 10px}.room-template-card-metadata span{background:#f1ebe2;color:#4a564c}.room-template-card-selected .room-template-card-metadata span{background:#dfeee2}.room-template-selected-badge{background:#2f5d49;border:1px solid #2f5d49;color:#fff;font-weight:700}.room-template-editor-header{background:#f5f8f4;border:1px solid #d8ddd8;padding:14px 16px}.room-template-editor-header h3{margin:2px 0 0}.room-template-editor-kicker{font-size:12px;font-weight:700;letter-spacing:.06em;margin:0;text-transform:uppercase}.room-template-editor-metric{background:#fff;border:1px solid #d7ddd6}.room-template-compact-section{padding:14px 16px}.room-template-fields-grid{gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.room-template-fields-grid-compact,.room-template-line-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.room-template-line-grid{gap:10px 12px}.room-template-preview-table,.room-template-preview-table-wrap{min-width:0}.room-template-preview-table td,.room-template-preview-table th{white-space:normal}.assembly-editor-panel{grid-gap:10px;display:grid;gap:10px}.assembly-editor-actions .action-row{justify-content:flex-end}.assembly-library-status{color:#425247;margin:10px 0 0}.assembly-library-validation{background:#fff3f0;border-color:#d8b1a7}.assembly-library-validation p{color:#8a3f30;margin:0}.assembly-library-validation-note{color:#7c6650;margin:8px 0 0}.cost-library-layout{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(180px,220px) minmax(0,1fr) minmax(340px,420px)}.cost-library-browser-panel,.cost-library-editor,.cost-library-sidebar{min-width:0}.cost-library-sidebar{grid-gap:10px;background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;display:grid;gap:10px;padding:14px}.cost-library-sidebar-header{grid-gap:8px;display:grid;gap:8px}.cost-library-sidebar-header h3{margin:0}.cost-library-trade-list{grid-gap:4px;display:grid;gap:4px}.cost-library-trade-button{background:#fff;border:1px solid #ddd4c8;border-radius:10px;color:#304138;cursor:pointer;display:flex;gap:8px;justify-content:space-between;padding:8px 10px;text-align:left;width:100%}.cost-library-trade-button.is-active{background:#eef6ef;border-color:#2f5d49;box-shadow:inset 3px 0 0 #2f5d49}.cost-library-browser-panel{grid-gap:10px;display:grid;gap:10px}.cost-library-filter-bar{grid-gap:8px;align-items:end;display:grid;gap:8px;grid-template-columns:repeat(6,minmax(0,1fr))}.cost-library-toolbar-meta,.cost-library-toolbar-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.cost-library-toolbar-meta span{color:#667064}.cost-library-table-wrap{max-height:70vh;overflow:auto}.cost-library-col-select{width:44px}.cost-library-col-core{width:16%}.cost-library-col-item{width:34%}.cost-library-col-type{width:10%}.cost-library-col-unit{width:7%}.cost-library-col-rate{width:9%}.cost-library-col-trade{width:13%}.cost-library-col-actions{width:12%}.cost-library-table td,.cost-library-table th{overflow:hidden;text-overflow:ellipsis}.cost-library-table td:first-child,.cost-library-table th:first-child{text-align:center}.cost-library-table tbody tr{cursor:pointer;transition:background-color .16s ease}.cost-library-table tbody tr:hover td{background:#f6f2ea}.cost-library-table td .action-row{flex-wrap:nowrap;gap:6px}.cost-library-table td .danger-button,.cost-library-table td .secondary-button{min-width:0;padding:6px 8px}.cost-library-row-selected td{background:#f5f1e8}.cost-library-row-active td{background:#edf3ef}.cost-library-row-active td:first-child{box-shadow:inset 3px 0 0 #7ca28a}.cost-library-name-cell{grid-gap:2px;display:grid;gap:2px;min-width:0}.library-image-thumb{background:#f5f1eb;border:1px solid #e4ddd3;border-radius:10px;height:40px;object-fit:cover;width:40px}.library-image-preview{margin-top:12px}.library-image-preview img{background:#f5f1eb;border:1px solid #e4ddd3;border-radius:14px;height:96px;object-fit:cover;width:96px}.cost-library-name-meta,.cost-library-name-primary{display:block;overflow:hidden;text-overflow:ellipsis}.cost-library-name-primary{color:#233128;font-weight:600}.cost-library-editor-subtitle,.cost-library-name-meta{color:#6e756d;font-size:12px}.cost-library-editor-subtitle{margin:6px 0 0}.cost-library-editor-header{background:#f2f8f2;border-color:#cfe1d3}.cost-library-bulk-bar{align-items:center;background:#f8f3eb;border:1px solid #ddd4c8;border-radius:12px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:10px 12px}.cost-library-editor .cost-library-editor-section{border:1px solid #e6e0d6}.cost-library-editor .cost-library-editor-section-identity{background:#edf4fb;border-color:#dbe5f0}.cost-library-editor .cost-library-editor-section-classification{background:#edf6ed;border-color:#d8e7d8}.cost-library-editor .cost-library-editor-section-details{background:#f8f2e8;border-color:#e9dfd0}.cost-library-editor .cost-library-editor-section-pricing{background:#f0eef9;border-color:#dfdaf0}.assembly-library-layout{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(180px,220px) minmax(0,1fr) minmax(360px,440px)}.assembly-library-browser,.assembly-library-editor,.assembly-library-sidebar{min-width:0}.assembly-library-sidebar{grid-gap:10px;background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;display:grid;gap:10px;padding:14px}.assembly-library-sidebar-header{grid-gap:8px;display:grid;gap:8px}.assembly-library-sidebar-header h3{margin:0}.assembly-library-nav-list{grid-gap:4px;display:grid;gap:4px}.assembly-library-nav-button{background:#fff;border:1px solid #ddd4c8;border-radius:10px;color:#304138;cursor:pointer;display:flex;gap:8px;justify-content:space-between;padding:8px 10px;text-align:left;width:100%}.assembly-library-nav-button.is-active{background:#eef6ef;border-color:#2f5d49;box-shadow:inset 3px 0 0 #2f5d49}.assembly-library-browser-panel{grid-gap:10px;display:grid;gap:10px}.assembly-library-filter-bar{grid-gap:8px;align-items:end;display:grid;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}.assembly-library-bulk-bar,.assembly-library-items-header,.assembly-library-toolbar-meta,.assembly-library-toolbar-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.assembly-library-toolbar-meta span{color:#667064}.assembly-library-bulk-bar{background:#f8f3eb;border:1px solid #ddd4c8;border-radius:12px;padding:10px 12px}.assembly-library-items-wrap,.assembly-library-table-wrap{max-height:62vh;overflow:auto}.assembly-library-items-table,.assembly-library-table{table-layout:fixed;width:100%}.assembly-library-col-select{width:44px}.assembly-library-col-name{width:38%}.assembly-library-col-room{width:15%}.assembly-library-col-group{width:19%}.assembly-library-col-count{width:10%}.assembly-library-col-actions{width:18%}.assembly-library-item-col-name{width:52%}.assembly-library-item-col-qty{width:22%}.assembly-library-item-col-override{width:12%}.assembly-library-items-table td,.assembly-library-items-table th,.assembly-library-table td,.assembly-library-table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assembly-library-items-table td:first-child,.assembly-library-items-table th:first-child,.assembly-library-table td:first-child,.assembly-library-table th:first-child{text-align:center}.assembly-library-table td,.assembly-library-table th{padding-bottom:10px;padding-top:10px;vertical-align:middle}.assembly-library-table td:nth-child(2){padding-left:8px}.assembly-library-table td:last-child,.assembly-library-table th:last-child{padding-right:12px;text-align:right}.assembly-library-items-table tbody tr,.assembly-library-table tbody tr{cursor:pointer;transition:background-color .16s ease}.assembly-library-items-table tbody tr:hover td,.assembly-library-table tbody tr:hover td{background:#f6f2ea}.assembly-library-row-selected td{background:#f5f1e8}.assembly-library-row-active td{background:#edf3ef}.assembly-library-row-active td:first-child{box-shadow:inset 3px 0 0 #7ca28a}.assembly-library-items-table td .action-row,.assembly-library-table td .action-row{flex-wrap:nowrap;gap:10px}.assembly-library-row-icon-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin:0;width:100%}.assembly-library-name-display{grid-gap:2px;display:grid;gap:2px;min-width:0}.assembly-library-name-fulltext{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.assembly-library-name-main{color:#24392c;display:block;font-size:13px;font-weight:700;line-height:1.25}.assembly-library-name-main,.assembly-library-name-secondary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assembly-library-name-secondary{color:#6b7280;font-size:11px;line-height:1.2}.assembly-library-item-mix{display:flex;flex-wrap:wrap;gap:6px}.assembly-library-mix-badge{align-items:center;background:#f4faf4;border:1px solid #d8e2d7;border-radius:999px;color:#2f5b3a;display:inline-flex;font-size:11px;font-weight:700;min-height:20px;padding:1px 7px}.assembly-library-source-mix-label{color:#5c6678;font-size:12px;font-weight:600}.assembly-library-items-table td .danger-button,.assembly-library-items-table td .secondary-button,.assembly-library-table td .danger-button,.assembly-library-table td .secondary-button{min-width:0;padding:7px 10px}.assembly-library-editor-header{background:#f2f8f2;border-color:#cfe1d3}.assembly-library-editor .assembly-library-editor-section{border:1px solid #e6e0d6}.assembly-library-editor .assembly-library-editor-section-identity{background:#edf4fb;border-color:#dbe5f0}.assembly-library-editor .assembly-library-editor-section-notes{background:#f8f3eb;border-color:#e7dbc8}.assembly-library-editor .assembly-library-editor-section-items{background:#eef5ef;border-color:#d7e4d7}.assembly-library-group-field,.assembly-library-name-field{grid-gap:8px;display:grid;gap:8px}.assembly-library-group-field{align-items:start;grid-template-columns:minmax(0,1fr) auto}.assembly-library-group-select{color:#1f2520;font-weight:600;min-width:0}.assembly-library-selected-value{color:#5b665e;font-size:12px;line-height:1.35;margin:0}.assembly-library-manage-button{min-height:40px;white-space:nowrap}.assembly-library-compact-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.assembly-library-compact-header h3,.assembly-library-compact-header p{margin:0}.assembly-library-compact-header p{color:#6d756d;font-size:13px;line-height:1.4;margin-top:4px}.assembly-library-items-summary{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.assembly-library-items-summary-card{grid-gap:4px;background:#f8fbf8;border:1px solid #d7e4d7;border-radius:12px;display:grid;gap:4px;padding:12px}.assembly-library-items-summary-card strong{font-size:24px}.assembly-library-items-summary-card span{color:#5b665e;font-size:13px}.assembly-library-inline-actions{justify-content:flex-start;margin-bottom:8px}.assembly-library-inline-actions .primary-button,.assembly-library-inline-actions .secondary-button{min-width:180px}.assembly-library-create-cost-button{background:linear-gradient(180deg,#eef8f3,#dff1e7);border-color:#7eb6a0;color:#225744}.assembly-library-create-cost-button:hover{background:linear-gradient(180deg,#e7f5ee,#d2eadf);border-color:#5e9c83}.assembly-library-item-detail{grid-gap:8px;align-content:start;align-self:stretch;background:#fff;border:1px solid #d7e4d7;border-radius:12px;box-sizing:border-box;display:grid;gap:8px;height:100%;min-width:0;padding:10px}.assembly-library-item-detail h3{margin:0}.assembly-library-item-cell{grid-gap:4px;display:grid;gap:4px;min-width:0}.assembly-library-item-primary,.assembly-library-picker-primary{color:#213229;display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis}.assembly-library-item-meta,.assembly-library-picker-meta{align-items:center;color:#6e756d;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;min-width:0}.assembly-library-item-meta span,.assembly-library-picker-meta{overflow:hidden;text-overflow:ellipsis}.assembly-library-source-badge,.assembly-library-trade-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:600;min-height:18px;padding:1px 6px}.assembly-library-source-badge.is-linked{background:#e8f0fb;color:#31587c}.assembly-library-source-badge.is-custom{background:#f7ede2;color:#8a5a23}.assembly-library-trade-badge{background:#eef5ef;color:#35573c}.assembly-library-trade-badge.is-unassigned{background:#f1f1f1;color:#757575}.assembly-library-item-qty{grid-gap:2px;color:#415046;display:grid;font-size:13px;gap:2px}.assembly-library-item-qty strong{color:#708176;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.assembly-library-quantity-field{grid-gap:6px;display:grid;gap:6px}.assembly-library-items-manager-modal{max-height:min(820px,calc(100vh - 24px));overflow:hidden;width:min(1680px,calc(100vw - 24px))}.assembly-library-items-manager-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.assembly-library-items-manager-notice{background:#f2fbf2;border:1px solid #cfe5d2;border-radius:10px;color:#2f6b3d;font-size:12px;font-weight:600;margin:0;padding:8px 10px}.assembly-library-select-all{align-items:center;color:#5b665e;display:inline-flex;font-size:12px;gap:6px}.assembly-library-items-bulk-bar{align-items:center;background:#f8fbff;border:1px solid #d8dee8;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:8px 10px}.assembly-library-items-bulk-count{color:#334155;font-size:12px;font-weight:700}.assembly-library-items-bulk-editor{grid-gap:8px;background:#f8fafc;border:1px solid #d8dee8;border-radius:12px;display:grid;gap:8px;padding:10px}.assembly-library-items-manager-layout{align-items:flex-start;display:flex;gap:12px;min-height:0;min-width:0;overflow:hidden}.assembly-library-nested-backdrop{align-items:center;background:#0f172a5c;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:60}.assembly-library-nested-modal{background:#fff;border-radius:18px;box-shadow:0 28px 60px #0f172a42;max-height:calc(100vh - 48px);overflow-x:hidden;overflow-y:auto;width:min(1120px,calc(100vw - 64px))}.assembly-library-items-manager-list-pane{display:flex;flex:1.35 1;min-width:0;overflow:hidden}.assembly-library-group-list,.assembly-library-items-manager-list{grid-gap:0;align-content:start;align-items:start;display:grid;gap:0}.assembly-library-items-manager-list{background:#fff;border:1px solid #e2e8f0;border-radius:10px;max-height:68vh;overflow-x:hidden;overflow-y:auto;padding:4px 0;width:100%}.assembly-library-group-list{align-content:start}.assembly-library-group-row{grid-gap:10px;align-items:center;background:#fff;border:1px solid #dbe4ee;border-radius:14px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto auto;padding:10px 12px}.assembly-library-group-row-main{min-width:0}.assembly-library-group-row-main strong{color:#1f2937;display:block;font-size:13px;line-height:1.2}.assembly-library-group-row p{color:#6b7280;font-size:12px;margin:3px 0 0}.assembly-library-group-row-actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:6px;justify-content:flex-end}.assembly-library-group-edit-row{align-items:center;display:flex;min-width:0}.assembly-library-group-edit-row input{min-width:0}.assembly-library-source-badge.is-protected{background:#64748b1f;color:#475569}.assembly-library-manager-card{grid-gap:6px;align-items:start;align-self:start;background:#fff;border-bottom:1px solid #f1f5f9;cursor:pointer;display:grid;gap:6px;grid-template-columns:14px 24px minmax(0,1fr);min-width:0;padding:4px 8px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.assembly-library-manager-card:hover{background:#f8fbff}.assembly-library-manager-card.is-active{background:#eff6ff;box-shadow:inset 2px 0 0 #2563eb}.assembly-library-manager-card.is-selected{background:#f3fbf4}.assembly-library-manager-card.is-custom-item{border-left:3px solid #0000}.assembly-library-manager-card.is-custom-item.is-active{background:#fbf6ed;box-shadow:inset 3px 0 0 #c79b56}.assembly-library-manager-card.is-custom-item.is-selected{background:#faf4e7}.assembly-library-manager-card.is-drag-over{box-shadow:inset 0 2px 0 #2563eb}.assembly-library-manager-card-toggle{align-items:flex-start;display:inline-flex;justify-content:center;padding-top:1px}.assembly-library-manager-card-toggle input{height:18px;margin:0;width:18px}.assembly-library-manager-card-handle{align-items:center;color:#94a3b8;cursor:grab;display:inline-flex;font-size:9px;justify-content:center;line-height:1;padding-top:3px;-webkit-user-select:none;user-select:none}.assembly-library-manager-card:active .assembly-library-manager-card-handle{cursor:grabbing}.assembly-library-manager-card-body{grid-gap:2px;display:grid;gap:2px;min-width:0}.assembly-library-manager-card-title{color:#1f2937;font-size:12px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assembly-library-manager-card-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}.assembly-library-manager-card-meta>span{color:#52606d;font-size:11px;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis}.assembly-library-manager-card-meta>span:not(.assembly-library-delivery-tag):not(:last-child):after{background:#d7dee7;content:"";display:inline-block;height:10px;margin-left:6px;vertical-align:-1px;width:1px}.assembly-library-delivery-tag{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:700;line-height:1.1;padding:2px 7px}.assembly-library-delivery-tag:after{display:none}.assembly-library-delivery-tag.is-supply{background:#2563eb1f;color:#2563eb}.assembly-library-delivery-tag.is-install{background:#16a34a1f;color:#16a34a}.assembly-library-delivery-tag.is-supply-install{background:#7c3aed1f;color:#7c3aed}.assembly-library-delivery-tag.is-labour{background:#f59e0b1f;color:#f59e0b}.assembly-library-delivery-tag.is-unassigned{background:#64748b1f;color:#475569}.assembly-library-manager-meta-muted{color:#94a3b8}.assembly-library-manager-cell{color:#52606d;font-size:11px;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assembly-library-manager-cell-qty{white-space:nowrap}.assembly-library-items-manager-modal .assembly-library-drawer-form,.assembly-library-items-manager-modal .form-grid,.assembly-library-items-manager-modal .room-template-fields-grid{gap:6px}.assembly-library-items-manager-modal .field{gap:3px}.assembly-library-items-manager-modal .field label{font-size:11px}.assembly-library-items-manager-modal .field input,.assembly-library-items-manager-modal .field select,.assembly-library-items-manager-modal .field textarea{font-size:12px;min-height:30px;padding:5px 7px}.assembly-library-items-manager-modal .field textarea{min-height:72px}.assembly-library-item-detail-header{align-items:start;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between}.assembly-library-item-detail-header h3,.assembly-library-item-detail-header p{margin:0}.assembly-library-item-detail-actions{display:flex;flex:0 0 auto;gap:6px;justify-content:flex-end;white-space:nowrap}.assembly-library-item-detail-locked{background:#f4f7fa;border-color:#d8dee8}.assembly-library-item-detail-editable{background:#fff8dc;border-color:#ead7a0;padding:10px}.assembly-library-item-detail-editable.is-custom-item,.assembly-library-item-detail-locked.is-custom-item{border-color:#dcc8a4;box-shadow:inset 0 0 0 1px #c79b561f}.assembly-library-item-detail-locked.is-custom-item{background:#faf6ee}.assembly-library-item-detail-editable.is-custom-item{background:#fff5de}.assembly-library-custom-mode-banner{grid-gap:4px;background:#fff9ee;border:1px solid #e6d8bc;border-radius:10px;display:grid;gap:4px;padding:8px 10px}.assembly-library-custom-mode-banner p{color:#7a6540;font-size:12px;line-height:1.35;margin:0}.assembly-library-item-detail-empty{flex:1 1}.assembly-library-item-detail-locked input[readonly]{background:#eef2f6;color:#516072}.assembly-library-items-manager-layout>.assembly-library-item-detail{min-width:0}.assembly-library-items-manager-layout>.assembly-library-item-detail-locked{flex:0.82 1}.assembly-library-items-manager-layout>.assembly-library-item-detail-editable{flex:0 0 220px;max-width:220px;min-width:220px;width:220px}.assembly-library-item-detail-locked .room-template-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-library-item-detail-editable .room-template-fields-grid{grid-template-columns:1fr}.assembly-library-icon-button{align-items:center;border-radius:8px;display:inline-flex;font-size:14px;height:28px;justify-content:center;line-height:1;min-width:28px;padding:0;width:28px}.assembly-library-field-hint{color:#6d756d;font-size:12px;line-height:1.35;margin:0}.assembly-library-quantity-builder{grid-gap:6px;display:grid;gap:6px}.assembly-library-quantity-builder-grid{grid-gap:8px;align-items:end;display:grid;gap:8px;grid-template-columns:1fr}.assembly-library-quantity-preview{background:#fffdf4;border:1px solid #d8dee8;border-radius:8px;color:#334155;font-size:12px;line-height:1.25;margin:0;padding:6px 8px}.assembly-library-inline-toggle{justify-self:flex-start}.assembly-library-picker-backdrop{background:#1b211d6b;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:1200}.assembly-library-picker-modal{grid-gap:12px;background:#fcfaf7;border:1px solid #ded7ca;border-radius:18px;box-shadow:0 18px 40px #0f172a2e;display:grid;gap:12px;max-height:min(80vh,760px);overflow:hidden;padding:16px;width:min(860px,100%)}.assembly-library-picker-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.assembly-library-picker-header h3{margin:2px 0 0}.assembly-library-picker-filters{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(140px,.7fr))}.assembly-library-picker-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.assembly-library-picker-results{grid-gap:6px;display:grid;gap:6px;overflow:auto;padding-right:4px}.assembly-library-picker-row{grid-column-gap:10px;grid-row-gap:4px;align-items:start;background:#fff;border:1px solid #e3ddd1;border-radius:12px;column-gap:10px;cursor:pointer;display:grid;grid-template-columns:24px minmax(0,1fr);padding:12px 14px;row-gap:4px;text-align:left;width:100%}.assembly-library-picker-row.is-selected{background:#f2fbf4;border-color:#93c5aa}.assembly-library-picker-row:hover{background:#f6f2ea;border-color:#d3cabd}.assembly-library-picker-checkbox{align-items:center;display:inline-flex;justify-content:center;padding-top:2px}.assembly-library-picker-checkbox input{height:18px;margin:0;width:18px}.assembly-library-picker-row .assembly-library-picker-meta,.assembly-library-picker-row .assembly-library-picker-primary{grid-column:2}@media (max-width:1200px){.cost-library-layout{grid-template-columns:1fr}.cost-library-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-library-layout{grid-template-columns:1fr}.assembly-library-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-library-picker-filters{grid-template-columns:1fr}.assembly-library-items-manager-layout{flex-direction:column}.assembly-library-items-manager-layout>.assembly-library-item-detail-editable,.assembly-library-items-manager-list-pane{flex:1 1 auto;max-width:none;min-width:0;width:auto}.assembly-library-item-detail-locked .room-template-fields-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.library-page{gap:14px;grid-template-columns:minmax(240px,320px) minmax(0,1fr)}.library-form-card,.library-table-panel{grid-gap:12px;display:grid;gap:12px;min-width:0}.library-table-panel{justify-items:start}.library-form-card{background:#faf7f2;border:1px solid #e5ddd2;border-radius:14px;padding:14px 16px}.library-form-grid{grid-gap:10px 12px;display:grid;gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.library-form-grid-wide{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.library-form-medium,.library-form-narrow{min-width:0}.library-form-span-2{grid-column:span 2}.library-form-span-3{grid-column:span 3}.library-form-card .field{gap:4px}.library-form-card .field label{font-size:12px}.library-form-card .field input,.library-form-card .field select{padding:8px 10px}.library-form-actions{padding-top:2px}.library-form-actions-top{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.library-compact-table{max-width:100%;min-width:0;width:auto}.library-compact-table td,.library-compact-table th{padding-bottom:8px;padding-top:8px;white-space:nowrap}.library-compact-table .data-table input,.library-compact-table .data-table select{padding:7px 9px}.table-col-wide{min-width:180px}.table-col-flex{min-width:150px}.table-col-medium{min-width:110px}.table-col-code{min-width:88px}.table-col-narrow{min-width:76px}.table-col-number{min-width:72px}.table-col-color{min-width:132px}.table-col-actions{min-width:76px;white-space:nowrap;width:1%}.table-col-actions .action-row{justify-content:flex-end}.color-swatch-picker{display:inline-grid;gap:8px;min-width:0;position:relative;width:fit-content}.color-swatch-trigger{align-items:center;background:#fff;border:1px solid #cbc3b8;border-radius:10px;color:#1f2520;cursor:pointer;display:inline-flex;gap:10px;min-height:36px;min-width:112px;padding:6px 10px}.color-swatch-option,.color-swatch-trigger-chip{border:1px solid #1f25201f;border-radius:8px;box-shadow:inset 0 0 0 1px #ffffff4d;height:24px;width:24px}.color-swatch-footer-value,.color-swatch-trigger-value{color:#5f665f;font-family:Roboto Mono,monospace;font-size:12px;line-height:1.2}.color-swatch-popover{grid-gap:10px;background:#fffdf9;border:1px solid #ddd4c8;border-radius:12px;box-shadow:0 12px 24px #2a302b1f;display:grid;gap:10px;left:0;padding:10px;position:absolute;top:calc(100% + 6px);width:188px;z-index:5}.color-swatch-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(5,24px)}.color-swatch-option{cursor:pointer;padding:0}.color-swatch-option-selected{outline:2px solid #1f3a2f;outline-offset:2px}.color-swatch-footer{align-items:center;display:flex;gap:10px;justify-content:space-between}.color-swatch-footer .secondary-button{font-size:12px;padding:7px 10px}.color-swatch-native{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.custom-item-list{grid-gap:16px;display:grid;gap:16px}.room-assembly-manager{grid-gap:12px;display:grid;gap:12px;margin-bottom:16px}.room-assembly-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.assembly-selection-list{grid-gap:10px;display:grid;gap:10px}.assembly-selection-item{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.assembly-selection-item,.room-assembly-picker{background:#fff;border:1px solid #e5ddd2;border-radius:12px}.room-assembly-picker{padding:14px}.room-assembly-suggestions{grid-gap:8px;display:grid;gap:8px}.room-assembly-suggestions p{color:#5f665f;font-size:13px;margin:0}.estimate-builder-forms,.estimate-builder-layout,.estimate-builder-main,.estimate-builder-section,.estimate-builder-tree-panel{grid-gap:6px;display:grid;gap:6px}.estimate-builder-main{margin-top:0;min-width:0}.estimate-builder-content-scroll{grid-gap:2px;box-sizing:border-box;display:grid;gap:2px;min-width:0;overflow-x:auto;overflow-y:visible;padding-bottom:0}.estimate-builder-tree-panel{gap:4px;min-width:0}.estimate-builder-toolbar{grid-gap:8px 12px;align-items:end;display:grid;gap:8px 12px;grid-template-columns:minmax(0,1fr) auto auto;margin-bottom:6px}.estimate-builder-toolbar-left{align-items:center;display:inline-flex;gap:4px;min-width:0}.estimate-builder-toolbar-right{align-items:end;display:inline-flex;gap:6px;justify-content:flex-end;min-width:0}.estimate-builder-debug-toggle{align-self:end;min-height:32px}.estimate-builder-debug-toggle.is-active{background:#f59e0b24;border-color:#d9770647;color:#92400e}.estimate-builder-toolbar-right .field{gap:2px;min-width:0}.estimate-builder-toolbar-right .field label{font-size:10px}.estimate-builder-toolbar-right input,.estimate-builder-toolbar-right select{min-height:32px;padding:6px 8px}.estimate-builder-toolbar-search{width:260px}.estimate-builder-meta-fields{align-items:end;display:inline-grid;gap:6px;grid-template-columns:minmax(240px,320px) minmax(64px,80px);margin-left:10px}.estimate-builder-meta-fields .field{gap:2px}.estimate-builder-meta-fields .field label{font-size:11px}.estimate-builder-meta-fields input{min-height:32px;padding:6px 8px}.estimate-builder-name-input{background:#0000;border:1px solid #0000;border-radius:0;box-shadow:none;color:#1f2520;cursor:text;font-family:Roboto,Inter,system-ui,-apple-system,sans-serif;font-size:17px;font-weight:500;line-height:1.25;min-height:34px;padding:4px 2px}.estimate-builder-name-input,.estimate-builder-revision-input{appearance:none;-webkit-appearance:none;background:#0000;border-radius:0;box-shadow:none}.estimate-builder-name-input::placeholder{color:#8e968e}.estimate-builder-name-input:hover{background:#0000;border-color:#0000 #0000 #d6dcd6}.estimate-builder-name-input:focus{background:#0000;border-color:#0000 #0000 #b7ad9f;outline:none}.estimate-builder-revision-input{font-feature-settings:"tnum";background:#0000;border:1px solid #0000;color:#4e5650;font-family:Roboto Mono,monospace;font-variant-numeric:tabular-nums;min-height:32px;padding:4px 2px}.estimate-builder-revision-input::placeholder{color:#90988f}.estimate-builder-revision-input:hover{background:#0000;border-color:#0000 #0000 #d6dcd6}.estimate-builder-revision-input:focus{background:#0000;border-color:#0000 #0000 #b7ad9f;outline:none}.estimate-builder-add-section-card{border-radius:12px;justify-self:center;margin-bottom:0;min-width:0;padding:8px 10px}.estimate-builder-add-section-grid{align-items:end;gap:6px 8px;grid-template-columns:minmax(180px,220px) minmax(150px,180px) minmax(120px,150px) minmax(76px,88px) auto}.estimate-builder-add-section-actions{align-items:end}.estimate-builder-add-section-card .field{gap:2px}.estimate-builder-add-section-card .field label{font-size:11px}.estimate-builder-add-section-card input,.estimate-builder-add-section-card select{min-height:32px;padding:6px 8px}.estimate-builder-add-section-card .primary-button{min-height:32px;padding:0 12px}.estimate-builder-section{background:#faf7f2;border:1px solid #e5ddd2;border-radius:10px;padding:6px 8px}.estimate-builder-section-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.estimate-builder-group-title,.estimate-builder-section-title{align-items:center;display:flex;flex:1 1 280px;gap:8px;min-width:0}.estimate-builder-section-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.estimate-builder-section-subtotal{align-items:baseline;color:#5f6c7b;display:inline-flex;font-size:12px;gap:8px;justify-content:flex-start;line-height:1;min-height:24px;min-width:124px;padding:0 4px;text-align:left;white-space:nowrap}.estimate-builder-section-subtotal strong{font-feature-settings:"tnum";color:#334155;font-family:Roboto Mono,monospace;font-variant-numeric:tabular-nums;font-weight:700}.estimate-builder-section-actions{align-items:center;display:inline-flex;gap:6px}.estimate-builder-section-actions .estimate-builder-icon-button{font-size:11px;font-weight:700}.estimate-builder-section-actions .estimate-builder-section-action-wide{flex:0 0 88px;flex-shrink:0;min-width:88px;width:88px}.estimate-builder-section-action{align-items:center;border-color:#0000;border-radius:999px;box-sizing:border-box;display:inline-flex;font-size:12px;font-weight:600;height:24px;justify-content:center;line-height:1.2;min-height:24px;min-width:88px;padding:2px 10px;white-space:nowrap}.estimate-builder-section-action:disabled{cursor:not-allowed;opacity:.42}.estimate-builder-section-action-icon{border-radius:999px;flex:0 0 24px;height:24px;min-width:24px;padding:0;width:24px}.estimate-builder-section-action-icon span{font-size:12px;font-weight:700;line-height:1}.estimate-builder-section-action-neutral{background:#f1f4f6;color:#556372}.estimate-builder-section-action-neutral:focus,.estimate-builder-section-action-neutral:hover{background:#e5ebef;border-color:#c6d0d8;color:#414f5c}.estimate-builder-section-action-room{background:#e8f2f8;color:#2f6486}.estimate-builder-section-action-room:focus,.estimate-builder-section-action-room:hover{background:#d9eaf5;border-color:#b8d3e3;color:#224d67}.estimate-builder-section-action-assembly{background:#efe9f8;color:#6a4f91}.estimate-builder-section-action-assembly:focus,.estimate-builder-section-action-assembly:hover{background:#e6dcf4;border-color:#d0c1e6;color:#523c73}.estimate-builder-section-action-cost{background:#faeedf;color:#9a5b19}.estimate-builder-section-action-cost:focus,.estimate-builder-section-action-cost:hover{background:#f5e2c8;border-color:#e4c59c;color:#7d4811}.estimate-builder-section-action-manual{background:#eef2f5;color:#556372}.estimate-builder-section-action-manual:focus,.estimate-builder-section-action-manual:hover{background:#e2e8ed;border-color:#c6d0d8;color:#414f5c}.estimate-builder-section-action-labour{background:#e2f3f4;color:#1f6f73}.estimate-builder-section-action-labour:focus,.estimate-builder-section-action-labour:hover{background:#d2ebed;border-color:#aad4d7;color:#15585b}.estimate-builder-section-action-child{background:#e7f1e4;color:#3f6d3c}.estimate-builder-section-action-child:focus,.estimate-builder-section-action-child:hover{background:#dcebda;border-color:#bdd3b8;color:#31562e}.estimate-builder-assembly-remove-button,.estimate-builder-room-remove-button{min-width:0;padding-inline:10px}.estimate-builder-summary-panel{background:#fafcfdf0;border:1px solid #d9e2ea;border-radius:10px;margin:8px 6px 0 auto;min-width:260px;padding:10px 12px;width:fit-content}.estimate-builder-summary-controls{display:flex;justify-content:flex-end;margin-bottom:8px}.estimate-builder-summary-markup{align-items:center;color:#64748b;display:inline-flex;font-size:12px;font-weight:600;gap:8px}.estimate-builder-summary-markup-input{align-items:center;background:#fffffff0;border:1px solid #d9e2ea;border-radius:8px;color:#1f2937;display:inline-flex;gap:6px;min-height:30px;padding:0 8px}.estimate-builder-summary-markup-input input{background:#0000;border:0;color:inherit;font:inherit;outline:none;padding:0;text-align:right;width:64px}.estimate-builder-summary-markup-input span{color:#64748b;font-size:12px;font-weight:600}.estimate-builder-summary-table{max-width:420px;width:100%}.estimate-builder-summary-table td,.estimate-builder-summary-table th{border-bottom:1px solid #d9e2eae6;font-size:12px;padding:6px 0}.estimate-builder-summary-table th{color:#64748b;font-weight:600;text-align:left}.estimate-builder-summary-table td{font-feature-settings:"tnum";color:#1f2937;font-family:Roboto Mono,monospace;font-variant-numeric:tabular-nums;text-align:right}.estimate-builder-summary-table tbody tr:last-child td,.estimate-builder-summary-table tbody tr:last-child th{border-bottom:0;font-weight:700}.estimate-builder-tree{grid-gap:8px;display:grid;gap:8px}.estimate-builder-inline-form{gap:8px}.estimate-builder-inline-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.estimate-builder-support-box{background:#f6f2ec;padding:8px 10px}.estimate-builder-room-list,.estimate-builder-section-grid,.estimate-builder-sheet-scroll{grid-gap:2px;display:grid;gap:2px}.estimate-builder-sheet-scroll{box-sizing:border-box;overflow:visible;padding-bottom:0}.estimate-builder-grid{grid-column-gap:0;grid-row-gap:0;align-items:start;column-gap:0;display:grid;grid-template-columns:110px minmax(620px,1fr) 96px 92px 98px 122px 56px 64px 74px 108px 176px;grid-template-columns:var(--estimate-grid-template,110px minmax(620px,1fr) 96px 92px 98px 122px 56px 64px 74px 108px 176px);min-width:1700px;min-width:var(--estimate-grid-min-width,1700px);row-gap:0;width:100%}.estimate-builder-grid-header{background:#0000;border-bottom:1px solid #e5e7eb;border-radius:0;overflow:hidden}.estimate-builder-global-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fcfaf6f5;position:sticky;top:0;z-index:3}.estimate-builder-grid-row{background:#0000;border-bottom:1px solid #e5e7eb;overflow:visible}.estimate-builder-grid-row-flash{animation:estimate-builder-row-flash 1.8s ease-out}.estimate-builder-grid-row-excluded{background:#f4f1eb;border-color:#ddd4c8}.estimate-builder-grid-row-excluded .estimate-builder-grid-cell{color:#879083;text-decoration:line-through}.estimate-builder-grid-row-excluded .stage-chip{opacity:.7}.estimate-builder-grid-row-excluded .estimate-builder-col-actions{text-decoration:none}.estimate-builder-col-actions{align-items:center;background:inherit;display:flex;justify-content:flex-end;min-width:176px;overflow:visible;padding:5px 4px 5px 6px;width:176px}.estimate-builder-grid-cell{align-items:center;display:flex;font-size:13px;justify-content:flex-start;margin:0;min-width:0;padding:5px 6px;position:relative}.estimate-builder-grid .estimate-builder-col-actions,.estimate-builder-grid .estimate-builder-col-cost-code,.estimate-builder-grid .estimate-builder-col-qty,.estimate-builder-grid .estimate-builder-col-stage{padding-left:10px}.estimate-builder-grid .estimate-builder-col-actions:before,.estimate-builder-grid .estimate-builder-col-cost-code:before,.estimate-builder-grid .estimate-builder-col-qty:before,.estimate-builder-grid .estimate-builder-col-stage:before{background:#94a3b82e;bottom:7px;content:"";left:0;position:absolute;top:7px;width:1px}.estimate-builder-grid .estimate-builder-col-total{justify-content:flex-end;min-width:108px;padding-right:6px;width:108px}.estimate-builder-grid .estimate-builder-col-cost-code,.estimate-builder-grid .estimate-builder-col-total,.estimate-builder-grid .estimate-builder-col-worktype{padding-right:12px}.estimate-builder-inline-control{background:#0000;border:1px solid #0000;border-radius:6px;box-sizing:border-box;color:inherit;font:inherit;line-height:1.2;max-width:100%;min-height:28px;min-width:0;padding:3px 5px;transition:border-color .16s ease,background-color .16s ease;width:100%}.estimate-builder-inline-control:hover{background:#faf7f2;border-color:#ddd2c5}.estimate-builder-inline-control:focus{background:#fff;border-color:#b7ad9f;outline:none}.estimate-builder-inline-control::placeholder{color:#879083}.estimate-builder-row-actions{gap:4px;margin-left:auto;max-width:100%;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:auto}.estimate-builder-debug-inline{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;margin-left:auto;margin-top:8px;max-width:100%}.estimate-builder-debug-inline span{align-items:center;background:#0f172a0f;border-radius:999px;color:#475569;display:inline-flex;font-family:Roboto Mono,monospace;font-family:var(--font-mono);font-size:10px;line-height:1;min-height:20px;padding:0 6px}@keyframes estimate-builder-row-flash{0%{background:#facc1557}to{background:#0000}}.estimate-builder-icon-button{align-items:center;display:inline-flex;font-size:12px;height:22px;justify-content:center;line-height:1;min-width:22px;padding:0;width:22px}.estimate-builder-grid-cell:last-child{border-right:0}.estimate-builder-grid-header .estimate-builder-grid-cell{align-items:center;color:#5f665f;font-size:11px;font-weight:600;letter-spacing:.03em;min-height:34px;text-transform:uppercase}.estimate-builder-header-cell{align-items:center;display:flex;min-height:18px;padding-right:10px;position:relative}.estimate-builder-header-label{-webkit-user-select:none;user-select:none}.estimate-builder-grid-row .estimate-builder-col-actions,.estimate-builder-grid-row .estimate-builder-col-core,.estimate-builder-grid-row .estimate-builder-col-cost-code,.estimate-builder-grid-row .estimate-builder-col-detail,.estimate-builder-grid-row .estimate-builder-col-qty,.estimate-builder-grid-row .estimate-builder-col-rate,.estimate-builder-grid-row .estimate-builder-col-stage,.estimate-builder-grid-row .estimate-builder-col-total,.estimate-builder-grid-row .estimate-builder-col-trade,.estimate-builder-grid-row .estimate-builder-col-unit,.estimate-builder-grid-row .estimate-builder-col-worktype{align-items:center}.estimate-builder-core-input{border-color:#0000;color:#111827;color:var(--color-text);font-size:13px;font-weight:400;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.estimate-builder-core-input:focus,.estimate-builder-core-input:hover{background:#fff;border-color:#d7dee7}.estimate-builder-detail-input{align-self:center;border-color:#0000;color:#4b5563;color:var(--color-text-secondary);font-size:13px;font-weight:400;line-height:1.18;max-height:calc(3.45em + 1px);min-height:calc(1.15em + 1px);overflow:auto;padding:0;resize:none}.estimate-builder-col-qty .estimate-builder-inline-control,.estimate-builder-col-unit .estimate-builder-inline-control{overflow:visible;text-overflow:clip;white-space:nowrap}.estimate-builder-col-cost-code .estimate-builder-inline-subtle{color:#4b5563;color:var(--color-text-secondary)}.estimate-builder-detail-input:focus,.estimate-builder-detail-input:hover{background:#fff;border-color:#d7dee7}.estimate-builder-row-popover{grid-gap:8px;background:#fff;border:1px solid #d7dee7;border-radius:10px;box-shadow:0 16px 30px #0f172a1f;display:grid;gap:8px;padding:10px;position:absolute;right:0;top:calc(100% + 6px);width:260px;z-index:8}.estimate-builder-row-popover-label{color:#6b7280;color:var(--color-text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.estimate-builder-row-popover-actions{display:flex;gap:6px;justify-content:flex-end}.estimate-builder-row-textarea{min-height:74px;resize:vertical}.estimate-builder-icon-button-active{background:#2563eb14;border-color:#2563eb2e;color:#1d4ed8}.estimate-builder-icon-button-has-data{position:relative}.estimate-builder-icon-button-has-data:after{background:currentColor;border-radius:999px;box-shadow:0 0 0 2px #fff;content:"";height:6px;position:absolute;right:4px;top:4px;width:6px}.estimate-builder-row-group{grid-gap:4px;display:grid;gap:4px;margin-top:4px}.estimate-builder-row-group:first-child{margin-top:0}.estimate-builder-row-group-header{align-items:center;border-top:1px solid #d7dee7;color:#4b5563;color:var(--color-text-secondary);display:flex;font-size:11px;font-weight:700;gap:8px;justify-content:space-between;letter-spacing:.04em;padding:4px 10px;text-transform:uppercase}.estimate-builder-row-group-body{grid-gap:0;display:grid;gap:0}.estimate-builder-group-block{background:#0000;border:0;border-radius:0;padding:0}.estimate-builder-group-block,.estimate-builder-room-header{min-width:1700px;min-width:var(--estimate-grid-min-width,1700px)}.estimate-builder-room-header{grid-gap:0;align-items:center;border-bottom:1px solid #e5e7eb;display:grid;gap:0;grid-template-columns:110px minmax(620px,1fr) 96px 92px 98px 122px 56px 64px 74px 108px 176px;grid-template-columns:var(--estimate-grid-template,110px minmax(620px,1fr) 96px 92px 98px 122px 56px 64px 74px 108px 176px);padding:2px 0}.estimate-builder-room-meta{align-items:center;color:#657066;display:inline-flex;flex-wrap:wrap;font-size:12px;gap:10px;grid-column:3/-1;justify-content:flex-end}.estimate-builder-group-name-input{background:#0000;border:1px solid #0000;border-radius:6px;box-sizing:border-box;color:inherit;font:inherit;font-weight:600;min-width:0;padding:2px 4px;transition:border-color .16s ease,background-color .16s ease;width:100%}.estimate-builder-group-name-input:hover{background:#faf7f2;border-color:#ddd2c5}.estimate-builder-group-name-input:focus{background:#fff;border-color:#b7ad9f;outline:none}.estimate-builder-manual-lines,.estimate-builder-room-rows{grid-gap:0;display:grid;gap:0;margin-top:0}.estimate-builder-inline-empty{background:#f9f6f0;border:1px dashed #ddd2c5;border-radius:10px;margin:0;padding:8px 10px}.estimate-controls{grid-template-columns:minmax(220px,320px);margin-bottom:16px;margin-top:16px}.estimate-group-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.estimate-group-header h3,.estimate-group-header p{margin:0 0 12px}.estimate-group-header p{font-weight:700}.estimate-group-toggle{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:10px;padding:0}.estimate-group-toggle span:first-child{align-items:center;background:#fff;border:1px solid #cbc3b8;border-radius:999px;display:inline-flex;font-weight:700;height:24px;justify-content:center;width:24px}.estimate-group-subtotal{align-items:center;border-top:1px solid #e5ddd2;display:flex;gap:12px;justify-content:space-between;margin-top:12px;padding-top:12px}.estimate-builder-col-qty .estimate-builder-inline-control,.estimate-builder-col-rate .estimate-builder-inline-control,.estimate-builder-col-sort .estimate-builder-inline-control,.estimate-builder-revision-input,.estimate-group-header p,.estimate-group-subtotal strong,.estimate-output-col-labour,.estimate-output-col-labour input,.estimate-output-col-qty,.estimate-output-col-qty input,.estimate-output-col-rate,.estimate-output-col-rate input,.estimate-output-col-sort,.estimate-output-col-sort input,.estimate-output-col-total,.summary-card p{font-feature-settings:"tnum";font-family:Roboto Mono,monospace;font-variant-numeric:tabular-nums}.editable-cell{grid-gap:4px;display:grid;gap:4px}.editable-cell span{color:#5f665f;font-size:12px}.estimate-row-missing-rate{background:#fff1df}@media (max-width:900px){.app-shell,.page-grid{grid-template-columns:1fr}.assembly-library-form-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.assembly-library-form .field:nth-child(10),.assembly-library-form .field:nth-child(11),.assembly-library-form .field:nth-child(12),.assembly-library-form .field:nth-child(13),.assembly-library-form .field:nth-child(7),.assembly-library-form .field:nth-child(8),.assembly-library-form .field:nth-child(9){grid-row:auto}.room-type-master-detail{grid-template-columns:1fr}.estimate-builder-grid{grid-template-columns:110px minmax(620px,1fr) 96px 92px 98px 122px 56px 64px 74px 108px 176px;grid-template-columns:var(--estimate-grid-template,110px minmax(620px,1fr) 96px 92px 98px 122px 56px 64px 74px 108px 176px);min-width:1700px;min-width:var(--estimate-grid-min-width,1700px)}.estimate-builder-add-section-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.estimate-builder-toolbar{grid-template-columns:1fr}.estimate-builder-toolbar-left,.estimate-builder-toolbar-right{flex-wrap:wrap}.estimate-builder-add-section-card{justify-self:stretch}.estimate-builder-toolbar-menu-panel{box-shadow:none;min-width:0;position:static}.estimate-builder-col-actions,.estimate-builder-col-rate,.estimate-builder-col-total,.estimate-builder-col-unit{border-top:1px solid #ece3d7}}.app-shell,body{background:#f3f4f6;background:var(--color-bg);color:#111827;color:var(--color-text);font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font-body)}.home-brand-wordmark,.home-section-heading p,.home-step-card span,.section-header h2,.sidebar-brand-mark,.summary-section h3,h1,h2,h3,h4,h5,h6{font-family:Space Grotesk,Inter,system-ui,sans-serif;font-family:var(--font-heading)}.sidebar{background:radial-gradient(circle at top left,#3b82f61a,#0000 34%),linear-gradient(180deg,#f1f5f9,#e9eef5);border-right:1px solid #d7dee7;border-right:1px solid var(--color-border);color:#111827;color:var(--color-text);overflow-y:auto;scrollbar-width:thin}.sidebar-brand{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(180deg,#f1f5f9f5,#e9eef5e6);padding-bottom:10px;position:sticky;top:0;z-index:2}.sidebar-brand-button{grid-gap:4px;background:#0000;border:0;color:inherit;cursor:pointer;display:grid;gap:4px;padding:0;text-align:left;width:100%}.sidebar-brand-mark{font-size:32px;font-weight:700;letter-spacing:-.05em}.home-brand-tagline,.sidebar-brand-tagline{color:#4b5563;color:var(--color-text-secondary);font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font-body);font-size:12px;letter-spacing:.06em}.assembly-group-card,.assembly-library-form,.assembly-preview-section,.assembly-selection-item,.custom-item-form,.custom-item-room,.estimate-builder-group-block,.estimate-builder-inline-empty,.estimate-builder-section,.estimate-group,.library-form-card,.library-table-panel,.nav-group,.room-assembly-picker,.room-template-panel,.room-type-parameters-panel,.section-card,.sidebar-panel,.summary-card,.summary-section{background:#fff;background:var(--color-surface);border-color:#d7dee7;border-color:var(--color-border);box-shadow:0 14px 32px #0f172a14;box-shadow:var(--shadow-elevated);color:#111827;color:var(--color-text)}.empty-state,.estimate-builder-room-meta,.home-card-copy,.home-showcase-row span:first-child,.nav-group-label,.room-template-card-footer,.room-template-card-type,.room-template-editor-kicker,.room-template-editor-metric,.section-header p,.sidebar-meta,.summary-card h3,.summary-section p{color:#4b5563;color:var(--color-text-secondary)}.content{background:radial-gradient(circle at top right,#3b82f60d,#0000 24%),linear-gradient(180deg,#f3f4f6,#eef2f7)}.nav-button,.sidebar-toggle{background:#ffffffb8;border-color:#d7dee7;border-color:var(--color-border);color:#111827;color:var(--color-text)}.nav-group-core-libraries,.nav-group-room-setup,.nav-group-workflow{box-shadow:0 14px 32px #0f172a14;box-shadow:var(--shadow-elevated)}.nav-group-workflow{background:linear-gradient(180deg,#5f92ce29,#ffffffe6);border-color:#5f92ce47}.nav-group-core-libraries{background:linear-gradient(180deg,#70aa8029,#ffffffe6);border-color:#70aa8047}.nav-group-room-setup{background:linear-gradient(180deg,#bfa47a29,#ffffffe6);border-color:#bfa47a47}.nav-group-workflow .nav-group-label{color:#4d6f99}.nav-group-core-libraries .nav-group-label{color:#4f7558}.nav-group-room-setup .nav-group-label{color:#8a6b3d}.nav-button-primary{background:#2563eb14;background:var(--nav-button-primary-bg,#2563eb14);border-color:#2563eb38;border-color:var(--nav-button-primary-border,#2563eb38);font-weight:600}.nav-button-secondary{background:#ffffffc2;background:var(--nav-button-secondary-bg,#ffffffc2);border-color:#94a3b847;border-color:var(--nav-button-secondary-border,#94a3b847)}.nav-button-tertiary{background:#ffffff9e;background:var(--nav-button-tertiary-bg,#ffffff9e);border-color:#94a3b82e;border-color:var(--nav-button-tertiary-border,#94a3b82e)}.nav-button-primary .nav-button-icon{background:#fffffff0;background:var(--nav-button-primary-icon-bg,#fffffff0);border-color:#2563eb2e;border-color:var(--nav-button-primary-icon-border,#2563eb2e)}.nav-button-secondary .nav-button-icon{background:#ffffffeb;background:var(--nav-button-secondary-icon-bg,#ffffffeb);border-color:#94a3b82e;border-color:var(--nav-button-secondary-icon-border,#94a3b82e)}.nav-button-tertiary .nav-button-icon{background:#ffffffe0;background:var(--nav-button-tertiary-icon-bg,#ffffffe0);border-color:#94a3b824;border-color:var(--nav-button-tertiary-icon-border,#94a3b824)}.sidebar .nav-group .nav-group-items .nav-button:hover,.sidebar .nav-group-core-libraries .nav-group-items .nav-button:hover,.sidebar .nav-group-room-setup .nav-group-items .nav-button:hover,.sidebar .nav-group-workflow .nav-group-items .nav-button:hover{background:#e5e7eb;border-color:#0000;color:#1f2937}.sidebar .nav-group .nav-group-items .nav-button-primary.active,.sidebar .nav-group .nav-group-items .nav-button-secondary.active,.sidebar .nav-group .nav-group-items .nav-button-tertiary.active,.sidebar .nav-group .nav-group-items .nav-button.active,.sidebar .nav-group-core-libraries .nav-group-items .nav-button.active,.sidebar .nav-group-room-setup .nav-group-items .nav-button.active,.sidebar .nav-group-workflow .nav-group-items .nav-button.active{background:#111827;border-color:#0000;box-shadow:none;color:#fff}.sidebar .nav-group .nav-group-items .nav-button-icon,.sidebar .nav-group-core-libraries .nav-group-items .nav-button-icon,.sidebar .nav-group-room-setup .nav-group-items .nav-button-icon,.sidebar .nav-group-workflow .nav-group-items .nav-button-icon{color:#1f2937}.sidebar .nav-group .nav-group-items .nav-button.active .nav-button-icon,.sidebar .nav-group-core-libraries .nav-group-items .nav-button.active .nav-button-icon,.sidebar .nav-group-room-setup .nav-group-items .nav-button.active .nav-button-icon,.sidebar .nav-group-workflow .nav-group-items .nav-button.active .nav-button-icon{background:#0000;border-color:#0000;color:#fff}.sidebar .nav-group .nav-group-items .nav-button.active,.sidebar .nav-group .nav-group-items .nav-button.active .nav-button-label,.sidebar .nav-group .nav-group-items .nav-button.active span,.sidebar .nav-group .nav-group-items .nav-button.active svg,.sidebar .nav-group-core-libraries .nav-group-items .nav-button.active,.sidebar .nav-group-core-libraries .nav-group-items .nav-button.active .nav-button-label,.sidebar .nav-group-core-libraries .nav-group-items .nav-button.active span,.sidebar .nav-group-core-libraries .nav-group-items .nav-button.active svg,.sidebar .nav-group-room-setup .nav-group-items .nav-button.active,.sidebar .nav-group-room-setup .nav-group-items .nav-button.active .nav-button-label,.sidebar .nav-group-room-setup .nav-group-items .nav-button.active span,.sidebar .nav-group-room-setup .nav-group-items .nav-button.active svg,.sidebar .nav-group-workflow .nav-group-items .nav-button.active,.sidebar .nav-group-workflow .nav-group-items .nav-button.active .nav-button-label,.sidebar .nav-group-workflow .nav-group-items .nav-button.active span,.sidebar .nav-group-workflow .nav-group-items .nav-button.active svg{color:#fff}.danger-button,.primary-button,.secondary-button{border-radius:12px;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.primary-button{background:linear-gradient(180deg,#3b82f6,#2563eb);border-color:#2563eb;border-color:var(--color-primary);color:#f8fafc}.secondary-button{background:#f8fafc;border-color:#d7dee7;border-color:var(--color-border);color:#111827;color:var(--color-text)}.danger-button{background:#dc26260d;border-color:#dc262638;color:#dc2626;color:var(--color-error)}.danger-button:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.assembly-library-table input,.assembly-library-table select,.data-table input,.data-table select,.estimate-builder-inline-control,.estimate-builder-name-input,.estimate-builder-revision-input,.field input,.field select,.field textarea,.room-type-library-row-name input,.room-type-library-row-small input,.room-type-library-row-small select,.room-type-parameter-row input,.room-type-parameter-row select{background:#fff;border-color:#d7dee7;color:#111827;color:var(--color-text)}.assembly-library-table input::placeholder,.data-table input::placeholder,.estimate-builder-inline-control::placeholder,.estimate-builder-name-input::placeholder,.estimate-builder-revision-input::placeholder,.field input::placeholder,.field textarea::placeholder{color:#6b7280;color:var(--color-text-muted)}.data-table input:focus,.data-table select:focus,.estimate-builder-inline-control:focus,.estimate-builder-name-input:focus,.estimate-builder-revision-input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#2563eb;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1f;outline:none}.data-table th,.estimate-builder-grid-header .estimate-builder-grid-cell{background:#f8fafc;border-bottom:1px solid #e5e7eb;color:#4b5563;color:var(--color-text-secondary)}.assembly-library-table td,.data-table td,.estimate-builder-grid-header,.estimate-builder-grid-row,.estimate-builder-group-block{background:#0000;border-color:#e5e7eb;color:#111827;color:var(--color-text)}.assembly-library-table tbody tr:nth-child(2n) td,.data-table tbody tr:nth-child(2n) td,.estimate-builder-grid-row:nth-child(2n){background:#f8fafcb8}.assembly-library-table tbody tr:hover td,.data-table tbody tr:hover td,.estimate-builder-grid-row:hover{background:#f8fafc}.assembly-library-table td,.data-table td,.estimate-builder-grid-cell,.estimate-builder-room-meta,.home-showcase-row span:first-child,.room-template-card-footer,.room-template-editor-metric,.sidebar-meta,.summary-section li,.summary-section td{color:#4b5563;color:var(--color-text-secondary)}.assembly-library-table .assembly-col-primary,.assembly-library-table .assembly-col-primary input,.assembly-library-table .assembly-col-primary select,.data-table td strong,.estimate-builder-grid-row .estimate-builder-col-core,.estimate-builder-grid-row .estimate-builder-col-core .estimate-builder-inline-control,.estimate-builder-grid-row .estimate-builder-col-detail,.estimate-builder-grid-row .estimate-builder-col-detail .estimate-builder-inline-control,.estimate-builder-grid-row .estimate-builder-col-qty,.estimate-builder-grid-row .estimate-builder-col-rate,.estimate-builder-grid-row .estimate-builder-col-total,.summary-card strong,.summary-section strong{color:#111827;color:var(--color-text)}.assembly-library-table .assembly-col-secondary,.assembly-library-table .assembly-col-secondary input,.assembly-library-table .assembly-col-secondary select,.estimate-builder-row-popover-label{color:#4b5563;color:var(--color-text-secondary)}.estimate-builder-grid-cell{align-items:flex-start;border-bottom:1px solid #e5e7eb;border-right:0;box-sizing:border-box;line-height:1.18;min-height:44px;padding:2px 0}.estimate-builder-grid-row{border:0;border-radius:0;transition:background-color .16s ease,border-color .16s ease,opacity .16s ease}.estimate-builder-item-primary{color:#111827;color:var(--color-text);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-builder-item-secondary{color:#4b5563;color:var(--color-text-secondary);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-builder-worktype-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:11px;font-weight:600;justify-content:center;line-height:1.1;max-width:100%;min-height:20px;padding:1px 6px;white-space:nowrap}.estimate-builder-worktype-badge.is-supply{background:#2563eb17;border-color:#2563eb29;color:#1d4ed8}.estimate-builder-worktype-badge.is-install{background:#d977061a;border-color:#d9770629;color:#b45309}.estimate-builder-worktype-badge.is-supply-install{background:#0891b21a;border-color:#0891b229;color:#0f766e}.estimate-builder-worktype-badge.is-labour{background:#7c3aed14;border-color:#64748b2e;color:#5b647a}.estimate-builder-worktype-badge.is-default,.estimate-builder-worktype-badge.is-equipment{background:#94a3b81f;border-color:#94a3b82e;color:#475569}.estimate-builder-col-qty,.estimate-builder-col-rate,.estimate-builder-col-total{font-family:Roboto Mono,monospace;font-family:var(--font-mono)}.estimate-builder-col-total{justify-content:flex-end;padding-right:8px}.estimate-builder-toolbar-menu{position:relative}.estimate-builder-toolbar-menu summary{align-items:center;background:#f8fafc;border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:10px;color:#111827;color:var(--color-text);cursor:pointer;display:inline-flex;list-style:none;min-height:32px;padding:6px 10px}.estimate-builder-toolbar-menu summary::-webkit-details-marker{display:none}.estimate-builder-toolbar-menu-panel{grid-gap:8px;background:#fff;border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 14px 32px #0f172a14;box-shadow:var(--shadow-elevated);display:grid;gap:8px;min-width:220px;padding:10px;position:absolute;right:0;top:calc(100% + 6px);z-index:5}.estimate-builder-group-block{background:#fff;border:1px solid #e5e7eb;box-shadow:none}.estimate-builder-grid-row-excluded,.estimate-builder-grid-row-excluded:nth-child(2n){background:#eef2f7;border-color:#e5e7eb}.estimate-builder-col-qty .estimate-builder-inline-control,.estimate-builder-col-rate .estimate-builder-inline-control,.estimate-builder-col-sort .estimate-builder-inline-control,.estimate-builder-revision-input,.estimate-group-header p,.estimate-group-subtotal strong,.estimate-output-col-labour,.estimate-output-col-labour input,.estimate-output-col-qty,.estimate-output-col-qty input,.estimate-output-col-rate,.estimate-output-col-rate input,.estimate-output-col-sort,.estimate-output-col-sort input,.estimate-output-col-total,.summary-card p,.table-sort-button{font-family:Roboto Mono,monospace;font-family:var(--font-mono)}.assembly-library-table th,.data-table th,.estimate-builder-grid-header .estimate-builder-grid-cell,.table-sort-button{color:#4b5563;color:var(--color-text-secondary)}.assembly-library-table input,.assembly-library-table select,.estimate-builder-inline-control{background:#0000;border:1px solid #0000;border-radius:6px;box-shadow:none}.assembly-library-table input:hover,.assembly-library-table select:hover,.estimate-builder-inline-control:hover{background:#f8fafceb;border-color:#d7dee7}.assembly-library-table input:focus,.assembly-library-table select:focus,.estimate-builder-inline-control:focus{background:#fff;border-color:#cbd5e1}.assembly-library-table td,.assembly-library-table th,.data-table td,.data-table th{border-bottom:1px solid #e5e7eb}.assembly-library-table tbody tr:last-child td,.data-table tbody tr:last-child td{border-bottom:0}.data-table input,.data-table select,.field input,.field select,.field textarea{border-radius:8px}.data-table .danger-button,.data-table .secondary-button,.estimate-builder-row-actions .danger-button,.estimate-builder-row-actions .estimate-builder-icon-button,.estimate-builder-row-actions .secondary-button{opacity:.62}.estimate-builder-row-actions{align-items:center;display:inline-flex;flex-wrap:nowrap;gap:6px;justify-content:flex-end}.data-table tbody tr:hover .danger-button,.data-table tbody tr:hover .secondary-button,.estimate-builder-grid-row:hover .danger-button,.estimate-builder-grid-row:hover .estimate-builder-icon-button,.estimate-builder-grid-row:hover .secondary-button{opacity:1}.library-compiled-name-preview{grid-gap:4px;display:grid;gap:4px;padding-top:2px}.library-compiled-name-preview span{color:#6b7280;color:var(--color-text-muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.library-compiled-name-preview strong{color:#111827;color:var(--color-text);font-weight:600}.library-group-list{grid-gap:12px;display:grid;gap:12px}.library-group-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;overflow:hidden}.library-group-header{grid-gap:10px;align-items:center;background:#f8fafc;border:0;border-bottom:1px solid #e5e7eb;color:#111827;color:var(--color-text);cursor:pointer;display:grid;font:inherit;gap:10px;grid-template-columns:20px minmax(0,1fr) auto;padding:10px 14px;text-align:left;width:100%}.cost-library-page{grid-gap:12px;display:grid;gap:12px}.cost-library-topbar{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1.9fr) minmax(320px,1fr)}.cost-library-form,.cost-library-table-panel,.cost-library-toolbar{background:#fff;border:1px solid #e5e7eb;border-radius:14px}.cost-library-form,.cost-library-toolbar{padding:12px 14px}.cost-library-form{grid-gap:8px;display:grid;gap:8px}.cost-library-form-grid{grid-gap:6px 8px;display:grid;gap:6px 8px}.cost-library-form-grid-primary{grid-template-columns:minmax(220px,1.8fr) minmax(120px,.9fr) minmax(108px,.78fr) minmax(120px,.9fr) minmax(128px,1fr) minmax(72px,.5fr) minmax(88px,.6fr)}.cost-library-form-grid-secondary{grid-template-columns:repeat(4,minmax(108px,1fr))}.cost-library-form .field,.cost-library-toolbar .field{gap:3px}.cost-library-form .field label,.cost-library-toolbar .field label{font-size:10px;letter-spacing:.04em;text-transform:uppercase}.cost-library-form .field input,.cost-library-form .field select,.cost-library-toolbar .field input,.cost-library-toolbar .field select{min-height:32px;padding:6px 8px}.cost-library-form-footer{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto}.cost-library-toolbar{grid-gap:8px;display:grid;gap:8px}.cost-library-toolbar-grid{grid-gap:6px 8px;display:grid;gap:6px 8px;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(110px,.8fr))}.cost-library-control-band{align-items:end;display:flex;flex-wrap:wrap;gap:8px}.cost-library-table-panel{overflow:hidden;padding:0}.cost-library-table-wrap{width:100%}.cost-library-table{table-layout:fixed;width:100%}.cost-library-table th{position:sticky;top:0;z-index:1}.cost-library-table td,.cost-library-table th{line-height:1.18;padding:5px 6px;position:relative;vertical-align:middle;white-space:nowrap}.cost-library-header-cell{align-items:center;display:flex;min-height:18px;padding-right:10px;position:relative}.cost-library-table th{-webkit-user-select:none;user-select:none}.cost-library-table th:not(.table-col-actions) .cost-library-header-cell{cursor:grab}.cost-library-table th.is-dragging{background:#eef2f7;opacity:.55}.cost-library-resize-handle{background:#0000;border:0;cursor:col-resize;height:calc(100% + 12px);padding:0;position:absolute;right:-6px;top:-6px;width:12px}.cost-library-resize-handle:after{background:#94a3b899;bottom:4px;content:"";left:5px;opacity:0;position:absolute;top:4px;transition:opacity .16s ease;width:1px}.cost-library-table th:hover .cost-library-resize-handle:after{opacity:1}.cost-library-note-textarea,.cost-library-table input,.cost-library-table select{background:#0000;border:1px solid #0000;border-radius:6px;box-shadow:none;color:#4b5563;color:var(--color-text-secondary);font-family:inherit;font-size:13px;line-height:1.18;min-height:28px;min-width:0;padding:3px 5px;width:100%}.cost-library-table tbody tr td{background:#0000}.cost-library-table tbody tr:hover td{background:#f8fafc}.cost-library-table tbody tr:hover input,.cost-library-table tbody tr:hover select{background:#f8fafcf5;border-color:#d7dee7}.cost-library-note-textarea:focus,.cost-library-table input:focus,.cost-library-table select:focus{background:#fff;border-color:#cbd5e1;color:#111827;color:var(--color-text)}.cost-library-item-cell{grid-gap:2px;display:grid;gap:2px;min-width:0}.cost-library-item-cell strong{color:#111827;color:var(--color-text);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cost-library-item-cell small,.cost-library-item-cell span{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#4b5563;color:var(--color-text-secondary);display:-webkit-box;font-size:13px;line-height:1.18;overflow:hidden;text-overflow:ellipsis;white-space:normal}.cost-library-col-core,.cost-library-col-item-name,.cost-library-col-item-name input{color:#111827;color:var(--color-text)}.cost-library-col-item-name input{font-size:13px;font-weight:400}.cost-library-col-secondary input,.cost-library-col-secondary select,.cost-library-col-utility input,.cost-library-col-utility select{color:#4b5563;color:var(--color-text-secondary)}.cost-library-col-rate,.cost-library-col-utility{font-family:Roboto Mono,monospace;font-family:var(--font-mono)}.cost-library-table .cost-library-col-item-family,.cost-library-table .cost-library-col-specification,.cost-library-table .cost-library-col-unit{padding-left:10px}.cost-library-table .cost-library-col-item-family:before,.cost-library-table .cost-library-col-specification:before,.cost-library-table .cost-library-col-unit:before{background:#94a3b82e;bottom:7px;content:"";left:0;position:absolute;top:7px;width:1px}.cost-library-table .cost-library-group-end-classification,.cost-library-table .cost-library-group-end-details,.cost-library-table .cost-library-group-end-identity{padding-right:12px}.cost-library-table .table-col-actions{min-width:124px;padding-right:6px;white-space:nowrap;width:124px}.cost-library-header-cell,.cost-library-table .table-sort-button,.cost-library-table th{font-size:11px;line-height:1.18}.cost-library-table td{font-size:13px}.estimate-output-table td,.estimate-output-table th{position:relative}.estimate-output-table .estimate-output-col-room{width:120px}.estimate-output-table .estimate-output-col-stage{width:112px}.estimate-output-table .estimate-output-col-trade{width:120px}.estimate-output-table .estimate-output-col-item{width:280px}.estimate-output-table .estimate-output-col-qty{width:88px}.estimate-output-table .estimate-output-col-unit{width:76px}.estimate-output-table .estimate-output-col-rate{width:96px}.estimate-output-table .estimate-output-col-total{width:110px}.estimate-output-table .estimate-output-col-notes{width:180px}.estimate-output-table .estimate-output-col-item,.estimate-output-table .estimate-output-col-notes,.estimate-output-table .estimate-output-col-qty{padding-left:16px}.estimate-output-table .estimate-output-col-item:before,.estimate-output-table .estimate-output-col-notes:before,.estimate-output-table .estimate-output-col-qty:before{background:#94a3b82e;bottom:8px;content:"";left:0;position:absolute;top:8px;width:1px}.estimate-output-table .estimate-output-group-end-context,.estimate-output-table .estimate-output-group-end-identity,.estimate-output-table .estimate-output-group-end-values{padding-right:14px}.cost-library-row-actions{align-items:center;display:inline-flex;gap:4px;justify-content:flex-end;margin-left:auto;max-width:100%;position:relative;width:auto}.cost-library-row-action{align-items:center;background:#ffffffb8;border:1px solid #94a3b82e;border-radius:6px;color:#6b7280;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:12px;height:22px;justify-content:center;line-height:1;min-width:22px;opacity:.42;padding:0;transition:opacity .16s ease,border-color .16s ease,color .16s ease,background-color .16s ease;width:22px}.cost-library-row-action.is-delete,.cost-library-row-action:hover:not(:disabled),.cost-library-table tbody tr:hover .cost-library-row-action,.cost-library-table tbody tr:hover .cost-library-row-action.is-delete{background:#dc26260f;border-color:#dc262638;color:#dc2626;color:var(--color-error);opacity:1}.cost-library-row-action.is-active,.cost-library-table tbody tr:hover .cost-library-row-action.is-active{background:#2563eb14;border-color:#2563eb38;color:#1d4ed8}.cost-library-row-action:disabled{cursor:default;opacity:.28}.cost-library-link-popover{grid-gap:8px;background:#fff;border:1px solid #d7dee7;border-radius:10px;box-shadow:0 16px 30px #0f172a1f;display:grid;gap:8px;padding:10px;position:absolute;right:8px;top:calc(100% + 6px);width:260px;z-index:8}.cost-library-link-popover-label{color:#6b7280;color:var(--color-text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.cost-library-link-popover-actions{display:flex;gap:6px;justify-content:flex-end}.cost-library-note-textarea{min-height:74px;resize:vertical}.assembly-library-drawer-backdrop,.cost-library-drawer-backdrop{background:#0f172a38;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:40}.assembly-library-drawer,.cost-library-drawer{background:#fff;border-left:1px solid #d7dee7;box-shadow:-16px 0 32px #0f172a24;display:grid;grid-template-rows:auto 1fr;height:100%;width:min(460px,100vw)}.assembly-library-modal-backdrop{align-items:center;justify-content:center;padding:20px}.assembly-library-modal{border:1px solid #d7dee7;border-radius:14px;box-shadow:0 24px 48px #0f172a2e;height:auto;max-height:min(560px,calc(100vh - 32px));position:relative;width:min(420px,calc(100vw - 32px))}.assembly-library-item-modal{max-height:min(720px,calc(100vh - 32px));width:min(860px,calc(100vw - 32px))}.assembly-library-drawer-header,.cost-library-drawer-header{align-items:start;border-bottom:1px solid #e5e7eb;display:flex;gap:12px;justify-content:space-between;padding:18px 18px 14px}.assembly-library-drawer-header h3,.cost-library-drawer-header h3{color:#111827;color:var(--color-text);font-size:18px;font-weight:600;line-height:1.2;margin:4px 0 0}.assembly-library-drawer-kicker,.cost-library-drawer-kicker{color:#4b5563;color:var(--color-text-secondary);font-size:11px;letter-spacing:.04em;line-height:1.18;margin:0;text-transform:uppercase}.assembly-library-drawer-form,.cost-library-drawer-form{grid-gap:12px;display:grid;gap:12px;overflow-y:auto;padding:14px}.assembly-library-drawer-section,.cost-library-drawer-section{grid-gap:8px;display:grid;gap:8px}.assembly-library-drawer-field,.cost-library-drawer-field{grid-gap:4px;display:grid;gap:4px}.assembly-library-drawer-section-label,.cost-library-drawer-section-label{color:#4b5563;color:var(--color-text-secondary);font-size:11px;letter-spacing:.04em;line-height:1.18;text-transform:uppercase}.assembly-library-drawer-section .field,.cost-library-drawer-section .field{gap:3px}.cost-library-field-hint{color:#6b7280;color:var(--color-text-muted)}.assembly-library-drawer-section .field label,.cost-library-drawer-section .field label,.cost-library-field-hint{font-size:11px;line-height:1.18}.assembly-library-drawer-section input,.assembly-library-drawer-section select,.assembly-library-drawer-section textarea,.cost-library-drawer-section input,.cost-library-drawer-section select,.cost-library-drawer-section textarea{background:#fff;border:1px solid #d7dee7;border-radius:8px;font-size:13px;line-height:1.18;min-height:30px;padding:5px 8px}.assembly-library-drawer-actions,.cost-library-drawer-actions{align-items:center;display:flex;gap:12px;justify-content:space-between;padding-top:6px}.assembly-library-drawer-actions-right,.cost-library-drawer-actions-right{align-items:center;display:inline-flex;gap:8px}.assembly-library-drawer-delete{border-radius:8px;min-height:32px;min-width:auto;padding:0 12px}.assembly-library-group-delete{border-radius:8px}.assembly-library-item-modal-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-library-item-group{border:1px solid #dbe4ee;border-radius:12px;padding:10px}.assembly-library-item-group-primary{background:#f8fbfe}.assembly-library-item-group-secondary{background:#fbfaf7;border-color:#e7ddd0}@media (max-width:780px){.assembly-library-item-modal-grid{grid-template-columns:minmax(0,1fr)}.assembly-library-group-field,.assembly-library-group-row,.assembly-library-items-summary{grid-template-columns:1fr}.assembly-library-items-manager-layout{flex-direction:column}.assembly-library-item-detail-editable .room-template-fields-grid{grid-template-columns:1fr}.assembly-library-group-edit-row,.assembly-library-item-detail-actions{justify-content:flex-start}.assembly-library-item-detail-empty{flex:1 1 auto}}.cost-library-control-menu{position:relative}.cost-library-control-menu summary{align-items:center;background:#f8fafc;border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:10px;color:#111827;color:var(--color-text);cursor:pointer;display:inline-flex;list-style:none;min-height:32px;padding:6px 10px}.cost-library-control-menu summary::-webkit-details-marker{display:none}.cost-library-control-menu[open] summary{border-color:#2563eb47;border-color:var(--color-border-strong)}.cost-library-control-menu-panel{grid-gap:8px;background:#fff;border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 14px 32px #0f172a14;box-shadow:var(--shadow-elevated);display:grid;gap:8px;left:0;min-width:220px;padding:10px;position:absolute;top:calc(100% + 6px);z-index:5}.parameter-library-layout{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr)}.parameter-library-browser,.parameter-library-editor{grid-gap:16px;display:grid;gap:16px;min-width:0}.parameter-library-editor-card,.parameter-library-toolbar{grid-gap:14px;display:grid;gap:14px}.parameter-library-toolbar-top{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:minmax(260px,1.4fr) auto}.parameter-library-editor-actions,.parameter-library-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.parameter-library-editor-grid,.parameter-library-filter-grid{grid-gap:10px 12px;display:grid;gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.parameter-library-toolbar-meta{align-items:center;color:#4b5563;color:var(--color-text-secondary);display:flex;flex-wrap:wrap;font-size:13px;gap:12px}.parameter-library-group-controls{display:flex;flex-wrap:wrap;gap:8px}.parameter-library-groups{grid-gap:14px;display:grid;gap:14px}.parameter-library-group{--parameter-tone-bg:#f8fbff;--parameter-tone-bg-strong:#eef5ff;--parameter-tone-border:#94a3b842;--parameter-tone-chip-bg:#ffffffd1;--parameter-tone-chip-text:var(--color-text-secondary);--parameter-tone-key-bg:#2563eb14;--parameter-tone-key-border:#2563eb2e;--parameter-tone-key-text:#1d4ed8;grid-gap:10px;background:linear-gradient(180deg,var(--parameter-tone-bg-strong),var(--parameter-tone-bg));border:1px solid var(--parameter-tone-border);border-radius:18px;display:grid;gap:10px;padding:12px}.parameter-library-group-header{align-items:end;background:#0000;border:0;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:0;text-align:left;width:100%}.parameter-library-group-header-copy{min-width:0}.parameter-library-group-header h3{font-size:18px;margin:0}.parameter-library-editor-kicker,.parameter-library-group-header p{color:#6b7280;color:var(--color-text-muted);font-size:12px;letter-spacing:.04em;margin:0;text-transform:uppercase}.parameter-library-group-toggle{align-items:center;background:var(--parameter-tone-chip-bg);border:1px solid var(--parameter-tone-border);border-radius:999px;color:var(--parameter-tone-key-text);display:inline-flex;flex-shrink:0;font-size:12px;justify-content:center;line-height:1;min-height:24px;min-width:24px}.parameter-library-card-list{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.parameter-library-card{grid-gap:8px;align-items:start;background:#ffffffe6;border:1px solid var(--parameter-tone-border);border-radius:14px;cursor:pointer;display:grid;gap:8px;grid-template-columns:minmax(0,1fr);min-height:0;padding:8px 10px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.parameter-library-card.is-selected,.parameter-library-card:hover{border-color:color-mix(in srgb,var(--parameter-tone-key-text) 24%,#fff);box-shadow:0 10px 24px #0f172a14}.parameter-library-card.is-drag-over{background:var(--parameter-tone-bg-strong);border-color:color-mix(in srgb,var(--parameter-tone-key-text) 36%,#fff);transform:translateY(1px)}.parameter-library-card-main,.parameter-library-card-side{grid-gap:5px;display:grid;gap:5px}.parameter-library-card-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.parameter-library-card-title-row strong{color:#111827;color:var(--color-text);font-size:14px}.parameter-library-category-badge,.parameter-library-drag-chip,.parameter-library-key-chip{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;min-height:20px;padding:2px 7px;width:fit-content}.parameter-library-key-chip{background:var(--parameter-tone-key-bg);border:1px solid var(--parameter-tone-key-border);color:var(--parameter-tone-key-text);font-family:Roboto Mono,monospace;font-family:var(--font-mono)}.parameter-library-drag-chip{background:#ffffff7a;border:1px dashed #94a3b838;color:#6b7280;color:var(--color-text-muted);letter-spacing:.08em;margin-left:auto}.parameter-library-card-meta{grid-gap:2px 10px;display:grid;gap:2px 10px;grid-template-columns:repeat(2,minmax(0,1fr))}.parameter-library-meta-text{color:var(--parameter-tone-chip-text);font-size:11px;line-height:1.25}.parameter-library-editor{position:sticky;top:0}.parameter-library-editor-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.parameter-library-editor-header h3{font-size:20px;margin:4px 0 0}.parameter-library-toggle-row{align-items:center;display:flex}.parameter-library-checkbox{align-items:center;color:#111827;color:var(--color-text);display:inline-flex;font-weight:600;gap:8px}.parameter-library-editor-secondary{grid-gap:12px;background:#f8fafc;border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:14px;display:grid;gap:12px;padding:12px 14px}.parameter-library-editor-secondary summary{color:#4b5563;color:var(--color-text-secondary);cursor:pointer;font-weight:600}.parameter-library-editor-span-2{grid-column:span 2}.parameter-library-editor-card textarea{background:#fff;border:1px solid #cbc3b8;border-radius:10px;box-sizing:border-box;padding:10px 12px;resize:vertical;width:100%}.parameter-library-editor-category-preview{align-items:center;display:flex}.parameter-library-category-badge{background:var(--parameter-tone-chip-bg);border:1px solid var(--parameter-tone-border);color:var(--parameter-tone-chip-text)}.parameter-library-validation{color:#dc2626;color:var(--color-error);font-size:13px;font-weight:600;margin:0}.parameter-library-card[data-category-tone=core-geometry],.parameter-library-category-badge[data-category-tone=core-geometry],.parameter-library-editor-card[data-category-tone=core-geometry],.parameter-library-group[data-category-tone=core-geometry]{--parameter-tone-bg:#f6f9ff;--parameter-tone-bg-strong:#edf4ff;--parameter-tone-border:#608cc947;--parameter-tone-chip-bg:#f0f6ffe6;--parameter-tone-chip-text:#35506f;--parameter-tone-key-bg:#608cc91f;--parameter-tone-key-border:#608cc93d;--parameter-tone-key-text:#31537f}.parameter-library-card[data-category-tone=derived],.parameter-library-category-badge[data-category-tone=derived],.parameter-library-editor-card[data-category-tone=derived],.parameter-library-group[data-category-tone=derived]{--parameter-tone-bg:#f7f7fe;--parameter-tone-bg-strong:#eff0ff;--parameter-tone-border:#777bc247;--parameter-tone-chip-bg:#f3f3ffeb;--parameter-tone-chip-text:#4f537e;--parameter-tone-key-bg:#777bc21f;--parameter-tone-key-border:#777bc23d;--parameter-tone-key-text:#49518e}.parameter-library-card[data-category-tone=wet-area],.parameter-library-category-badge[data-category-tone=wet-area],.parameter-library-editor-card[data-category-tone=wet-area],.parameter-library-group[data-category-tone=wet-area]{--parameter-tone-bg:#f5fcfb;--parameter-tone-bg-strong:#ecf8f6;--parameter-tone-border:#58969142;--parameter-tone-chip-bg:#ecf8f6eb;--parameter-tone-chip-text:#3b6966;--parameter-tone-key-bg:#5896911f;--parameter-tone-key-border:#58969138;--parameter-tone-key-text:#2f7168}.parameter-library-card[data-category-tone=tiling],.parameter-library-category-badge[data-category-tone=tiling],.parameter-library-editor-card[data-category-tone=tiling],.parameter-library-group[data-category-tone=tiling]{--parameter-tone-bg:#fffaf2;--parameter-tone-bg-strong:#fdf4e5;--parameter-tone-border:#bf924c47;--parameter-tone-chip-bg:#fdf4e5eb;--parameter-tone-chip-text:#7b5a26;--parameter-tone-key-bg:#bf924c1f;--parameter-tone-key-border:#bf924c38;--parameter-tone-key-text:#8b6220}.parameter-library-card[data-category-tone=joinery],.parameter-library-category-badge[data-category-tone=joinery],.parameter-library-editor-card[data-category-tone=joinery],.parameter-library-group[data-category-tone=joinery]{--parameter-tone-bg:#fbf7f2;--parameter-tone-bg-strong:#f4ece2;--parameter-tone-border:#9d7c583d;--parameter-tone-chip-bg:#f4ece2e6;--parameter-tone-chip-text:#6a5137;--parameter-tone-key-bg:#9d7c581f;--parameter-tone-key-border:#9d7c5838;--parameter-tone-key-text:#765337}.parameter-library-card[data-category-tone=linings],.parameter-library-category-badge[data-category-tone=linings],.parameter-library-editor-card[data-category-tone=linings],.parameter-library-group[data-category-tone=linings]{--parameter-tone-bg:#f7f8fb;--parameter-tone-bg-strong:#edf0f5;--parameter-tone-border:#7884973d;--parameter-tone-chip-bg:#edf0f5eb;--parameter-tone-chip-text:#4e5969;--parameter-tone-key-bg:#7884971f;--parameter-tone-key-border:#78849738;--parameter-tone-key-text:#475566}.parameter-library-card[data-category-tone=waterproofing],.parameter-library-category-badge[data-category-tone=waterproofing],.parameter-library-editor-card[data-category-tone=waterproofing],.parameter-library-group[data-category-tone=waterproofing]{--parameter-tone-bg:#f2fbfe;--parameter-tone-bg-strong:#e6f7fc;--parameter-tone-border:#54a6be42;--parameter-tone-chip-bg:#e6f7fceb;--parameter-tone-chip-text:#2f6574;--parameter-tone-key-bg:#54a6be1f;--parameter-tone-key-border:#54a6be3d;--parameter-tone-key-text:#286c7c}.parameter-library-card[data-category-tone=plumbing],.parameter-library-category-badge[data-category-tone=plumbing],.parameter-library-editor-card[data-category-tone=plumbing],.parameter-library-group[data-category-tone=plumbing]{--parameter-tone-bg:#f5fbf6;--parameter-tone-bg-strong:#eaf5ec;--parameter-tone-border:#679c7242;--parameter-tone-chip-bg:#eaf5eceb;--parameter-tone-chip-text:#3d6346;--parameter-tone-key-bg:#679c721f;--parameter-tone-key-border:#679c7238;--parameter-tone-key-text:#356c43}.parameter-library-card[data-category-tone=electrical],.parameter-library-category-badge[data-category-tone=electrical],.parameter-library-editor-card[data-category-tone=electrical],.parameter-library-group[data-category-tone=electrical]{--parameter-tone-bg:#fffdf5;--parameter-tone-bg-strong:#fbf8e6;--parameter-tone-border:#bcab563d;--parameter-tone-chip-bg:#fbf8e6eb;--parameter-tone-chip-text:#72652d;--parameter-tone-key-bg:#bcab561f;--parameter-tone-key-border:#bcab5638;--parameter-tone-key-text:#7d6c23}.parameter-library-card[data-category-tone=hvac-ventilation],.parameter-library-category-badge[data-category-tone=hvac-ventilation],.parameter-library-editor-card[data-category-tone=hvac-ventilation],.parameter-library-group[data-category-tone=hvac-ventilation]{--parameter-tone-bg:#f4faff;--parameter-tone-bg-strong:#eaf5ff;--parameter-tone-border:#6da5cf42;--parameter-tone-chip-bg:#eaf5ffeb;--parameter-tone-chip-text:#41647f;--parameter-tone-key-bg:#6da5cf1f;--parameter-tone-key-border:#6da5cf3d;--parameter-tone-key-text:#3a6b91}.parameter-library-card[data-category-tone=finishes],.parameter-library-category-badge[data-category-tone=finishes],.parameter-library-editor-card[data-category-tone=finishes],.parameter-library-group[data-category-tone=finishes]{--parameter-tone-bg:#fff7f8;--parameter-tone-bg-strong:#fdeef1;--parameter-tone-border:#c178863d;--parameter-tone-chip-bg:#fdeef1eb;--parameter-tone-chip-text:#784653;--parameter-tone-key-bg:#c178861f;--parameter-tone-key-border:#c1788638;--parameter-tone-key-text:#8a4054}.parameter-library-card[data-category-tone=fixtures-fittings],.parameter-library-category-badge[data-category-tone=fixtures-fittings],.parameter-library-editor-card[data-category-tone=fixtures-fittings],.parameter-library-group[data-category-tone=fixtures-fittings]{--parameter-tone-bg:#faf6ff;--parameter-tone-bg-strong:#f2ebfc;--parameter-tone-border:#8e78b640;--parameter-tone-chip-bg:#f2ebfceb;--parameter-tone-chip-text:#5d4a79;--parameter-tone-key-bg:#8e78b61f;--parameter-tone-key-border:#8e78b638;--parameter-tone-key-text:#65488b}.parameter-library-card[data-category-tone=structure],.parameter-library-category-badge[data-category-tone=structure],.parameter-library-editor-card[data-category-tone=structure],.parameter-library-group[data-category-tone=structure]{--parameter-tone-bg:#f8f7f5;--parameter-tone-bg-strong:#efede8;--parameter-tone-border:#8c84783d;--parameter-tone-chip-bg:#efede8eb;--parameter-tone-chip-text:#5b544c;--parameter-tone-key-bg:#8c84781f;--parameter-tone-key-border:#8c847838;--parameter-tone-key-text:#62574b}.parameter-library-card[data-category-tone=exterior],.parameter-library-category-badge[data-category-tone=exterior],.parameter-library-editor-card[data-category-tone=exterior],.parameter-library-group[data-category-tone=exterior]{--parameter-tone-bg:#f5fbf8;--parameter-tone-bg-strong:#eaf6f0;--parameter-tone-border:#579c7c3d;--parameter-tone-chip-bg:#eaf6f0eb;--parameter-tone-chip-text:#3c6550;--parameter-tone-key-bg:#579c7c1f;--parameter-tone-key-border:#579c7c38;--parameter-tone-key-text:#2f6b4a}.parameter-library-card[data-category-tone=site-preliminaries],.parameter-library-category-badge[data-category-tone=site-preliminaries],.parameter-library-editor-card[data-category-tone=site-preliminaries],.parameter-library-group[data-category-tone=site-preliminaries]{--parameter-tone-bg:#fff8f2;--parameter-tone-bg-strong:#fdf0e2;--parameter-tone-border:#bf84503d;--parameter-tone-chip-bg:#fdf0e2eb;--parameter-tone-chip-text:#7a5227;--parameter-tone-key-bg:#bf84501f;--parameter-tone-key-border:#bf845038;--parameter-tone-key-text:#915520}.parameter-library-card[data-category-tone=openings],.parameter-library-category-badge[data-category-tone=openings],.parameter-library-editor-card[data-category-tone=openings],.parameter-library-group[data-category-tone=openings]{--parameter-tone-bg:#f9f6ff;--parameter-tone-bg-strong:#f1ebff;--parameter-tone-border:#866fc53d;--parameter-tone-chip-bg:#f1ebffeb;--parameter-tone-chip-text:#5a4f81;--parameter-tone-key-bg:#866fc51f;--parameter-tone-key-border:#866fc538;--parameter-tone-key-text:#62439a}.parameter-library-card[data-category-tone=labour-overheads],.parameter-library-category-badge[data-category-tone=labour-overheads],.parameter-library-editor-card[data-category-tone=labour-overheads],.parameter-library-group[data-category-tone=labour-overheads]{--parameter-tone-bg:#f8f8f8;--parameter-tone-bg-strong:#efefef;--parameter-tone-border:#80808038;--parameter-tone-chip-bg:#efefefeb;--parameter-tone-chip-text:#555;--parameter-tone-key-bg:#8080801f;--parameter-tone-key-border:#80808033;--parameter-tone-key-text:#4f4f4f}.parameter-library-card[data-category-tone=general-misc],.parameter-library-category-badge[data-category-tone=general-misc],.parameter-library-editor-card[data-category-tone=general-misc],.parameter-library-group[data-category-tone=general-misc]{--parameter-tone-bg:#fafafa;--parameter-tone-bg-strong:#f2f2f2;--parameter-tone-border:#94a3b838;--parameter-tone-chip-bg:#f2f2f2eb;--parameter-tone-chip-text:#5b6675;--parameter-tone-key-bg:#94a3b81f;--parameter-tone-key-border:#94a3b833;--parameter-tone-key-text:#4f5f73}.cost-library-columns-panel{min-width:320px}.cost-library-column-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(72px,1fr) minmax(120px,1.2fr) auto}.cost-library-column-row span{color:#4b5563;color:var(--color-text-secondary);font-size:12px}.cost-library-column-row-actions{display:inline-flex;gap:4px}.custom-item-form,.custom-item-room,.estimate-builder-section,.estimate-group,.library-form-card,.library-table-panel,.section-card,.summary-card,.summary-section{background:#fff;border-color:#d7dee7;box-shadow:0 10px 24px #0f172a0f}.library-page{--library-tint-rgb:148,163,184;--library-form-bg:linear-gradient(180deg,rgba(var(--library-tint-rgb),0.12),#fffffff5);--library-form-border:rgba(var(--library-tint-rgb),0.32);--library-table-bg:linear-gradient(180deg,rgba(var(--library-tint-rgb),0.08),#fffffffa);--library-table-border:rgba(var(--library-tint-rgb),0.24);--library-header-bg:rgba(var(--library-tint-rgb),0.1);--library-row-hover:rgba(var(--library-tint-rgb),0.08);--library-chip-bg:rgba(var(--library-tint-rgb),0.12);--library-chip-color:#334155;align-items:start;gap:24px;grid-template-columns:260px 760px;justify-content:start;max-width:1044px;width:1044px}.library-page-elements{--library-tint-rgb:96,123,153;--library-chip-color:#35506b}.library-page-units{--library-tint-rgb:99,102,241;--library-chip-color:#4338ca}.library-page-item-families{--library-tint-rgb:147,51,234;--library-chip-color:#7e22ce}.library-page-cost-codes{--library-tint-rgb:34,197,94;--library-chip-color:#166534}.library-page-trades{--library-tint-rgb:20,184,166;--library-chip-color:#0f766e}.library-page-stages{--library-tint-rgb:245,158,11;--library-chip-color:#b45309}.library-page .library-form-card{background:var(--library-form-bg);border-color:var(--library-form-border);border-radius:16px;box-shadow:0 12px 28px #0f172a0d;gap:10px;max-width:260px;min-width:0;padding:12px 14px;width:260px}.library-page .library-table-panel{background:var(--library-table-bg);border:1px solid var(--library-table-border);border-radius:16px;box-shadow:0 12px 28px #0f172a0d;gap:10px;justify-self:start;max-width:760px;min-width:0;padding:8px;width:760px}.library-page .library-table-panel .table-wrap{background:#fff;border:1px solid #94a3b824;border-radius:14px;box-sizing:border-box;margin:0;max-width:100%;overflow-x:hidden;overflow-y:hidden;padding-right:0;width:100%}.library-page .library-form-grid{gap:8px 10px;grid-template-columns:repeat(auto-fit,minmax(108px,1fr))}.library-page .library-form-card .field{gap:3px}.library-page .library-form-card .field label{color:#64748b;font-size:11px}.library-form-narrow{max-width:112px}.library-form-medium{max-width:172px}.library-page .library-form-card .field input,.library-page .library-form-card .field select{background:#ffffffeb;border-color:#94a3b83d;border-radius:10px;font-size:12px;min-height:32px;padding:6px 9px}.library-page .library-form-actions-top{gap:6px}.library-page .library-form-actions .primary-button,.library-page .library-form-actions-top .secondary-button{min-height:32px;padding:6px 10px}.library-page .data-table{max-width:100%;min-width:0;table-layout:fixed;width:100%}.library-page .data-table th{background:var(--library-header-bg);color:#64748b;font-size:10px;font-weight:700;letter-spacing:.06em;padding:8px 10px;text-transform:uppercase}.library-page .data-table td{color:#475569;font-size:12px;padding:7px 10px;vertical-align:middle}.library-page .data-table tbody tr:nth-child(2n) td{background:#ffffffc2}.library-page .data-table tbody tr:hover td{background:var(--library-row-hover)}.library-page .data-table input,.library-page .data-table select{background:#0000;border:1px solid #0000;border-radius:8px;box-shadow:none;font-size:12px;min-height:30px;padding:5px 8px}.library-page .data-table input:hover,.library-page .data-table select:hover{background:#f8fafceb;border-color:#94a3b838}.library-page .data-table input:focus,.library-page .data-table select:focus{background:#fff;border-color:#3b82f642;box-shadow:0 0 0 2px #2563eb14}.library-page .data-table .danger-button,.library-page .data-table .secondary-button{border-radius:9px;min-height:30px;opacity:1;padding:6px 10px}.library-page .table-col-flex,.library-page .table-col-wide{min-width:160px;width:auto}.library-page .table-col-wide input{color:#1f2937;font-weight:600}.library-page .table-col-code{width:88px}.library-page .table-col-code input,.library-page .table-col-number input{font-family:Roboto Mono,monospace;font-family:var(--font-mono);text-align:center}.library-page .table-col-code input{font-weight:700;letter-spacing:.04em;max-width:92px;text-transform:uppercase}.library-page .table-col-medium{width:88px}.library-page .table-col-medium input,.library-page .table-col-medium select{max-width:none}.library-page .table-col-narrow{width:72px}.library-page .table-col-narrow input,.library-page .table-col-narrow select{max-width:none}.library-page .table-col-number{width:56px}.library-page .table-col-number input{max-width:none}.library-page .table-col-color{width:110px}.library-page .table-col-color .color-swatch-picker{justify-content:flex-start}.library-page .table-col-actions{min-width:88px;text-align:right;width:88px}.library-page .table-col-actions .action-row{gap:8px;justify-content:flex-end}.library-page-cost-codes .library-form-medium input[placeholder=S10],.library-page-cost-codes .table-col-code input,.library-page-units .table-col-code input{background:var(--library-chip-bg);color:var(--library-chip-color)}.library-page-stages .table-col-wide input{font-weight:700}.library-page .table-col-actions,.library-page .table-col-code,.library-page .table-col-color,.library-page .table-col-medium,.library-page .table-col-narrow,.library-page .table-col-number{overflow:visible}.library-page .data-table td:last-child,.library-page .data-table th:last-child,.library-page .table-col-actions:last-child{padding-right:12px}.library-page-elements .table-col-wide,.library-page-item-families .table-col-wide{width:544px}.library-page-units .table-col-wide{width:456px}.library-page-cost-codes .table-col-code{width:88px}.library-page-cost-codes .table-col-wide{width:130px}.library-page-cost-codes .table-col-medium{width:70px}.library-page-cost-codes .table-col-number{width:56px}.library-page-cost-codes .table-col-narrow{width:72px}.library-page-cost-codes .table-col-actions{min-width:88px;width:88px}.library-page-trades .table-col-wide{width:190px}.library-page-trades .table-col-medium{width:88px}.library-page-trades .table-col-number{width:56px}.library-page-trades .table-col-narrow{width:72px}.library-page-trades .table-col-actions{min-width:88px;width:88px}.library-page-stages .table-col-wide{min-width:360px;width:360px}.library-page-stages .table-col-number{width:60px}.library-page-stages .table-col-narrow{width:90px}.library-page-stages .table-col-color{width:140px}.library-page-stages .table-col-actions{min-width:90px;width:90px}@media (max-width:1100px){.library-page{grid-template-columns:1fr}.library-page,.library-page .data-table,.library-page .library-form-card,.library-page .library-table-panel,.library-page .library-table-panel .table-wrap{max-width:100%;width:100%}.library-page .library-table-panel .table-wrap{overflow-x:auto}.library-form-medium,.library-form-narrow{max-width:none}}.project-save-state.is-saved{background:#16a34a1a;color:#166534}.project-save-state.is-dirty{background:#d977061a;color:#9a3412}.sidebar-status{color:#2563eb}.home-page{grid-gap:32px;display:grid;gap:32px;max-width:1240px}.home-hero,.home-showcase{grid-gap:20px;align-items:stretch;display:grid;gap:20px;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr)}.home-cta,.home-hero-copy,.home-preview-window,.home-showcase-summary,.home-showcase-table{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:24px;box-shadow:0 14px 32px #0f172a14;box-shadow:var(--shadow-elevated);padding:28px}.home-brand-lockup{grid-gap:6px;display:grid;gap:6px}.home-brand-wordmark{font-size:clamp(42px,7vw,72px);font-weight:700;letter-spacing:-.06em;margin:0}.home-cta h2,.home-hero-text h1,.home-section-heading h2{font-size:clamp(30px,4.5vw,52px);letter-spacing:-.05em;line-height:1.04;margin:0}.home-card-copy,.home-cta p,.home-hero-text p{color:#4b5563;color:var(--color-text-secondary);font-size:16px;line-height:1.6;margin:0;max-width:520px}.home-hero-copy{grid-gap:18px;align-content:center;display:grid;gap:18px}.home-preview-panel{display:grid}.home-feature-grid,.home-preview-metrics,.home-preview-window,.home-showcase-totals,.home-steps-grid{grid-gap:16px;display:grid;gap:16px}.home-feature-grid,.home-preview-metrics,.home-showcase-totals,.home-steps-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.home-preview-metric-card,.home-step-card{background:#f8fafc;border:1px solid #d7dee7;border:1px solid var(--color-border);border-radius:18px;padding:18px}.home-preview-footer p,.home-preview-metric-card p,.home-section-heading p,.home-showcase-row-header,.home-showcase-summary p{color:#6b7280;color:var(--color-text-muted);font-size:12px;letter-spacing:.08em;margin:0;text-transform:uppercase}.home-preview-footer strong,.home-preview-metric-card strong,.home-showcase-summary strong,.home-step-card strong{color:#111827;color:var(--color-text);font-size:22px}.home-preview-metric-card span,.home-preview-table-row span,.home-showcase-row span{color:#4b5563;color:var(--color-text-secondary)}.home-preview-table,.home-showcase-table{grid-gap:8px;display:grid;gap:8px}.home-preview-table-header,.home-preview-table-row,.home-showcase-row{grid-gap:12px;align-items:center;background:#f8fafc;border-radius:16px;display:grid;gap:12px;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(80px,.6fr));padding:12px 14px}.home-showcase-row{grid-template-columns:minmax(0,1.4fr) minmax(100px,.8fr) minmax(100px,.8fr)}.home-preview-footer{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between}.home-section{grid-gap:18px;display:grid;gap:18px}.home-feature-strip{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.home-feature-card{grid-gap:6px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 12px #0f172a0a;color:#111827;color:var(--color-text);display:grid;gap:6px;padding:18px 20px;transition:background-color .18s ease,border-color .18s ease}.home-feature-card h3{color:#111827;color:var(--color-text);font-size:16px;font-weight:600}.home-feature-card h3,.home-feature-card p{font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font-body);margin:0}.home-feature-card p{color:#4b5563;color:var(--color-text-secondary);font-size:14px;line-height:1.45}.home-feature-card:hover{background:#f8fafc;border-color:#cbd5e1}.home-section-heading{grid-gap:8px;align-content:start;display:grid;gap:8px}.home-step-card{grid-gap:14px;display:grid;gap:14px}.home-step-card span{color:#2563eb;color:var(--color-primary);font-size:18px}.home-summary-chip{align-items:center;background:#16a34a1f;border-radius:999px;color:#166534;display:inline-flex;font-size:12px;font-weight:600;min-height:30px;padding:4px 12px;width:fit-content}.is-positive{color:#16a34a;color:var(--color-success)}.is-warning{color:#d97706;color:var(--color-warning)}.home-cta{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}@media (max-width:1100px){.cost-library-form-footer,.cost-library-form-grid-primary,.cost-library-form-grid-secondary,.cost-library-toolbar-grid,.cost-library-topbar,.home-feature-strip,.home-hero,.home-showcase{grid-template-columns:1fr}.cost-library-control-band{align-items:stretch}.cost-library-control-menu-panel{box-shadow:none;min-width:0;position:static}.parameter-library-layout,.parameter-library-toolbar-top{grid-template-columns:1fr}.parameter-library-editor{position:static}}@media (max-width:900px){.sidebar-brand{padding-right:12px}.home-preview-table-header,.home-preview-table-row,.home-showcase-row,.parameter-library-card,.parameter-library-card-title-row{grid-template-columns:1fr}.parameter-library-card-side{justify-items:start}.parameter-library-editor-span-2{grid-column:auto}}.estimate-workspace{grid-gap:2px;display:grid;gap:2px}.estimate-workspace-switcher-row{align-items:center;display:flex;min-height:36px}.estimate-workspace-view-toggle,.workspace-view-switcher{align-items:center;background:linear-gradient(180deg,#fffffff5,#f5f0eafa);border:1px solid #ddd4c8;border-radius:999px;box-shadow:inset 0 1px 0 #ffffffd9;box-sizing:border-box;display:inline-flex;flex-wrap:nowrap;gap:6px;min-height:44px;padding:4px;white-space:nowrap}.estimate-workspace-view-button,.workspace-view-switcher__button{align-items:center;appearance:none;background:#0000;border:1px solid #0000;border-radius:999px;box-sizing:border-box;color:#5e665e;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;height:36px;justify-content:center;letter-spacing:.01em;line-height:1;min-height:36px;padding:0 16px;transition:background-color .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease;white-space:nowrap}.estimate-workspace-view-button:hover,.workspace-view-switcher__button:hover{background:#ffffffb8;color:#2f3a33}.estimate-workspace-view-button:focus-visible,.workspace-view-switcher__button:focus-visible{border-color:#35463d33;box-shadow:0 0 0 3px #76847929;outline:none}.estimate-workspace-view-button.active,.workspace-view-switcher__button.active,.workspace-view-switcher__button.is-active{background:#1f2937;border-color:#1f2937;box-shadow:inset 0 1px 0 #ffffff14,0 1px 2px #1f293729;color:#fdfcf9}.estimate-workspace-canvas-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;min-height:36px}.estimate-workspace-canvas-toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.estimate-workspace-search{background:#fff;border:1px solid #d4cdc1;border-radius:12px;box-sizing:border-box;min-height:36px;min-width:220px;padding:8px 12px;width:min(320px,100%)}.estimate-workspace-canvas-toolbar-search{flex:1 1 240px;max-width:320px}.estimate-workspace-add-menu summary,.estimate-workspace-filter-button{box-sizing:border-box;height:36px;list-style:none;min-height:36px}.estimate-workspace-add-menu{position:relative}.estimate-workspace-add-menu summary::-webkit-details-marker{display:none}.estimate-workspace-add-menu-panel{grid-gap:10px;background:#fffdf9;border:1px solid #ded8cf;border-radius:14px;box-shadow:0 14px 28px #2a302b1f;display:grid;gap:10px;padding:14px;position:absolute;right:0;top:calc(100% + 8px);width:240px;z-index:3}.estimate-workspace-add-menu-panel p{color:#6b7280;line-height:1.45;margin:0}.estimate-workspace-add-card-modal{display:grid;inset:0;padding:32px 20px;place-items:center;position:fixed;z-index:80}.estimate-workspace-add-card-backdrop{background:#0f172a57;border:0;cursor:pointer;inset:0;position:absolute}.estimate-workspace-add-card-panel{grid-gap:18px;background:linear-gradient(180deg,#fffffffa,#fdf9f2fa);border:1px solid #d6cec2e6;border-radius:24px;box-shadow:0 26px 64px #0f172a38;display:grid;gap:18px;grid-template-rows:auto minmax(0,1fr) auto;max-height:min(760px,calc(100vh - 40px));overflow:hidden;padding:22px 22px 18px;position:relative;width:min(860px,calc(100vw - 32px));z-index:1}.estimate-workspace-add-card-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.estimate-workspace-add-card-header h3{color:#1f2937;font-size:1.2rem;line-height:1.2;margin:4px 0 0}.estimate-workspace-add-card-kicker{align-items:center;background:#216e571f;border-radius:999px;color:#216e57;display:inline-flex;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:4px 10px;text-transform:uppercase}.estimate-workspace-add-card-body{grid-gap:18px;align-items:start;display:grid;gap:18px;grid-template-columns:minmax(240px,300px) minmax(0,1fr);min-height:0}.estimate-workspace-add-card-assembly-list{grid-gap:10px;display:grid;gap:10px;max-height:100%;min-height:0;overflow:auto;padding-right:4px}.estimate-workspace-add-card-assembly-option{grid-gap:4px;background:#ffffffeb;border:1px solid #d1d5dbf2;border-radius:16px;box-shadow:0 8px 18px #0f172a0a;color:#1f2937;display:grid;gap:4px;padding:14px 14px 13px;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease,background-color .14s ease;width:100%}.estimate-workspace-add-card-assembly-option strong{font-size:.97rem;font-weight:700;line-height:1.3}.estimate-workspace-add-card-assembly-option span{color:#6b7280;font-size:.82rem;line-height:1.35}.estimate-workspace-add-card-assembly-option:hover{border-color:#7d92aa6b;box-shadow:0 10px 20px #0f172a14;transform:translateY(-1px)}.estimate-workspace-add-card-assembly-option.is-selected{background:linear-gradient(180deg,#edf8f4fa,#f8fcfafa);border-color:#1c6350a6;box-shadow:inset 0 0 0 1px #1c63501f,0 14px 28px #216e571f}.estimate-workspace-add-card-grid{grid-gap:14px;align-content:start;display:grid;gap:14px}.estimate-workspace-add-card-summary{grid-gap:6px;background:linear-gradient(180deg,#f8fcfafa,#f3f8f6fa);border:1px solid #dce3ddf2;border-radius:18px;display:grid;gap:6px;padding:16px}.estimate-workspace-add-card-summary strong{color:#1f2937}.estimate-workspace-add-card-summary span{color:#5b6472;line-height:1.45}.estimate-workspace-add-card-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end}.estimate-workspace-filter-panel{background:#fffdf9;border:1px solid #ded8cf;border-radius:14px;box-shadow:0 8px 18px #2a302b0a;padding:14px 16px}.estimate-workspace-filter-grid{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.estimate-workspace-filter-actions{display:flex;justify-content:flex-end}.estimate-workspace-shell{padding:0}.estimate-builder-shell{background:#0000;border:0;border-radius:0;box-shadow:none;padding:0}.estimate-builder-shell .estimate-builder-tree-panel{box-sizing:border-box;gap:2px;padding:0 6px 0 14px}.estimate-builder-shell .estimate-builder-section{grid-gap:2px;background:#0000;border:0;border-radius:0;border-top:1px solid #e2e8f0;box-shadow:none;display:grid;gap:2px;padding:1px 0 0}.estimate-builder-shell .estimate-builder-section:first-child{border-top:0;padding-top:0}.estimate-builder-shell .estimate-builder-section--nested{border-top-color:#edf2f7}.estimate-builder-shell .estimate-builder-section--main.estimate-builder-section--tone-0{background:linear-gradient(180deg,#e8eff6c7,#f1f5f92e);box-shadow:inset 2px 0 0 #7d92aa57}.estimate-builder-shell .estimate-builder-section--main.estimate-builder-section--tone-1{background:linear-gradient(180deg,#f4eee7d1,#f7f3ee2e);box-shadow:inset 2px 0 0 #ac9a864d}.estimate-builder-shell .estimate-builder-section--main.estimate-builder-section--tone-2{background:linear-gradient(180deg,#e8f2eccc,#f0f6f22e);box-shadow:inset 2px 0 0 #809d8d4d}.estimate-builder-shell .estimate-builder-section-header{grid-gap:8px 12px;align-items:center;border-radius:8px;display:grid;gap:8px 12px;grid-template-columns:minmax(260px,1fr) auto;padding:4px 0;transition:background-color .18s ease,box-shadow .18s ease}.estimate-builder-shell .estimate-builder-group-title,.estimate-builder-shell .estimate-builder-section-title{flex:initial;gap:6px;min-width:0;padding-left:0}.estimate-builder-shell .estimate-builder-section-meta{gap:6px;justify-content:flex-end}.estimate-builder-shell .estimate-builder-section-grid,.estimate-builder-shell .estimate-builder-sheet-scroll{gap:1px}.estimate-builder-shell .estimate-builder-global-header{border-bottom:1px solid #dbe3ec;margin:0 6px 2px 14px}.estimate-builder-shell .estimate-builder-global-header .estimate-builder-grid-header{border-bottom:0}.estimate-builder-shell .estimate-builder-grid-header .estimate-builder-grid-cell{align-items:center;background:#fcfaf6f0;min-height:30px;padding-bottom:0;padding-top:0}.estimate-builder-shell .estimate-builder-grid-row{background:#0000;transition:background-color .18s ease,box-shadow .18s ease}.estimate-builder-shell .estimate-builder-grid-row:nth-child(2n){background:#f8fafc85}.estimate-builder-shell .estimate-builder-grid-row:hover{background:#f1f5f9e6}.estimate-builder-shell .estimate-builder-grid-cell{align-items:center;min-height:38px;padding-bottom:1px;padding-top:1px}.estimate-builder-shell .estimate-builder-room-header{background:#0000;border-bottom-color:#e2e8f0cc;border-radius:8px;min-height:34px;padding:1px 0;transition:background-color .18s ease,box-shadow .18s ease}.estimate-builder-shell .estimate-builder-assembly-block .estimate-builder-room-header{background:#0000;border-bottom-color:#edf2f7f2}.estimate-builder-shell .estimate-builder-room-header .estimate-builder-group-title{grid-column:1/span 2;padding:0 6px 0 0}.estimate-builder-shell .estimate-builder-room-header .estimate-builder-room-meta{padding:0 6px 0 10px}.estimate-builder-shell .estimate-builder-assembly-block .estimate-builder-group-name-input,.estimate-builder-shell .estimate-builder-room-block .estimate-builder-group-name-input{font-size:13px;line-height:1.2}.estimate-builder-shell .estimate-builder-section--main .estimate-builder-group-name-input{color:#1f2937;font-size:14px;font-weight:600}.estimate-builder-shell .estimate-builder-section--child .estimate-builder-section-title{padding-left:24px}.estimate-builder-shell .estimate-builder-section--child .estimate-builder-group-name-input{color:#475569;font-size:13px;font-weight:500}.estimate-builder-shell .estimate-builder-room-block .estimate-builder-group-name-input{color:#334155;font-size:14px;font-weight:600}.estimate-builder-shell .estimate-builder-assembly-block .estimate-builder-group-name-input{color:#475569;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.estimate-builder-shell .estimate-builder-section-header:hover{background:#f1f5f99e}.estimate-builder-shell .estimate-builder-room-header:hover{background:#f1f5f9b8}.estimate-builder-shell .estimate-builder-assembly-block .estimate-builder-room-header:hover{background:#f8fafcf0}.estimate-builder-shell .estimate-builder-grid-row:focus-within,.estimate-builder-shell .estimate-builder-room-header:focus-within,.estimate-builder-shell .estimate-builder-section-header:focus-within{background:#e2e8f0b8;box-shadow:inset 2px 0 0 #94a3b8}.estimate-builder-shell .estimate-builder-grid-row:active,.estimate-builder-shell .estimate-builder-room-header:active,.estimate-builder-shell .estimate-builder-section-header:active{background:#e2e8f0e0}.estimate-builder-shell .estimate-group-toggle{align-items:center;background:#0000;border:0;color:#64748b;display:inline-flex;flex:0 0 auto;gap:0;justify-content:center;line-height:1;min-height:18px;min-width:18px;padding:0}.estimate-builder-shell .estimate-group-toggle span:first-child{align-items:center;background:#0000;border:0;color:currentColor;display:inline-flex;font-size:15px;height:16px;justify-content:center;line-height:1;min-width:16px;transform:rotate(0deg);transform-origin:50% 50%;transition:transform .16s ease,color .16s ease;width:16px}.estimate-builder-shell .estimate-group-toggle--main-section span:first-child{color:#334155;font-size:18px;height:18px;min-width:18px;width:18px}.estimate-builder-shell .estimate-group-toggle--subsection span:first-child{color:#64748b;font-size:16px;height:16px;min-width:16px;width:16px}.estimate-builder-shell .estimate-group-toggle--child-section span:first-child{color:#94a3b8;font-size:14px;height:14px;min-width:14px;width:14px}.estimate-builder-shell .estimate-group-toggle.is-expanded span:first-child{transform:rotate(90deg)}.estimate-builder-shell .estimate-builder-room-meta{color:#7c8796;font-size:11px;line-height:1.2}.estimate-builder-shell .estimate-builder-generated-row .estimate-builder-col-core,.estimate-builder-shell .estimate-builder-manual-row .estimate-builder-col-core{padding-left:36px}.estimate-builder-shell .estimate-builder-generated-row .estimate-builder-core-input,.estimate-builder-shell .estimate-builder-generated-row .estimate-builder-item-primary,.estimate-builder-shell .estimate-builder-manual-row .estimate-builder-core-input,.estimate-builder-shell .estimate-builder-manual-row .estimate-builder-item-primary{font-weight:400}.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell,.estimate-builder-shell .estimate-builder-room-header .estimate-builder-group-name-input,.estimate-builder-shell .estimate-builder-section-header .estimate-builder-group-name-input{transition:background-color .18s ease,border-color .18s ease,color .18s ease}.estimate-builder-shell .estimate-builder-grid-row:hover .estimate-builder-grid-cell{background:#0000}.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(button:focus-visible),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(button:hover),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(input:focus),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(input:hover),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(select:focus),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(select:hover),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(textarea:focus),.estimate-builder-shell .estimate-builder-grid-row .estimate-builder-grid-cell:has(textarea:hover){background:#ffffffc7}.estimate-builder-shell .estimate-builder-row-actions .danger-button,.estimate-builder-shell .estimate-builder-row-actions .estimate-builder-icon-button,.estimate-builder-shell .estimate-builder-row-actions .secondary-button{opacity:.68;transition:opacity .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}.estimate-builder-shell .estimate-builder-grid-row:focus-within .danger-button,.estimate-builder-shell .estimate-builder-grid-row:focus-within .estimate-builder-icon-button,.estimate-builder-shell .estimate-builder-grid-row:focus-within .secondary-button,.estimate-builder-shell .estimate-builder-grid-row:hover .danger-button,.estimate-builder-shell .estimate-builder-grid-row:hover .estimate-builder-icon-button,.estimate-builder-shell .estimate-builder-grid-row:hover .secondary-button{opacity:1}.estimate-builder-shell .estimate-builder-room-block .estimate-builder-group-title{padding-left:0}.estimate-builder-shell .estimate-builder-assembly-block .estimate-builder-group-title{padding-left:12px}.estimate-builder-shell .estimate-builder-assembly-block .estimate-builder-room-header .estimate-builder-room-meta span:first-child{color:#94a3b8}.estimate-workspace-topbar{align-items:center;display:inline-flex;gap:10px;justify-content:flex-end;min-width:0;overflow:hidden;white-space:nowrap;width:100%}.estimate-workspace-topbar__identity{align-items:center;display:inline-flex;gap:8px;margin-right:8px;min-width:0}.estimate-workspace-topbar__estimate-name{color:#1f2520;font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-workspace-topbar__estimate-revision{align-items:center;background:#fffdf9e0;border:1px solid #d8d1c5;border-radius:999px;color:#5f665f;display:inline-flex;font-family:Roboto Mono,monospace;font-size:11px;line-height:1;min-height:22px;padding:0 8px}.estimate-workspace-topbar__controls{align-items:center;display:inline-flex;gap:6px;justify-content:flex-end;margin-left:auto;min-width:0}.estimate-workspace-topbar__controls--builder{flex:1 1 auto}.estimate-workspace-topbar-button,.estimate-workspace-topbar-search,.estimate-workspace-topbar-select{box-sizing:border-box;height:32px;min-height:32px}.estimate-workspace-topbar-search{border-radius:10px;min-width:150px;padding:6px 10px;width:150px}.estimate-workspace-topbar-select{background:#fff;border:1px solid #d4cdc1;border-radius:10px;color:#1f2520;min-width:84px;padding:0 10px}.estimate-workspace-topbar-button{border-radius:10px;padding:0 10px;white-space:nowrap}.estimate-builder-toolbar-menu,.estimate-workspace-topbar-menu{position:relative}.estimate-builder-toolbar-menu summary::-webkit-details-marker,.estimate-workspace-topbar-menu summary::-webkit-details-marker{display:none}.estimate-workspace-topbar-menu-panel{min-width:280px;position:absolute;right:0;top:calc(100% + 8px);z-index:12}.estimate-builder-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a29;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:25}.estimate-builder-modal{background:#fffdf9;border:1px solid #ded8cf;border-radius:16px;box-shadow:0 18px 42px #2a302b29;max-height:calc(100vh - 32px);overflow:auto;width:min(560px,calc(100vw - 32px))}.estimate-builder-modal--wide{width:min(760px,calc(100vw - 32px))}.estimate-builder-modal-form{grid-gap:14px;display:grid;gap:14px;padding:16px}.estimate-builder-modal-content{grid-gap:12px;display:grid;gap:12px}.estimate-builder-modal-subtitle{color:#6b7280;font-size:13px;margin:4px 0 0}.estimate-builder-modal-actions,.estimate-builder-modal-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.estimate-canvas-layout,.estimate-canvas-shell,.estimate-timeline-layout,.estimate-timeline-shell{grid-gap:12px;display:grid;gap:12px}.estimate-canvas-shell,.estimate-timeline-shell{background:#fffdf9;border:1px solid #ded8cf;border-radius:18px;box-shadow:0 10px 24px #2a302b0d;padding:16px}.estimate-canvas-utility-row,.estimate-timeline-utility-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;min-height:32px}.estimate-timeline-empty h3,.estimate-workspace-view-label{margin:0}.estimate-workspace-view-label{color:#2c241c;font-size:14px;font-weight:700;letter-spacing:.01em}.estimate-timeline-summary{display:inline-flex;flex-wrap:wrap;gap:8px}.estimate-timeline-summary span{align-items:center;background:#faf7f2;border:1px solid #ddd6cb;border-radius:999px;color:#4b5563;display:inline-flex;font-size:12px;font-weight:600;min-height:32px;padding:0 12px}.estimate-timeline-frame{background:linear-gradient(180deg,#fffdf9fa,#f9f6f0fa);border:1px solid #ddd6cb;border-radius:20px;overflow:hidden}.estimate-timeline-main{display:grid}.estimate-timeline-grid-header{background:#ffffffe0;border-bottom:1px solid #e6e0d5;display:grid;grid-template-columns:320px minmax(0,1fr)}.estimate-timeline-left-header,.estimate-timeline-row-meta{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1.8fr) minmax(120px,.9fr) minmax(120px,1fr);padding:14px 16px}.estimate-timeline-left-header{color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.estimate-timeline-row-grid,.estimate-timeline-week-header{display:grid;grid-template-columns:repeat(var(--timeline-week-count),minmax(56px,1fr))}.estimate-timeline-week-cell{align-items:center;border-left:1px solid #eee7dc;color:#6b7280;display:flex;font-size:12px;font-weight:700;justify-content:center;min-height:54px}.estimate-timeline-group+.estimate-timeline-group{border-top:1px solid #e6e0d5}.estimate-timeline-group-header{align-items:center;background:#f5f0e8eb;border-bottom:1px solid #ece4d7;display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.estimate-timeline-group-header strong{color:#2c241c}.estimate-timeline-group-header span{color:#7a746c;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.estimate-timeline-row{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:62px}.estimate-timeline-row+.estimate-timeline-row{border-top:1px solid #f0e8dc}.estimate-timeline-row-meta{background:#ffffffd1}.estimate-timeline-row-meta-primary{grid-gap:8px;display:grid;gap:8px;min-width:0}.estimate-timeline-row-meta strong{color:#1f2937;font-size:14px}.estimate-timeline-row-meta span{color:#6b7280;font-size:13px}.estimate-timeline-row-controls{display:inline-flex;flex-wrap:wrap;gap:8px}.estimate-timeline-row-controls label{grid-gap:4px;display:grid;gap:4px}.estimate-timeline-row-controls label span{color:#7a746c;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.estimate-timeline-row-controls input{background:#fffdf9;border:1px solid #d6cec2;border-radius:10px;color:#111827;font-size:13px;font-weight:600;min-height:32px;padding:6px 8px;width:72px}.estimate-timeline-row-grid{align-items:stretch;background:repeating-linear-gradient(to right,#e5ded2e0 0,#e5ded2e0 1px,#0000 1px,#0000 calc(100%/var(--timeline-week-count))),linear-gradient(180deg,#fff9,#faf6efb8);padding:8px 0;position:relative}.estimate-timeline-row-cell{min-height:46px}.estimate-timeline-bar{align-items:center;background:linear-gradient(135deg,#111827,#334155);border-radius:999px;box-shadow:0 10px 18px #0f172a24;color:#fff;cursor:grab;display:flex;font-size:12px;font-weight:700;justify-content:space-between;margin:6px;min-height:34px;padding:0 12px;position:relative;z-index:1}.estimate-timeline-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-timeline-bar.is-active{box-shadow:0 14px 28px #0f172a33;cursor:grabbing}.estimate-timeline-bar-handle{background:#ffffffe6;border:0;border-radius:999px;cursor:ew-resize;height:20px;min-width:12px;width:12px}.estimate-timeline-bar-handle.is-active{background:#f8fafc}.estimate-timeline-unscheduled-pill{align-items:center;background:#fff8f2;border:1px solid #bf84503d;border-radius:999px;color:#8b5e34;display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 10px;text-transform:uppercase;width:fit-content}.estimate-timeline-empty{padding:36px 24px;text-align:center}.estimate-canvas-detail-empty h3,.estimate-canvas-detail-title h3{margin:0}.estimate-canvas-detail-empty p,.estimate-canvas-detail-section p{color:#6b7280;margin:4px 0 0}.estimate-canvas-summary{display:inline-flex;flex-wrap:wrap;gap:8px}.estimate-canvas-summary span{align-items:center;background:#faf7f2;border:1px solid #ddd6cb;color:#4b5563;display:inline-flex;font-weight:600}.estimate-canvas-debug-toggle,.estimate-canvas-summary span{border-radius:999px;font-size:12px;min-height:32px;padding:0 12px}.estimate-canvas-debug-toggle{font-weight:700}.estimate-canvas-debug-toggle.is-active{background:#eff6ffeb;border-color:#2563eb61;color:#1d4ed8}.estimate-canvas-debug-status{align-items:center;background:#0f172a0a;border:1px solid #0f172a1f;border-radius:14px;color:#0f172a;display:flex;flex-wrap:wrap;font-family:Roboto Mono,monospace;font-family:var(--font-mono);font-size:12px;gap:10px;padding:10px 12px}.estimate-canvas-debug-status strong{color:#475569;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.estimate-canvas-filter-notice{background:#fff8f2;border:1px solid #bf84503d;border-radius:14px;color:#7a5227;font-size:13px;padding:12px 14px}.estimate-canvas-board{grid-gap:16px;gap:16px;grid-template-columns:180px minmax(0,1fr) 320px}.estimate-canvas-rail{grid-gap:12px;align-self:start;display:grid;gap:12px;position:sticky;top:0}.estimate-canvas-rail-label{grid-gap:6px;align-content:center;background:linear-gradient(180deg,#fbf8f3,#f5efe7);border:1px solid #e6dfd4;border-radius:16px;display:grid;gap:6px;min-height:140px;padding:14px}.estimate-canvas-rail-code{color:#7a746c;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.estimate-canvas-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:8px}.estimate-canvas-lanes{grid-gap:12px;display:grid;gap:12px;min-width:980px}.estimate-canvas-lane{grid-gap:14px;gap:14px;min-height:120px;padding:14px;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.estimate-canvas-lane.is-drop-target{border-color:#2563eb5c;box-shadow:inset 0 0 0 1px #2563eb29}.estimate-canvas-lane-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.estimate-canvas-lane-header span{color:#6b7280;font-size:12px}.estimate-canvas-debug-lane-meta{align-items:center;color:#475569;display:flex;flex-wrap:wrap;font-family:Roboto Mono,monospace;font-family:var(--font-mono);font-size:11px;gap:8px;width:100%}.estimate-canvas-debug-lane-meta span{align-items:center;background:#ffffffb8;border:1px solid #94a3b85c;border-radius:999px;color:inherit;display:inline-flex;min-height:24px;padding:0 8px}.estimate-canvas-lane-columns{align-items:flex-start;display:flex;gap:12px;min-height:84px}.estimate-canvas-primary-insert-zone{align-items:stretch;border-radius:14px;display:flex;justify-content:center;min-height:120px;position:relative;transition:background-color .12s ease,box-shadow .12s ease;width:44px}.estimate-canvas-primary-insert-zone.is-debug-visible{background:#2563eb08;border:1px dashed #2563eb42}.estimate-canvas-primary-insert-zone.is-active{background:#2563eb14;box-shadow:inset 0 0 0 1px #2563eb2e}.estimate-canvas-primary-insert-marker{background:#0000;border-radius:999px;transition:background-color .12s ease,box-shadow .12s ease;width:6px}.estimate-canvas-primary-insert-zone.is-active .estimate-canvas-primary-insert-marker{background:#2563ebb8;box-shadow:0 0 0 4px #2563eb24}.estimate-canvas-column{align-content:start;width:232px}.estimate-canvas-column,.estimate-canvas-primary-slot{grid-gap:8px;display:grid;gap:8px}.estimate-canvas-card{grid-gap:10px;background:linear-gradient(180deg,#fff,#fcfdff);border:1px solid #d7dee7;border-radius:16px;box-shadow:0 8px 18px #0f172a0f;cursor:pointer;display:grid;gap:10px;grid-template-columns:48px minmax(0,1fr);min-height:88px;padding:10px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background-color .18s ease;width:188px}.estimate-canvas-card.is-stacked{background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 8px 18px #0f172a0d;justify-self:stretch;width:188px}.estimate-canvas-card.is-selected,.estimate-canvas-card:hover{border-color:#2563eb47;box-shadow:0 16px 30px #0f172a1c;transform:translateY(-2px)}.estimate-canvas-card:active{transform:scale(.99)}.estimate-canvas-card.is-excluded{opacity:.68}.estimate-canvas-card.is-dragging{box-shadow:0 20px 40px #0f172a2e;opacity:.88;transform:translateY(-3px) scale(1.01)}.canvas-card__image,.estimate-canvas-card-top{display:grid;height:48px;width:48px}.estimate-canvas-card-thumbnail,.estimate-canvas-detail-image{align-items:center;background:linear-gradient(135deg,#e2e8f0,#f8fafc);border-radius:12px;color:#334155;display:inline-flex;font-weight:700;justify-content:center;letter-spacing:.08em}.estimate-canvas-card-thumbnail{font-size:11px;height:48px;width:48px}.estimate-canvas-card-image,.estimate-canvas-detail-image-photo{color:#0000;object-fit:cover}.canvas-card__image{border-radius:12px}.canvas-card__image--fallback{background:linear-gradient(135deg,#dbe7f6,#f7fafc)}.canvas-card__body,.estimate-canvas-card-copy{grid-gap:8px;display:grid;gap:8px;grid-template-rows:minmax(0,1fr) auto}.canvas-card__header{grid-gap:3px;gap:3px}.canvas-card__title,.estimate-canvas-card-copy strong,.estimate-canvas-detail-title h3{overflow:hidden;text-overflow:ellipsis}.canvas-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#0f172a;display:-webkit-box;font-size:13px;font-weight:700;line-height:1.25;margin:0;white-space:normal;word-break:break-word}.canvas-card__meta,.estimate-canvas-card-copy span,.estimate-canvas-detail-title span,.estimate-canvas-empty-lane{color:#6b7280;font-size:11px;line-height:1.35}.canvas-card__meta{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.canvas-card__footer,.estimate-canvas-card-bottom{margin-top:auto}.canvas-card__tags,.estimate-canvas-card-badges{display:none}.canvas-card__tag,.estimate-canvas-card-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:10px;font-weight:600;line-height:1;min-height:20px;padding:0 7px;white-space:nowrap}.canvas-card__tag.is-trade{color:#0f172a}.canvas-card__tag.is-trade-tone-1{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.canvas-card__tag.is-trade-tone-2{background:#ecfeff;border-color:#a5f3fc;color:#155e75}.canvas-card__tag.is-trade-tone-3{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.canvas-card__tag.is-trade-tone-4{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.canvas-card__tag.is-work-type.is-work-labour{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.canvas-card__tag.is-work-type.is-work-install{background:#fdf4ff;border-color:#e9d5ff;color:#7e22ce}.canvas-card__tag.is-work-type.is-work-supply{background:#fefce8;border-color:#fde68a;color:#a16207}.canvas-card__tag.is-stage-tag,.canvas-card__tag.is-work-type.is-work-generic{background:#f8fafc;border-color:#dbe3ee;color:#475569}.estimate-canvas-card-badge-pending{background:#fff7edf5;border-color:#b453093d;color:#b45309;letter-spacing:0;text-transform:none}.estimate-canvas-card-relation{color:#64748b;font-size:11px;line-height:1.35}.canvas-card__status{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border:1px solid #0000;border-radius:999px;bottom:4px;display:inline-flex;font-size:9px;font-weight:700;gap:5px;left:4px;line-height:1;min-height:18px;overflow:hidden;padding:0 6px;position:absolute;right:4px;text-overflow:ellipsis;white-space:nowrap}.canvas-card__status-dot{background:currentColor;border-radius:999px;flex:0 0 auto;height:7px;width:7px}.canvas-card__status.is-status-not-started{border-color:#94a3b847;color:#475569}.canvas-card__status.is-status-in-progress{border-color:#2563eb3d;color:#1d4ed8}.canvas-card__status.is-status-blocked{border-color:#dc26263d;color:#b91c1c}.canvas-card__status.is-status-complete{border-color:#16a34a3d;color:#15803d}.canvas-card__status.is-status-generic{border-color:#6366f12e;color:#4338ca}.canvas-card__cost-label{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.canvas-card__cost-label,.canvas-card__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-card__value{color:#0f172a;font-size:13px;font-weight:800;justify-self:end;line-height:1;max-width:100%}.estimate-canvas-debug-card-meta{grid-gap:4px 8px;border-top:1px dashed #94a3b857;display:grid;font-family:Roboto Mono,monospace;font-family:var(--font-mono);gap:4px 8px;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding-top:8px}.estimate-canvas-debug-card-meta div{grid-gap:2px;display:grid;gap:2px}.estimate-canvas-debug-card-meta dt,.estimate-canvas-debug-inspector-grid dt{color:#64748b;font-size:10px;letter-spacing:.04em;text-transform:uppercase}.estimate-canvas-debug-card-meta dd,.estimate-canvas-debug-inspector-grid dd{color:#0f172a;font-size:11px;margin:0;word-break:break-word}.estimate-canvas-stack-zone{grid-gap:10px;background:#f8fafcb8;border:1px dashed #94a3b84d;border-radius:14px;box-sizing:border-box;display:grid;gap:10px;min-height:86px;padding:10px 10px 14px 14px;position:relative;width:100%}.estimate-canvas-stack-zone.is-debug-visible{border-color:#0e749042;border-style:solid;box-shadow:inset 0 0 0 1px #0e74901a}.estimate-canvas-stack-zone:before{background:#94a3b85c;bottom:10px;content:"";left:14px;position:absolute;top:10px;width:1px}.estimate-canvas-stack-zone.is-drop-target{background:#eff6ffc2;border-color:#2563eb61}.estimate-canvas-stack-zone-header{color:#64748b;font-size:11px;font-weight:700;letter-spacing:.06em;padding-left:12px;position:relative;text-transform:uppercase;z-index:1}.estimate-canvas-stack-empty{align-items:center;background:#fffc;border:1px dashed #94a3b847;border-radius:12px;box-sizing:border-box;color:#64748b;display:flex;font-size:12px;justify-content:center;margin-left:12px;min-height:48px;padding:0 12px;position:relative;width:calc(100% - 12px);z-index:1}.estimate-canvas-stack-drop-slot.is-debug-visible,.estimate-canvas-stack-empty.is-debug-visible{background:#ecfeffa3;border-color:#0e749057}.estimate-canvas-stack-empty.is-active{background:#eff6ffe6;border-color:#2563eb6b;color:#1d4ed8}.estimate-canvas-stacked-card-slot{grid-gap:8px;display:grid;gap:8px}.estimate-canvas-stack-drop-slot{align-items:center;border-radius:999px;display:flex;margin-left:24px;min-height:40px;position:relative;transition:background-color .12s ease,box-shadow .12s ease;width:calc(100% - 24px);z-index:1}.estimate-canvas-stack-drop-slot.is-active{background:#2563eb14;box-shadow:inset 0 0 0 1px #2563eb2e}.estimate-canvas-stack-drop-marker-wrap{align-items:center;display:flex;min-height:40px;width:100%}.estimate-canvas-stack-drop-marker{background:#94a3b84d;border-radius:999px;height:4px;transition:background-color .12s ease,box-shadow .12s ease;width:100%}.estimate-canvas-stack-drop-slot.is-active .estimate-canvas-stack-drop-marker{background:#2563ebb8;box-shadow:0 0 0 4px #2563eb24}.estimate-canvas-empty-lane{align-items:center;background:#ffffffb8;border:1px dashed #cbd5e1;border-radius:16px;display:inline-flex;min-height:84px;padding:0 16px}.estimate-canvas-debug-drop-label{align-items:center;background:#0f172ad6;border-radius:999px;bottom:6px;color:#f8fafc;display:inline-flex;font-family:Roboto Mono,monospace;font-family:var(--font-mono);font-size:10px;left:50%;line-height:1;min-height:20px;padding:0 6px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap}.estimate-canvas-empty-lane.is-drop-target{background:#eff6ffcc;border-color:#2563eb66}.estimate-canvas-detail-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a2e;border:0;inset:0;position:fixed;z-index:32}.estimate-canvas-detail-drawer{background:#fffdf9f5;border:1px solid #d8dfe8;border-radius:22px;bottom:16px;box-shadow:0 24px 44px #0f172a2e;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;position:fixed;right:16px;top:76px;width:min(392px,calc(100vw - 32px));z-index:33}.estimate-canvas-detail-drawer-header{align-items:center;background:#ffffffb8;border-bottom:1px solid #e6eaf0;display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.estimate-canvas-detail-kicker{color:#64748b;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.estimate-canvas-detail-close{min-height:32px;min-width:32px}.estimate-canvas-detail-panel{grid-gap:14px;align-content:start;background:linear-gradient(180deg,#fffdf9,#f8fafc);display:grid;gap:14px;overflow-y:auto;padding:16px}.estimate-canvas-detail-media{grid-gap:10px;display:grid;gap:10px}.estimate-canvas-detail-image{border-radius:16px;font-size:28px;height:188px;width:100%}.estimate-canvas-detail-media-actions{display:flex;flex-wrap:wrap;gap:8px}.estimate-canvas-detail-title{grid-gap:6px;display:grid;gap:6px}.estimate-canvas-detail-title-topline{align-items:center;display:flex;gap:8px;justify-content:space-between}.estimate-canvas-detail-title h3{color:#0f172a;font-size:18px;font-weight:800;line-height:1.2;margin:0}.estimate-canvas-detail-title span{color:#667085;font-size:12px;line-height:1.35}.estimate-canvas-detail-metrics{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.estimate-canvas-detail-metrics div{grid-gap:4px;background:#ffffffbd;border:1px solid #cbd5e18a;border-radius:14px;display:grid;gap:4px;padding:10px 10px 11px}.estimate-canvas-detail-metrics span{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.estimate-canvas-detail-metrics strong{color:#0f172a;font-size:14px;line-height:1.1}.estimate-canvas-detail-grid{grid-gap:14px 12px;display:grid;gap:14px 12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.estimate-canvas-detail-grid div{grid-gap:4px;display:grid;gap:4px}.estimate-canvas-detail-grid dt{color:#7a746c;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.estimate-canvas-detail-grid dd{color:#111827;font-weight:500;margin:0}.estimate-canvas-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.estimate-canvas-detail-section-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.estimate-canvas-detail-section{grid-gap:10px;border-top:1px solid #ece6dd;display:grid;gap:10px;padding-top:14px}.estimate-canvas-detail-section h4,.estimate-canvas-detail-section ul{margin:0}.estimate-canvas-detail-section ul{color:#4b5563;padding-left:18px}.estimate-canvas-detail-form{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.estimate-canvas-detail-tabs{background:#ffffffb8;border:1px solid #cbd5e18f;border-radius:999px;display:inline-flex;gap:6px;padding:4px;width:fit-content}.estimate-canvas-detail-tab{background:#0000;border:0;border-radius:999px;color:#64748b;cursor:pointer;font-size:12px;font-weight:700;padding:7px 12px}.estimate-canvas-detail-tab.is-active{background:#0f172a;color:#f8fafc}.estimate-canvas-takeoff-section{gap:14px}.estimate-canvas-takeoff-helper{color:#64748b;font-size:11px;line-height:1.35}.estimate-canvas-takeoff-image-selector{grid-gap:8px;display:grid;gap:8px;grid-auto-columns:minmax(96px,1fr);grid-auto-flow:column;overflow-x:auto;padding-bottom:2px}.estimate-canvas-takeoff-image-chip{grid-gap:6px;background:#ffffffc2;border:1px solid #cbd5e17a;border-radius:12px;cursor:pointer;display:grid;gap:6px;min-width:96px;padding:6px}.estimate-canvas-takeoff-image-chip.is-active{border-color:#2563eb66;box-shadow:inset 0 0 0 1px #2563eb29}.estimate-canvas-takeoff-image-chip img{border-radius:9px;height:64px;object-fit:cover;width:100%}.estimate-canvas-takeoff-image-chip span{color:#475569;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.estimate-canvas-takeoff-toolbar{grid-gap:12px;display:grid;gap:12px}.estimate-canvas-takeoff-tools{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.estimate-canvas-takeoff-tool{grid-gap:4px;background:#ffffffc7;border:1px solid #cbd5e18f;border-radius:14px;cursor:pointer;display:grid;gap:4px;padding:10px 12px;text-align:left}.estimate-canvas-takeoff-tool.is-active{background:#eff6ffeb;border-color:#2563eb7a}.estimate-canvas-takeoff-tool strong{color:#0f172a;font-size:13px}.estimate-canvas-takeoff-tool span{color:#64748b;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.estimate-canvas-takeoff-scale-card{grid-gap:10px;background:#ffffffc7;border:1px solid #cbd5e18a;border-radius:16px;display:grid;gap:10px;padding:12px}.estimate-canvas-takeoff-actions,.estimate-canvas-takeoff-scale-actions,.estimate-canvas-takeoff-scale-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.estimate-canvas-takeoff-scale-header strong{color:#0f172a}.estimate-canvas-takeoff-scale-header span{color:#64748b;font-size:12px}.estimate-canvas-takeoff-scale-header span.is-calibrated{color:#0f766e;font-weight:700}.estimate-canvas-takeoff-scale-header span.is-uncalibrated{color:#b45309;font-weight:700}.estimate-canvas-takeoff-scale-controls{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 108px}.estimate-canvas-takeoff-stage-wrap{grid-gap:8px;display:grid;gap:8px}.estimate-canvas-takeoff-stage{background:#e2e8f0;border:1px solid #cbd5e185;border-radius:18px;min-height:280px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none}.estimate-canvas-takeoff-stage.is-calibrating{box-shadow:inset 0 0 0 1px #0ea5e947}.estimate-canvas-takeoff-stage img{display:block;height:auto;max-height:420px;object-fit:contain;width:100%}.estimate-canvas-takeoff-overlay{height:100%;inset:0;position:absolute;width:100%}.estimate-canvas-takeoff-overlay g.is-saved{fill:#2563eb2e;stroke:#2563ebe6;stroke-width:8}.estimate-canvas-takeoff-overlay g.is-draft{fill:#f973162e;stroke:#f97316f2;stroke-width:8;stroke-dasharray:16 12}.estimate-canvas-takeoff-overlay g.is-calibration{fill:#06b6d438;stroke:#0891b2f2;stroke-width:8;stroke-dasharray:10 10}.estimate-canvas-takeoff-overlay circle{vector-effect:non-scaling-stroke}.estimate-canvas-takeoff-stage-caption{color:#64748b;font-size:12px;line-height:1.4}.estimate-canvas-takeoff-results{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.estimate-canvas-takeoff-results div{grid-gap:4px;background:#ffffffc2;border:1px solid #cbd5e180;border-radius:14px;display:grid;gap:4px;padding:10px 11px}.estimate-canvas-takeoff-results div.is-live-result{background:linear-gradient(180deg,#eff6ffeb,#ffffffeb);border-color:#2563eb47}.estimate-canvas-takeoff-results span{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.estimate-canvas-takeoff-results strong{color:#0f172a;font-size:14px}.estimate-canvas-takeoff-results em{color:#64748b;font-size:11px;font-style:normal;line-height:1.35}.estimate-canvas-takeoff-feedback{background:#ecfdf5eb;border:1px solid #10b98147;border-radius:12px;color:#0f766e;font-size:12px;font-weight:700;padding:10px 12px}.estimate-canvas-takeoff-list{grid-gap:12px;display:grid;gap:12px}.estimate-canvas-takeoff-group{grid-gap:8px;display:grid;gap:8px}.estimate-canvas-takeoff-group.is-current-image .estimate-canvas-takeoff-group-header{background:#eff6ffd1;border-color:#2563eb42}.estimate-canvas-takeoff-group-header{align-items:center;background:#f8fafcdb;border:1px solid #cbd5e170;border-radius:12px;display:flex;gap:8px;justify-content:space-between;padding:8px 10px}.estimate-canvas-takeoff-group-header strong{color:#0f172a;font-size:12px}.estimate-canvas-takeoff-group-header span{color:#64748b;font-size:11px;font-weight:700}.estimate-canvas-takeoff-entry,.estimate-canvas-takeoff-group-list{grid-gap:10px;display:grid;gap:10px}.estimate-canvas-takeoff-entry{background:#ffffffc7;border:1px solid #cbd5e17a;border-radius:14px;padding:12px}.estimate-canvas-takeoff-entry.is-current-image{border-color:#2563eb57}.estimate-canvas-takeoff-entry.is-selected{box-shadow:inset 0 0 0 1px #2563eb38}.estimate-canvas-takeoff-entry.is-applied{background:linear-gradient(180deg,#f0fdfaf5,#ffffffe6);border-color:#10b9814d}.estimate-canvas-takeoff-entry-copy{grid-gap:4px;display:grid;gap:4px}.estimate-canvas-takeoff-entry-topline{align-items:center;display:flex;gap:8px;justify-content:space-between}.estimate-canvas-takeoff-entry-state,.estimate-canvas-takeoff-entry-tool{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:800;letter-spacing:.04em;min-height:20px;padding:0 8px;text-transform:uppercase}.estimate-canvas-takeoff-entry-tool{background:#e2e8f0b8;color:#475569}.estimate-canvas-takeoff-entry-state{background:#d1fae5db;color:#047857}.estimate-canvas-takeoff-entry-copy strong,.estimate-canvas-takeoff-entry-value{color:#0f172a}.estimate-canvas-takeoff-entry-copy span{color:#64748b;font-size:12px}.estimate-canvas-takeoff-entry-copy span b{color:#334155}.estimate-canvas-takeoff-entry-value{font-size:16px;font-weight:800}.estimate-canvas-takeoff-entry-result-row{grid-gap:10px;display:grid;gap:10px}.estimate-canvas-takeoff-entry-actions{display:flex;flex-wrap:wrap;gap:8px}.estimate-canvas-takeoff-entry-actions--primary .primary-button,.estimate-canvas-takeoff-entry-actions--primary .secondary-button{min-width:140px}.estimate-canvas-takeoff-entry-actions--secondary{justify-content:space-between}.estimate-canvas-takeoff-entry-edit{grid-gap:8px;display:grid;gap:8px}.estimate-canvas-takeoff-entry-edit input{width:100%}.estimate-canvas-takeoff-entry-edit-actions{display:flex;flex-wrap:wrap;gap:8px}.estimate-canvas-takeoff-confirm{align-items:center;background:#fef2f2db;border:1px solid #f8717147;border-radius:10px;display:inline-flex;flex-wrap:wrap;gap:8px;padding:6px 8px}.estimate-canvas-takeoff-confirm span{color:#991b1b;font-size:11px;font-weight:700}.secondary-button.is-danger{background:#fef2f2d6;border-color:#f8717142;color:#b91c1c}.estimate-canvas-gallery-grid{grid-gap:10px;display:grid;gap:10px;grid-auto-columns:minmax(112px,1fr);grid-auto-flow:column;overflow-x:auto;padding-bottom:4px}.estimate-canvas-gallery-card{grid-gap:6px;background:#ffffffb8;border:1px solid #cbd5e17a;border-radius:12px;display:grid;gap:6px;min-width:112px;padding:8px}.estimate-canvas-gallery-card.is-primary{border-color:#2563eb52;box-shadow:inset 0 0 0 1px #2563eb1f}.estimate-canvas-gallery-thumb{background:#0000;border:0;cursor:pointer;padding:0}.estimate-canvas-gallery-thumb img{border-radius:10px;display:block;height:82px;object-fit:cover;width:100%}.estimate-canvas-gallery-card-meta{grid-gap:6px;display:grid;gap:6px}.estimate-canvas-gallery-card-meta>span{color:#475569;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.estimate-canvas-gallery-actions{display:flex;flex-wrap:wrap;gap:6px}.estimate-canvas-gallery-empty{background:#fff6;border:1px dashed #cbd5e15c;border-radius:14px;color:#64748b;display:grid;min-height:88px;padding:0 14px;place-items:center;text-align:center}.estimate-canvas-image-preview{display:grid;inset:0;place-items:center;position:fixed;z-index:40}.estimate-canvas-image-preview-backdrop{background:#0f172a75;border:0;inset:0;position:absolute}.estimate-canvas-image-preview-card{background:#fffdf9fa;border-radius:20px;box-shadow:0 24px 44px #0f172a38;max-height:calc(100vh - 32px);padding:16px;position:relative;width:min(720px,calc(100vw - 32px));z-index:1}.estimate-canvas-image-preview-card img{border-radius:14px;display:block;max-height:calc(100vh - 96px);object-fit:contain;width:100%}.estimate-canvas-image-preview-close{position:absolute;right:10px;top:10px}.estimate-canvas-debug-inspector{grid-gap:10px;background:#f8fafce6;border:1px solid #94a3b866;border-radius:14px;display:grid;gap:10px;padding:14px}.estimate-canvas-debug-inspector h4{margin:0}.estimate-canvas-debug-inspector-grid{grid-gap:10px 12px;display:grid;font-family:Roboto Mono,monospace;font-family:var(--font-mono);gap:10px 12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.estimate-canvas-debug-inspector-grid div{grid-gap:3px;display:grid;gap:3px}.estimate-canvas-open-builder{justify-self:start}.estimate-canvas-drag-preview{left:0;pointer-events:none;position:fixed;top:0;z-index:1000}.estimate-canvas-drag-preview-card{background:#fffffff5;border:1px solid #2563eb3d;border-radius:16px;box-shadow:0 18px 36px #0f172a29;padding:12px;width:220px}body[data-canvas-test-mode=true] .estimate-canvas-layout *,body[data-canvas-test-mode=true] .estimate-canvas-layout :after,body[data-canvas-test-mode=true] .estimate-canvas-layout :before{animation:none!important;scroll-behavior:auto!important;transition:none!important}@media (max-width:1280px){.estimate-canvas-detail-drawer{bottom:12px;right:12px;width:min(340px,calc(100vw - 24px))}}@media (max-width:960px){.estimate-canvas-utility-row,.estimate-timeline-utility-row,.estimate-workspace-canvas-toolbar{align-items:stretch;flex-direction:column}.estimate-workspace-canvas-toolbar-actions{justify-content:flex-start;width:100%}.estimate-canvas-detail-grid,.estimate-workspace-filter-grid{grid-template-columns:1fr}.estimate-canvas-detail-form,.estimate-canvas-detail-metrics{grid-template-columns:1fr 1fr}.estimate-canvas-detail-drawer{bottom:12px;left:12px;right:12px;top:12px;width:auto}.estimate-workspace-add-card-modal{padding:16px}.estimate-workspace-add-card-panel{border-radius:18px;max-height:calc(100vh - 20px);padding:18px;width:min(100vw - 16px,860px)}.estimate-workspace-add-card-body{grid-template-columns:1fr}}.estimate-canvas-board{grid-gap:0;align-items:stretch;display:grid;gap:0;grid-template-columns:minmax(0,1fr);justify-items:stretch;min-height:680px;min-width:0;width:100%}.estimate-canvas-stage-board{grid-gap:12px;display:grid;gap:12px;min-width:0;width:100%}.estimate-canvas-stage-row{display:block;min-width:0;width:100%}.estimate-canvas-lane{grid-gap:10px;background:linear-gradient(180deg,var(--canvas-stage-bg),#fffffff5);border:1px solid var(--canvas-stage-border);border-radius:18px;box-sizing:border-box;display:grid;gap:10px;min-height:112px;padding:12px;width:100%}.estimate-canvas-lane-header-inline{align-items:flex-start;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.estimate-canvas-stage-kicker{align-items:center;display:inline-flex;gap:8px;min-width:0}.estimate-canvas-stage-kicker strong{color:#1f2937;font-size:13px;font-weight:700;line-height:1.2}.estimate-canvas-lane-scroll{min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;width:100%}.estimate-canvas-grid{align-items:start;grid-auto-columns:max-content;grid-auto-flow:column;min-width:100%;width:max-content}.estimate-canvas-grid,.estimate-canvas-grid-column,.estimate-canvas-grid-insert-column{grid-gap:8px;display:grid;gap:8px}.estimate-canvas-grid-column{width:188px}.estimate-canvas-grid-insert-column{width:30px}.estimate-canvas-track-slot{align-items:center;background:#0000;border:1px dashed #0000;border-radius:999px;display:flex;justify-content:center;min-height:22px;padding:0;position:relative;width:100%}.estimate-canvas-track-slot.is-debug-visible{background:#ecfeff94;border-color:#0e749057}.estimate-canvas-track-slot.is-active{background:#2563eb14;border-color:#2563eb3d}.estimate-canvas-track-slot-line{background:#94a3b81f;border-radius:999px;height:1px;width:calc(100% - 32px)}.estimate-canvas-track-slot.is-active .estimate-canvas-track-slot-line{background:#2563ebb8;box-shadow:0 0 0 3px #2563eb1f}.estimate-canvas-grid-cell,.estimate-canvas-grid-track-drop{border-radius:12px;box-sizing:border-box;min-height:80px;position:relative}.estimate-canvas-grid-cell{align-items:stretch;background:#ffffff3d;border:1px dashed #cbd5e133;display:grid;padding:0}.estimate-canvas-grid-cell.is-empty{place-items:center}.estimate-canvas-grid-cell.is-gap{background:#f8fafc38;border-style:dashed}.estimate-canvas-grid-cell.is-debug-visible,.estimate-canvas-grid-track-drop.is-debug-visible{background:#ecfeff94;border-color:#0e749057}.estimate-canvas-grid-cell.is-active{background:#eff6ffad;border-color:#2563eb66;box-shadow:inset 0 0 0 1px #2563eb29}.estimate-canvas-grid-cell-empty{color:#b8c3d1;font-size:10px}.estimate-canvas-grid-track-drop{align-items:stretch;background:#0000;border:1px dashed #0000;display:flex;justify-content:center;padding:0;width:30px}.estimate-canvas-grid-track-drop.is-active{background:#2563eb14;border-color:#2563eb3d}.estimate-canvas-grid-track-drop-line{background:#94a3b824;border-radius:999px;width:2px}.estimate-canvas-grid-track-drop.is-active .estimate-canvas-grid-track-drop-line{background:#2563ebb8;box-shadow:0 0 0 3px #2563eb1f}.estimate-canvas-grid-empty{background:#ffffff3d;border:1px dashed #cbd5e138;border-radius:12px;color:#94a3b8;display:grid;min-height:80px;padding:0 16px;place-items:center;text-align:center;width:188px}.estimate-canvas-card{background:linear-gradient(180deg,#fffffffa,#f8fafceb);border:1px solid #cbd5e185;border-radius:11px;box-shadow:0 3px 10px #0f172a0a;cursor:grab;display:block;gap:0;grid-template-columns:none;min-height:92px;overflow:hidden;padding:0;position:relative;text-align:left;touch-action:none;user-select:none;-webkit-user-select:none;width:100%}.estimate-canvas-card strong{margin:0;max-width:100%;min-width:0}.canvas-card__layout{grid-column-gap:10px;grid-row-gap:8px;align-items:start;box-sizing:border-box;column-gap:10px;display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;min-height:90px;min-width:0;padding:8px 10px 10px;row-gap:8px;width:100%}.canvas-card__image,.estimate-canvas-card-top{height:100%;width:100%}.estimate-canvas-card-thumbnail{border-radius:10px;font-size:9px;height:100%;letter-spacing:.04em;width:100%}.canvas-card__image-shell{align-items:stretch;align-self:start;display:flex;grid-column:1;grid-row:1;height:56px;justify-content:stretch;min-height:56px;min-width:56px;overflow:hidden;position:relative;width:56px;z-index:0}.canvas-card__edge-indicator{background:#94a3b86b;background:var(--canvas-accent,#94a3b86b);border-radius:0 999px 999px 0;bottom:4px;left:0;position:absolute;top:4px;width:3px;z-index:1}.canvas-card__body,.estimate-canvas-card-copy{color:#0f172a;display:flex;flex-direction:column;gap:5px;grid-column:2;grid-row:1;justify-content:flex-start;min-height:56px;min-width:0;overflow:hidden;padding:0 0 0 2px;position:relative;z-index:1}.canvas-card__header{grid-gap:4px;color:#0f172a;display:grid;gap:4px;min-width:0;overflow:hidden}.canvas-card__header-topline{align-items:center;display:flex;gap:6px;justify-content:flex-end;min-width:0}.estimate-canvas-detail-title .canvas-card__type-badge{align-items:center;background:#e2e8f0b8;border-radius:999px;color:#475569;display:inline-flex;font-size:9px;font-weight:700;letter-spacing:.04em;max-width:96px;min-height:18px;overflow:hidden;padding:0 7px;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.estimate-canvas-card .canvas-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#0f172a;display:-webkit-box;font-size:13px;font-weight:800;letter-spacing:-.01em;line-height:1.24;overflow:hidden}.estimate-canvas-card .canvas-card__meta,.estimate-canvas-card-copy span{-webkit-line-clamp:1;-webkit-box-orient:vertical;color:#7b8798;display:-webkit-box;font-size:9px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.canvas-card__footer,.estimate-canvas-card-bottom{align-items:baseline;color:#0f172a;display:flex;gap:8px;grid-column:1/-1;grid-row:2;justify-content:space-between;min-width:0;padding-left:2px}.canvas-card__footer-left{align-items:center;display:inline-flex;gap:6px;min-width:0}.canvas-card__takeoff-indicator{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;flex:0 0 auto;font-size:10px;font-weight:800;height:16px;justify-content:center;line-height:1;width:16px}.canvas-card__takeoff-indicator.is-saved{background:#3b82f61a;border-color:#2563eb38;box-shadow:inset 0 0 0 1px #ffffff5c;color:#1d4ed8}.canvas-card__takeoff-indicator.is-applied{background:#10b98133;border-color:#05966942;box-shadow:0 0 0 1px #d1fae5e6;color:#047857}.estimate-canvas-card .canvas-card__quantity{color:#1f2937;font-size:12.5px;font-weight:800;line-height:1.05;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal}.canvas-card__cost-label{display:none}.estimate-canvas-card .canvas-card__value{color:#0f172a;flex:0 0 auto;font-size:15.5px;font-weight:850;letter-spacing:-.02em;line-height:1;text-align:right}.estimate-canvas-card .canvas-card__meta,.estimate-canvas-card .canvas-card__quantity,.estimate-canvas-card .canvas-card__title,.estimate-canvas-card .canvas-card__value{position:relative;z-index:1}.canvas-card__status{-webkit-backdrop-filter:none;backdrop-filter:none;background:#ffffffc7;border-width:1px;flex:0 0 auto;font-size:7px;max-width:86px;min-height:14px;padding:0 4px;position:static}.canvas-card__status-dot{height:4px;width:4px}.canvas-card__details-button{align-items:center;background:#ffffffeb;border:1px solid #cbd5e18f;border-radius:999px;color:#475569;cursor:pointer;display:inline-flex;height:18px;justify-content:center;left:44px;padding:0;position:absolute;top:12px;width:18px;z-index:2}.canvas-card__details-button:hover{background:#fffffffa;border-color:#94a3b8bd}.canvas-card__details-icon{align-items:center;display:inline-flex;font-size:11px;font-weight:800;height:100%;justify-content:center;line-height:1;width:100%}.estimate-canvas-card.is-assembly-card{background:linear-gradient(180deg,#fffffffc,#f1f5f9f5);border-color:#94a3b86b}.estimate-canvas-card.is-item-card{background:linear-gradient(180deg,#fffffff7,#f8fafce0)}.estimate-canvas-card.is-dragging,.estimate-canvas-card:active{cursor:grabbing}.estimate-canvas-card.is-assembly-card .canvas-card__title{font-weight:820}.estimate-canvas-card.is-work-labour{--canvas-accent:#2563ebc7}.estimate-canvas-card.is-work-install{--canvas-accent:#a855f7b8}.estimate-canvas-card.is-work-supply{--canvas-accent:#d97706b8}.estimate-canvas-card.is-work-generic{--canvas-accent:#4755698f}.estimate-canvas-detail-title .canvas-card__type-badge.is-work-labour{background:#dbeafedb;color:#1d4ed8}.estimate-canvas-detail-title .canvas-card__type-badge.is-work-install{background:#f3e8ffdb;color:#7e22ce}.estimate-canvas-detail-title .canvas-card__type-badge.is-work-supply{background:#fef3c7eb;color:#a16207}.estimate-canvas-detail-title .canvas-card__type-badge.is-work-generic{background:#e2e8f0c7;color:#475569}.canvas-card__hover-preview{grid-gap:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf9fa;border:1px solid #cbd5e18f;border-radius:18px;box-shadow:0 20px 38px #0f172a2e;display:grid;gap:12px;padding:14px;pointer-events:auto;position:fixed;width:296px;z-index:34}.canvas-card__hover-preview-media{background:linear-gradient(135deg,#e2e8f0,#f8fafc);border-radius:14px;height:156px;overflow:hidden;width:100%}.canvas-card__hover-preview-fallback,.canvas-card__hover-preview-media img{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.canvas-card__hover-preview-media img{object-fit:cover}.canvas-card__hover-preview-fallback{color:#334155;font-size:22px;font-weight:800;letter-spacing:.08em}.canvas-card__hover-preview-copy{grid-gap:5px;display:grid;gap:5px}.canvas-card__hover-preview-copy strong{color:#0f172a;font-size:15px;font-weight:800;line-height:1.28}.canvas-card__hover-preview-copy span{color:#64748b;font-size:11px;line-height:1.35}.canvas-card__hover-preview-source{align-items:center;background:#0ea5e91f;border-radius:999px;color:#0369a1!important;display:inline-flex;font-size:10px!important;font-weight:700;letter-spacing:.03em;padding:3px 8px;width:fit-content}.canvas-card__hover-preview-metrics{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.canvas-card__hover-preview-metrics.is-wide{grid-template-columns:repeat(3,minmax(0,1fr))}.canvas-card__hover-preview-metrics div{grid-gap:4px;background:#fffc;border:1px solid #cbd5e16b;border-radius:12px;display:grid;gap:4px;padding:9px 10px}.canvas-card__hover-preview-metrics div.is-total{background:linear-gradient(180deg,#eff6ffeb,#fffffff0);border-color:#93c5fd70}.canvas-card__hover-preview-metrics dt{color:#64748b;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.canvas-card__hover-preview-metrics dd{color:#0f172a;font-size:12px;font-weight:800;line-height:1.2;margin:0}.canvas-card__hover-preview-metrics div.is-total dd{font-size:13px}.estimate-canvas-drag-preview-card p{color:#475569;font-size:12px;margin:6px 0 0}@media (max-width:1280px){.estimate-canvas-detail-panel{min-height:0}}@media (max-width:960px){.estimate-canvas-stage-kicker{flex-wrap:wrap}.estimate-canvas-grid-column,.estimate-canvas-grid-empty{width:176px}.estimate-canvas-card{min-height:86px}.estimate-canvas-detail-metrics{grid-template-columns:1fr 1fr}.estimate-canvas-detail-form{grid-template-columns:1fr}}.library-page-assembly-lines{--library-tint-rgb:185,156,110}.assembly-line-library-form-card{grid-gap:16px;display:grid;gap:16px}.assembly-line-library-sections{grid-gap:14px;display:grid;gap:14px}.assembly-line-library-section{grid-gap:12px;background:#ffffffe0;border:1px solid rgba(var(--library-tint-rgb),.18);border-radius:14px;display:grid;gap:12px;padding:14px}.assembly-line-library-section--inherited{background:linear-gradient(180deg,rgba(var(--library-tint-rgb),.1),#fffffff0);border-color:rgba(var(--library-tint-rgb),.28)}.assembly-line-library-section-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.assembly-line-library-section-header h3{font-size:16px;margin:0 0 4px}.assembly-line-library-section-header p{color:#6b7280;color:var(--color-text-muted);font-size:13px;line-height:1.45;margin:0}.assembly-line-library-grid{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-line-library-mode-row,.assembly-line-library-override-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(160px,.8fr) minmax(0,1.2fr)}.assembly-line-library-readonly-input{background:#f8fafce6!important;border-style:dashed!important;color:#6b7280;color:var(--color-text-muted)}.assembly-line-library-field-note{color:#6b7280;color:var(--color-text-muted);font-size:12px;line-height:1.35;margin:-2px 0 0}.assembly-library-import-preview-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.assembly-library-import-preview-grid div,.assembly-library-import-preview-list{grid-gap:4px;background:#ffffffd1;border:1px solid #94a3b838;border-radius:12px;display:grid;gap:4px;padding:10px 12px}.assembly-library-import-preview-grid strong{font-size:18px}.assembly-library-import-preview-grid span,.assembly-library-import-preview-list p{color:#6b7280;color:var(--color-text-muted);font-size:12px;line-height:1.35;margin:0}.library-page-assembly-lines .library-form-card .field textarea{background:#fffffff0;border:1px solid rgba(var(--library-tint-rgb),.24);border-radius:10px;box-sizing:border-box;min-height:96px;padding:10px 12px;resize:vertical;width:100%}@media (max-width:960px){.assembly-line-library-grid,.assembly-line-library-mode-row,.assembly-line-library-override-row{grid-template-columns:1fr}}
/*# sourceMappingURL=main.8c60e4b9.css.map*/