:root{--web-navy:#102d40;--web-teal:#167f88;--web-ink:#243a46;--web-border:#dce4e8}
.web-file-row{display:flex;align-items:center;gap:16px;padding:9px 12px;border:1px solid var(--web-border);border-radius:7px}.web-file-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:13px}.web-files-list .web-file-download{flex:none;display:inline-block;padding:8px 15px;border-radius:6px;background:var(--web-teal);color:white;text-decoration:none;font-weight:600;font-size:13px}.web-file-download:hover{filter:brightness(.9)}.web-file-download:focus-visible{outline:3px solid #dca33c;outline-offset:2px}.web-file-archive{background:#edf7f4;border-color:#a4cfc6}
/* Reserve a host strip so the 2D/3D switch cannot cover the embedded viewer controls. */
#canvasWrap.view-3d #roofModelFrame{top:58px;height:calc(100% - 58px)}
#canvasWrap.view-3d:before{content:"";position:absolute;inset:0 0 auto;height:58px;z-index:21;background:#f2f5f4;border-bottom:1px solid #dce4e8;pointer-events:none}
#webDocuments{flex:0 1 auto;min-height:0;max-height:26vh;overflow:auto;padding:14px 20px;border-top:1px solid var(--web-border);background:#fff}#webDocuments h3{margin:0;font-size:15px}#webDocuments p{margin:0;font-size:12px;color:#586f7d}.web-progress-cancel{border:1px solid #bbcdd4;background:#fff;color:#234453;padding:9px 16px;border-radius:7px;cursor:pointer}.web-progress-cancel:disabled{opacity:.5;cursor:default}
.web-register-card{max-width:680px}.web-login-card.web-register-card{width:min(680px,calc(100vw - 64px));margin:24px 0;box-sizing:border-box}.web-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.web-form-grid input{min-width:0;width:100%;box-sizing:border-box}.web-login-card a{color:#087780}.web-login-card .web-help{font-size:13px;margin:8px 0}.web-account-footer{font-size:14px;text-align:center}.web-login-card h2{font-size:19px;margin-top:28px}.web-employee-list{display:grid;gap:8px}.web-login-card label.web-employee{display:flex;align-items:center;margin:0;padding:12px;border:1px solid var(--web-border);border-radius:8px;cursor:pointer}.web-employee:has(input:checked){background:#e8f4f3;border-color:#167f88!important}.web-employee small{display:block;font-size:12px;color:#617581}.web-login-card label.web-check{display:flex;align-items:center;font-size:14px}.web-login-card details{border-top:1px solid var(--web-border);padding-top:20px;margin-top:28px}.web-login-card summary{cursor:pointer;font-weight:600}.web-login-card .web-link-button{background:none;color:#087780;width:auto;padding:0;margin:0 8px;font-size:14px;text-decoration:underline}.web-login-card [hidden]{display:none!important}.web-primary-link{display:inline-block;margin-top:12px;font-weight:600}@media(max-width:600px){.web-form-grid{grid-template-columns:1fr}.web-login-card.web-register-card{width:calc(100vw - 24px);padding:24px}.web-login-card{box-sizing:border-box}}
.web-login{margin:0;min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 20%,#d6e9e6,transparent 55%),#edf1f4;color:var(--web-ink);font:16px system-ui,sans-serif}
.web-login-card{width:min(420px,calc(100vw - 64px));padding:40px;background:white;border:1px solid var(--web-border);border-radius:20px;box-shadow:0 24px 80px #18334920}
.web-login-card img{width:210px}.web-login-card h1{font-size:26px;margin:28px 0 12px}.web-login-card p{line-height:1.6;color:#5c727e}
.web-login-card label{display:grid;gap:8px;margin-top:20px}.web-login-card input{font:inherit;padding:12px;border:1px solid #b9cbd1;border-radius:8px}.web-login-card button{margin-top:24px;width:100%;border:0;border-radius:8px;padding:14px;background:var(--web-teal);color:white;font:600 16px system-ui;cursor:pointer}.web-login-card button:disabled{opacity:.6}
.web-host-toolbar{position:fixed;right:12px;top:4px;z-index:12000;display:flex;align-items:center;gap:6px;font:12px system-ui;color:#d9e9ed}.web-host-toolbar button{border:1px solid #46606e;border-radius:5px;background:#153c50;color:white;padding:4px 9px;cursor:pointer}
.web-host-modal{border:0;border-radius:12px;box-shadow:0 24px 100px #001b3660;width:min(700px,calc(100vw - 48px));max-height:85vh;padding:24px;color:var(--web-ink);font:14px system-ui;background:white;z-index:20000}.web-host-modal::backdrop{background:#071e3b88}.web-host-modal h2{font-size:21px;margin-top:0}.web-host-modal input{box-sizing:border-box;width:100%;padding:10px;border:1px solid #c6d5dc;border-radius:6px;margin:8px 0}.web-host-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.web-host-modal button{padding:9px 14px;border:1px solid #bccdd6;border-radius:6px;background:#edf3f5;color:#153b4e;cursor:pointer}.web-host-modal button.primary{background:var(--web-teal);color:white;border-color:var(--web-teal)}.web-project-list{max-height:45vh;overflow:auto}.web-project-list button{display:block;width:100%;text-align:left;margin-bottom:4px}.web-project-list small{display:block;opacity:.65}.web-files-list{display:grid;gap:12px;max-height:60vh;overflow:auto}.web-files-list a{color:#086f7a}.web-host-error{color:#a32c26;white-space:pre-wrap}.web-connection{position:fixed;bottom:34px;left:50%;transform:translateX(-50%);z-index:15000;background:#fff6d4;color:#614c13;border:1px solid #d4bc78;padding:9px 18px;border-radius:8px;font:13px system-ui}.web-connection[hidden]{display:none}
[data-web-module-hidden]{display:none!important}.web-modules-menu label{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer;font-size:12px}.web-modules-menu label:hover{background:#edf7f5}.web-modules-menu input{width:16px;height:16px;accent-color:#087f80}.web-modules-menu small{padding:8px 10px;color:#637b83;font-size:11px;line-height:1.4}
#webEditorSync { position:absolute; left:14px; top:12px; z-index:5; padding:6px 10px; border:1px solid #d6e6e2; border-radius:8px; background:#fffffff0; color:#315b56; font:12px "Segoe UI",sans-serif; pointer-events:none; }

/* WEB quotations use explicit per-order rates; no shared catalogue UI. */
#menuCatalogBtn{display:none!important}
.product-valuation-table input[aria-invalid="true"]{border:2px solid #bd4b32;background:#fff5ed;outline-offset:2px}

/* A module occupies the drawing area, not the modal layer. Keep CAD menus
   (500) above module contents (300), and actual blocking dialogs (11000) above both. */
body #modalOverlay.workspace-module-overlay{z-index:300}

/* WEB-only charcoal/orange chrome. Roof, waste and status colors retain their meaning. */
body{--web-navy:#29292c;--web-teal:#c64009;--web-ink:#303033;--web-border:#dedbd7;--navy:#29292c;--blue:#c64009;--line:#dedbd7;--panel:#f8f7f5;--muted:#6e6b69;color:#303033;background:#efede9}
body #menuBar{background:#fff;color:#303033;border-bottom-color:#dedbd7}
body .cad-menu-trigger{color:#303033}
body .cad-menu:hover>.cad-menu-trigger,body .cad-menu:focus-within>.cad-menu-trigger{background:#fff0e6;color:#a83400}
body .cad-menu-popup{border-color:#cec8c1;box-shadow:0 12px 28px #2d231b26}
body .cad-menu-popup button{color:#303033}
body .cad-menu-popup button:hover:not(:disabled),body .web-modules-menu label:hover{background:#fff0e6}
body #app>#toolDock{background:#29292c;border-right-color:#444247}
body #toolDock .app-brand{background:#242426;border-bottom-color:#525055}
body #toolDock .dock-actions{border-bottom-color:#525055}
body #toolDock .brand-block,body #toolDock .tool-group{border-color:#525055}
body .version{background:#393739;color:#ffc3a2;border-color:#64524b}
body #toolDock .current-user-button{background:#383639!important;border-color:#5c5756!important}
body #toolDock .toolbar-settings-button{background:#383639;border-color:#5c5756;color:#e3dcd5}
body #toolDock .toolbar-settings-button .tool-icon-svg,body #toolDock .current-user-action .tool-icon-svg{--accent:#ffab80;--soft:#5c4032;color:#f1e6dd}
body #toolDock .tool-group-label{color:#d0ccc8}
body #toolDock .tool-group button:not(.danger){background:#f7f5f2;border-color:#d7d1ca}
body #toolDock .tool-group button.active:not(.danger){background:#ffdfcc;border-color:#ff783b;box-shadow:inset 0 0 0 1px #e15a1b}
body #toolDock .tool-group button:disabled{background:#d8d3ce;border-color:#b9b1a9}
body .workspace-tabs,body .inspector-tabs{background:#f5f3ef;border-bottom-color:#dedbd7}
body .workspace-tabs button{color:#635f5d}
body .workspace-tabs button.active,body .workspace-tabs button[aria-selected=true]{background:#ffeadf;color:#9b3308;box-shadow:inset 0 -3px #ff5100}
body #inspector{border-left-color:#dedbd7}
body .inspector-tabs button[aria-selected=true]{color:#a53806;border-color:#e4bba5;background:#fff}
body #inspector h2,body #inspector h3,body #projectMeta .metric b,body #inspector #resultsPanel .metric b{color:#3b3939}
body #projectResultsTitle,body #pieceSummaryTitle,body #pieceSummary th{background:#f7f4f0;color:#625b56;border-bottom-color:#e1dcd6}
body #pieceSummary td{color:#45413e}body #pieceSummary tbody tr:hover{background:#fff3e9}
body #backgroundDock{background:#f5f3ef;border-color:#d0c8bf}
body #modalOverlay.workspace-module-overlay{background:#efede9}
body #modalOverlay.workspace-module-overlay #modalContent{border-color:#dedbd7}
body #modalContent>h2,body #modalContent.production-dialog>h2,body #modalContent.slopecut-themed-dialog>h2{color:#343132;border-bottom-color:#ead0bf}
body #modalContent :is(input,select,textarea){color:#393533;border-color:#d7d0c9}
body input[type=checkbox],body input[type=radio],body #modalContent.takeoff-interview input[type=radio],body .web-modules-menu input{accent-color:#c64009}
body button:focus-visible,body input:focus-visible,body select:focus-visible{outline-color:#db4a0d}
body button.primary,body #modalContent button.primary,body #modalContent button.document-pdf,body #modalContent button[data-dialog-action=pdf],body #modalContent button[data-dialog-action=export]{background:#c64009;border-color:#c64009;color:#fff}
body button.primary:hover:not(:disabled),body #modalContent button.primary:hover:not(:disabled),body #modalContent button.document-pdf:hover:not(:disabled){background:#a53206;border-color:#a53206;color:#fff}
body .new-project-hero{background:#29292c}
body .documentation-progress-spinner{border-top-color:#c64009}
body :is(#documentationProgressBar,#calculationProgressBar){accent-color:#c64009}
body :is(#documentationProgressBar,#calculationProgressBar)::-webkit-progress-value{background:#c64009}
