:root{--app-bg:#e9edf1;--panel-bg:#fff;--surface-bg:#f6f8fa;--text-primary:#203548;--text-secondary:#697d90;--toolbar-dark:#142c3f;--toolbar-secondary:#1b3b52;--primary-blue:#2878c8;--primary-blue-hover:#2169b0;--primary-blue-soft:#eaf3fb;--border:#cbd5df;--success:#178754;--danger:#c94040;color:var(--text-primary);background:var(--app-bg);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.quote-grand-summary{background:#fff;border:1px solid #cfdae2;border-radius:9px;grid-template-columns:1fr auto 1fr 1.2fr;margin-bottom:12px;display:grid;overflow:hidden}.quote-grand-summary>div,.quote-grand-summary>label{letter-spacing:0;border-right:1px solid #e1e7ec;flex-direction:column;justify-content:center;min-height:58px;margin:0;padding:8px 10px;font-size:9px;display:flex}.quote-grand-summary span{color:#738796}.quote-grand-summary strong{margin-top:3px;font-size:14px}.quote-grand-summary label{grid-template-columns:auto 50px auto;align-items:center;gap:4px;display:grid}.quote-grand-summary input{min-height:29px;margin:0;padding:3px 5px}.quote-grand-summary .grand-total{color:#fff;background:#123c5b;border-right:0}.quote-grand-summary .grand-total span{color:#dce8ef}.quote-primary-sections button{flex-direction:column;justify-content:center;gap:2px;display:flex}.quote-primary-sections button strong{font-size:9px}.quote-stage-heading{justify-content:space-between;align-items:center;gap:10px;margin:6px 0 10px;display:flex}.quote-stage-heading h2{margin:2px 0 0;font-size:18px}.quote-stage-heading button{color:#865308;cursor:pointer;background:#fff8e9;border:1px solid #e9a329;border-radius:7px;min-height:33px;font-size:9px;font-weight:850}.quote-section-totals{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.quote-section-totals div{background:#fff;border:1px solid #d9e2e8;border-radius:7px;padding:8px}.quote-section-totals span,.quote-section-totals strong{display:block}.quote-section-totals span{color:#728695;text-transform:uppercase;font-size:8px}.quote-section-totals strong{margin-top:3px;font-size:13px}.quote-section-totals .total{background:#123c5b;border-color:#174766}.quote-section-totals .total span,.quote-section-totals .total strong{color:#fff}.quote-help{color:#708390;background:#f7fafb;border-bottom:1px solid #e5eaee;margin:0;padding:9px 14px;font-size:9px}.quote-line-list{flex-direction:column;display:flex}.quote-line-list>article{border-top:1px solid #e2e8ed;padding:10px 12px}.quote-line-list>article:first-child{border-top:0}.quote-line-list>article.optional{background:#fffaf0}.quote-line-list>article.excluded{opacity:.72;background:#f4f5f6}.quote-line-list article>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.quote-line-list header strong,.quote-line-list header small{display:block}.quote-line-list header strong{font-size:10px}.quote-line-list header small{color:#7b8d99;font-size:8px}.quote-line-list header>span{color:#177246;text-transform:uppercase;background:#eaf7ef;border-radius:9px;padding:3px 6px;font-size:7px;font-weight:900}.quote-line-fields{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px;display:grid}.quote-line-fields label,.quote-setting-grid label{margin:0;font-size:7px;position:relative}.quote-line-fields input,.quote-setting-grid input{min-height:30px;margin-top:3px;padding:3px 25px 3px 6px;font-size:9px}.quote-line-fields label>span,.quote-setting-grid label>span{color:#788b98;font-size:7px;position:absolute;bottom:8px;right:6px}.quote-line-options{align-items:center;gap:12px;margin-top:8px;display:flex}.quote-line-options label{letter-spacing:0;flex-direction:row;align-items:center;gap:4px;margin:0;font-size:8px;display:flex}.quote-line-options input{width:auto}.quote-line-options strong{margin-left:auto;font-size:11px}.quote-line-note{min-height:30px!important;margin-top:7px!important;font-size:9px!important}.quote-manual-list article{grid-template-columns:1fr 30px;gap:6px;padding:8px 12px;display:grid}.quote-manual-list input{min-height:32px;margin:0}.quote-manual-list button{color:#a23b44;cursor:pointer;background:#fff0f1;border:0;border-radius:6px}.quote-setting-grid{grid-template-columns:repeat(2,1fr);gap:7px;padding:12px;display:grid}.quote-labour-settings>label{margin:0;padding:0 12px 12px}.quote-labour-settings textarea{margin-top:4px}*{box-sizing:border-box}body{background:#edf3f8;min-width:768px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #f39a0859}.app{min-height:100vh}.topbar{color:#fff;background:#102f4b;justify-content:space-between;align-items:center;height:76px;padding:0 38px;display:flex;box-shadow:0 3px 12px #0c203044}.brand{color:#fff;cursor:pointer;background:0 0;border:0;align-items:center;gap:14px;font-size:21px;font-weight:850;display:flex}.brand-mark,.rail-brand span{color:#142c43;background:#f6a00b;border-radius:10px;place-items:center;width:42px;height:42px;font-weight:950;display:grid}.internal-badge{color:#cbd7e2;border:1px solid #49647b;border-radius:20px;padding:7px 13px;font-size:13px}.page{max-width:1720px;margin:0 auto;padding:48px 52px 80px}.page-heading{justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px;display:flex}.eyebrow{letter-spacing:.15em;font-weight:900;color:#ed8d00!important;margin:0 0 9px!important;font-size:13px!important}h1,h2,h3,p{margin-top:0}.page-heading h1{letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(36px,4vw,54px)}.page-heading p{color:#667b8f;margin:0;font-size:17px}.primary,.secondary{cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:48px;padding:0 24px;font-weight:850}.primary{color:#2d210d;background:#f6a00b;box-shadow:0 8px 18px #f6a00b33}.primary:disabled{opacity:.45;cursor:default}.secondary{color:#4f6375;background:#fff;border-color:#ced9e2}.search-row{background:#fff;border:1px solid #d5dfe8;border-radius:15px;align-items:center;gap:20px;height:60px;margin-bottom:27px;padding:0 20px;display:flex;box-shadow:0 4px 12px #102f4b0d}.search-row input{color:#183956;border:0;outline:0;flex:1;min-width:0;font-size:17px}.search-row span{color:#8090a0;font-weight:700}.home-backup-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.restore-backup{justify-content:center;align-items:center;display:inline-flex}.restore-backup input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.setout-inspector-tabs{z-index:4;background:#fff;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 0;display:grid;position:sticky;top:0}.setout-inspector-tabs button{color:#355268;text-transform:uppercase;cursor:pointer;background:#f7fafc;border:1px solid #d6e0e8;border-radius:8px;min-height:36px;font-size:11px;font-weight:800}.setout-inspector-tabs button.active{color:#075c9a;background:#eaf5ff;border-color:#168de2;box-shadow:inset 0 -2px #168de2}.panel-search{color:#17364d;background:#fff;border:1px solid #cfdbe5;border-radius:8px;width:100%;min-height:38px;margin:0 0 12px;padding:0 12px}.measurement-search-results{gap:7px;display:grid}.measurement-search-results>button{text-align:left;color:#17364d;cursor:pointer;background:#fff;border:1px solid #dbe5ec;border-radius:9px;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:9px;width:100%;padding:10px;display:grid}.measurement-search-results>button.selected{background:#eef7ff;border-color:#168de2;box-shadow:0 0 0 1px #168de2}.measurement-search-results strong,.measurement-search-results small{display:block}.measurement-search-results small{color:#718394;margin-top:2px}.measurement-search-results p{color:#50677a;margin:7px 0 0;font-size:11px;line-height:1.55}.template-library-panel{background:#fff;border:1px solid #d7e2ea;border-radius:10px;margin:0 0 14px;padding:12px}.template-tabs{grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0;display:grid}.template-tabs button{color:#38566d;background:#f6f9fb;border:1px solid #d7e2ea;border-radius:7px;min-height:36px;font-size:10px;font-weight:800}.template-tabs button.active{color:#075c9a;background:#eaf5ff;border-color:#168de2}.template-toolbar{grid-template-columns:1fr auto;gap:7px;margin-bottom:9px;display:grid}.template-toolbar input{border:1px solid #cfdae3;border-radius:7px;min-width:0;min-height:36px;padding:0 10px}.template-toolbar button{color:#fff;background:#168de2;border:1px solid #168de2;border-radius:7px;font-weight:800}.template-card-list{gap:7px;display:grid}.template-card-list article{border:1px solid #dbe5ec;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:9px;display:grid}.template-card-list article.archived{opacity:.58}.template-card-list strong,.template-card-list small{display:block}.template-card-list small{color:#718394;margin-top:3px}.template-card-list button{color:#274a63;background:#fff;border:1px solid #d4dfe7;border-radius:6px;min-height:30px}.template-card-list .template-favourite{color:#e78b00;border:0;font-size:19px}.project-grid,.plan-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:24px;display:grid}.project-card,.plan-card{background:#fff;border:1px solid #d1dde7;border-radius:20px;min-height:310px;position:relative;overflow:hidden;box-shadow:0 8px 22px #102f4b14}.project-open,.plan-open{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:0}.revision-pill{color:#187044;background:#e9f8ef;border-radius:999px;margin-left:6px;padding:4px 7px;font-size:8px;font-weight:900;display:inline-block}.revision-pill.superseded{color:#995900;background:#fff0db}.revision-pill.archived{color:#65737e;background:#eef1f3}.plan-card.revision-superseded{border-color:#dfa94b}.plan-card.revision-archived{opacity:.68}.superseded-warning{background:#fff5df;border:1px solid #e2a744;border-radius:7px;padding:7px 10px;font-weight:850;display:inline-block;color:#875300!important;margin-top:9px!important}.project-preview{background:linear-gradient(135deg,#133c5d,#28617f);place-items:center;min-height:177px;display:grid;position:relative;overflow:hidden}.project-preview:after{content:"";border:3px solid #ffffff38;border-top-width:9px;width:70%;height:60%;transform:skewY(-8deg)}.project-preview span{color:#ffffffbd;letter-spacing:.2em;font-weight:900;position:absolute}.project-card-body,.plan-card-body{padding:21px 22px 52px}.project-card-body small{color:#8292a2;letter-spacing:.11em;font-weight:850}.project-card-body h2,.plan-card-body h2{margin:7px 0 8px;font-size:22px;line-height:1.25}.project-card-body p,.plan-card-body p{color:#778a9c;margin:0}.new-card,.add-plan-card{color:#153550;cursor:pointer;background:#fff9e8;border:2px dashed #f0a323;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:310px;display:flex}.new-card strong,.add-plan-card strong{color:#ed9206;font-size:50px;line-height:1}.new-card span,.add-plan-card span{font-size:22px;font-weight:900}.new-card small,.add-plan-card small{color:#7f8fa0}.icon-danger{color:#9e5960;cursor:pointer;background:#fff0f1;border:0;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:800;position:absolute;bottom:14px;right:15px}.back-link{color:#2674a3;cursor:pointer;background:0 0;border:0;margin-bottom:18px;padding:0;font-weight:800;display:block}.plan-card canvas{object-fit:contain;background:#fff;display:block;width:100%!important;height:190px!important}.plan-card .thumbnail-error{color:#8a9aaa;background:#f8fafc;place-items:center;height:190px;display:grid}.type-pill{color:#fff;letter-spacing:.08em;text-transform:uppercase;background:#507594;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:850;display:inline-block}.type-pill.architectural{background:#168b59}.type-pill.structural{background:#ab6241}.type-pill.civil{background:#3475bd}.type-pill.council{background:#825eb1}.page-grid{grid-template-columns:repeat(3,minmax(280px,1fr));gap:30px;display:grid}.page-card{cursor:pointer;text-align:left;background:#fff;border:1px solid #cfdae4;border-radius:20px;padding:0;transition:transform .15s,box-shadow .15s;overflow:hidden;box-shadow:0 10px 24px #102f4b17}.page-card:hover{transform:translateY(-3px);box-shadow:0 15px 32px #102f4b21}.page-image{background:#fff;place-items:center;height:330px;padding:10px;display:grid}.page-image canvas{max-width:100%;max-height:100%;width:auto!important;height:auto!important}.page-card footer{border-top:1px solid #d8e0e7;justify-content:space-between;align-items:center;min-height:74px;padding:0 21px;display:flex}.page-card footer strong{font-size:21px}.page-card footer span{color:#2182b9;font-weight:800}.access-screen{background:radial-gradient(circle at 70% 15%,#275777 0,#102f4b 46%,#092238 100%);place-items:center;min-height:100vh;padding:30px;display:grid}.access-card{background:#fff;border:1px solid #ffffff29;border-radius:24px;width:min(520px,100%);padding:46px;box-shadow:0 30px 80px #03121e6b}.access-logo{color:#18334c;background:#f5a00a;border-radius:16px;place-items:center;width:64px;height:64px;margin-bottom:24px;font-size:29px;font-weight:950;display:grid;box-shadow:0 12px 25px #f5a00a47}.access-card h1{letter-spacing:-.03em;margin:0 0 10px;font-size:34px;line-height:1.1}.access-card>p:not(.eyebrow){color:#6c8092;line-height:1.55}.access-card label{margin:24px 0 14px}.access-card input{min-height:58px;font-size:17px}.access-card .primary{width:100%;margin-top:5px}.access-card>small{color:#8092a1;text-align:center;margin-top:18px;display:block}.access-error{background:#fff0f1;border:1px solid #e7b5b8;border-radius:9px;padding:10px;font-size:12px;color:#a1363e!important;margin:-3px 0 13px!important}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#081c2eb8;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:min(680px,100%);padding:38px;position:relative;box-shadow:0 30px 80px #06152261}.plan-modal{width:min(860px,100%)}.modal h2{margin:0 0 7px;font-size:35px}.modal>p:not(.eyebrow){color:#718497;margin-bottom:27px}.modal-close{color:#8191a1;cursor:pointer;background:0 0;border:0;font-size:40px;position:absolute;top:18px;right:24px}label{color:#52677a;letter-spacing:.07em;margin:17px 0;font-size:12px;font-weight:900;display:block}label small{color:#98a5b2;letter-spacing:0;font-weight:600}input,select{color:#173650;background:#fff;border:1px solid #cbd7e1;border-radius:10px;width:100%;min-height:48px;margin-top:8px;padding:0 13px}.modal input,.modal select{min-height:58px;font-size:17px}.modal-actions{background:#f6f8fa;border-top:1px solid #dde5eb;border-radius:0 0 22px 22px;justify-content:flex-end;align-items:end;gap:14px;min-height:75px;margin:25px -38px -38px;padding:17px 38px;display:flex}.modal-actions>span{color:#8795a3;margin-right:auto;font-size:13px}.upload-drop{cursor:pointer;background:#fffbed;border:3px dashed #f0a018;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;min-height:210px;display:flex}.upload-drop strong{color:#266790;font-size:40px}.upload-drop span{font-size:23px;font-weight:900}.upload-drop small{color:#8d9aa8;font-size:15px}.toast{z-index:200;color:#fff;cursor:pointer;background:#113651;border-radius:11px;padding:13px 20px;font-weight:750;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #071a2999}.toast.busy{color:#241a0c;background:#f29a0b}.workspace-shell{background:#dfe8ef;height:100vh;min-height:620px;display:flex;overflow:hidden}.workspace-rail{z-index:10;color:#c8d4df;background:#102f4b;flex:0 0 64px;width:64px;transition:width .2s,flex-basis .2s;position:relative;overflow:hidden auto;box-shadow:4px 0 15px #081b2a38}.workspace-rail:hover,.workspace-rail:focus-within{flex-basis:224px;width:224px}.workspace-rail button{width:224px;height:56px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-left:3px solid #0000;align-items:center;gap:11px;padding:0 12px;display:flex}.workspace-rail button:hover{color:#fff;background:#173d5c}.workspace-rail button.active{color:#fff;background:#ec9306;border-left-color:#ffd67a}.workspace-rail button b{white-space:nowrap;font-size:14px}.rail-brand{color:#fff!important;height:68px!important}.rail-brand span{flex:0 0 36px;width:36px;height:36px}.rail-brand b{font-size:18px!important}.rail-project{color:#fff!important;background:#173a57!important;border-top:1px solid #35526a!important;border-bottom:1px solid #35526a!important}.rail-project>span{text-align:center;flex:0 0 33px;width:33px;font-size:21px}.rail-section{color:#f6a00b;letter-spacing:.16em;width:224px;margin:0;padding:17px 18px 8px;font-size:10px;font-weight:950}.rail-icon{text-align:center;width:33px;color:inherit;flex:0 0 33px;font-size:10px;font-weight:950}.workspace-main{flex-direction:column;flex:1;min-width:0;display:flex}.workspace-header{background:#fff;border-bottom:1px solid #ccd8e2;flex:0 0 68px;justify-content:space-between;align-items:center;height:68px;padding:0 18px;display:flex}.workspace-header p{color:#75899b;margin:0 0 2px;font-size:10px;font-weight:750}.workspace-header h1{margin:0;font-size:19px}.canvas-toolbar{align-items:center;gap:6px;display:flex}.canvas-toolbar button{cursor:pointer;background:#f7f9fb;border:1px solid #cbd8e3;border-radius:8px;min-width:38px;height:36px;font-size:12px;font-weight:800}.canvas-toolbar button.active{color:#fff;background:#173f5d}.canvas-toolbar button.export-toolbar-button{color:#172f44;background:#f39a08;border-color:#e99108;min-width:92px;margin-left:5px}.canvas-toolbar span{text-align:center;color:#657a8d;min-width:52px;font-size:12px;font-weight:750}.workspace-body{flex:1;grid-template-columns:220px minmax(400px,1fr) 260px;min-height:0;display:grid}.workspace-body.setout-workspace{grid-template-columns:316px minmax(400px,1fr) 296px}.workspace-body.psp-workspace{grid-template-columns:290px minmax(400px,1fr) 278px}.workspace-body.markup-workspace{grid-template-columns:300px minmax(420px,1fr) 305px}.tool-panel,.properties-panel{background:#f7f9fb;border-right:1px solid #cbd6df;min-width:0;padding:16px 14px;overflow:hidden auto}.properties-panel{background:#fff;border-left:1px solid #cbd6df;border-right:0;overflow-x:hidden}.panel-title h2{margin:0 0 4px;font-size:15px}.panel-title p,.muted{color:#718597;margin:0 0 13px;font-size:11px;line-height:1.45}.tool-panel hr,.properties-panel hr{border:0;border-top:1px solid #d6e0e8;margin:16px 0}.tool-panel button,.properties-panel .wide-button{cursor:pointer}.button-grid,.segmented{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px;display:grid}.button-grid button,.segmented button,.wide-button,.tool-action{background:#fff;border:1px solid #c6d4df;border-radius:8px;min-height:36px;padding:7px;font-size:11px;font-weight:850}.segmented button.active,.wide-button.active{color:#fff;background:#163f5d;border-color:#163f5d}.wide-button,.tool-action{width:100%;margin:5px 0}.tool-action{color:#2e210c;background:#f5a009;border:0;box-shadow:0 5px 12px #e3911433}.tool-action.active{color:#fff;background:#183f5e}.compact-label{justify-content:space-between;align-items:center;display:flex}.compact-label input{width:60px;min-height:34px;margin:0;padding:2px}.tool-panel label{margin:10px 0}.tool-panel input,.tool-panel select{min-height:37px}.canvas-column{background:#526571;flex-direction:column;min-width:0;min-height:0;display:flex}.canvas-frame{cursor:grab;overscroll-behavior:none;touch-action:none;flex:1;place-items:center;min-height:0;padding:18px;display:grid;position:relative;overflow:auto}.canvas-frame:active{cursor:grabbing}.plan-stack{background:#fff;flex:none;position:relative;overflow:hidden;box-shadow:0 5px 20px #0000004d}.plan-stack>canvas:first-child{width:100%;height:100%;display:block;position:absolute;inset:0}.plan-stack.blank-sheet{background:#fff}.plan-stack .base-hidden{visibility:hidden}.footing-overlay-canvas{transform-origin:0 0;pointer-events:none;mix-blend-mode:multiply;position:absolute}.drawing-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.canvas-error{color:#9b3139;background:#fff;border-radius:12px;padding:30px}.canvas-overlay-error{z-index:30;color:#9b3139;pointer-events:none;background:#fff7f7f7;border:1px solid #efb1b5;border-radius:9px;place-self:start;max-width:420px;padding:9px 13px;font-size:12px;font-weight:700;position:sticky;top:58px;left:12px;box-shadow:0 5px 18px #00000024}.canvas-rendering{z-index:30;color:#fff;pointer-events:none;background:#10314af0;border-radius:999px;place-self:start;align-items:center;gap:9px;padding:9px 13px;font-size:12px;font-weight:800;display:flex;position:sticky;top:12px;left:12px;box-shadow:0 5px 18px #00000038}.canvas-rendering span{border:2px solid #ffffff59;border-top-color:#f39a08;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite canvas-render-spin}@keyframes canvas-render-spin{to{transform:rotate(360deg)}}.svg-label{fill:#122f49;paint-order:stroke;stroke:#fff;stroke-width:4px;font-size:16px;font-weight:950}.svg-point-label{fill:#102f4b;paint-order:stroke;stroke:#fff;stroke-width:3px;font-size:11px;font-weight:900}.numbered-setout-point>circle{stroke:#fff;stroke-width:2.5px;filter:drop-shadow(0 1px 2px #0f2f4b59)}.numbered-setout-point.selected>circle{stroke:#f39a08;stroke-width:4px;filter:drop-shadow(0 0 4px #f39a08e6)}.numbered-setout-point.interactive{cursor:grab}.numbered-setout-point.dragging{cursor:grabbing}.svg-point-number{fill:#fff;pointer-events:none;font-size:9px;font-weight:950}.precision-crosshair line{stroke:#00a7ff;stroke-linecap:square;filter:drop-shadow(0 0 1px #071b2c)}.precision-crosshair circle{fill:#fff;stroke:#071b2c;filter:drop-shadow(0 0 1px #fff)}.precision-ruler{color:#00a56a}.precision-ruler-halo{stroke:#fffffff0;stroke-width:3.5px;stroke-linecap:square;stroke-linejoin:round}.precision-ruler-ink{stroke:#00a56a;stroke-width:1.35px;stroke-linecap:square;stroke-linejoin:round}.precision-ruler-label{fill:#075b42;stroke:#fffffffa;paint-order:stroke fill;letter-spacing:0;font-weight:900}.precision-ruler-centre-halo{fill:#fff;stroke:#fff;stroke-width:2px}.precision-ruler-centre{fill:#fff;stroke:#00a56a;stroke-width:1.6px;filter:drop-shadow(0 0 1px #0536288c)}.precision-ruler-centre-dot{fill:#075b42;stroke:none}.fixture-placement-preview text{fill:#12364f;stroke:#fffffffa;paint-order:stroke fill;font-weight:950}.measurement-crosshair line{stroke:#0d83a2;stroke-linecap:square;filter:drop-shadow(0 0 1px #fff)}.svg-calibration-label{fill:#102f4b;font-size:9px;font-weight:950}.statusbar{color:#b9cad8;background:#103650;flex:0 0 38px;align-items:center;gap:20px;min-height:38px;padding:0 14px;font-size:10px;display:flex}.statusbar strong{color:#fff;margin-left:auto}.warning,.confidence-card{color:#7b5a15;background:#fff5dc;border:1px solid #f0cc7c;border-radius:10px;padding:12px;font-size:12px;line-height:1.45}.confidence-card p{margin:5px 0 0}.object-list{flex-direction:column;gap:8px;display:flex}.object-list article{background:#f8fafc;border:1px solid #d7e0e8;border-radius:9px;align-items:start;gap:8px;padding:10px;display:flex}.object-list article>div{flex:1;min-width:0}.object-list strong,.object-list span{font-size:12px;line-height:1.45;display:block}.object-list span{color:#6f8293}.object-list button{color:#a0545a;cursor:pointer;background:0 0;border:0;font-size:20px}.string-group-card{background:#fff;border:1px solid #d5e0e8;border-radius:10px;margin:10px 0 14px;padding:11px}.string-group-card label{margin:0 0 10px}.group-row>span,.placement-step{color:#52697c;text-transform:uppercase;letter-spacing:.04em;margin:10px 0 6px;font-size:11px;font-weight:850;display:block}.segmented.compact{margin:0}.group-actions{grid-template-columns:1fr 1fr;gap:7px;display:grid}.group-actions button{background:#f8fafb;border:1px solid #cbd7e0;border-radius:8px;min-height:34px;font-size:11px;font-weight:800}.placement-help{color:#718597;margin:-2px 0 12px;font-size:11px;line-height:1.45}.danger-outline{color:#9d3b43;border-color:#e5b9bc;margin-top:8px}.wide-button:disabled,.tool-action:disabled,.string-line-list button:disabled{cursor:not-allowed;opacity:.45}.string-groups-list{flex-direction:column;gap:10px;display:flex}.string-group-summary{background:#f8fafc;border:1px solid #d5e0e8;border-radius:10px;overflow:hidden}.string-group-summary.active{border-color:#ee9a17;box-shadow:0 0 0 2px #ee9a171a}.group-heading{color:#16334d;text-align:left;cursor:pointer;background:#fff;border:0;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:10px;display:grid}.group-heading>span{border-radius:5px;width:9px;height:28px}.group-heading strong,.group-heading small{display:block}.group-heading small{color:#718597;margin-top:2px;font-size:10px}.group-heading b{color:#287b4b;text-transform:uppercase;font-size:10px}.string-line-list{border-top:1px solid #e0e7ed;flex-direction:column;gap:1px;display:flex}.string-axis-section{background:#f8fafc;border:1px solid #d5e0e8;border-radius:10px;margin-top:12px;overflow:hidden}.string-axis-section h3{color:#173650;background:#fff;margin:0;padding:9px 10px;font-size:11px}.string-line-list article{background:#f8fafc;grid-template-columns:38px minmax(48px,1fr) repeat(4,26px);align-items:center;gap:3px;padding:6px;display:grid}.string-line-list article.selected{background:#fff5df;box-shadow:inset 3px 0 #ef9810}.string-line-label{color:#16334d;background:#fff;border:1px solid #ccd8e1;border-radius:6px;place-items:center;min-height:29px;font-size:12px;font-weight:950;display:grid}.string-line-list input{color:#16334d;text-align:center;border:1px solid #ccd8e1;border-radius:6px;min-width:0;height:29px;padding:4px 5px;font-weight:900}.string-line-list span{color:#667d90;text-overflow:ellipsis;font-size:10px;overflow:hidden}.string-line-list button{color:#456176;cursor:pointer;background:0 0;border:0;border-radius:6px;width:28px;height:28px;padding:0}.string-line-list button:hover:not(:disabled){background:#e7edf2}.string-line-list button:last-child{color:#a23f48;font-size:17px}.canvas-frame.crosshair-cursor,.canvas-frame.crosshair-cursor *{cursor:crosshair!important}.drawing-overlay .string-line-hit.string-select{cursor:pointer}.drawing-overlay .string-line-hit.string-delete{cursor:crosshair}.drawing-overlay .string-line-hit.horizontal.string-move{cursor:ns-resize}.drawing-overlay .string-line-hit.vertical.string-move{cursor:ew-resize}.drawing-overlay .string-line-preview{opacity:.72;filter:drop-shadow(0 0 2px #fff)}.stringline-tool-grid{grid-template-columns:1fr 1fr;gap:6px;margin:9px 0;display:grid}.stringline-tool-grid button{color:#23465f;cursor:pointer;background:#f8fafc;border:1px solid #cbd8e2;border-radius:8px;min-height:39px;padding:5px 7px;font-size:9px;font-weight:900}.stringline-tool-grid button:nth-child(2),.stringline-tool-grid button:nth-child(3){grid-column:1/-1}.stringline-tool-grid button.active{color:#8e5200;background:#fff1d6;border-color:#ee9810;box-shadow:inset 0 0 0 1px #ee9810}.stringline-tool-grid button.active.danger{color:#a4313a;background:#fff0f1;border-color:#d4535d;box-shadow:inset 0 0 0 1px #d4535d}.stringline-tool-grid button:disabled{cursor:not-allowed;opacity:.45}.measured-placement-preview{pointer-events:none}.measured-placement-preview line{stroke:#10aeca;stroke-width:2.5px;stroke-dasharray:6 4}.measured-placement-preview .reference-dot,.drawing-overlay>.reference-dot{fill:#fff;stroke:#0d83a2;stroke-width:3px}.measured-placement-preview .waypoint-dot,.drawing-overlay>.waypoint-dot{fill:#10aeca;stroke:#fff;stroke-width:3px}.measured-placement-preview .target-dot{fill:#f6a00b;stroke:#fff;stroke-width:2px}.measured-placement-preview text{fill:#12364f;paint-order:stroke;stroke:#fff;stroke-width:5px;font-size:14px;font-weight:950}.psp-sewer-trace{filter:drop-shadow(0 1px 1px #0000002e);pointer-events:none}.psp-sewer-trace.preview{opacity:.72}.psp-alignment-point circle{fill:#f4a00b;stroke:#fff;stroke-width:3px;filter:drop-shadow(0 2px 3px #112f4c59)}.psp-alignment-point text{fill:#133650;paint-order:stroke;stroke:#fff;stroke-width:4px;font-size:11px;font-weight:950}.psp-alignment-point text:first-of-type{fill:#fff;stroke:none;font-size:9px}.psp-alignment-link{stroke:#f4a00b;stroke-width:3px;stroke-dasharray:8 5}.psp-mode-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.psp-mode-buttons button{color:#173a56;text-align:left;cursor:pointer;background:#fff;border:1px solid #cbd7e0;border-radius:11px;align-items:center;gap:9px;min-height:72px;padding:10px;display:flex}.psp-mode-buttons button>span{color:#26709e;flex:0 0 28px;font-size:25px}.psp-mode-buttons button strong,.psp-mode-buttons button small{display:block}.psp-mode-buttons button strong{font-size:12px}.psp-mode-buttons button small{color:#7b8b99;margin-top:3px;font-size:9px;line-height:1.25}.psp-mode-buttons button.active{color:#fff;background:linear-gradient(135deg,#f7a315,#e98c00);border-color:#e89105;box-shadow:0 6px 14px #e1850033}.psp-mode-buttons button.active>span,.psp-mode-buttons button.active small{color:#fff}.psp-workflow-steps{gap:7px;margin:14px 0;display:grid}.psp-workflow-steps>span{color:#607487;background:#fff;border:1px solid #d6e0e7;border-radius:9px;align-items:center;gap:9px;min-height:40px;padding:7px 10px;font-size:10px;font-weight:850;display:flex}.psp-workflow-steps b{color:#516779;background:#dce5ec;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.psp-workflow-steps>span.active{color:#8e5505;background:#fff8e9;border-color:#f0a11d}.psp-workflow-steps>span.active b{color:#fff;background:#f4a00b}.psp-workflow-steps>span.done{color:#237744;background:#f1faf4;border-color:#9fd2b2}.psp-workflow-steps>span.done b{color:#fff;background:#28a35a}.psp-alignment-help,.psp-drawing-help{color:#795410;background:#fff8e8;border:1px solid #f0c56f;border-radius:10px;gap:5px;margin:10px 0 15px;padding:12px;font-size:10px;line-height:1.45;display:grid}.psp-alignment-help strong,.psp-drawing-help strong{color:#4a3512;font-size:11px}.field-title{color:#52677a;letter-spacing:.08em;margin:12px 0 8px;font-size:10px;font-weight:900;display:block}.psp-colour-grid{grid-template-columns:repeat(6,34px);align-items:center;gap:8px;margin-bottom:13px;display:grid}.psp-colour-grid>button{cursor:pointer;border:3px solid #fff;border-radius:50%;width:34px;height:34px;box-shadow:0 0 0 1px #c8d4de}.psp-colour-grid>button.selected{transform:scale(1.05);box-shadow:0 0 0 3px #f4a00b}.psp-custom-colour{grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;margin:3px 0 0!important;display:flex!important}.psp-custom-colour input{width:54px;height:34px;min-height:34px;margin:0;padding:2px}.psp-alignment-status{background:#f7f9fb;border:1px solid #d6e0e7;border-radius:11px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;margin:0 0 16px;padding:12px;display:grid}.psp-alignment-status>span{color:#496174;background:#dce5ec;border-radius:50%;place-items:center;width:38px;height:38px;font-size:10px;font-weight:950;display:grid}.psp-alignment-status strong,.psp-alignment-status small{display:block}.psp-alignment-status strong{font-size:12px}.psp-alignment-status small{color:#748798;margin-top:3px;font-size:9px;line-height:1.35}.psp-alignment-status.ready{background:#f1faf4;border-color:#9fd2b2}.psp-alignment-status.ready>span{color:#fff;background:#28a35a;font-size:18px}.psp-line-swatch{border-radius:5px;flex:0 0 7px;align-self:stretch}.setout-mode-buttons{gap:6px;display:grid}.setout-mode-buttons button{color:#173a56;text-align:left;cursor:pointer;background:#fff;border:1px solid #cbd7e0;border-radius:9px;align-items:center;gap:8px;min-height:50px;padding:7px 10px;font-size:12px;font-weight:900;display:flex}.setout-mode-buttons button span{color:#266595;font-size:18px}.setout-mode-buttons button.active{color:#fff;background:linear-gradient(135deg,#f7a315,#ec8c00);border-color:#ec9306;box-shadow:0 5px 12px #de850033}.setout-mode-buttons button div{min-width:0}.setout-mode-buttons button strong,.setout-mode-buttons button small{display:block}.setout-mode-buttons button strong{font-size:12px}.setout-mode-buttons button small{color:#738697;margin-top:2px;font-size:8px;font-weight:700}.setout-mode-buttons button.active small{color:#ffffffc7}.quick-point-grid{background:#fff;border:1px solid #d7e0e8;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:3px 0 12px;padding:8px;display:grid}.quick-point-grid button{color:#394f62;cursor:pointer;background:#fbfcfd;border:1px solid #d4dee6;border-radius:7px;min-width:0;min-height:37px;padding:4px 2px;font-size:9px;font-weight:900}.quick-point-grid button:hover,.quick-point-grid button.selected{color:#9b5800;background:#fff7e8;border-color:#ef9912}.point-size-control{background:#fff;border:1px solid #d7e0e8;border-radius:9px;margin:0 0 12px;padding:9px}.point-size-control label,.point-size-control>div{justify-content:space-between;align-items:center;display:flex}.point-size-control label{color:#41576b;letter-spacing:.07em;font-size:10px;font-weight:900}.point-size-control output{color:#ef8e00;letter-spacing:normal;font-size:12px}.point-size-control input{accent-color:#ef9400;cursor:ew-resize;width:100%;margin:10px 0 4px}.point-size-control small{color:#8a9aa7;font-size:9px}.point-override-label>span{justify-content:space-between;align-items:baseline;display:flex}.point-override-label small{color:#8192a1;text-transform:none;font-weight:650}.keep-label-row{color:#5d7284;align-items:center;gap:8px;text-transform:none!important;letter-spacing:0!important;font-size:10px!important;font-weight:750!important;display:flex!important}.keep-label-row input{width:16px;min-height:16px;margin:0}.measure-distance-card{background:#fff;border:1px solid #d5e0e8;border-radius:9px;margin:12px 0 10px;padding:10px}.measure-distance-card.active{border-color:#18a7c2;box-shadow:0 0 0 2px #18a7c21a}.measure-distance-card h3{color:#1a557d;text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:12px}.measure-distance-card p{color:#718597;margin:6px 0 11px;font-size:10px;line-height:1.45}.measure-actions{grid-template-columns:1fr;gap:7px;display:grid}.measure-actions button{color:#355266;cursor:pointer;background:#f8fafc;border:1px solid #ced9e2;border-radius:8px;min-height:40px;font-size:10px;font-weight:900}.measure-actions button.active{color:#945400;background:#fff4df;border-color:#ef9912}.measure-actions button:disabled{cursor:not-allowed;opacity:.45}.measure-distance-card>small{color:#a26a15;margin-top:8px;font-size:9px;display:block}.measure-instructions{border-top:1px dashed #cbd9e2;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px;padding-top:10px;display:grid}.measure-instructions strong{color:#163a56;grid-column:1/-1;font-size:10px}.measure-instructions span{color:#6d8293;font-size:9px}.measure-instructions kbd{color:#304b60;background:#f3f6f8;border:1px solid #cbd6df;border-radius:4px;padding:2px 4px;font-family:inherit;font-weight:900}.points-panel-heading{border-bottom:1px solid #dbe3e9;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.points-panel-heading .eyebrow{margin:0 0 2px}.points-panel-heading h2{color:#16334d;margin:0;font-size:16px}.points-panel-heading button{color:#bd313d;cursor:pointer;background:#fff;border:1px solid #e8b9bd;border-radius:8px;min-height:34px;padding:0 12px;font-size:11px;font-weight:850}.points-panel-heading button:disabled{cursor:not-allowed;opacity:.4}.measurement-group-list{gap:10px;margin-top:11px;display:grid}.measurement-group{background:#f8fafc;border:1px solid #d8e2e9;border-radius:10px;overflow:hidden}.measurement-group.active{border-color:#ef9a12;box-shadow:0 0 0 2px #ef9a121a}.measurement-group>header{background:#fff;border-bottom:1px solid #e3e9ee;grid-template-columns:minmax(0,1fr) 32px 32px;align-items:center;gap:3px;padding:6px;display:grid}.measurement-group-toggle{color:#173650;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;min-width:0;padding:5px;display:flex}.measurement-group-toggle>span{color:#216291;font-size:11px}.measurement-group-toggle>div{min-width:0}.measurement-group-toggle strong,.measurement-group-toggle small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.measurement-group-toggle strong{font-size:12px}.measurement-group-toggle small{color:#8293a1;margin-top:2px;font-size:9px}.measurement-group>header>button:not(.measurement-group-toggle){color:#245d86;cursor:pointer;background:#f2f6f9;border:0;border-radius:6px;width:30px;height:30px;font-size:15px;font-weight:850}.measurement-group>header>button:last-child{color:#d12734}.measurement-group>header>button:disabled{cursor:not-allowed;opacity:.35}.measurement-group-points{padding:8px}.measurement-group-points>.muted{margin:4px}.active-point-group{background:#fffaf0;border:2px solid #ee9a17;border-radius:9px;margin:11px 0;padding:8px 10px}.active-point-group small,.active-point-group strong{display:block}.active-point-group small{color:#7d8c99;letter-spacing:.05em;margin-bottom:3px;font-size:9px;font-weight:900}.active-point-group strong{color:#643d0e;font-size:12px}.setout-point-list{flex-direction:column;gap:8px;display:flex}.setout-point-list article{background:#fff;border:1px solid #dce4ea;border-left-width:4px;border-radius:9px;grid-template-columns:minmax(0,1fr) 22px;gap:7px;padding:7px;display:grid}.setout-point-list article.selected{background:#fffaf0;border-color:#ef9a12;box-shadow:0 0 0 2px #ef9a121a}.point-select{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:7px;min-width:0;padding:2px 0;display:grid}.point-number{color:#fff;background:#3686ef;border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;font-weight:900;display:grid}.point-card-content{min-width:0}.point-card-content>strong{color:#18364f;font-size:12px;display:block}.point-card-content>small{color:#8a9aa7;font-size:9px;display:block}.fixture-stringline-measurements{border-top:1px solid #e6edf2;gap:7px;margin-top:8px;padding-top:7px;display:grid}.fixture-stringline-measurements section{min-width:0}.fixture-stringline-measurements h4{color:#1b5d89;letter-spacing:.11em;margin:0 0 4px;font-size:8px;font-weight:900}.fixture-stringline-measurements section>div{grid-template-columns:repeat(auto-fit,minmax(62px,1fr));gap:4px 7px;display:grid}.fixture-stringline-measurements span{color:#687d8f;grid-template-columns:minmax(15px,auto) 1fr;align-items:baseline;gap:4px;min-width:0;font-size:9px;display:grid}.fixture-stringline-measurements span.nearest{color:#9a5900}.fixture-stringline-measurements b{color:currentColor;text-overflow:ellipsis;font-size:9px;overflow:hidden}.fixture-stringline-measurements em{color:#334f64;text-align:right;font-size:9px;font-style:normal;font-weight:800}.fixture-stringline-measurements em:after{content:" mm";color:#8998a5;font-size:7px;font-weight:700}.fixture-stringline-measurements em.scale-required:after{content:""}.setout-point-list article>button:last-child{color:#d12734;cursor:pointer;background:0 0;border:0;width:24px;height:24px;font-size:19px;font-weight:700}.point-editor{background:#f8fafc;border:1px solid #d5e0e8;border-radius:10px;gap:9px;margin-top:14px;padding:12px;display:grid}.point-editor h3{color:#173650;margin:0 0 3px;font-size:12px}.point-editor label{margin:0}.point-editor textarea{resize:vertical;color:#173650;width:100%;font:inherit;border:1px solid #cbd7e1;border-radius:8px;padding:9px}.calibration-progress{align-items:center;margin:20px 0;display:flex}.calibration-progress span{background:#dce4ea;border-radius:50%;place-items:center;width:37px;height:37px;font-weight:900;display:grid}.calibration-progress span.done{background:#f4a00b}.calibration-progress i{background:#dce4ea;flex:1;height:3px}.scale-calibration-summary{color:#214d37;background:#f1fbf5;border:1px solid #b9d8c6;border-radius:9px;gap:6px;margin:10px 0;padding:11px;display:grid}.scale-calibration-summary>strong{font-size:12px}.scale-calibration-summary>span{color:#597267;font-size:9px;font-weight:750}.scale-calibration-summary>div{grid-template-columns:1fr 1fr;gap:7px;margin-top:3px;display:grid}.scale-calibration-summary button{color:#23613f;background:#fff;border:1px solid #8fc4a6;border-radius:7px;min-height:34px;font-size:9px;font-weight:850}.known-distance{background:#edf4f8;border-radius:12px;margin:20px 0;padding:17px}.known-distance label{margin:0 0 12px;position:relative}.known-distance input{min-height:62px;padding-right:55px;font-size:25px;font-weight:850}.known-distance label span{color:#758798;letter-spacing:0;font-size:17px;position:absolute;bottom:18px;right:16px}.known-distance .primary{width:100%}.range-label>span{justify-content:space-between;display:flex}.range-label input{border:0;min-height:25px;padding:0}.toggle-row{align-items:center;gap:8px;display:flex}.toggle-row input{width:18px;min-height:18px;margin:0}.takeoff-list{flex-direction:column;gap:9px;display:flex}.takeoff-list article{border-bottom:1px solid #dde5eb;grid-template-columns:6px 1fr auto;align-items:center;gap:9px;padding:10px 0;display:grid}.takeoff-list article>span{border-radius:5px;height:44px}.takeoff-list strong,.takeoff-list small{display:block}.takeoff-list small{color:#728598;margin-top:3px}.takeoff-list b{font-size:12px}.mini-table>div{border-bottom:1px solid #e1e7ec;justify-content:space-between;padding:9px 0;display:flex}.empty-state{text-align:center;color:#789;padding:50px}.markup-mode-tabs{background:#eaf0f4;border:1px solid #d4dfe7;border-radius:11px;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0 0 14px;padding:4px;display:grid}.markup-mode-tabs button{color:#607589;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:0;min-height:36px;padding:5px 2px;font-size:9px;font-weight:900}.markup-mode-tabs button.active{color:#133650;background:#fff;box-shadow:0 3px 9px #102f4b1f}.markup-section{background:#fff;border:1px solid #d5e0e8;border-radius:12px;margin:0 0 13px;padding:12px}.markup-section.compact{padding-bottom:7px}.section-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.section-heading>div{align-items:center;gap:8px;min-width:0;display:flex}.section-heading strong{color:#1b587f;letter-spacing:.08em;font-size:10px}.section-heading small{color:#8a98a5;font-size:9px}.section-heading>button{color:#a45d00;cursor:pointer;background:#fff;border:1px solid #efad42;border-radius:7px;min-height:30px;padding:0 8px;font-size:9px;font-weight:900}.section-accent{background:#f5a00a;border-radius:6px;flex:0 0 6px;width:6px;height:26px}.panel-copy{color:#728698;margin:0 0 10px;font-size:10px;line-height:1.45}.markup-service-list{gap:6px;display:grid}.markup-service-list>button{color:#17364f;text-align:left;cursor:pointer;background:#fbfcfd;border:1px solid #d6e0e8;border-radius:9px;grid-template-columns:8px minmax(0,1fr);align-items:stretch;gap:9px;min-height:51px;padding:0 10px 0 0;display:grid;overflow:hidden}.markup-service-list>button>span{width:8px;height:100%}.markup-service-list>button>div{align-self:center;min-width:0}.markup-service-list strong,.markup-service-list small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.markup-service-list strong{font-size:11px}.markup-service-list small{color:#80909f;margin-top:2px;font-size:8px}.markup-service-list>button.selected{background:#fff8e9;border-color:#ee9913;box-shadow:0 0 0 2px #ee99131a}.markup-colour-grid{grid-template-columns:repeat(8,1fr);gap:6px;margin:9px 0 12px;display:grid}.markup-colour-grid button{aspect-ratio:1;cursor:pointer;border:3px solid #fff;border-radius:50%;min-width:0;box-shadow:0 0 0 1px #c9d5df}.markup-colour-grid button.selected{transform:scale(1.06);box-shadow:0 0 0 3px #f4a00b}.markup-help{color:#735318;background:#fff8e8;border:1px solid #efc26b;border-radius:10px;gap:4px;margin:9px 0 13px;padding:11px;font-size:9px;line-height:1.45;display:grid}.markup-help strong{color:#48330f;text-transform:capitalize;font-size:10px}.markup-bundle-list{gap:8px;display:grid}.markup-bundle-list article{background:#f8fafc;border:1px solid #d6e0e8;border-radius:9px;grid-template-columns:1fr auto;align-items:center;gap:9px;padding:10px;display:grid}.markup-bundle-list strong,.markup-bundle-list small{display:block}.markup-bundle-list strong{font-size:11px}.markup-bundle-list small{color:#7b8d9c;margin-top:3px;font-size:8px}.markup-bundle-list button{color:#975600;cursor:pointer;background:#fff;border:1px solid #eba63a;border-radius:7px;min-height:31px;padding:0 9px;font-size:9px;font-weight:900}.marker-library{gap:7px;display:grid}.marker-library>button{text-align:left;cursor:pointer;background:#fbfcfd;border:1px solid #d5e0e8;border-radius:10px;grid-template-columns:43px minmax(0,1fr);align-items:center;gap:10px;min-height:58px;padding:7px;display:grid}.marker-library>button>span{color:#fff;border-radius:50%;place-items:center;width:40px;height:40px;font-size:10px;font-weight:950;display:grid}.marker-library strong,.marker-library small{display:block}.marker-library strong{font-size:10px}.marker-library small{color:#8493a0;margin-top:3px;font-size:8px}.marker-library>button.selected{background:#fff8e8;border-color:#ed9b19;box-shadow:0 0 0 2px #ed9b191a}.annotation-tools{grid-template-columns:1fr 1fr;gap:7px;display:grid}.annotation-tools button{text-align:left;cursor:pointer;background:#fbfcfd;border:1px solid #d4dfe7;border-radius:9px;grid-template-rows:1fr 1fr;grid-template-columns:28px 1fr;align-items:center;gap:0 7px;min-height:72px;padding:9px;display:grid}.annotation-tools button>span{color:#246992;text-align:center;grid-row:1/3;font-size:21px}.annotation-tools strong{align-self:end;font-size:10px}.annotation-tools small{color:#8695a2;align-self:start;font-size:8px}.annotation-tools button.active{color:#955500;background:#fff7e7;border-color:#ee9b17}.export-section{text-align:center;padding:28px 18px}.export-section .export-mark{color:#fff;background:#e84b45;border-radius:16px;place-items:center;width:66px;height:66px;margin:0 auto 14px;font-size:16px;font-weight:950;display:grid;box-shadow:0 8px 18px #cc373133}.export-section h3{margin-bottom:7px}.export-section p{color:#758899;font-size:10px;line-height:1.5}.markup-site-marker text{fill:#fff;pointer-events:none;font-weight:950}.markup-dimension text,.markup-live-preview text{paint-order:stroke;stroke:#fff;stroke-width:4px;font-weight:950}.markup-live-preview{pointer-events:none}.markup-live-preview text{fill:#14354f;font-size:12px}.markup-properties-heading{border-bottom:1px solid #dbe3e9;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.markup-properties-heading h2{margin:0;font-size:18px}.markup-properties-heading .eyebrow{margin-bottom:2px!important}.markup-properties-heading>button{color:#9b5700;cursor:pointer;background:#fff;border:1px solid #efad43;border-radius:8px;min-height:34px;padding:0 11px;font-size:10px;font-weight:900}.markup-stage-manager{gap:8px;margin:13px 0;display:grid}.markup-category{background:#f8fafc;border:1px solid #d7e0e8;border-radius:10px;overflow:hidden}.markup-category-title{background:#fff;grid-template-columns:6px minmax(0,1fr) 30px;align-items:center;gap:9px;min-height:38px;padding:0 7px 0 0;display:grid}.markup-category-title>span{background:#f5a00a;align-self:stretch}.markup-category-title strong{color:#1c587e;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.markup-category-title button{color:#a76200;cursor:pointer;background:#fff3da;border:0;border-radius:6px;width:28px;height:28px}.markup-stage-list{border-top:1px solid #e0e7ec;gap:1px;display:grid}.markup-stage-list article{background:#f7f9fb;grid-template-columns:minmax(0,1fr) 32px;align-items:center;min-height:46px;display:grid}.markup-stage-list article.active{background:#fff8e9}.stage-select{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:7px 9px;display:grid}.stage-dot{background:#8b9aa7;border-radius:50%;width:8px;height:8px}.stage-select strong,.stage-select small{display:block}.stage-select strong{text-overflow:ellipsis;font-size:10px;overflow:hidden}.stage-select small{color:#8393a0;margin-top:2px;font-size:8px}.markup-stage-list article>button:last-child{color:#557085;cursor:pointer;background:0 0;border:0}.empty-stage-add{color:#789;cursor:pointer;background:#f8fafc;border:0;min-height:35px;font-size:8px}.active-runs{background:#f8fafc;border:1px solid #d6e0e8;border-radius:10px;margin:15px 0;padding:12px}.run-chips{flex-wrap:wrap;gap:6px;display:flex}.run-chips button{color:#557084;cursor:pointer;background:#fff;border:1px solid #ccd8e1;border-radius:18px;min-height:30px;padding:0 9px;font-size:9px;font-weight:850}.run-chips button.active{color:#925300;background:#fff2d8;border-color:#ef9912}.markup-object-summary{margin-top:14px}.summary-counts{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:11px;display:grid}.summary-counts div{text-align:center;background:#f8fafc;border:1px solid #d8e1e8;border-radius:8px;padding:8px 4px}.summary-counts strong,.summary-counts span{display:block}.summary-counts strong{font-size:17px}.summary-counts span{color:#758899;text-transform:uppercase;font-size:8px}.markup-item-swatch{border-radius:5px;flex:0 0 7px;align-self:stretch}.markup-marker-swatch,.markup-annotation-swatch{border-radius:50%;flex:0 0 30px;align-self:center;place-items:center;width:30px;height:30px;font-weight:950;color:#fff!important;font-size:8px!important;display:grid!important}.markup-marker-selection{fill:none;stroke:#f39a08;stroke-width:2px;stroke-dasharray:4 3;pointer-events:none}.markup-object-select{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:0;display:flex}.markup-object-select>div{min-width:0}.object-list article.selected{border-color:#f39a08;box-shadow:0 0 0 2px #f39a0829}.layer-visibility-toggle{color:#244763;cursor:pointer;background:#fff;border:1px solid #d9e3ea;border-radius:8px;width:100%;margin:10px 0;padding:9px 10px;font-weight:800}.markup-marker-editor{background:#f8fafc;border:1px solid #d7e0e8;border-radius:10px;margin-top:12px;padding:12px}.markup-marker-editor .section-heading{margin-bottom:8px}.markup-marker-editor .section-heading button{color:#6f8293;cursor:pointer;background:0 0;border:0;font-weight:800}.connection-status{border-radius:8px;margin:8px 0 0;padding:8px 10px;font-size:12px;line-height:1.4}.connection-status.ready{color:#18723b;background:#eaf8ef}.connection-status.warning{color:#9a5a00;background:#fff6df}.auto-material-list{flex-direction:column;gap:7px;display:flex}.auto-material-list details{background:#fff;border:1px solid #d7e0e8;border-radius:8px;overflow:hidden}.auto-material-list summary{color:#234762;cursor:pointer;justify-content:space-between;gap:8px;padding:10px;font-size:12px;font-weight:800;display:flex}.auto-material-list details>div{color:#6f8293;flex-direction:column;gap:4px;padding:0 10px 9px;display:flex}.auto-material-list summary span small{color:#8495a1;letter-spacing:.06em;text-transform:uppercase;font-size:8px;display:block}.material-source-link{color:#1c6e9f;text-align:left;background:0 0;border:0;padding:2px 0;font-size:9px}.drainage-quantity-controls{border-top:1px solid #edf1f4;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:6px!important;padding-top:7px!important;display:grid!important}.drainage-quantity-controls span,.drainage-quantity-controls label{font-size:8px}.drainage-quantity-controls b{color:#163f59;font-size:10px;display:block}.drainage-quantity-controls input{min-width:0;padding:5px}.drainage-manual-items{flex-direction:column;gap:5px;margin-top:10px;display:flex}.drainage-manual-items>strong{color:#496273;font-size:9px}.drainage-manual-items>div{grid-template-columns:.7fr 1.5fr 1fr .55fr .6fr;gap:4px;display:grid}.drainage-manual-items input,.drainage-manual-items select{min-width:0;padding:6px 4px;font-size:8px}.auto-material-reviews{color:#895000;background:#fff8e8;border:1px solid #f0c66f;border-radius:8px;margin-top:12px;padding:10px}.auto-material-reviews strong{margin-bottom:6px;display:block}.auto-material-reviews p{flex-direction:column;gap:2px;margin:6px 0 0;font-size:11px;display:flex}.workspace-body.quotes-workspace-body{background:#eef3f7;display:block;overflow:auto}.quotes-workspace{color:#18364d;width:min(1180px,100% - 48px);margin:0 auto;padding:28px 0 48px}.quotes-intro{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;display:flex}.quotes-intro h2{color:#102f4b;margin:3px 0 6px;font-size:24px}.quotes-intro p{color:#6b8192;margin:0}.quotes-sync{color:#137542;text-transform:uppercase;letter-spacing:.05em;background:#eaf8f0;border:1px solid #a6dcc0;border-radius:999px;flex:none;padding:8px 12px;font-size:11px;font-weight:900}.quotes-sync.loading{color:#915b00;background:#fff8e9;border-color:#efcf8c}.quotes-toolbar-status{color:#19704a;font-size:12px;font-weight:850}.quotes-tabs{background:#fff;border:1px solid #ccd9e2;border-radius:10px;gap:5px;margin-bottom:20px;padding:5px;display:flex}.quotes-tabs button{color:#62798b;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;min-height:40px;font-weight:850}.quotes-tabs button.active{color:#fff;background:#102f4b;box-shadow:0 3px 8px #0a23372e}.quote-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px;display:grid}.quote-stat-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-stat-grid article{background:#fff;border:1px solid #d4dfe7;border-top:4px solid #7e93a2;border-radius:10px;min-height:112px;padding:16px;box-shadow:0 5px 16px #1232490f}.quote-stat-grid article.water{border-top-color:#168de2}.quote-stat-grid article.gas{border-top-color:#efb72e}.quote-stat-grid article.sewer{border-top-color:#20a45b}.quote-stat-grid article span,.quote-stat-grid article small{color:#718697;font-size:11px;font-weight:750;display:block}.quote-stat-grid article strong{color:#102f4b;margin:7px 0 5px;font-size:30px;line-height:1;display:block}.quote-schedule{background:#fff;border:1px solid #d4dfe7;border-radius:10px;margin-top:16px;overflow:hidden;box-shadow:0 5px 16px #1232490d}.quote-section-title{background:#fbfcfd;border-bottom:1px solid #e0e7ed;align-items:center;gap:9px;padding:14px 17px;display:flex}.quote-section-title span{background:#ec9306;border-radius:3px;width:4px;height:20px}.quote-section-title h3{margin:0;font-size:14px}.quote-schedule table{border-collapse:collapse;width:100%;font-size:12px}.quote-schedule th{color:#6c8192;text-align:left;text-transform:uppercase;letter-spacing:.05em;background:#f4f7f9;padding:10px 14px;font-size:10px}.quote-schedule td{border-top:1px solid #e4eaef;padding:12px 14px}.quote-schedule tbody tr:hover{background:#f8fafb}.quote-schedule td:last-child,.quote-schedule th:last-child{text-align:right}.quote-category{color:#126bac;background:#e9f4fd;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:850;display:inline-block}.quote-category.gas{color:#8a5b00;background:#fff4d8}.quote-category.sewer{color:#137542;background:#e8f7ef}.material-schedule td:first-child strong,.material-schedule td:first-child small{display:block}.material-schedule td:first-child small{color:#8a9ba8;margin-top:2px;font-size:9px}.material-schedule input{text-align:right;border:1px solid #bccbd6;border-radius:6px;width:90px;min-height:34px;padding:4px 9px}.material-schedule td:last-child{color:#102f4b}.quote-empty{color:#7b8e9d;margin:0;padding:28px 17px}.quote-review{background:#fff9eb;border:1px solid #efc975;border-radius:10px;margin-top:16px;padding:16px}.quote-review h3{margin:0 0 8px}.quote-review p{flex-direction:column;gap:3px;margin:8px 0 0;font-size:11px;display:flex}.selected-plan-distance{background:#eaf4fa;border-radius:6px;padding:8px 10px;font-size:11px;color:#315c78!important;margin:0 0 10px!important}@media (width<=900px){.quotes-workspace{width:min(100% - 24px,1180px);padding-top:18px}.quote-stat-grid,.quote-stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}.markup-annotation-swatch{background:#fff;border:2px solid;font-size:13px!important}.markup-note-modal{width:min(720px,100%)}.markup-note-modal textarea{resize:vertical;color:#173650;width:100%;min-height:110px;font:inherit;border:1px solid #cbd7e1;border-radius:10px;margin-top:8px;padding:13px}.note-format-row{grid-template-columns:1fr 48px 48px 48px;align-items:end;gap:8px;display:grid}.note-format-row label{margin:0}.note-format-row button{cursor:pointer;background:#fff;border:1px solid #ccd8e1;border-radius:9px;height:48px}.note-format-row button.active{color:#915100;background:#fff4dd;border-color:#ee9912}.note-colour-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.note-colour-row input{padding:5px}.note-preview{overflow-wrap:anywhere;border:1px dashed #aebdca;border-radius:10px;align-items:center;min-height:70px;margin-top:12px;padding:14px;display:flex}.markup-export-modal{width:min(760px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.export-subheading{color:#173650;text-transform:uppercase;letter-spacing:.08em;margin:22px 0 9px;font-size:12px}.export-scope-list{gap:8px;display:grid}.export-scope-list>label{cursor:pointer;background:#f8fafc;border:1px solid #d4dfe7;border-radius:10px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:62px;margin:0;padding:9px 13px;display:grid}.export-scope-list>label.selected{background:#fff8e9;border-color:#ef9b12;box-shadow:0 0 0 2px #ef9b121f}.export-scope-list input{accent-color:#ef9b12;width:18px;min-height:18px;margin:0}.export-scope-list strong,.export-scope-list small{display:block}.export-scope-list strong{color:#173650;font-size:12px}.export-scope-list small{color:#7d8f9d;margin-top:3px;font-size:9px}.export-scope-list b{color:#9a5b00;white-space:nowrap;font-size:10px}.export-option-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.export-option-list>label{cursor:pointer;background:#f8fafc;border:1px solid #d5e0e8;border-radius:9px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;min-height:55px;margin:0;padding:8px 12px;display:grid}.export-option-list input{accent-color:#ef9b12;width:18px;min-height:18px;margin:0}.export-option-list strong,.export-option-list small{display:block}.export-option-list strong{color:#18364f;letter-spacing:0;font-size:11px}.export-option-list small{color:#7e8f9d;margin-top:3px;font-size:9px}.export-page-preview>div{background:#f8fafc;border:1px solid #d4dfe7;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;min-height:58px;padding:9px 13px;display:grid}.export-page-preview>div:first-child{background:#fff8e9;border-color:#ef9b12}.export-page-preview small{grid-column:1}.export-page-preview b{grid-area:1/2/span 2}.export-page-total{color:#52697c;margin:9px 0 0;font-size:10px;font-weight:800}@media (width<=1250px){.workspace-body{grid-template-columns:195px minmax(350px,1fr) 225px}.workspace-body.setout-workspace{grid-template-columns:248px minmax(350px,1fr) 230px}.workspace-body.psp-workspace{grid-template-columns:245px minmax(350px,1fr) 230px}.workspace-body.markup-workspace{grid-template-columns:255px minmax(350px,1fr) 245px}.quick-point-grid{gap:4px;padding:6px}.quick-point-grid button{font-size:8px}.page-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}.export-option-list{grid-template-columns:1fr}}body{background:var(--app-bg);color:var(--text-primary)}button:focus-visible,input:focus-visible,select:focus-visible{outline-color:#2878c852}.eyebrow{letter-spacing:.13em;color:var(--primary-blue)!important;font-size:10px!important}.primary{background:var(--primary-blue);color:#fff;border-radius:6px;min-height:36px;padding:0 16px;box-shadow:0 4px 12px #2878c82e}.primary:hover{background:var(--primary-blue-hover)}.secondary{border-radius:6px;min-height:36px;padding:0 16px}.brand-mark{object-fit:contain;background:#fff;border-radius:5px;width:38px;height:38px;display:block}.access-logo{object-fit:contain;background:#fff;border-radius:6px;width:72px;height:72px;margin-bottom:22px;display:block;box-shadow:0 8px 20px #142c3f29}.shell-brand{background:var(--toolbar-dark);border-radius:5px;min-height:34px;padding:2px 8px 2px 3px}.shell-brand img{object-fit:contain;background:#fff;border-radius:3px;width:30px;height:30px;display:block}.shell-brand b{color:#fff}.project-preview img{z-index:1;object-fit:contain;background:#fff;border-radius:6px;width:84px;height:84px;position:absolute;box-shadow:0 5px 16px #0000002e}.project-preview span{display:none}.new-card,.add-plan-card{border-color:var(--primary-blue);background:var(--primary-blue-soft)}.new-card strong,.add-plan-card strong{color:var(--primary-blue)}.upload-drop{border-color:var(--primary-blue);background:var(--primary-blue-soft);border-width:2px;border-radius:8px}.toast.busy{background:var(--primary-blue);color:#fff}.workspace-shell{background:var(--app-bg)}.workspace-rail{background:var(--toolbar-dark)}.workspace-rail button.active{background:var(--primary-blue);color:#fff;border-color:#8fc5f5}.rail-section{color:#8fc5f5}.compact-workspace .workspace-rail button.active{background:var(--primary-blue);border-right-color:#8fc5f5}.primary-navigation button.active:after{background:var(--primary-blue);height:2px}.compact-workspace .workspace-body.setout-workspace,.compact-workspace .workspace-body.estimate-workspace,.compact-workspace .workspace-body.sewer-workspace,.compact-workspace .workspace-body.psp-workspace{--tool-width:218px;--property-width:258px}.tool-panel,.properties-panel{background:var(--surface-bg);border-color:var(--border)}.properties-panel{background:var(--panel-bg)}.panel-title h2{font-size:14px}.panel-title p,.muted{font-size:10px}.button-grid button,.segmented button,.wide-button,.tool-action{border-radius:5px;min-height:33px}.segmented button.active,.wide-button.active,.tool-action{border-color:var(--primary-blue);background:var(--primary-blue);color:#fff}.tool-action:hover{background:var(--primary-blue-hover)}.setout-mode-buttons button.active,.quick-point-grid button.selected,.sewer-tool-grid button.selected,.sewer-pipe-tools button.selected{border-color:var(--primary-blue);background:var(--primary-blue-soft);color:var(--primary-blue-hover);box-shadow:none}.section-accent,.quote-section-title span{background:var(--primary-blue)}.measurement-group.active,.string-group-summary.active,.object-list article.selected{border-color:var(--primary-blue);box-shadow:0 0 0 2px #2878c81c}.numbered-setout-point.selected>circle{stroke:var(--primary-blue);filter:drop-shadow(0 0 4px #2878c8b8)}.layers-menu input,.export-option-list input,.export-scope-list input{accent-color:var(--primary-blue)}.layers-subitem{color:var(--text-secondary);padding-left:18px;font-size:9px!important}.layers-subitem input{width:14px;min-height:14px}.group-measurement-table{pointer-events:none;filter:drop-shadow(0 1px 2px #142c3f2e)}.group-table-surface{fill:#fffffff2;stroke:var(--border);stroke-width:.75px}.group-table-drag-handle{pointer-events:all;cursor:grab;touch-action:none}.group-table-drag-handle:active{cursor:grabbing}.group-table-drag-handle rect{fill:var(--toolbar-dark)}.group-table-drag-handle text{fill:#fff;letter-spacing:.02em;-webkit-user-select:none;user-select:none;font-size:8px;font-weight:900}.group-table-drag-handle .group-table-count{fill:#d8e6f0;font-size:6px}.group-table-column-header{fill:#f1f5f8}.group-table-column-tint{pointer-events:none}.group-table-column-tint.tint-0{fill:#eaf3fbc7}.group-table-column-tint.tint-1{fill:#f4f7fac7}.group-table-column-tint.tint-2{fill:#edf7f1c7}.group-table-heading{fill:var(--text-secondary);font-size:6.5px;font-weight:900}.group-table-cell{fill:var(--text-primary);font-size:6.5px}.group-table-cell.label{font-weight:850}.group-table-cell.value{font-variant-numeric:tabular-nums}.group-table-rule{stroke:var(--border);stroke-width:.55px}.group-table-rule.subtle{opacity:.62}.group-table-empty{fill:var(--text-secondary);font-size:6.5px;font-style:italic}.compact-workspace .workspace-rail,.compact-workspace .workspace-rail:hover,.compact-workspace .workspace-rail:focus-within{flex:0 0 68px;width:68px}.compact-workspace .workspace-rail{flex-direction:column;display:flex;overflow-x:hidden;box-shadow:3px 0 12px #071c2d38}.compact-workspace .workspace-rail button{text-align:center;border-left:0;border-right:3px solid #0000;flex-direction:column;flex:none;justify-content:center;gap:2px;width:68px;height:54px;padding:5px 2px}.compact-workspace .workspace-rail button.active{color:#fff;background:#154a73;border-left:0;border-right-color:#ffd47b}.compact-workspace .workspace-rail button b{text-overflow:ellipsis;max-width:61px;font-size:9px;line-height:1.1;overflow:hidden}.compact-workspace .rail-brand{height:61px!important}.compact-workspace .rail-brand span{border-radius:8px;flex:0 0 30px;width:30px;height:30px}.compact-workspace .rail-brand b{display:none}.compact-workspace .rail-project{height:57px}.compact-workspace .rail-project>span{flex:none;width:auto;font-size:17px}.compact-workspace .rail-section{text-align:center;letter-spacing:.09em;width:68px;margin:5px 0 2px;padding:4px 1px;font-size:7px}.compact-workspace .rail-icon{border:1px solid #ffffff30;border-radius:6px;flex:none;place-items:center;width:auto;min-width:27px;height:25px;font-size:9px;display:grid}.compact-workspace .rail-help{margin-top:auto}.compact-workspace .workspace-header{flex-basis:64px;gap:8px;height:64px;padding:0 10px}.shell-brand{color:#fff;cursor:pointer;background:#103650;border:0;border-radius:8px;flex:none;align-items:center;gap:7px;min-height:38px;padding:0 9px 0 5px;display:flex}.shell-brand span{color:#14334a;background:#f2a018;border-radius:7px;place-items:center;width:28px;height:28px;font-weight:950;display:grid}.shell-brand b{letter-spacing:.06em;font-size:11px}.top-project-context{flex:0 210px;min-width:120px;max-width:210px;overflow:hidden}.top-project-context strong,.top-project-context small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.top-project-context strong{color:#173a54;font-size:10px}.top-project-context small{color:#7a8d9c;margin-top:2px;font-size:8px}.primary-navigation{scrollbar-width:thin;flex:1;justify-content:center;align-self:stretch;align-items:stretch;gap:1px;min-width:0;display:flex;overflow-x:auto}.primary-navigation button{color:#496579;white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;min-width:58px;padding:0 9px;font-size:9px;font-weight:850;position:relative}.primary-navigation button:hover{color:#173c58;background:#f2f6f9}.primary-navigation button.active{color:#126fba}.primary-navigation button.active:after{content:"";background:#2187e6;border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:8px;right:8px}.context-navigation{background:#eaf0f4;border:1px solid #cfdae2;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 0 13px;padding:4px;display:grid}.context-navigation button{color:#597185;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:31px;padding:4px;font-size:8px;font-weight:850}.context-navigation button.active{color:#174e75;background:#fff;box-shadow:0 1px 4px #0f304824}.project-picker{color:#264b68;cursor:pointer;background:#f8fafc;border:1px solid #c8d5df;border-radius:8px;justify-content:space-between;align-items:center;width:min(325px,30vw);min-height:38px;padding:0 12px;font-size:12px;font-weight:750;display:flex}.project-picker span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-context{flex:1;min-width:0}.workspace-context strong,.workspace-context small{display:block}.workspace-context strong{font-size:14px}.workspace-context small{color:#788d9f;font-size:9px}.header-actions{gap:6px;display:flex}.header-actions button{color:#506b7e;cursor:pointer;background:#fff;border:1px solid #cad6df;border-radius:7px;min-height:31px;padding:0 9px;font-size:9px;font-weight:800}.header-action-icon{display:none}.compact-workspace .workspace-body{--tool-width:220px;--property-width:260px;grid-template-columns:var(--tool-width) minmax(420px,1fr) var(--property-width);transition:grid-template-columns .18s}.compact-workspace .workspace-body.psp-workspace{--tool-width:290px;--property-width:278px}.compact-workspace .workspace-body.quote-workspace-layout{--tool-width:220px;--property-width:min(520px, 42vw)}.compact-workspace .workspace-body.left-collapsed{--tool-width:0px}.compact-workspace .workspace-body.right-collapsed{--property-width:0px}.compact-workspace .workspace-body.left-collapsed .tool-panel,.compact-workspace .workspace-body.right-collapsed .properties-panel{display:none}.compact-workspace .tool-panel,.compact-workspace .properties-panel{padding:13px 12px;position:relative}.panel-collapse{z-index:4;float:right;color:#5e7588;cursor:pointer;background:#fff;border:1px solid #ced9e1;border-radius:6px;width:25px;height:25px;margin:-6px -5px 4px 5px;position:sticky;top:0}.compact-workspace .canvas-column{background:#e7edf2;position:relative}.compact-workspace .canvas-toolbar{z-index:12;color:#fff;background:linear-gradient(#123d5e,#0b304c);border-radius:9px;flex:0 0 47px;grid-template-columns:auto minmax(110px,1fr) auto auto auto;gap:9px;min-height:47px;margin:9px 12px 0;padding:6px 8px;display:grid;box-shadow:0 4px 11px #08223538}.toolbar-tools,.toolbar-pages,.toolbar-zoom{align-items:center;gap:3px;display:flex}.compact-workspace .canvas-toolbar button{color:#fff;background:#ffffff0d;border:1px solid #ffffff24;min-width:33px;height:33px}.compact-workspace .canvas-toolbar button:hover,.compact-workspace .canvas-toolbar button.active{color:#123753;background:#edf5fa}.toolbar-status{color:#d6e4ee;place-self:center;font-size:10px}.toolbar-pages strong{text-align:center;min-width:50px;font-size:10px}.toolbar-zoom span{color:#fff;min-width:47px}.compact-workspace .canvas-toolbar .export-toolbar-button{color:#19344a;background:#f2a11c;border-color:#eda32b;min-width:58px;margin:0}.compact-workspace .canvas-frame{padding:12px}.compact-workspace .statusbar{flex-basis:29px;gap:14px;min-height:29px;padding:0 11px;font-size:8px;overflow:hidden}.statusbar>span{white-space:nowrap;flex:none}.statusbar .save-indicator{border-left:1px solid #fff3;padding-left:8px}.statusbar .save-indicator.saved{color:#8ee1b4}.statusbar .save-indicator.saving{color:#ffd27a}.statusbar .save-indicator.error{color:#ff9ca4}.quote-workspace-layout .properties-panel{padding:0}.quote-workspace-layout .properties-panel>.panel-collapse{margin:7px 7px 0 5px}.quote-workspace-layout .quotes-workspace{width:100%;margin:0;padding:14px 12px 28px}.quote-workspace-layout .quotes-intro{gap:10px;margin-bottom:12px}.quote-workspace-layout .quotes-intro h2{font-size:18px}.quote-workspace-layout .quotes-intro p{font-size:10px}.quote-workspace-layout .quote-stat-grid,.quote-workspace-layout .quote-stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.quote-workspace-layout .quote-stat-grid article{min-height:86px;padding:10px}.quote-workspace-layout .quote-stat-grid article strong{font-size:22px}.quote-workspace-layout .quote-schedule{overflow-x:auto}.quote-workspace-layout .quote-price-list article{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-workspace-layout .quote-notes,.quote-workspace-layout .quote-remove{grid-column:auto}.quote-workspace-layout .quote-totals{grid-template-columns:1fr}.quote-workspace-layout .quote-totals>div,.quote-workspace-layout .quote-totals>label{border-bottom:1px solid #e0e7ec;border-right:0}@media (width<=1250px){.shell-brand b,.top-project-context small{display:none}.top-project-context{flex-basis:145px;max-width:145px}.primary-navigation{justify-content:flex-start}.primary-navigation button{min-width:50px;padding:0 6px;font-size:8px}.compact-workspace .workspace-body{--tool-width:205px;--property-width:235px;grid-template-columns:var(--tool-width) minmax(350px,1fr) var(--property-width)}.compact-workspace .workspace-body.quote-workspace-layout{--tool-width:190px;--property-width:min(430px, 42vw)}}@media (width<=1024px){.compact-workspace .workspace-header{gap:4px;padding:0 6px}.top-project-context{display:none}.header-actions button{width:31px;padding:0}.header-action-label{display:none}.header-action-icon{font-size:13px;display:inline}.compact-workspace .workspace-body{--tool-width:190px;--property-width:220px;grid-template-columns:var(--tool-width) minmax(340px,1fr) var(--property-width)}.compact-workspace .workspace-body.quote-workspace-layout{--tool-width:180px;--property-width:400px}}.canvas-rendering span{border-top-color:var(--primary-blue)}.setout-mode-buttons button.active span{color:var(--primary-blue-hover)}.point-size-control output{color:var(--primary-blue)}.calibration-progress span.done{background:var(--success);color:#fff}.markup-category-title button{background:var(--primary-blue-soft);color:var(--primary-blue-hover)}.markup-stage-list article.active,.run-chips button.active{border-color:var(--primary-blue);background:var(--primary-blue-soft);color:var(--primary-blue-hover)}.markup-stage-list article.active .stage-dot{background:var(--primary-blue)}.markup-marker-selection{stroke:var(--primary-blue)}.job-actuals-empty,.job-actuals{background:#fff;border:1px solid #d8e2e8;border-radius:9px;margin:10px;padding:12px}.job-actuals-empty h3{margin:4px 0}.job-summary{grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0;display:grid}.job-summary span{color:#6f818d;background:#eef5f8;border-radius:7px;padding:7px;font-size:8px}.job-summary b{color:#123f5b;font-size:11px;display:block}.actual-stage{border:1px solid #d9e3e8;border-radius:8px;margin-top:8px;overflow:hidden}.actual-stage>summary{background:#f7f9fa;justify-content:space-between;padding:9px;display:flex}.actual-stage summary strong,.actual-stage summary small{display:block}.actual-stage summary small{color:#748792;font-size:8px}.actual-category-summary{grid-template-columns:repeat(3,1fr);gap:4px;padding:8px;display:grid}.actual-category-summary span{background:#f1f5f7;border-radius:5px;padding:5px;font-size:7px}.actual-category-summary b{font-size:9px;display:block}.actual-entry-list{padding:0 8px}.actual-entry-list>div{grid-template-columns:1fr 1.3fr .9fr .55fr .7fr auto;gap:4px;margin:4px 0;display:grid}.actual-entry-list input,.actual-entry-list select{min-width:0;padding:5px 3px;font-size:8px}.actual-stage>footer{color:#fff;background:#103e59;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px;font-size:8px;display:grid}.actual-stage footer b{display:block}.customer-quote-builder{flex-direction:column;gap:9px;padding:10px;display:flex}.customer-quote-meta{background:#fff;border:1px solid #d8e2e8;border-radius:9px;grid-template-columns:1fr 1fr;gap:6px;padding:9px;display:grid}.customer-quote-meta label,.customer-quote-section label{font-size:8px}.customer-quote-section{background:#fff;border:1px solid #d8e2e8;border-left:4px solid #2c80bd;border-radius:9px;padding:10px}.customer-quote-section.optional{border-left-color:#eba525}.customer-quote-section.excluded{opacity:.75;border-left-color:#a6b0b7}.customer-quote-section>header{grid-template-columns:1fr 100px;gap:6px;display:grid}.customer-quote-section>header input{font-size:13px;font-weight:800}.customer-quote-price{background:#eef5f8;border-radius:7px;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:6px;margin-top:6px;padding:7px;font-size:8px;display:grid}.customer-quote-price b{display:block}.customer-quote-price strong{text-align:right}.customer-quote-totals{color:#fff;background:#0b3a56;border-radius:9px;grid-template-columns:repeat(4,1fr);gap:5px;padding:10px;font-size:9px;display:grid}.customer-quote-totals b{font-size:11px;display:block}.customer-quote-totals input{max-width:58px;padding:4px}.internal-estimator{flex-direction:column;gap:9px;padding:10px;display:flex}.estimator-grand-summary{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.estimator-grand-summary div{text-align:center;background:#edf4f7;border-radius:7px;padding:7px 4px}.estimator-grand-summary span,.estimator-grand-summary strong{display:block}.estimator-grand-summary span{color:#748792;font-size:7px}.estimator-grand-summary strong{color:#103f5c;margin-top:2px;font-size:10px}.estimator-section{background:#fff;border:1px solid #d7e2e8;border-radius:9px;overflow:hidden}.estimator-section>summary{cursor:pointer;justify-content:space-between;align-items:center;padding:10px;display:flex}.estimator-section summary span strong,.estimator-section summary span small{display:block}.estimator-section summary small{color:#718591;font-size:8px}.estimator-breakdown{grid-template-columns:repeat(3,1fr);gap:4px;padding:0 10px 8px;display:grid}.estimator-breakdown div{background:#f4f7f9;border-radius:5px;padding:6px;font-size:8px}.estimator-breakdown span,.estimator-breakdown b{display:block}.estimator-controls{border-top:1px solid #e5ecef;grid-template-columns:repeat(4,1fr);gap:5px;padding:8px 10px;display:grid}.estimator-controls label{font-size:7px}.estimator-controls input,.estimator-controls select{min-width:0;padding:5px}.estimator-other-costs{padding:8px 10px}.estimator-other-costs header,.estimator-other-costs>div{grid-template-columns:1fr 80px auto;gap:5px;margin-top:4px;display:grid}.estimator-other-costs header strong{grid-column:1/3}.estimator-detail-lines{border-top:1px solid #e5ecef;margin:0 10px 8px}.estimator-detail-lines summary{padding:6px 0;font-size:8px}.estimator-detail-lines>div{justify-content:space-between;padding:4px 0;font-size:8px;display:flex}.estimator-detail-lines small{color:#84939d;display:block}.estimator-section>footer{color:#fff;background:#0b3a56;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 10px;font-size:8px;display:grid}.estimator-section>footer b{display:block}.toolbar-status b,.statusbar .save-indicator.saving{color:#9bc8ef}.layers-float{z-index:20;position:absolute;bottom:41px;left:18px}.layers-toggle{color:#23445e;cursor:pointer;background:#fffffff5;border:1px solid #cbd7e0;border-radius:8px;min-height:37px;padding:0 13px;font-weight:850;box-shadow:0 5px 15px #122e4329}.layers-menu{background:#fffffffa;border:1px solid #cbd7e0;border-radius:9px;width:180px;padding:7px 11px;position:absolute;bottom:43px;left:0;box-shadow:0 8px 22px #112d422e}.layers-menu label{letter-spacing:0;align-items:center;gap:9px;margin:7px 0;font-size:10px;display:flex}.layers-menu input{accent-color:#f0a018;width:17px;min-height:17px;margin:0}.precision-ruler-label-bg{fill:#fffffff5;stroke:#064d39;stroke-width:.75px;filter:drop-shadow(0 1px 1px #00000052)}.precision-ruler-label{fill:#032f24;stroke:none;paint-order:normal;font-weight:900}.estimate-plan-point circle:first-of-type{fill:#168de2;stroke:#fff;stroke-width:2px;filter:drop-shadow(0 1px 2px #00233c66)}.estimate-plan-point[data-estimate-stage=FIT_OFF] circle:first-of-type{fill:#14a05a}.estimate-plan-point.selected circle:first-of-type{stroke:#f5a00a;stroke-width:3px}.estimate-plan-point.interactive{cursor:grab;touch-action:none}.estimate-plan-point.dragging{cursor:grabbing}.roughin-marker-details>text{fill:#123a55;stroke:#fffffffa;stroke-width:3px;paint-order:stroke fill;font-weight:900}.roughin-marker-details g text{fill:#fff;stroke:none;font-weight:900}.estimate-tool-section{margin:12px 0}.estimate-tool-section.compact{margin:10px 0}.roughin-primary-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0 12px;display:grid}.roughin-primary-tools button{color:#24435b;cursor:pointer;touch-action:manipulation;background:#fff;border:1px solid #cbd8e1;border-radius:7px;min-height:36px;padding:5px 7px;font-size:9px;font-weight:900}.roughin-primary-tools button.active{border-color:var(--primary-blue);background:var(--primary-blue-soft);color:var(--primary-blue-hover);box-shadow:inset 0 0 0 1px var(--primary-blue)}.roughin-primary-tools button.danger{color:#b33940}.roughin-primary-tools button.danger.active{background:#fff0f1;border-color:#d85a60;box-shadow:inset 0 0 0 1px #d85a60}.roughin-primary-tools button:disabled{cursor:not-allowed;opacity:.45}.roughin-fixture-library{background:#fbfcfd;border:1px solid #d8e2e9;border-radius:9px;overflow:hidden}.roughin-fixture-library summary{cursor:pointer;grid-template-columns:5px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;list-style:none;display:grid}.roughin-fixture-library summary::-webkit-details-marker{display:none}.roughin-fixture-library summary small{color:#788c99;font-size:8px}.roughin-fixture-library>.estimate-fixture-grid{padding:0 9px 9px}.estimate-fixture-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.estimate-fixture-grid button{color:#24435b;cursor:pointer;background:#fff;border:1px solid #cad7e1;border-radius:7px;min-height:34px;padding:4px;font-size:8px;font-weight:850}.estimate-fixture-grid button.selected{color:#955600;background:#fff5df;border-color:#ed9a12;box-shadow:inset 0 0 0 1px #ed9a12}.estimate-service-grid{grid-template-columns:repeat(3,1fr);gap:5px;margin:6px 0 11px;display:grid}.estimate-service-grid button{cursor:pointer;background:#fff;border:1px solid #cbd7e0;border-radius:7px;min-height:32px;font-size:9px;font-weight:900}.estimate-service-grid button.selected.hot{color:#b33822;background:#fff0ec;border-color:#df684e}.estimate-service-grid button.selected.cold{color:#166ba7;background:#edf7ff;border-color:#348fd1}.estimate-service-grid button.selected.gas{color:#825b00;background:#fff7dd;border-color:#dcaa21}.estimate-placement-help{color:#285a78;background:#edf8ff;border:1px solid #9ecce8;border-radius:8px;flex-direction:column;gap:3px;margin:7px 0;padding:9px;font-size:9px;display:flex}.estimate-summary-strip{grid-template-columns:repeat(4,1fr);gap:5px;margin:9px 0 13px;display:grid}.estimate-summary-strip div{text-align:center;background:#f8fafb;border:1px solid #d6e0e7;border-radius:7px;padding:8px 3px}.estimate-summary-strip strong,.estimate-summary-strip span{display:block}.estimate-summary-strip strong{font-size:17px}.estimate-summary-strip span{color:#778b9b;text-transform:uppercase;font-size:8px}.estimate-point-list{flex-direction:column;gap:5px;display:flex}.estimate-point-list article{background:#fff;border:1px solid #d7e1e8;border-radius:8px;grid-template-columns:minmax(0,1fr) 27px;align-items:center;display:grid;overflow:hidden}.estimate-point-list article.selected{border-color:#ee9b15;box-shadow:0 0 0 2px #ee9b151c}.estimate-point-select{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:7px;display:grid}.estimate-point-select div{min-width:0}.estimate-point-select strong,.estimate-point-select small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.estimate-point-select strong{font-size:10px}.estimate-point-select small{color:#778b9a;font-size:8px}.estimate-point-select b{font-size:9px}.estimate-number{color:#fff;background:#168de2;border-radius:50%;place-items:center;width:25px;height:25px;font-size:9px;font-weight:900;display:grid}.estimate-number.fit{background:#14a05a}.estimate-point-list article>button:last-child{color:#a3484f;cursor:pointer;background:#fafcfd;border:0;height:100%;font-size:16px}.roughin-fixture-counts{background:#f8fafb;border:1px solid #d8e2e9;border-radius:8px;margin:0 0 12px;padding:9px}.roughin-fixture-counts h3{margin:0 0 5px;font-size:10px}.roughin-fixture-counts>div{border-bottom:1px solid #e5ebef;justify-content:space-between;gap:10px;padding:4px 0;font-size:9px;display:flex}.roughin-fixture-counts>div:last-child{border-bottom:0}.roughin-pipe-tools-section{border-top:1px solid #e1e8ed;padding-top:7px}.roughin-pipe-object polyline{stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #00233c4d)}.roughin-pipe-object text,.roughin-pipe-preview text{stroke:#fff;stroke-width:3px;paint-order:stroke fill;font-weight:900}.roughin-pipe-object.selected>polyline:not(.roughin-pipe-hit){filter:drop-shadow(0 0 3px #002440bf)}.roughin-pipe-hit{cursor:pointer;filter:none!important}.roughin-pipe-vertex{fill:#fff;cursor:grab;pointer-events:all}.roughin-pipe-vertex:active{cursor:grabbing}.roughin-fitting-marker{cursor:pointer}.roughin-fitting-marker.review{opacity:.72}.roughin-fitting-marker.selected{filter:drop-shadow(0 0 4px #0c2f4873)}.roughin-fitting-tools-section{border-color:#d8e1e7}.roughin-fittings-section{background:#f9fbfc;border:1px solid #d7e1e8;border-radius:9px;margin-top:13px;padding:10px}.roughin-fitting-service{background:#fff;border:1px solid #d8e2e8;border-radius:8px;margin-top:7px;overflow:hidden}.roughin-fitting-service summary{color:#24445d;cursor:pointer;justify-content:space-between;align-items:center;padding:8px 9px;font-size:9px;font-weight:900;display:flex}.roughin-fitting-service summary span{align-items:center;gap:6px;display:flex}.roughin-fitting-totals{padding:0 9px 7px}.roughin-fitting-totals>div{color:#526b7e;border-top:1px solid #edf1f4;justify-content:space-between;gap:8px;padding:4px 0;font-size:8px;display:flex}.roughin-fitting-instances{background:#f7fafc;border-top:1px solid #e4eaee;gap:4px;padding:7px;display:grid}.roughin-fitting-instances button{color:#294a63;text-align:left;cursor:pointer;background:#fff;border:1px solid #d7e1e8;border-radius:6px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:6px;padding:6px 7px;display:grid}.roughin-fitting-instances button>span{color:#7b8d99;font-size:6px;font-weight:900}.roughin-fitting-instances button>strong{text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.roughin-fitting-instances button>small{color:#718795;font-size:7px}.roughin-fitting-instances button.selected{background:#fff8e9;border-color:#e69a18}.roughin-fitting-instances button.excluded{opacity:.55;text-decoration:line-through}.roughin-fitting-instances button.review{border-color:#d95b63}.roughin-pipe-vertex.connected{fill:#dff7e9}.roughin-pipe-preview line{stroke-dasharray:7 5;stroke-linecap:round}.roughin-pipe-preview circle{fill:#fff;stroke-width:2px}.service-swatch{background:#8798a6;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.service-swatch.hot{background:#dc4b3f}.service-swatch.cold{background:#168de2}.service-swatch.gas{background:#d49b08}.roughin-pipe-list strong{align-items:center;display:flex}.roughin-run-group{margin:0 0 9px}.roughin-run-group-heading{color:#36556c;text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;padding:5px 2px;font-size:9px;display:flex}.roughin-run-group-heading strong{font-size:9px}.roughin-run-group-heading span{font-weight:800}.sewer-object-list .roughin-run-group article.selected{border-color:#168de2;box-shadow:0 0 0 1px #168de21f}.roughin-run-select{text-align:left;cursor:pointer;min-width:0;padding:8px 4px 8px 0;display:block;color:inherit!important;background:0 0!important;border:0!important}.roughin-run-select strong,.roughin-run-select small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roughin-pipe-editor{margin-top:13px}.roughin-run-measurements{background:#f8fafb;border:1px solid #d8e2e8;border-radius:8px;margin:8px 0 11px;overflow:hidden}.roughin-run-measurements>div{color:#647a8b;border-bottom:1px solid #e5ebef;justify-content:space-between;gap:10px;padding:7px 9px;font-size:9px;display:flex}.roughin-run-measurements>div:first-child{color:#173a53;background:#eef5fa}.roughin-run-measurements>div:last-child{border-bottom:0}.project-material-takeoff{gap:6px;margin-top:10px;display:grid}.project-material-takeoff article{background:#fff;border:1px solid #d9e3ea;border-left:3px solid #188de1;border-radius:8px;grid-template-columns:minmax(145px,1.7fr) repeat(4,minmax(64px,.55fr)) auto auto;align-items:center;gap:7px;padding:8px;display:grid}.project-material-takeoff article.takeoff-pipe{border-left-color:#d49b08}.project-material-takeoff article.takeoff-manual{border-left-color:#7a52c7}.project-material-takeoff strong,.project-material-takeoff small{display:block}.project-material-takeoff strong{color:#173a53;font-size:10px}.project-material-takeoff small{color:#718493;font-size:8px}.project-material-takeoff span,.project-material-takeoff b,.project-material-takeoff label{color:#354f62;font-size:9px}.project-material-takeoff input{width:72px;min-width:0;padding:5px}.project-material-takeoff button{cursor:pointer;background:#f7fafc;border:1px solid #d8e2e8;border-radius:6px;padding:5px 7px}.project-material-takeoff button.danger{color:#c7353f}.manual-material-list{border-top:1px solid #dfe7ed;margin-top:12px;padding-top:10px}.manual-material-list h3{color:#173a53;text-transform:uppercase;font-size:10px}.manual-material-list article{grid-template-columns:1.5fr 1fr 70px 70px;gap:6px;margin-bottom:6px;display:grid}.assembly-editor{background:#f9fbfc;border:1px solid #d9e3ea;border-radius:9px;margin-top:10px;padding:10px}.assembly-lines>div{grid-template-columns:minmax(135px,1fr) minmax(120px,1fr) 75px 88px 62px 30px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.assembly-lines>div button{color:#c7353f;cursor:pointer;background:#fff0f0;border:0;border-radius:6px;height:30px}.assembly-save-actions{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.assembly-save-actions button{color:#234a65;cursor:pointer;background:#fff;border:1px solid #cfdce5;border-radius:7px;padding:7px 9px}.assembly-save-actions button.primary{color:#fff;background:#f39a08;border-color:#f39a08}@media (width<=1180px){.project-material-takeoff article{grid-template-columns:minmax(130px,1fr) repeat(2,minmax(70px,.5fr))}.project-material-takeoff article>:nth-child(n+4){margin-top:3px}}.fitoff-link-section{background:#f8fbfd;border:1px solid #d8e3eb;border-radius:9px;padding:10px}.fitoff-import-list{flex-direction:column;gap:4px;max-height:190px;margin:7px 0;display:flex;overflow:auto}.fitoff-import-list label{cursor:pointer;background:#fff;border:1px solid #dce5eb;border-radius:7px;align-items:flex-start;gap:7px;padding:7px;display:flex;flex-direction:row!important}.fitoff-import-list input{margin-top:2px;width:auto!important}.fitoff-import-list span,.fitoff-import-list strong,.fitoff-import-list small{display:block}.fitoff-import-list strong{font-size:10px}.fitoff-import-list small{color:#6e808c;margin-top:2px;font-size:8px}.estimate-point-list article.completed{border-left:3px solid #16a05a}.estimate-point-list article.excluded{opacity:.68;background:#f5f6f7}.estimate-point-list article.excluded .estimate-number{background:#7c8d99}.fitoff-location{color:#31546d;background:#edf5fa;border-radius:7px;flex-direction:column;gap:3px;margin:9px 0;padding:9px;display:flex}.fitoff-location span{color:#748996;letter-spacing:.07em;font-size:8px;font-weight:900}.fitoff-location strong{font-size:10px}.fitoff-location small{font-size:8px}.fitoff-status-toggle{cursor:pointer;background:#f2fbf6;border:1px solid #cfe4d8;border-radius:8px;align-items:flex-start;gap:8px;margin:8px 0;padding:9px;flex-direction:row!important;display:flex!important}.fitoff-status-toggle.exclude{background:#faf8f3;border-color:#e0d8ca}.fitoff-status-toggle input{margin-top:2px;width:auto!important}.fitoff-status-toggle span,.fitoff-status-toggle strong,.fitoff-status-toggle small{display:block}.fitoff-status-toggle strong{font-size:10px}.fitoff-status-toggle small{color:#6c7f8c;margin-top:2px;font-size:8px}.materials-engine-panel{flex-direction:column;gap:10px;display:flex}.materials-engine-card{background:#fff;border:1px solid #d7e2e9;border-radius:9px;padding:10px}.material-stage-tabs{background:#eef3f7;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:8px 0;padding:3px;display:grid}.material-stage-tabs button{color:#496273;background:0 0;border:0;border-radius:6px;min-width:0;padding:7px 5px;font-size:9px;font-weight:800}.material-stage-tabs button.active{color:#0c4f78;background:#fff;box-shadow:0 1px 4px #14364b20}.supplier-import-button{color:#87520a;cursor:pointer;background:#fff8e9;border:1px solid #e6a52a;border-radius:8px;place-items:center;min-height:38px;font-size:10px;font-weight:900;display:grid!important}.supplier-import-button input{display:none}.supplier-import-status{color:#27744d;margin:8px 0 0;font-size:9px}.supplier-import-preview{background:#f8fbfd;border:1px solid #d9e3e9;border-radius:8px;margin-top:9px;padding:9px}.supplier-import-preview h3{margin:0 0 4px;font-size:10px}.supplier-import-preview>p{color:#657b89;margin:0 0 8px;font-size:8px}.supplier-import-preview>div:first-of-type{grid-template-columns:repeat(5,1fr);gap:3px;display:grid}.supplier-import-preview>div:first-of-type span{text-align:center;background:#fff;border-radius:5px;padding:5px 2px;font-size:7px}.supplier-import-preview>div:first-of-type b{color:#144d70;font-size:11px;display:block}.supplier-match-preview{max-height:150px;margin:7px 0;overflow:auto}.supplier-match-preview p{border-bottom:1px solid #e7edf1;grid-template-columns:.8fr 1.4fr .8fr;gap:5px;margin:0;padding:5px 2px;font-size:8px;display:grid}.supplier-match-preview small{text-align:right}.labour-estimate-panel{margin-top:10px}.labour-rate-grid{flex-direction:column;gap:5px;display:flex}.labour-rate-grid article{grid-template-columns:1.3fr .9fr .75fr .75fr;gap:5px;display:grid}.labour-rate-grid label{font-size:7px}.labour-rate-grid input,.labour-rate-grid select{min-width:0;padding:6px}.labour-stage-settings{grid-template-columns:1fr 1fr 1fr;gap:5px;display:grid}.labour-stage-settings label{font-size:7px}.labour-lines{margin-top:8px}.labour-lines>div{border-bottom:1px solid #e8edf0;grid-template-columns:1.5fr .55fr .8fr .8fr auto;align-items:center;gap:5px;padding:6px 0;font-size:8px;display:grid}.labour-lines strong,.labour-lines small{display:block}.labour-lines small{color:#84939d;text-transform:capitalize}.labour-lines input{min-width:0;padding:5px}.labour-stage-total{background:#eef5f8;border-radius:7px;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:7px;padding:7px;font-size:8px;display:grid}.labour-stage-total b,.labour-stage-total strong{color:#124d70}.assembly-summary{grid-template-columns:1fr 1fr;gap:6px;margin:8px 0;display:grid}.assembly-summary div{text-align:center;background:#f1f6f9;border-radius:7px;padding:8px}.assembly-summary strong,.assembly-summary span{display:block}.assembly-summary strong{font-size:16px}.assembly-summary span{color:#708491;text-transform:uppercase;font-size:8px}.assembly-takeoff-list article,.material-library-list article{border-bottom:1px solid #edf1f4;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:7px 0;display:grid}.assembly-takeoff-list article:last-child,.material-library-list article:last-child{border-bottom:0}.assembly-takeoff-list div,.material-library-list div{min-width:0}.assembly-takeoff-list strong,.assembly-takeoff-list small,.material-library-list strong,.material-library-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.assembly-takeoff-list strong,.material-library-list strong{font-size:9px}.assembly-takeoff-list small,.material-library-list small{color:#7a8d99;font-size:7px}.assembly-takeoff-list span,.assembly-takeoff-list b,.material-library-list span,.material-library-list b{text-align:right;font-size:8px}.assembly-takeoff-list b,.material-library-list b{color:#173f59;grid-column:2}.assembly-library-list details{border:1px solid #dce5ea;border-radius:7px;margin-top:6px;overflow:hidden}.assembly-library-list summary{cursor:pointer;background:#f6f9fb;justify-content:space-between;align-items:center;padding:8px;display:flex}.assembly-library-list summary strong,.assembly-library-list summary small{display:block}.assembly-library-list summary strong{font-size:9px}.assembly-library-list summary small,.assembly-library-list summary span{color:#778a96;font-size:7px}.assembly-library-list details>label{margin:8px}.assembly-library-list label>span{font-size:8px}.assembly-lines{padding:3px 8px 8px}.assembly-lines label{grid-template-columns:minmax(0,1fr) 60px 18px;align-items:center;gap:5px;margin:4px 0;display:grid!important}.assembly-lines input{min-width:0}.assembly-lines small{font-size:8px}.sewer-tool-section{background:#fff;border:1px solid #d6e1e8;border-radius:9px;margin:12px 0;padding:10px}.sewer-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px;display:grid}.sewer-tool-grid button,.sewer-pipe-tools button{color:#26465e;cursor:pointer;background:#f9fbfc;border:1px solid #cdd9e2;border-radius:7px;min-height:37px;padding:5px;font-size:9px;font-weight:850}.sewer-tool-grid button.selected,.sewer-pipe-tools button.selected{color:#126d3c;background:#edf9f2;border-color:#20a45b;box-shadow:inset 0 0 0 1px #20a45b}.sewer-pipe-tools{grid-template-columns:1fr 1fr;gap:6px;margin:9px 0;display:grid}.sewer-pipe-tools button:disabled{cursor:not-allowed;opacity:.45}.sewer-drawing-help{color:#275c40;background:#eefaf3;border:1px solid #8bc8a8;border-radius:8px;gap:4px;margin:9px 0;padding:10px;font-size:9px;display:grid}.sewer-drawing-help strong{color:#146d3d;font-size:10px}.sewer-pipe-object line{stroke:#169653;stroke-linecap:round;filter:drop-shadow(0 1px 1px #00371c47)}.sewer-pipe-object text,.sewer-pipe-preview text,.sewer-point-label{fill:#0b5931;stroke:#fff;stroke-width:3px;paint-order:stroke fill;font-weight:900}.sewer-point-object circle{fill:#19a45a;stroke:#fff;filter:drop-shadow(0 1px 2px #00371c66)}.sewer-point-object text:first-of-type{fill:#fff;stroke:none;font-weight:900}.sewer-point-object.junction circle,.sewer-point-object.bend circle{fill:#0f6f96}.sewer-pipe-preview line{stroke:#1ab765;stroke-dasharray:7 5;stroke-linecap:round}.sewer-pipe-preview circle{fill:#fff;stroke:#159c55;stroke-width:2px}.sewer-takeoff-section{background:#fff;border:1px solid #d8e2e8;border-radius:9px;margin-top:10px;overflow:hidden}.sewer-takeoff-section h3{color:#183b54;text-transform:uppercase;letter-spacing:.06em;background:#f3f7f9;justify-content:space-between;margin:0;padding:9px 10px;font-size:11px;display:flex}.sewer-takeoff-section h3 span{color:#16874c;font-size:10px}.sewer-takeoff-rows{padding:5px 10px}.sewer-takeoff-rows>div{color:#506779;border-bottom:1px solid #edf1f4;justify-content:space-between;padding:7px 0;font-size:10px;display:flex}.sewer-takeoff-rows>div:last-child{border-bottom:0}.sewer-takeoff-rows strong{color:#173a53}.sewer-object-list{margin-top:13px}.sewer-object-list>h3{color:#1b4664;text-transform:uppercase;letter-spacing:.06em;margin:0 0 7px;font-size:11px}.sewer-object-list article{background:#fff;border:1px solid #d8e2e8;border-left:3px solid #20a45b;border-radius:8px;grid-template-columns:minmax(0,1fr) 29px;align-items:center;margin-bottom:5px;padding-left:9px;display:grid;overflow:hidden}.sewer-object-list strong,.sewer-object-list small{display:block}.sewer-object-list strong{color:#173a53;font-size:10px}.sewer-object-list small{color:#7c8e9b;margin-top:2px;font-size:8px}.sewer-object-list button{color:#c7353f;cursor:pointer;background:#fff5f5;border:0;align-self:stretch;font-size:16px}.quote-stat-grid article.fitoff{border-top-color:#14a05a}.quote-category.fitoff{color:#137542;background:#e8f7ef}.quote-totals{background:#fff;border:1px solid #cfdbe4;border-radius:10px;grid-template-columns:repeat(3,1fr);margin:18px 0;display:grid;overflow:hidden}.quote-totals>div,.quote-totals>label{letter-spacing:0;border-right:1px solid #e0e7ec;flex-direction:column;justify-content:center;min-height:70px;margin:0;padding:10px 16px;display:flex}.quote-totals span{color:#738797;font-size:10px}.quote-totals strong{color:#123550;margin-top:5px;font-size:18px}.quote-totals label{grid-template-columns:auto 60px auto;align-items:center;gap:5px;display:grid}.quote-totals input{min-height:31px;margin:0;padding:3px 6px}.quote-totals label strong{grid-column:1/-1;margin:0}.quote-totals .grand-total{background:#123c5b;border-right:0}.quote-totals .grand-total span,.quote-totals .grand-total strong{color:#fff}.quote-section-title button{color:#8f5600;cursor:pointer;background:#fff6e4;border:1px solid #eba01d;border-radius:6px;min-height:29px;margin-left:auto;padding:0 9px;font-size:9px;font-weight:850}.quote-add-row{color:#7b5b1e;background:#fff8e9;align-items:center;gap:7px;padding:10px 14px;font-size:10px;display:flex}.quote-add-row span{margin-right:auto}.quote-add-row button{cursor:pointer;background:#fff;border:1px solid #dbc68f;border-radius:6px;min-height:28px}.quote-price-list{flex-direction:column;display:flex}.quote-price-list article{border-top:1px solid #e2e8ed;grid-template-columns:minmax(150px,2fr) 55px repeat(5,minmax(72px,1fr)) 90px 28px;align-items:end;gap:7px;padding:10px 13px;display:grid}.quote-price-list input{border-radius:6px;min-height:33px;margin:0;padding:4px 7px;font-size:10px}.quote-price-list label{letter-spacing:.02em;margin:0;font-size:8px}.quote-price-list label input{margin-top:3px}.quote-line-total{text-align:right;align-self:center;font-size:11px}.quote-notes{grid-column:1/-2}.quote-remove{color:#9f3d45;cursor:pointer;background:#fff0f1;border:0;border-radius:6px;grid-column:-2;height:33px}@media (width<=1300px){.compact-workspace .workspace-body.setout-workspace,.compact-workspace .workspace-body.sewer-workspace,.compact-workspace .workspace-body.estimate-workspace{--tool-width:255px;--property-width:255px}.compact-workspace .canvas-toolbar{grid-template-columns:auto 1fr auto auto}.compact-workspace .canvas-toolbar .export-toolbar-button{display:none}.quote-price-list article{grid-template-columns:minmax(140px,2fr) 50px repeat(3,minmax(65px,1fr)) 75px 28px}.quote-price-list label:nth-of-type(5),.quote-price-list label:nth-of-type(6){grid-column:auto}}@media (width<=1024px){.compact-workspace .workspace-body,.compact-workspace .workspace-body.setout-workspace,.compact-workspace .workspace-body.sewer-workspace,.compact-workspace .workspace-body.estimate-workspace,.compact-workspace .workspace-body.psp-workspace,.compact-workspace .workspace-body.markup-workspace{--tool-width:180px;--property-width:205px;grid-template-columns:var(--tool-width) minmax(320px,1fr) var(--property-width)}.compact-workspace .workspace-body.quote-workspace-layout{--tool-width:165px;--property-width:320px;grid-template-columns:var(--tool-width) minmax(300px,1fr) var(--property-width)}.quote-workspace-layout .quotes-intro{display:block}.quote-workspace-layout .quotes-sync{margin-top:8px;display:inline-block}.markup-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.markup-mode-tabs button{min-height:29px}}.compact-workspace .workspace-header{flex-basis:48px;height:48px;padding:0 8px}.compact-workspace .workspace-body{--tool-width:212px;--property-width:252px}.compact-workspace .workspace-body.setout-workspace,.compact-workspace .workspace-body.estimate-workspace,.compact-workspace .workspace-body.sewer-workspace,.compact-workspace .workspace-body.psp-workspace{--tool-width:218px;--property-width:258px}.compact-workspace .workspace-body.markup-workspace{--tool-width:226px;--property-width:268px}.compact-workspace .tool-panel,.compact-workspace .properties-panel{padding:10px 9px}.compact-workspace .canvas-toolbar{background:var(--toolbar-dark);border-radius:6px;flex-basis:43px;min-height:43px;margin:6px 8px 0;padding:4px 6px}.compact-workspace .canvas-toolbar button{border-radius:5px;min-width:32px;height:32px}.compact-workspace .canvas-toolbar button:hover,.compact-workspace .canvas-toolbar button.active{background:var(--primary-blue-soft);color:var(--toolbar-dark)}.compact-workspace .canvas-toolbar .export-toolbar-button{border-color:var(--primary-blue);background:var(--primary-blue);color:#fff}.toolbar-status b{color:#9bc8ef}@media (width<=1300px){.compact-workspace .workspace-body.setout-workspace,.compact-workspace .workspace-body.sewer-workspace,.compact-workspace .workspace-body.estimate-workspace{--tool-width:210px;--property-width:238px}}@media (width<=1024px){.compact-workspace .workspace-body,.compact-workspace .workspace-body.setout-workspace,.compact-workspace .workspace-body.sewer-workspace,.compact-workspace .workspace-body.estimate-workspace,.compact-workspace .workspace-body.psp-workspace,.compact-workspace .workspace-body.markup-workspace{--tool-width:180px;--property-width:205px}}.layers-menu input,.export-option-list input,.export-scope-list input,.point-size-control input{accent-color:var(--primary-blue)}.string-group-summary.active,.string-line-list article.selected,.measurement-group.active,.setout-point-list article.selected,.object-list article.selected,.estimate-point-list article.selected{border-color:var(--primary-blue);background:var(--primary-blue-soft);box-shadow:0 0 0 2px #2878c81a}.stringline-tool-grid button.active,.measure-actions button.active,.setout-mode-buttons button.active,.quick-point-grid button:hover,.quick-point-grid button.selected,.psp-mode-buttons button.active,.markup-service-list>button.selected,.marker-library>button.selected,.annotation-tools button.active,.note-format-row button.active,.estimate-fixture-grid button.selected{border-color:var(--primary-blue);background:var(--primary-blue-soft);color:var(--primary-blue-hover);box-shadow:inset 0 0 0 1px var(--primary-blue)}.active-point-group{border-color:var(--primary-blue);background:var(--primary-blue-soft)}.section-heading>button,.markup-properties-heading>button,.markup-bundle-list button,.supplier-import-button,.quote-stage-heading button,.quote-section-title button{border-color:var(--primary-blue);color:var(--primary-blue-hover);background:#fff}.section-accent,.markup-category-title>span,.quote-section-title span{background:var(--primary-blue)}.markup-colour-grid button.selected,.psp-colour-grid>button.selected{box-shadow:0 0 0 3px var(--primary-blue)}.export-scope-list>label.selected,.export-page-preview>div:first-child{border-color:var(--primary-blue);background:var(--primary-blue-soft);box-shadow:0 0 0 2px #2878c81a}.points-panel-heading button{border-color:var(--primary-blue);background:var(--primary-blue);color:#fff}.measurement-group>header{grid-template-columns:minmax(0,1fr) repeat(3,32px)}
