:root{--ink:#172033;--muted:#667085;--line:#d7dce5;--panel:#f8f9fb;--blue:#316fea;--blue-dark:#245bcc;--danger:#c73535;--shadow:0 8px 30px rgba(20,34,60,.12)}
[hidden]{display:none!important}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:14px/1.4 Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#eef1f5;overflow:hidden}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px;color:var(--ink);cursor:pointer;transition:.15s}.button input{display:none}button:hover,.button:hover{border-color:#9babca;background:#f6f8fc}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark)}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:linear-gradient(145deg,#3978ef,#254fb0);color:#fff;font-weight:800}.brand strong,.brand small{display:block}.brand small{font-size:10px;letter-spacing:.16em;color:var(--muted)}.file-actions{display:flex;gap:8px}.workspace{display:grid;grid-template-columns:258px minmax(400px,1fr) 290px;height:calc(100% - 64px)}.panel{background:var(--panel);padding:18px;border-color:var(--line);overflow:auto}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line)}h2{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#667085;margin:0 0 10px}.panel section{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tool{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 5px;font-size:11px}.tool span{font-size:20px}.tool.active{border-color:var(--blue);color:var(--blue);background:#edf3ff}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h2{margin:0}.icon-btn{padding:4px 9px;font-size:17px}.layer-list{display:flex;flex-direction:column;gap:5px;margin-top:10px}.layer-row{display:grid;grid-template-columns:minmax(0,1fr) 27px;gap:4px}.layer-item{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;text-align:left;padding:7px 8px}.layer-row.active .layer-item{outline:2px solid var(--blue);border-color:transparent;background:#edf3ff}.layer-order{display:grid;grid-template-rows:1fr 1fr;gap:2px}.layer-order button{font-size:10px;line-height:1;padding:0;border-radius:4px}.swatch{width:20px;height:20px;border:1px solid #9ca3af;border-radius:4px}.layer-copy{min-width:0}.layer-copy strong,.layer-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-copy small{color:var(--muted);font-size:11px}.layer-index{color:#98a2b3;font-size:11px}.block{display:block;width:100%;text-align:center}.subtle{margin-top:8px;background:transparent}.range-row{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;margin-top:10px}.canvas-area{min-width:0;display:grid;grid-template-rows:48px minmax(0,1fr) 30px;background:#dce1e9}.canvas-toolbar,.statusbar{background:#fff;display:flex;align-items:center;gap:13px;padding:0 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.canvas-toolbar .spacer{flex:1}.canvas-toolbar input[type=number]{width:70px;padding:4px 5px;border:1px solid var(--line);border-radius:5px}.switch{display:flex;gap:6px;align-items:center}.viewport{position:relative;overflow:hidden;margin:16px;background:#fff;border-radius:8px;box-shadow:var(--shadow)}#editor{display:block;width:100%;height:100%;touch-action:none;outline:none;cursor:default}.material-shape{stroke:#252b35;stroke-width:1.2;fill-opacity:.9;vector-effect:non-scaling-stroke}.material-shape.selected{stroke:var(--blue);stroke-width:2.5}.vertex{fill:#fff;stroke:var(--blue);stroke-width:2;vector-effect:non-scaling-stroke;cursor:move}.draft-line{pointer-events:none;fill:rgba(49,111,234,.12);stroke:var(--blue);stroke-width:2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.axis-label{position:absolute;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.1em;color:#7b8495;background:rgba(255,255,255,.86);padding:3px 8px;pointer-events:none}.axis-label.inside{top:5px}.axis-label.outside{bottom:5px}.statusbar{border-top:1px solid var(--line);border-bottom:0;justify-content:space-between}.statusbar .ok{color:#198754}.statusbar .error{color:var(--danger)}form label{display:block;color:var(--muted);font-size:12px;margin-bottom:12px}form input,form select{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}input[type=color]{height:36px;padding:3px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:16px 0}.metrics div{background:#fff;border:1px solid var(--line);border-radius:6px;padding:7px;text-align:center}.metrics span,.metrics strong{display:block}.metrics span{font-size:9px;color:var(--muted);text-transform:uppercase}.metrics strong{font-size:12px;margin-top:3px}.order-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.order-actions~.block{margin-bottom:8px}.danger{color:var(--danger);border-color:#e2bcbc}.empty-state,.help-card{color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:7px;padding:14px}.help-card{margin-top:20px;font-size:12px}.help-card p{margin-bottom:0}kbd{background:#eef1f5;border:1px solid #cdd3dd;border-radius:4px;padding:1px 5px;color:var(--ink)}#toast{position:fixed;left:50%;bottom:45px;transform:translate(-50%,15px);background:#172033;color:#fff;padding:9px 15px;border-radius:7px;opacity:0;pointer-events:none;transition:.2s;z-index:20;box-shadow:var(--shadow)}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(760px,90vw);height:min(650px,82vh);border:0;border-radius:12px;padding:0;box-shadow:0 20px 70px rgba(10,20,40,.35)}dialog::backdrop{background:rgba(13,20,34,.5)}.dialog-header,.dialog-actions{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.dialog-header{border-bottom:1px solid var(--line)}.dialog-header strong,.dialog-header small{display:block}.dialog-header small,.dialog-actions span{color:var(--muted);font-size:11px}.dialog-actions{border-top:1px solid var(--line)}#jsonPreview{display:block;width:100%;height:calc(100% - 125px);resize:none;border:0;outline:0;padding:16px;background:#111827;color:#d8e2f2;font:12px/1.55 Consolas,monospace;tab-size:2}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:14px/1.4 Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#eef1f5;overflow:hidden}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px;color:var(--ink);cursor:pointer;transition:.15s}.button input{display:none}button:hover,.button:hover{border-color:#9babca;background:#f6f8fc}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark)}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:linear-gradient(145deg,#3978ef,#254fb0);color:#fff;font-weight:800}.brand strong,.brand small{display:block}.brand small{font-size:10px;letter-spacing:.16em;color:var(--muted)}.file-actions{display:flex;gap:8px}.workspace{display:grid;grid-template-columns:258px minmax(400px,1fr) 290px;height:calc(100% - 64px)}.panel{background:var(--panel);padding:18px;border-color:var(--line);overflow:auto}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line)}h2{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#667085;margin:0 0 10px}.panel section{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tool{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 5px;font-size:11px}.tool span{font-size:20px}.tool.active{border-color:var(--blue);color:var(--blue);background:#edf3ff}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h2{margin:0}.icon-btn{padding:4px 9px;font-size:17px}.layer-list{display:flex;flex-direction:column;gap:5px;margin-top:10px}.layer-row{display:grid;grid-template-columns:minmax(0,1fr) 27px;gap:4px}.layer-item{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;text-align:left;padding:7px 8px}.layer-row.active .layer-item{outline:2px solid var(--blue);border-color:transparent;background:#edf3ff}.layer-order{display:grid;grid-template-rows:1fr 1fr;gap:2px}.layer-order button{font-size:10px;line-height:1;padding:0;border-radius:4px}.swatch{width:20px;height:20px;border:1px solid #9ca3af;border-radius:4px}.layer-copy{min-width:0}.layer-copy strong,.layer-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-copy small{color:var(--muted);font-size:11px}.layer-index{color:#98a2b3;font-size:11px}.block{display:block;width:100%;text-align:center}.subtle{margin-top:8px;background:transparent}.range-row{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;margin-top:10px}.canvas-area{min-width:0;display:grid;grid-template-rows:48px minmax(0,1fr) 30px;background:#dce1e9}.canvas-toolbar,.statusbar{background:#fff;display:flex;align-items:center;gap:13px;padding:0 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.canvas-toolbar .spacer{flex:1}.canvas-toolbar input[type=number]{width:70px;padding:4px 5px;border:1px solid var(--line);border-radius:5px}.switch{display:flex;gap:6px;align-items:center}.viewport{position:relative;overflow:hidden;margin:16px;background:#fff;border-radius:8px;box-shadow:var(--shadow)}#editor{display:block;width:100%;height:100%;touch-action:none;outline:none;cursor:default}.material-shape{stroke:#252b35;stroke-width:1.2;fill-opacity:.9;vector-effect:non-scaling-stroke}.material-shape.selected{stroke:var(--blue);stroke-width:2.5}.vertex{fill:#fff;stroke:var(--blue);stroke-width:2;vector-effect:non-scaling-stroke;cursor:move}.draft-line{pointer-events:none;fill:rgba(49,111,234,.12);stroke:var(--blue);stroke-width:2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.axis-label{position:absolute;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.1em;color:#7b8495;background:rgba(255,255,255,.86);padding:3px 8px;pointer-events:none}.axis-label.inside{top:5px}.axis-label.outside{bottom:5px}.statusbar{border-top:1px solid var(--line);border-bottom:0;justify-content:space-between}.statusbar .ok{color:#198754}.statusbar .error{color:var(--danger)}form label{display:block;color:var(--muted);font-size:12px;margin-bottom:12px}form input,form select{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}input[type=color]{height:36px;padding:3px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:16px 0}.metrics div{background:#fff;border:1px solid var(--line);border-radius:6px;padding:7px;text-align:center}.metrics span,.metrics strong{display:block}.metrics span{font-size:9px;color:var(--muted);text-transform:uppercase}.metrics strong{font-size:12px;margin-top:3px}.order-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.order-actions~.block{margin-bottom:8px}.danger{color:var(--danger);border-color:#e2bcbc}.empty-state,.help-card{color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:7px;padding:14px}.help-card{margin-top:20px;font-size:12px}.help-card p{margin-bottom:0}kbd{background:#eef1f5;border:1px solid #cdd3dd;border-radius:4px;padding:1px 5px;color:var(--ink)}#toast{position:fixed;left:50%;bottom:45px;transform:translate(-50%,15px);background:#172033;color:#fff;padding:9px 15px;border-radius:7px;opacity:0;pointer-events:none;transition:.2s;z-index:20;box-shadow:var(--shadow)}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(760px,90vw);height:min(650px,82vh);border:0;border-radius:12px;padding:0;box-shadow:0 20px 70px rgba(10,20,40,.35)}dialog::backdrop{background:rgba(13,20,34,.5)}.dialog-header,.dialog-actions{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.dialog-header{border-bottom:1px solid var(--line)}.dialog-header strong,.dialog-header small{display:block}.dialog-header small,.dialog-actions span{color:var(--muted);font-size:11px}.dialog-actions{border-top:1px solid var(--line)}#jsonDialog{width:min(980px,94vw);height:min(760px,90vh);overflow:hidden}#jsonDialog[open]{display:flex;flex-direction:column}#jsonDialog .dialog-header,#jsonDialog .dialog-actions{flex:0 0 auto}#jsonPreview{display:block;width:100%;height:auto;min-height:240px;flex:1 1 auto;resize:none;border:0;outline:0;padding:16px;background:#111827;color:#d8e2f2;font:12px/1.55 Consolas,monospace;tab-size:2}
@media(max-width:950px){.workspace{grid-template-columns:210px 1fr}.right-panel{position:fixed;right:0;top:64px;bottom:0;width:280px;z-index:3;box-shadow:var(--shadow)}.canvas-area{padding-right:280px}}@media(max-width:700px){.workspace{grid-template-columns:1fr}.left-panel{display:none}.right-panel{display:none}.canvas-area{padding-right:0}.brand small{display:none}}
.grid-overlay{pointer-events:none;opacity:.38}.vertex.selected-vertex{fill:var(--blue);stroke:#fff;stroke-width:2.5}.draft-vertex{cursor:move}.vertex-editor{margin:0 0 14px;padding:10px;background:#edf3ff;border:1px solid #b9cdf8;border-radius:7px}.vertex-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.vertex-title span,.vertex-editor>small{font-size:10px;color:var(--muted)}.vertex-editor label{margin-bottom:0}.vertex-editor>.button,.vertex-editor>button{margin-top:10px}.lock-control{display:flex;align-items:center;gap:8px;padding:9px;background:#fff7df;border:1px solid #ead69d;border-radius:7px}.lock-control input{display:inline;width:auto;margin:0}.dimensions{pointer-events:none}.dimension-line,.dimension-extension{stroke:#172033;stroke-width:1;vector-effect:non-scaling-stroke}.dimension-extension{stroke:#697386}.dimension-text{fill:#172033;font:600 11px Inter,Segoe UI,Arial,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.locked-shape{stroke-dasharray:5 3}.locked-badge{font-size:10px}.background-info{margin:10px 0 8px;padding:7px;background:#eef1f5;border-radius:5px;color:var(--muted);font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}.background-info.import-error{background:#fff0f0;border:1px solid #e3a5a5;color:#8b1d1d}.drawing-import{margin-top:7px}.left-panel input[type=number]{display:block;width:100%;margin-top:4px;padding:7px;border:1px solid var(--line);border-radius:6px}.left-panel #backgroundControls>label{display:block;margin:8px 0;color:var(--muted);font-size:11px}.background-rotation-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:7px 0}.background-rotation-actions button{padding:6px}#backgroundImage{pointer-events:none}#backgroundImage.background-editing{pointer-events:auto;cursor:move;filter:drop-shadow(0 0 3px #316fea)}.lambda-field{margin:4px 0 14px;padding:12px;background:#fff3cd;border:2px solid #d89b16;border-radius:8px;box-shadow:0 0 0 3px rgba(216,155,22,.12)}.lambda-field label{margin:0;color:#6b4a00}.lambda-field strong,.lambda-field span{display:block}.lambda-field strong{font-size:14px}.lambda-field span{font-size:10px;margin:2px 0 7px}.lambda-field input{border-color:#bd8410;font-weight:700;font-size:15px}.geometry-audit{pointer-events:none}.audit-material{fill:rgba(224,0,0,.12);stroke:#e00000;stroke-width:2;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}.audit-edge{stroke:#e00000;stroke-width:5;vector-effect:non-scaling-stroke}.audit-point{fill:#fff;stroke:#e00000;stroke-width:4;vector-effect:non-scaling-stroke}.audit-label{fill:#a40000;font:800 11px Inter,Segoe UI,Arial,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.audit-gap{fill:rgba(224,0,0,.28);stroke:#e00000;stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.layer-row{grid-template-columns:minmax(0,1fr) 58px 27px}.layer-actions{display:grid;grid-template-columns:1fr 1fr;gap:2px}.layer-actions button{font-size:12px;line-height:1;padding:0;border-radius:4px}.layer-actions .layer-delete{color:var(--danger)}
.calculation-area{pointer-events:none}.calculation-mask{fill:rgba(20,29,45,.34)}.calculation-boundary{fill:none;stroke:#ff7a00;stroke-width:3;stroke-dasharray:9 5;vector-effect:non-scaling-stroke}.calculation-label{fill:#b34f00;font:700 11px Inter,Segoe UI,Arial,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:4px}#setCalculationAreaBtn.active,#checkGeometryBtn[aria-pressed="true"]{color:#fff;background:#316fea;border-color:#316fea}
#backgroundControls>button{margin-top:9px}#backgroundControls .background-calibration{margin-top:10px}
.tool-options{display:grid;gap:6px;margin-top:10px;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff}.tool-options label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.tool-options input{margin:0}.coordinate-labels,.smart-guides{pointer-events:none}.coordinate-major-line{stroke:#8fa0b8;stroke-width:1;stroke-opacity:.32;vector-effect:non-scaling-stroke}.coordinate-label{fill:#445269;font:600 10px Consolas,monospace;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.smart-guide{stroke:#ed2ca7;stroke-width:1.5;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}.smart-guide-point{fill:#ed2ca7;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.smart-guide-label{fill:#b00076;font:700 10px Consolas,monospace;paint-order:stroke;stroke:#fff;stroke-width:4px}
.ifc-view-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:14px}.ifc-view-buttons button{padding:6px 3px;font-size:10px}#ifcCanvas.panning{cursor:grabbing}
.custom-guide-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:4px}.custom-guide-actions button{padding:6px 4px;font-size:10px}.tool-options>small{color:var(--muted);font-size:10px}.custom-guide{stroke:#18a0fb;stroke-width:1.5;vector-effect:non-scaling-stroke;cursor:move;pointer-events:stroke}.custom-guide:hover{stroke:#006fc9;stroke-width:3}.custom-guide-label{fill:#006fc9;font:700 10px Consolas,monospace;paint-order:stroke;stroke:#fff;stroke-width:4px;pointer-events:none}
.toolbar-guides{position:relative}.toolbar-guides>summary{list-style:none;white-space:nowrap;cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:6px 9px;background:#fff;color:var(--ink)}.toolbar-guides>summary::-webkit-details-marker{display:none}.toolbar-guides>summary::after{content:'▾';margin-left:6px;color:var(--muted)}.toolbar-guides>summary>span{display:inline-block;width:16px;text-align:center;color:var(--blue)}.toolbar-guides[open]>summary{border-color:var(--blue);background:#edf3ff;color:var(--blue)}.toolbar-guides-menu{position:fixed;z-index:50;top:0;left:0;display:grid;width:min(270px,calc(100vw - 16px));gap:8px;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.toolbar-guides-menu label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.toolbar-guides-menu input{margin:0}.toolbar-guide-icon{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:#edf3ff;color:var(--blue);font-weight:700}.toolbar-guides-menu small{color:var(--muted);font-size:10px}.toolbar-guides-menu .custom-guide-actions{grid-template-columns:1fr 1fr auto}.toolbar-guides-menu .custom-guide-actions button{display:flex;align-items:center;justify-content:center;gap:5px}.toolbar-guides-menu .custom-guide-actions button>span{color:var(--blue);font-weight:800}
.bulk-properties{padding:12px;background:#edf3ff;border:1px solid #b9cdf8;border-radius:8px}.bulk-properties>label{display:block;margin:9px 0;color:var(--muted);font-size:12px}.bulk-properties input,.bulk-properties select{display:block;width:100%;margin-top:4px;padding:7px;border:1px solid var(--line);border-radius:6px}.bulk-properties .bulk-color{display:grid;grid-template-columns:auto 1fr 48px;align-items:center;gap:7px}.bulk-properties .bulk-color input{width:auto;margin:0}.bulk-properties .lambda-field{margin-top:10px}.material-shape.multi-selected{stroke:#7c3aed;stroke-width:3;stroke-dasharray:7 3}.layer-row.multi-active .layer-item{outline:2px solid #7c3aed;border-color:transparent;background:#f3efff}
.vertex-path{fill:#fff;fill-rule:nonzero;stroke:var(--blue);stroke-width:2;vector-effect:non-scaling-stroke}
.layer-row{grid-template-columns:minmax(0,1fr) 84px 27px}.layer-actions{grid-template-columns:repeat(3,1fr)}.layer-hidden .layer-item{opacity:.48}.layer-visibility[aria-pressed="false"]{opacity:.35;background:#eef1f5}
.selection-overlay{pointer-events:none}.selection-overlay-shape{fill:rgba(124,58,237,.16);stroke:#6d28d9;stroke-width:4;stroke-dasharray:9 4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #fff)}.selection-overlay-badge circle{fill:#6d28d9;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.selection-overlay-badge text{fill:#fff;font:700 11px Inter,Segoe UI,Arial,sans-serif}.layer-row.multi-active .layer-item{position:relative;outline:3px solid #6d28d9;box-shadow:inset 5px 0 #6d28d9;background:#eee7ff}.layer-row.multi-active .layer-item::before{content:'✓';position:absolute;right:3px;top:2px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#6d28d9;color:#fff;font-size:10px}.bulk-properties{padding:0;background:transparent;border:0}.bulk-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;padding:10px 11px;border-radius:8px;background:#ede9fe;border:1px solid #c4b5fd}.bulk-header strong,.bulk-header small{display:block}.bulk-header small{margin-top:2px;color:#6d5d89;font-size:10px}.bulk-header button{padding:4px 8px;color:#6d28d9}.bulk-selection-list{display:flex;flex-direction:column;gap:5px;max-height:150px;overflow:auto;margin-bottom:11px;padding:2px}.bulk-selection-chip{display:grid;grid-template-columns:20px 18px minmax(0,1fr) 12px;align-items:center;gap:7px;width:100%;padding:6px 7px;text-align:left;border-color:#d8d1e8}.bulk-selection-chip>span:nth-child(3){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-selection-chip .swatch{width:17px;height:17px}.bulk-chip-number{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#6d28d9;color:#fff;font-size:10px;font-weight:700}.bulk-selection-chip b{color:#7b6d91}.bulk-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.bulk-properties .bulk-grid label{min-width:0;margin:0 0 8px;color:var(--muted);font-size:11px}.bulk-properties .bulk-grid select{padding:6px;font-size:11px}.bulk-properties .bulk-color{margin:3px 0 9px;padding:7px 9px;background:#fff;border:1px solid var(--line);border-radius:7px}.bulk-properties .lambda-field{margin:8px 0;padding:9px}.bulk-air-fields{margin:8px 0;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#fff}.bulk-air-fields summary{cursor:pointer;color:#475467;font-size:12px;font-weight:600}.bulk-air-fields label{margin:8px 0 0}.bulk-properties>.primary{margin-top:10px}
.selection-overlay-shape{fill:none}
.calculate-button{background:#0d766e;border-color:#0d766e;color:#fff;font-weight:650}.calculate-button:hover{background:#095f59;border-color:#095f59}.calculate-button.running{position:relative;padding-left:31px}.calculate-button.running::before{content:"";position:absolute;left:11px;top:50%;width:11px;height:11px;margin-top:-7px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:calculation-spin .8s linear infinite}.calculation-dialog{width:min(1120px,94vw);height:min(820px,92vh);max-width:none;max-height:none;overflow:hidden}.calculation-dialog[open]{display:flex;flex-direction:column}.calculation-dialog .dialog-header,.calculation-dialog .dialog-actions{flex:0 0 auto}.calculation-body{flex:1 1 auto;overflow:auto;padding:24px;background:#f5f7fa}.calculation-setup{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.calculation-intro{display:flex;flex-direction:column;margin-bottom:18px}.calculation-intro span,.calculation-progress>span,.calculation-progress p{color:var(--muted);font-size:12px}.calculation-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.calculation-fields .calculation-level{grid-column:1/-1}.calculation-model-summary{margin:6px 0 18px;padding:11px 13px;border-radius:7px;background:#edf3ff;color:#35517d;font-size:12px}.calculation-setup form>button{min-width:170px}.calculation-progress{max-width:720px;margin:8vh auto;text-align:center}.calculation-spinner{width:52px;height:52px;margin:0 auto 18px;border:5px solid #cbd5e1;border-top-color:#0d766e;border-radius:50%;animation:calculation-spin .8s linear infinite}.calculation-progress>strong{display:block;font-size:20px;margin-bottom:5px}.calculation-progress-track{height:8px;margin:22px 0 12px;border-radius:99px;background:#dbe2ea;overflow:hidden}.calculation-progress-track span{display:block;height:100%;width:34%;border-radius:inherit;background:#0d766e;animation:calculation-wait 2s ease-in-out infinite}.calculation-progress-details{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.calculation-progress-details div,.result-cards article{padding:10px;background:#fff;border:1px solid var(--line);border-radius:8px}.calculation-progress-details small,.result-cards small{display:block;color:var(--muted)}.calculation-results{max-width:1000px;margin:0 auto}.result-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.result-cards article strong{font-size:19px}.result-images{display:grid;grid-template-columns:1fr 1fr;gap:14px}.result-images figure{margin:0;padding:10px;background:#fff;border:1px solid var(--line);border-radius:9px}.result-images img{display:block;width:100%;max-height:410px;object-fit:contain;background:#fff}.result-images figcaption{margin-top:7px;color:var(--muted);font-size:11px}.result-steps,.raw-result{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px}.result-steps summary,.raw-result summary{cursor:pointer;font-weight:600}.result-table-wrap{overflow:auto;margin-top:10px}.result-table-wrap table{width:100%;border-collapse:collapse;font-size:11px}.result-table-wrap th,.result-table-wrap td{padding:7px;border-bottom:1px solid #e7eaf0;text-align:right;white-space:nowrap}.result-table-wrap th:first-child,.result-table-wrap td:first-child{text-align:left}.raw-result textarea{width:100%;height:260px;margin-top:10px;padding:10px;border:0;border-radius:6px;background:#111827;color:#d8e2f2;font:11px/1.45 Consolas,monospace;resize:vertical}.calculation-error{max-width:760px;margin:7vh auto;padding:18px;border:1px solid #efb4b4;border-radius:9px;background:#fff1f1;color:#9d2525}.calculation-error pre{white-space:pre-wrap;overflow-wrap:anywhere}.calculation-actions>div{display:flex;gap:7px}.calculation-actions{min-height:62px}.calculation-actions>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calculation-dialog button:disabled{opacity:.55;cursor:not-allowed}@keyframes calculation-spin{to{transform:rotate(360deg)}}@keyframes calculation-wait{0%{transform:translateX(-110%)}50%{transform:translateX(190%)}100%{transform:translateX(-110%)}}@media(max-width:720px){.calculation-fields,.result-images{grid-template-columns:1fr}.result-cards{grid-template-columns:1fr 1fr}.calculation-progress-details{grid-template-columns:1fr 1fr}}
.result-cards{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px;margin:0 auto 22px}.result-cards article{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:12px;padding:16px 18px;border-left:4px solid #0d766e}.result-cards article small{grid-column:1/-1;margin-bottom:4px}.result-cards article strong{font-size:28px;line-height:1.1}.result-unit{align-self:end;padding-bottom:2px;color:var(--muted);font-size:12px}.result-images{grid-template-columns:1fr;gap:20px}.result-images figure{padding:14px}.result-images img{max-height:680px}.result-images figcaption{text-align:center;font-size:12px}.result-steps{margin-top:22px}.raw-result{display:none}@media(max-width:720px){.result-cards{grid-template-columns:1fr}}
.result-images figure{position:relative}.result-images img{cursor:zoom-in}.result-image-enlarge{display:block;margin:9px auto 0}.result-image-dialog{width:min(1500px,96vw);height:min(980px,94vh);max-width:none;max-height:none;overflow:hidden}.result-image-dialog[open]{display:flex;flex-direction:column}.result-image-actions{display:flex;align-items:center;gap:6px}.result-image-actions button{padding:6px 10px}.result-image-actions output{min-width:46px;text-align:center;color:var(--muted);font-size:11px}.result-image-zoom{flex:1;min-height:0;overflow:auto;padding:16px;background:#18202c}.result-image-zoom img{display:block;max-width:none;width:100%;height:auto;margin:auto;background:#fff}
.assembly-catalog select{display:block;width:100%;margin-bottom:8px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff}.assembly-catalog small{display:block;min-height:34px;margin-bottom:9px;color:var(--muted)}.assembly-catalog .block{margin-top:7px}
.workspace{grid-template-columns:330px minmax(400px,1fr) 330px;transition:grid-template-columns .2s ease}.workspace.left-collapsed{grid-template-columns:0 minmax(400px,1fr) 330px}.workspace.left-collapsed .left-panel{padding-left:0;padding-right:0;border:0;overflow:hidden}.panel-toggle{flex:0 0 auto;padding:4px 8px}.right-panel form button,.right-panel .bulk-properties button{display:flex;align-items:center;justify-content:center;gap:7px;white-space:normal}.result-image-dialog{width:min(1180px,92vw);height:min(820px,88vh);min-width:520px;min-height:420px;resize:both;border:1px solid #607089}.result-image-dialog .dialog-header{background:#f8fafc}.result-image-zoom{position:relative;padding:20px;cursor:grab;overscroll-behavior:contain;background-color:#202938;background-image:linear-gradient(45deg,#263244 25%,transparent 25%),linear-gradient(-45deg,#263244 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#263244 75%),linear-gradient(-45deg,transparent 75%,#263244 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0}.result-image-zoom.panning{cursor:grabbing;user-select:none}.result-image-zoom img{box-shadow:0 12px 36px rgba(0,0,0,.35);pointer-events:none}.result-image-actions{padding-left:12px;border-left:1px solid var(--line)}
@media(max-width:950px){.workspace{grid-template-columns:280px 1fr}.workspace.left-collapsed{grid-template-columns:0 1fr}.workspace.left-collapsed .canvas-area{padding-right:280px}}@media(max-width:700px){.workspace,.workspace.left-collapsed{grid-template-columns:1fr}.panel-toggle{display:none}.result-image-dialog{min-width:0;width:96vw;height:90vh;resize:none}.result-image-actions output{display:none}}
.report-builder-dialog{width:min(1320px,96vw);height:min(900px,94vh);max-width:none;max-height:none;overflow:hidden}.report-builder-dialog[open]{display:flex;flex-direction:column}.report-builder-dialog .dialog-header,.report-builder-dialog .dialog-actions{flex:0 0 auto}.report-builder-dialog .dialog-actions>div{display:flex;gap:8px}.report-builder-body{display:grid;grid-template-columns:minmax(420px,510px) minmax(0,1fr);flex:1;min-height:0;background:#eef2f6}.report-builder-controls{overflow:auto;padding:18px;background:#fff;border-right:1px solid var(--line)}.report-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.report-fields label,.report-notes{display:block;margin-bottom:11px;color:var(--muted);font-size:12px}.report-fields input,.report-fields select,.report-notes textarea{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.report-notes textarea{resize:vertical}.report-section-heading{display:block;margin-top:6px}.report-help{margin:3px 0 10px;color:var(--muted);font-size:11px}.report-section-list{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:0;list-style:none}.report-section-list li{display:grid;grid-template-columns:22px minmax(145px,1fr) auto 58px;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.report-section-list li.dragging{opacity:.42}.report-section-list li.drag-target{border-color:var(--blue);box-shadow:0 0 0 2px rgba(49,111,234,.13)}.report-section-list label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}.report-section-list input{margin:0}.report-drag{color:#98a2b3;cursor:grab;font-weight:700}.report-page-break{color:var(--muted);white-space:nowrap}.report-order-buttons{display:grid;grid-template-columns:1fr 1fr;gap:3px}.report-order-buttons button{padding:3px 5px}.report-preview-area{min-width:0;overflow:auto;padding:18px}.report-preview-toolbar{display:flex;justify-content:space-between;margin-bottom:12px;color:#52606d;font-size:11px}.report-page-preview{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:18px}.report-preview-page{position:relative;width:310px;min-height:438px;padding:24px 22px 30px;background:#fff;box-shadow:0 5px 18px rgba(28,39,55,.18)}.report-preview-page.landscape{width:438px;min-height:310px}.report-preview-page::after{content:attr(data-page);position:absolute;right:16px;bottom:11px;color:#94a3b8;font-size:8px}.report-preview-title{text-align:center;margin-bottom:17px;color:#17324d}.report-preview-title strong{display:block;font-size:13px}.report-preview-title small{font-size:7px;color:#64748b}.report-preview-block{margin:8px 0;padding:9px;border:1px solid #dce3eb;border-left:3px solid #0d766e;border-radius:3px;background:#f8fafc;color:#334155;font-size:8px}.report-preview-block.image{display:grid;place-items:center;min-height:145px;background:linear-gradient(135deg,#f8fafc,#e6edf5);color:#64748b}.report-preview-block strong{display:block;margin-bottom:3px}.report-preview-empty{margin-top:90px;text-align:center;color:#94a3b8;font-size:11px}@media(max-width:900px){.report-builder-body{grid-template-columns:1fr}.report-builder-controls{max-height:52%;border-right:0;border-bottom:1px solid var(--line)}.report-preview-page{transform-origin:top center}.report-builder-dialog{width:98vw;height:96vh}}@media(max-width:560px){.report-fields{grid-template-columns:1fr}.report-section-list li{grid-template-columns:18px 1fr 52px}.report-page-break{grid-column:2}.report-preview-page,.report-preview-page.landscape{width:280px;min-height:396px}}
.copy-distance-line{stroke:#8b5cf6;stroke-width:1.8;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}.copy-distance-center{fill:#fff;stroke:#8b5cf6;stroke-width:2;vector-effect:non-scaling-stroke}.copy-distance-text{fill:#6d28d9}.appearance-fields{padding:10px;margin:4px 0 12px;border:1px solid #d8dee8;border-radius:8px;background:#f8fafc}.appearance-fields label:last-child{margin-bottom:0}.element-catalog-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.element-catalog-actions .block{margin:0}.hatch-import{margin-top:7px}
.hatch-canvas-layer,#hatchCanvas{pointer-events:none}
#hatchCanvas{display:block}
.hatch-library-status{margin:-4px 0 9px;padding:7px 8px;border-radius:6px;background:#fff4d6;color:#72510b;font-size:10px;line-height:1.35}.hatch-library-status.ready{background:#e9f8ef;color:#17633a}.hatch-library-status.error{background:#fff0f0;color:#8b1d1d}
.hatch-library-source{margin:-3px 0 9px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.hatch-import{margin-bottom:7px}
.calculation-progress{max-width:780px;margin:5vh auto;text-align:left}.calculation-progress-card{padding:30px;border:1px solid #c9d8d6;border-radius:16px;background:linear-gradient(145deg,#fff 0%,#f4fbfa 100%);box-shadow:0 16px 45px rgba(13,118,110,.12)}.calculation-progress-hero{display:flex;align-items:center;gap:20px}.calculation-progress-hero>div:last-child{display:flex;flex-direction:column;align-items:flex-start}.calculation-progress .calculation-spinner{flex:0 0 auto;width:64px;height:64px;margin:0;border:7px solid #d5e7e5;border-top-color:#0d766e;border-right-color:#32a69d}.calculation-progress-kicker{margin-bottom:3px;color:#0d766e;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.calculation-progress-hero strong{display:block;margin:0;color:#183b39;font-size:25px;line-height:1.2}.calculation-elapsed{display:inline-flex;margin-top:8px;padding:4px 9px;border-radius:99px;background:#e2f3f1;color:#0b625c;font-size:11px;font-weight:700}.calculation-progress .calculation-progress-track{height:11px;margin:26px 0 12px;background:#dce9e8}.calculation-progress-track span{background:linear-gradient(90deg,#0d766e,#38b2a8)}.calculation-progress-card>p{margin:0 0 22px;color:var(--muted);font-size:12px}.calculation-progress .calculation-progress-details{gap:10px}.calculation-progress-details div{padding:13px 10px;border-color:#d9e3e2;border-radius:10px;text-align:center}.calculation-progress-details small{font-size:10px}.calculation-progress-details strong{display:block;margin-top:4px;color:#183b39;font-size:16px}.calculation-actions>span[hidden]{display:none}.calculation-actions:has(>span[hidden]){justify-content:flex-end}@media(max-width:720px){.calculation-progress-card{padding:20px}.calculation-progress-hero strong{font-size:20px}.calculation-progress-hero{align-items:flex-start}.calculation-progress .calculation-spinner{width:52px;height:52px}.calculation-progress-details{grid-template-columns:1fr 1fr}}
.custom-guide.selected{stroke:#0057d8;stroke-width:4;filter:drop-shadow(0 0 2px rgba(0,87,216,.55))}.custom-guide-actions button[hidden]{display:none}.selected-guide-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px;padding:9px;border:1px solid #9fc7f7;border-radius:7px;background:#edf6ff}.selected-guide-editor[hidden]{display:none}.selected-guide-editor label{display:block;margin:0;color:#335b87;font-size:10px}.selected-guide-editor input{display:block;width:100%;margin-top:4px;padding:6px 7px;border:1px solid #83afe4;border-radius:5px;color:var(--ink)}.selected-guide-editor button{display:flex;align-items:center;gap:4px;padding:6px 8px;font-size:10px}
.calculation-progress .calculation-progress-details{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:720px){.calculation-progress .calculation-progress-details{grid-template-columns:1fr 1fr}}
.file-actions{align-items:center}.file-actions #saveProjectBtn{font-weight:650}.file-actions button,.file-actions .button{white-space:nowrap}@media(max-width:1120px){.brand small{display:none}.file-actions{gap:5px}.file-actions button,.file-actions .button{padding:7px 8px;font-size:12px}}
.right-panel{min-width:0}.right-panel .vertex-editor{padding:14px;border-radius:10px}.right-panel .vertex-title{align-items:flex-start;gap:12px;margin-bottom:12px}.right-panel .vertex-title strong{min-width:0;font-size:14px}.right-panel .vertex-title span{flex:0 0 auto;max-width:48%;text-align:right;line-height:1.3}.right-panel .vertex-editor .two-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.right-panel .vertex-editor label{display:block;min-width:0;margin:0 0 10px;color:#344054;font-size:12px}.right-panel .vertex-editor input,.right-panel .vertex-editor select{display:block;width:100%;min-width:0;margin-top:5px;padding:8px 9px;border:1px solid #aebbd0;border-radius:6px;background:#fff;color:var(--ink)}.right-panel .vertex-editor>small{display:block;margin:2px 0 10px;line-height:1.5}.right-panel .vertex-editor>button{min-height:38px;margin-top:5px}#thinWallProperties{border-color:#9fbaf4;background:linear-gradient(180deg,#f4f7ff 0%,#eaf1ff 100%)}#thinWallProperties .primary{margin-top:10px}
.result-plot-legend{display:grid;gap:7px;margin:0 0 16px;padding:12px 14px;border:1px solid #c8d5e7;border-radius:9px;background:#f7faff;color:#475467;font-size:11px}.result-plot-legend strong{color:#1d2939;font-size:12px}.result-plot-legend span{display:flex;align-items:flex-start;gap:8px}.result-plot-legend i{flex:0 0 24px;height:3px;margin-top:7px}.legend-isotherm{background:#f2008f}.legend-mesh{background:repeating-linear-gradient(90deg,#26384c 0 2px,transparent 2px 4px);border-top:1px solid #26384c;border-bottom:1px solid #26384c}.result-image-zoom img{width:auto}.calculation-progress-card .calculation-convergence-status{margin:16px 0 0;padding:12px 14px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc;color:#475467;font-weight:650}.calculation-progress-card .calculation-convergence-status.pending{border-color:#f0c36a;background:#fff8e7;color:#8a5600}.calculation-progress-card .calculation-convergence-status.reached{border-color:#8bc9b9;background:#eaf8f3;color:#09664f}.comparison-setup{margin:0 0 16px;padding:13px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc}.comparison-enable{display:flex!important;align-items:center;gap:8px;margin:0!important;color:#17324d!important;font-weight:700}.comparison-enable input{width:auto!important;margin:0!important}.comparison-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:14px 0 8px;padding-top:12px;border-top:1px solid #d9e1ea}.comparison-heading small{display:block;margin-top:2px;color:var(--muted)}.comparison-heading>div:last-child{display:flex;gap:5px}.comparison-material-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:190px;overflow:auto;padding:3px}.comparison-material-row{display:grid;grid-template-columns:auto 18px minmax(0,1fr);align-items:center;gap:7px;margin:0!important;padding:8px;border:1px solid #dbe2ea;border-radius:7px;background:#fff;color:#344054!important}.comparison-material-row input{width:auto!important;margin:0!important}.comparison-material-row .swatch{width:16px;height:16px;border-radius:3px}.comparison-material-row span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calculation-comparison{margin:0 0 20px;padding:16px;border:1px solid #a9c5de;border-radius:10px;background:#f7fbff}.calculation-comparison>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.calculation-comparison small{color:var(--muted)}.comparison-table-wrap{overflow:auto}.calculation-comparison table{width:100%;border-collapse:collapse;background:#fff}.calculation-comparison th,.calculation-comparison td{padding:9px;border:1px solid #dbe4ee;text-align:right}.calculation-comparison th:first-child,.calculation-comparison td:first-child{text-align:left}.calculation-comparison tbody tr:first-child{font-weight:700}@media(max-width:720px){.comparison-material-list{grid-template-columns:1fr}.comparison-heading{flex-direction:column}.calculation-comparison>div:first-child{flex-direction:column}}
.element-catalog>select{display:block;width:100%;margin-bottom:8px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff}.element-catalog>small{display:block;min-height:34px;margin-bottom:9px;color:var(--muted)}.element-catalog>#openElementCatalogEditorBtn{margin-top:7px}.element-catalog-dialog{width:min(1080px,94vw);height:min(760px,90vh);max-width:none;max-height:none;overflow:hidden}.element-catalog-dialog[open]{display:flex;flex-direction:column}.element-catalog-dialog .dialog-header,.element-catalog-dialog .dialog-actions{flex:0 0 auto}.element-catalog-editor-body{display:grid;grid-template-columns:290px minmax(0,1fr);flex:1;min-height:0;background:#f3f6fa}.element-catalog-browser{display:flex;flex-direction:column;gap:9px;min-height:0;padding:16px;border-right:1px solid var(--line);background:#fff}.element-catalog-browser-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.element-catalog-browser-actions button{padding:8px 6px}.element-catalog-browser select{flex:1;min-height:180px;padding:5px;border:1px solid var(--line);border-radius:7px;background:#fff}.element-catalog-browser option{padding:8px}.element-catalog-editor-form{overflow:auto;padding:20px}.element-catalog-editor-form textarea,.element-catalog-editor-form input,.element-catalog-editor-form select{display:block;width:100%;margin-top:5px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.element-catalog-editor-form textarea{resize:vertical}.catalog-air-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:9px;margin-bottom:4px}.catalog-outline-field small{display:block;margin-top:5px;color:var(--muted)}.catalog-element-metrics{min-height:38px;padding:9px 11px;border:1px solid #c7d7ee;border-radius:7px;background:#edf3ff;color:#35517d;font-size:12px}.element-catalog-dialog .dialog-actions>div{display:flex;align-items:center;gap:7px}.element-catalog-dialog .dialog-actions .button input{display:none}@media(max-width:760px){.element-catalog-editor-body{grid-template-columns:1fr}.element-catalog-browser{max-height:240px;border-right:0;border-bottom:1px solid var(--line)}.element-catalog-dialog .dialog-actions{align-items:flex-start;gap:8px}.element-catalog-dialog .dialog-actions>div{flex-wrap:wrap;justify-content:flex-end}.catalog-air-fields{grid-template-columns:1fr}}
.section-title>div{display:flex;gap:5px}.json-scope-control{display:flex;align-items:flex-end;gap:9px}.json-scope-control label{color:var(--muted);font-size:10px}.json-scope-control select{display:block;min-width:160px;margin-top:3px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#fff}.simplify-geometry-dialog{width:min(620px,92vw);height:auto;max-height:86vh}.simplify-geometry-body{padding:20px}.simplify-geometry-body label{display:block;margin-bottom:14px;color:var(--muted);font-size:12px}.simplify-geometry-body input,.simplify-geometry-body select{display:block;width:100%;margin-top:5px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff}.simplify-geometry-preview{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:18px 0;padding:18px;border:1px solid #bfd0e7;border-radius:9px;background:#edf3ff;text-align:center}.simplify-geometry-preview strong{font-size:24px;color:#17324d}.simplify-geometry-preview span{color:var(--muted)}.simplify-geometry-body p{margin:0;color:var(--muted);font-size:11px}.simplify-geometry-dialog .dialog-actions>div{display:flex;gap:7px}
.app-version{position:fixed;right:10px;bottom:8px;z-index:15;padding:4px 9px;border:1px solid rgba(100,116,139,.35);border-radius:999px;background:rgba(23,32,51,.9);box-shadow:0 2px 8px rgba(15,23,42,.18);color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1;pointer-events:none}
.calculation-step-groups{display:grid;gap:18px}.calculation-step-group[hidden]{display:none}.calculation-step-group h3{margin:14px 0 0;color:#17324d;font-size:13px}.calculation-step-group+.calculation-step-group{padding-top:4px;border-top:1px solid #dbe4ee}
.topbar{min-width:0}.brand{flex:0 0 auto}.file-actions{min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.canvas-area{container:canvas / inline-size;overflow:hidden}.canvas-toolbar{min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin}.canvas-toolbar>*{flex:0 0 auto}.canvas-toolbar #modeHint{flex:1 1 180px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-toolbar .spacer{flex:1 1 0;min-width:0}.canvas-toolbar>label,.toolbar-guides summary{white-space:nowrap}.statusbar{min-width:0}.statusbar span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@container canvas (max-width:1000px){.canvas-toolbar{gap:5px;padding-inline:7px;font-size:11px}.canvas-toolbar #modeHint,.canvas-toolbar .spacer{display:none}.canvas-toolbar input[type=number]{width:58px}.canvas-toolbar button{padding:6px 8px}.toolbar-guides>summary{padding:6px 7px}.toolbar-guides-label{font-size:0}.toolbar-guides-label::after{content:'Guides';font-size:11px}.toolbar-guides>summary::after{margin-left:3px}}
@container canvas (max-width:600px){.viewport{margin:8px}.canvas-toolbar{gap:5px}.canvas-toolbar button{padding-inline:8px}}
@media(max-width:950px){.workspace{grid-template-columns:230px minmax(0,1fr) 240px}.workspace.left-collapsed{grid-template-columns:0 minmax(0,1fr) 240px}.workspace.left-collapsed .canvas-area,.canvas-area{padding-right:0}.right-panel{position:static;inset:auto;width:auto;z-index:auto;box-shadow:none}.panel{padding:12px}}
@media(max-width:700px){.workspace,.workspace.left-collapsed{grid-template-columns:1fr}.left-panel,.right-panel{display:none}.canvas-area,.workspace.left-collapsed .canvas-area{padding-right:0}.panel-toggle{display:none}}
.thermal-boundary-panel label{margin-bottom:10px}.thermal-boundary-actions,.thermal-boundary-reset{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:7px}.thermal-boundary-actions button{display:flex;align-items:center;justify-content:center;gap:6px;padding-inline:6px}.thermal-boundary-actions button.active,#boundaryRectangleSelectBtn.active{outline:2px solid #7c3aed;background:#f4f0ff}.boundary-swatch{width:18px;height:4px;border-radius:99px}.boundary-swatch.inside{background:#dc2626}.boundary-swatch.outside{background:#2563eb}.thermal-boundary-reset button{padding:6px;font-size:10px}.thermal-boundary-summary{margin:9px 0;padding:8px;border:1px solid #d8d0ef;border-radius:7px;background:#f8f5ff;color:#4c3d73;font-size:10px;line-height:1.45}.thermal-boundary-panel>small{display:block;color:var(--muted);font-size:10px;line-height:1.45}.thermal-boundary-line{fill:none;stroke-width:4;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.thermal-boundary-line.inside{stroke:#dc2626}.thermal-boundary-line.outside{stroke:#2563eb}.thermal-boundary-line.automatic{stroke-dasharray:8 5;opacity:.75}.thermal-boundary-draft{fill:none;stroke:#7c3aed;stroke-width:3;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.thermal-boundary-node{fill:#fff;stroke:#7c3aed;stroke-width:2;vector-effect:non-scaling-stroke}.thermal-boundary-label{font:800 11px Inter,Segoe UI,Arial,sans-serif;letter-spacing:.06em;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.thermal-boundary-label.inside{fill:#b91c1c}.thermal-boundary-label.outside{fill:#1d4ed8}.thermal-flow-line{stroke:#7c3aed;stroke-width:2.5;stroke-dasharray:7 4;vector-effect:non-scaling-stroke;pointer-events:none}.thermal-flow-label{fill:#5b21b6;font:700 10px Inter,Segoe UI,Arial,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:4px}.thermal-boundaries{pointer-events:none}.thermal-boundaries .thermal-boundary-line{pointer-events:stroke}
.toolbar-guides>summary>span{width:auto}.toolbar-guides>summary>span:first-child{width:16px}.toolbar-guides-label{max-width:150px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}@container canvas (max-width:600px){.toolbar-guides-label{display:none}.toolbar-guides>summary::after{margin-left:4px}}
.result-images .comparison-result-plot{width:100%;max-width:none}.result-images .comparison-result-plot img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}.result-images .comparison-result-plot.comparison-scale-synchronized img{aspect-ratio:var(--comparison-plot-ratio);object-fit:fill}.result-images .comparison-result-plot[data-comparison-plot="mesh"]{margin-top:6px;border-top:3px solid #d7e0ea}
.thermal-edge-candidate{stroke:#8b5cf6;stroke-width:10;stroke-opacity:.18;vector-effect:non-scaling-stroke;pointer-events:none}.thermal-edge-candidate.selected{stroke-opacity:.42}.thermal-boundary-actions button{min-height:44px;line-height:1.2}.thermal-boundary-panel>h2{margin-bottom:8px}
.thermal-edge-candidate.shared{stroke:#f59e0b;stroke-opacity:.34}.thermal-edge-candidate.unavailable{stroke:#64748b;stroke-dasharray:4 4;stroke-opacity:.24}.thermal-edge-intersection{fill:#fff;stroke:#7c3aed;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.thermal-edge-marquee{fill:rgba(124,58,237,.1);stroke:#7c3aed;stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}
.thermal-boundary-visibility{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 8px}.thermal-boundary-visibility label{display:flex;align-items:center;gap:5px;margin:0;padding:6px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:10px;cursor:pointer}.thermal-boundary-visibility input{width:auto;margin:0}.thermal-boundary-visibility label:first-child span{color:#dc2626}.thermal-boundary-visibility label:last-child span{color:#2563eb}
.geometry-repair-status,.thermal-boundary-tool-status{margin:8px 0;padding:8px 9px;border:1px solid #cbd5e1;border-radius:7px;background:#f8fafc;color:#475467;font-size:10px;line-height:1.45}.geometry-repair-status.success,.thermal-boundary-tool-status.success{border-color:#86c9ad;background:#ecfdf5;color:#126347}.geometry-repair-status.warning,.thermal-boundary-tool-status.warning{border-color:#efc46d;background:#fff8e6;color:#805200}.geometry-repair-status.error,.thermal-boundary-tool-status.error{border-color:#ef9a9a;background:#fff1f1;color:#991b1b}.thermal-boundary-tool-status.active{border-color:#b9a4ed;background:#f5f1ff;color:#5b21b6;font-weight:650}
