
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#29322f;background:#f3f4f1;font-synthesis:none;font-size:13px;--accent:#ba8240;--line:#e4e7e1;--muted:#879088;--ink:#29322f}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:default}button,input,select{outline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #b58449}button{transition:background .12s}input,select{width:100%;border:1px solid #dce1d8;border-radius:5px;padding:9px 10px;color:#29322f;background:white;min-width:0}input[type=checkbox]{width:15px;height:15px;accent-color:#a97840;margin:0}input[type=color]{width:38px;padding:3px;height:33px}label{display:block;color:#758077;font-size:11px;line-height:1.6}label input,label select{margin-top:4px;font-size:12px}h2,h3,p{margin-top:0}h2{font-size:13px}h3{font-size:12px}small{color:#7d877f}.app-shell{display:flex;min-height:100vh}.rail{width:66px;background:#26322d;display:flex;align-items:center;flex-direction:column;padding:24px 0 18px;gap:14px;position:fixed;inset:0 auto 0 0;z-index:3}.brand-mark{font-size:27px;font-weight:750;color:#fff;margin-bottom:33px;letter-spacing:-4px;padding-right:4px}.brand-mark span{color:#d4a365}.rail-button{background:none;border:0;color:#a8b8ad;width:40px;height:40px;border-radius:7px;font-size:25px;line-height:1}.rail-button:hover,.rail-button.active{background:#3c4942;color:#e5b983}.rail-spacer{flex:1}.rail-avatar{border-radius:50%;width:30px;height:30px;background:#566052;color:#e5dfd3;display:grid;place-items:center;margin-top:8px;font-size:11px}.workspace{margin-left:66px;width:calc(100% - 66px)}.header{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#fafbf8}.brand{display:flex;align-items:center;gap:18px}.brand strong{font-size:17px;letter-spacing:2.8px}.brand>span{font-size:9px;letter-spacing:1.6px;color:#8b958b;border-left:1px solid #d9ded5;padding-left:18px}.header-actions,.project-actions{display:flex;align-items:center;gap:10px}.save-state{font-size:10px;color:#84937e;margin-right:10px}.button{border:1px solid #dce1d8;background:#fff;border-radius:5px;padding:9px 13px;font-size:11px;font-weight:550;white-space:nowrap}.button:hover{background:#f0f2ec}.button.quiet{background:none;border-color:transparent}.button.primary{color:#fff;background:#b3844b;border-color:#b3844b}.button.primary:hover{background:#9d723e}.button.danger{color:#a35e50}.full{width:100%;display:flex;align-items:center;justify-content:space-between}.project-header{display:flex;align-items:center;justify-content:space-between;padding:25px 30px 24px;gap:15px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:1.6px;color:#8d968d;margin-bottom:9px}.eyebrow span{margin:0 11px;color:#b9c0b6}.project-name{background:none;border:0;padding:0;font-size:22px;letter-spacing:-.6px;font-weight:600;text-align:left}.project-name:after{content:' ✎';font-size:14px;color:#9da397;margin-left:6px}.badge{font-size:8px;letter-spacing:1px;color:#a07f53;border:1px solid #e4d9c8;background:#f9f5ee;border-radius:3px;padding:6px 8px}.main-grid{display:grid;grid-template-columns:255px minmax(300px,1fr) 256px;margin:0 22px 0 30px;min-height:calc(100vh - 221px);background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:#fdfefb}.sidebar-top{display:flex;justify-content:space-between;align-items:center;padding:17px 19px 7px}.section-label{font-size:9px;font-weight:600;letter-spacing:1.4px;color:#8d968b}.icon-button{border:0;background:none;font-size:20px;color:#8d968b}.sidebar-section{padding:17px 19px;border-bottom:1px solid #e9ece5}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.section-heading h2{margin:0;font-size:12px;font-weight:600}.small-tag{font-size:9px;color:#8d978b;padding:3px 6px;background:#eff2eb;border-radius:3px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.field-help{color:#949b90;font-size:10px;line-height:1.6;margin:10px 0 15px}.check-label{display:flex;align-items:center;gap:8px;font-size:11px;margin-bottom:14px;color:#596557}.check-label input{margin:0}.wall-list{max-height:155px;overflow:auto;display:grid;gap:3px;margin-top:12px}.wall-item{display:flex;justify-content:space-between;border:0;text-align:left;padding:8px;border-radius:4px;background:none;font-size:11px}.wall-item.active{background:#ecefe6;color:#4f644e}.wall-item small{font-size:10px;color:#89947e}.catalog-card{margin:18px 16px 7px;width:calc(100% - 32px);background:#f3f4ec;border:1px solid #e6e8dc;border-radius:6px;display:flex;align-items:center;gap:10px;text-align:left;padding:13px 10px}.catalog-icon{font-size:26px;color:#909b7e}.catalog-card strong{display:block;font-size:11px;font-weight:600}.catalog-card small{display:block;font-size:9px;margin-top:5px}.catalog-card>span:last-child{margin-left:auto;color:#8f987e}.sidebar-note{font-size:10px;color:#989e94;line-height:1.7;padding:0 20px}.drawing-panel{display:flex;flex-direction:column;min-width:0;min-height:650px}.drawing-toolbar{height:57px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 18px;justify-content:space-between;gap:10px}.segmented{display:flex;align-items:center;gap:3px;background:#f1f3ee;border-radius:5px;padding:3px}.segmented button{border:0;border-radius:3px;background:none;padding:7px 11px;font-size:10px;color:#91998c;white-space:nowrap}.segmented button.active{background:#fff;box-shadow:0 1px 3px #28312213;color:#3d4e3c}.segmented.small button{font-size:9px;padding:4px 6px}.drawing-tools{display:flex;align-items:center;gap:3px}.tool-button{background:none;border:0;padding:7px;border-radius:4px;font-size:15px;color:#8d9588;white-space:nowrap}.tool-button span{font-size:10px;margin-left:3px}.tool-button.active{background:#f1eee6;color:#a1773d}.tool-divider{height:20px;width:1px;background:#e4e7dd;margin:0 4px}.drawing-subbar{height:47px;display:flex;align-items:center;gap:12px;padding:0 20px;color:#8b9586;font-size:10px}.units{margin-left:auto;font-size:8px;letter-spacing:1px;color:#a2aa99}.canvas-wrap{flex:1;min-height:500px;position:relative;background:#fff;overflow:hidden;touch-action:none}#drawing{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}.canvas-hint{position:absolute;bottom:19px;left:18px;font-size:9px;max-width:65%;padding:6px 8px;background:#fffffff0;color:#909987;pointer-events:none}.zoom-controls{position:absolute;bottom:18px;right:17px;display:flex;border:1px solid #e4e7de;border-radius:5px;background:#fff;box-shadow:0 3px 7px #30351e06}.zoom-controls button{border:0;background:none;font-size:11px;padding:7px 10px;color:#7b8671}.zoom-controls button:hover{background:#f3f4ef}.legend{min-height:42px;border-top:1px solid #eef0e9;display:flex;gap:14px;align-items:center;padding:9px 17px;font-size:9px;color:#909987;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:2px;display:block}.legend-filler{background:repeating-linear-gradient(45deg,#bcb79a,#bcb79a 1px,#faf6e2 1px,#faf6e2 3px)}.legend-gap{background:#f2d8d2;border:1px solid #c18270}.legend-right{margin-left:auto;font-size:8px}.results-panel{border-left:1px solid var(--line);padding:23px 19px;background:#fdfefb}.results-panel h2{font-size:12px;font-weight:600;margin:0}.result-title{display:flex;align-items:center;justify-content:space-between}.status-dot{width:6px;height:6px;border-radius:50%;background:#c19b62}.big-metric{font-size:43px;letter-spacing:-2px;font-weight:500;margin-top:23px;line-height:1.1}.big-metric small{font-size:12px;letter-spacing:0;color:#929b8a;margin-left:6px}.metric-label{font-size:10px;color:#8d9883;margin-top:6px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid #e6e9df;border-bottom:1px solid #e6e9df;padding:15px 0;margin:20px 0}.metric-grid strong{font-size:18px;font-weight:500}.metric-grid small{display:block;font-size:9px;line-height:1.5;margin-top:5px}.coverage-label{display:flex;justify-content:space-between;font-size:9px;color:#7e8c73;margin-bottom:8px}.progress{height:4px;background:#e7ebdf;border-radius:5px;margin-bottom:21px;overflow:hidden}.progress span{display:block;height:100%;background:#93a080}.material-mini{display:flex;align-items:center;gap:8px;margin:13px 0;font-size:10px}.material-mini i{height:18px;width:4px;border-radius:1px;flex:none}.material-mini .material-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.material-mini b{margin-left:auto;font-size:11px;font-weight:500;white-space:nowrap}.mini-heading{font-size:9px;color:#9aa28f;letter-spacing:1px;display:flex;justify-content:space-between;margin:24px 0 13px}.text-button{border:0;background:none;color:#a57e49;padding:0;font-size:10px}.notice{padding:12px;border:1px solid #e9dfce;background:#fbf8f0;border-radius:5px;margin-top:19px;color:#9b8054;font-size:10px;line-height:1.65}.notice strong{display:block;font-size:10px;margin-bottom:4px}.notice.problem{background:#fcf3ef;color:#ad7563;border-color:#eddcd3}.footer{display:flex;align-items:center;justify-content:space-between;padding:16px 31px;font-size:9px;color:#9da593;letter-spacing:.1px}.footer i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#96a883;margin-right:6px}.footer b{font-weight:500;color:#7e8b70}.empty-state{position:absolute;inset:25% 15% auto;text-align:center;color:#8e9984}.empty-state>div{font-size:48px;color:#c0c9b6}.empty-state h2{font-size:18px;font-weight:500;color:#5e6e50}.empty-state p{font-size:12px;line-height:1.8}.empty-state[hidden]{display:none}.opening-row{display:flex;align-items:center;gap:6px;justify-content:space-between;padding:8px 0;font-size:10px;border-bottom:1px solid #edf0e8}.opening-row button{border:0;background:none;font-size:14px;color:#b98e7c}.drawing-panel svg text{font-family:Inter,"Segoe UI",sans-serif}.wall-hit{cursor:pointer}.panel-hit{cursor:pointer}.panel-hit:hover{filter:brightness(.9)}
dialog{border:1px solid #dce2d3;border-radius:10px;padding:0;max-width:min(1060px,94vw);width:900px;max-height:90vh;color:var(--ink);box-shadow:0 24px 100px #15201530}dialog::backdrop{background:#17271d60;backdrop-filter:blur(3px)}.modal-head{padding:23px 26px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.modal-head h2{font-size:20px;font-weight:550;margin:0 0 6px}.modal-head p{font-size:11px;color:#89957c;margin:0;line-height:1.7}.modal-body{padding:22px 26px;overflow:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 26px;border-top:1px solid var(--line);background:#f9fbf5;flex-wrap:wrap}.modal-actions .left{margin-right:auto}.modal-close{background:none;border:0;font-size:24px;color:#93a086;line-height:1}.catalog-table,.bom-table{border-collapse:collapse;width:100%;font-size:11px}.catalog-table th,.bom-table th{text-align:left;color:#89967e;font-size:9px;font-weight:500;padding:10px 6px;border-bottom:1px solid #dce3d4;white-space:nowrap}.catalog-table td,.bom-table td{padding:7px 5px;border-bottom:1px solid #ebeee5}.catalog-table input{padding:7px;font-size:11px}.catalog-table .number{width:72px}.catalog-table .name{min-width:160px;width:100%}.catalog-table button{border:0;background:none;color:#aa8269}.scroll-table{overflow:auto}.catalog-add{display:flex;gap:9px;margin-top:17px}.help-copy{font-size:12px;line-height:1.9;max-width:720px}.help-copy li{margin-bottom:10px}.form-error{font-size:12px;color:#a7553c;min-height:18px;margin:10px 0}.modal-body>form{max-width:580px}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.preset-card{background:#f8faf3;border:1px solid #dfe6d5;border-radius:7px;text-align:left;padding:20px}.preset-card span{display:block;font-size:50px;font-weight:300;color:#9eaa88;height:85px}.preset-card strong{display:block;font-size:13px;margin:12px 0}.preset-card small{font-size:11px}.panel-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.panel-fields .wide{grid-column:1/-1}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);padding:12px 20px;border-radius:7px;background:#2e3c30;color:#f5f7ef;font-size:12px;max-width:90vw;box-shadow:0 8px 28px #24301b24;opacity:0;pointer-events:none;transition:.2s;z-index:10}#toast.show{opacity:1;transform:translateX(-50%)}#print-root{display:none}
.main-grid{height:calc(100dvh - 221px);min-height:650px}.sidebar{display:flex;flex-direction:column;min-height:0}.sidebar>#inspector{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#c2ccb5 transparent}.sidebar>.sidebar-section,.sidebar-top,.catalog-card,.sidebar-note{flex-shrink:0}.results-panel{overflow:auto}.drawing-panel{min-height:0}.canvas-wrap{min-height:350px}.modal-body>#catalog-form{max-width:none}.catalog-add{flex-wrap:wrap}
dialog.wide{width:1200px;max-width:94vw}.catalog-table select{width:130px;font-size:10px;padding:7px}.corner-row{padding:16px 0;border-bottom:1px solid #e4e7df}.corner-row>.button{margin:0 6px 12px 0}.corner-row>.text-button{display:block;margin:10px 0}.report-notices>[data-action="corners"]{margin-top:20px}
@media(min-width:1650px){.main-grid{grid-template-columns:280px minmax(400px,1fr) 290px}.sidebar-section{padding:21px 23px}.results-panel{padding:27px 24px}}
@media(max-width:1250px){.main-grid{grid-template-columns:230px minmax(300px,1fr) 220px;margin:0 16px}.header,.project-header{padding-left:20px;padding-right:20px}.brand>span{display:none}.save-state{display:none}.drawing-toolbar{padding:0 9px}.tool-button span{display:none}.results-panel{padding:20px 14px}.sidebar-section{padding:16px}.legend-right{display:none}.project-name{font-size:19px}.project-actions .badge{display:none}.drawing-subbar{padding:0 12px}.units{font-size:7px}}
@media(max-width:1000px){.main-grid{grid-template-columns:225px minmax(300px,1fr);height:auto}.sidebar{max-height:800px}.results-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;border-top:1px solid var(--line);border-left:0}.results-panel .report-summary{grid-column:1}.results-panel .report-materials{grid-column:2}.results-panel .report-notices{grid-column:3}.drawing-panel{min-height:630px}.big-metric{font-size:32px;margin-top:14px}.mini-heading{margin-top:0}.notice{margin-top:0;margin-bottom:10px}}
@media(max-width:700px){.rail{width:46px;padding-top:19px}.rail-button{width:34px}.brand-mark{font-size:22px}.workspace{margin-left:46px;width:calc(100% - 46px)}.header{height:62px;padding:0 12px}.brand strong{font-size:13px;letter-spacing:1px}.header-actions{gap:0}.header-actions .button{padding:8px;font-size:9px}.project-header{padding:19px 12px;flex-wrap:wrap}.eyebrow{font-size:7px}.project-name{font-size:17px}.project-actions .button{font-size:9px}.main-grid{display:flex;flex-direction:column;margin:0 9px}.drawing-panel{order:0;min-height:490px}.canvas-wrap{min-height:360px}.sidebar{order:1;border-right:0;border-top:1px solid var(--line)}.results-panel{order:2;display:block}.drawing-toolbar{gap:4px}.segmented button{padding:6px;font-size:9px}.tool-button{padding:5px}.drawing-subbar .units{display:none}.sidebar-top{padding-top:15px}.wall-list{max-height:110px}.results-panel .report-materials{margin-top:24px}.results-panel .report-notices{margin-top:20px}.footer{font-size:8px;padding:14px 12px;gap:16px}.footer>span:last-child{display:none}.modal-head,.modal-body{padding:18px}.preset-grid{grid-template-columns:1fr}.preset-card span{height:40px;font-size:32px}.preset-card{padding:10px 18px}.preset-card strong{margin:5px 0}.canvas-hint{font-size:8px;bottom:48px}.catalog-card{max-width:350px}.modal-actions{padding:15px}.panel-fields{gap:9px}}
@media(max-width:700px){.sidebar{max-height:none}.sidebar>#inspector{flex:none;overflow:visible}}
@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff;color:#222}.app-shell,dialog,#toast{display:none!important}#print-root{display:block;font-size:10pt}.print-page{break-after:page}.print-page:last-child{break-after:auto}.print-page h1{font-size:19pt;margin:0 0 8mm}.print-page h2{font-size:13pt}.print-page svg{width:100%;max-height:125mm;display:block}.print-note{font-size:9pt;color:#765a3d;margin:4mm 0 6mm}.print-page table{width:100%;border-collapse:collapse}.print-page td,.print-page th{border-bottom:1px solid #ddd;padding:6px;text-align:left}.print-page footer{margin-top:6mm;font-size:8pt;color:#777}}
/* Drawing annotations are view controls; they never mutate project geometry. */
.dimension-controls{display:flex;flex-wrap:wrap;gap:8px 16px;padding:8px 18px;border-bottom:1px solid #e9ece5;background:#fafbf8}
.dimension-controls label{display:flex;align-items:center;gap:6px;font-size:11px;color:#596557}
.dimension-controls input{margin:0}
.dimension-controls span{font-size:10px;color:#7d877f;width:100%}
.plan-annotation{pointer-events:none}
.dimension-controls[hidden]{display:none}
