:root{color:#18211d;font-synthesis:none;text-rendering:optimizelegibility;background:#f1f3f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.viewer-shell{background:linear-gradient(135deg,#27695824,#0000 38%),linear-gradient(315deg,#af483a1f,#0000 34%),#f1f3f1;grid-template-rows:auto 1fr;gap:18px;min-height:100vh;padding:18px;display:grid}.viewer-toolbar{background:#ffffffd1;border:1px solid #d5dcd5;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.eyebrow{color:#a64034;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}h1,h2,p{margin:0}h1{font-size:clamp(1.5rem,4vw,2.4rem);line-height:1.05}h2{font-size:1.2rem;line-height:1.2}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.primary-button,.ghost-button{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-height:40px;padding:0 13px;display:inline-flex}.primary-button{color:#fff;background:#205d4e;border:1px solid #205d4e}.ghost-button{color:#24342d;background:#f9fbf9;border:1px solid #c7d1ca}.primary-button svg,.ghost-button svg,.viewer-error svg,.capability-warning svg,.engine-panel svg,.tool-button svg{flex:none;width:18px;height:18px}.file-input{display:none}.viewer-layout{grid-template-columns:minmax(0,1fr) 300px;gap:18px;min-height:0;display:grid}.canvas-wrap,.inspector,.viewer-empty,.viewer-error{background:#ffffffdb;border:1px solid #d5dcd5;border-radius:8px}.canvas-wrap{min-height:520px;overflow:hidden}.project-svg{width:100%;height:100%;min-height:520px;display:block}.element line{stroke:#1f3129;stroke-width:5px;stroke-linecap:round}.element-beam line{stroke-width:8px}.element text,.node text,.load text{fill:#18211d;paint-order:stroke;stroke:#ffffffe6;stroke-width:4px;stroke-linejoin:round;font-size:13px;font-weight:700}.node circle{fill:#fff;stroke:#1f5b4c;stroke-width:3px}.support path,.support rect{fill:#2f6f5d26;stroke:#1f5b4c;stroke-width:2.5px}.support circle{fill:#fff;stroke:#1f5b4c;stroke-width:2px}.load line,.load path{fill:none;stroke:#a64034;stroke-width:3px;stroke-linecap:round}.load marker path{fill:#a64034}.editor-shell{gap:14px}.editor-layout{grid-template-columns:56px minmax(0,1fr) 320px;gap:14px;min-height:0;display:grid}.tool-rail,.editor-inspector{background:#ffffffdb;border:1px solid #d5dcd5;border-radius:8px}.tool-rail{align-content:start;gap:8px;padding:8px;display:grid}.tool-button{color:#24342d;cursor:pointer;background:#f9fbf9;border:1px solid #c7d1ca;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.tool-button-active{color:#fff;background:#205d4e;border-color:#205d4e}.editor-canvas-wrap{cursor:crosshair;min-height:620px}.editor-svg{touch-action:none;min-height:620px}.editor-grid line{stroke:#205d4e1f;stroke-width:1px}.editor-element line{transition:stroke-width .12s}.editor-preview-line{stroke:#a64034;stroke-width:2px;stroke-dasharray:8 7}.selected-stroke line,.selected-stroke path,.selected-stroke rect{stroke:#ca6b21;stroke-width:7px}.selected-node circle{stroke:#ca6b21;stroke-width:4px}.dimension-label{fill:#5b3c12;paint-order:stroke;stroke:#ffffffeb;stroke-width:4px;stroke-linejoin:round;font-size:12px;font-weight:750}.snap-glyph circle{fill:#ca6b211f;stroke:#ca6b21;stroke-width:2px}.snap-glyph line{stroke:#ca6b2173;stroke-width:1.5px;stroke-dasharray:5 5}.editor-panel{border-top:1px solid #d5dcd5;gap:10px;padding-top:16px;display:grid}.editor-panel label{color:#5b665f;gap:5px;font-size:.85rem;font-weight:700;display:grid}.editor-panel input{color:#18211d;min-width:0;height:36px;font:inherit;background:#fff;border:1px solid #c7d1ca;border-radius:6px;padding:0 10px}.segmented-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.segmented-row .ghost-button{justify-content:center;min-width:0;padding:0 8px}.inspector{align-content:start;align-self:stretch;gap:18px;padding:18px;display:grid}.inspector-label,.file-name,.capability-list{color:#5b665f;font-size:.88rem}.inspector-label{text-transform:uppercase;margin-bottom:4px;font-weight:700}.file-name{overflow-wrap:anywhere;margin-top:6px}.viewer-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.viewer-metrics div{background:#f8faf8;border:1px solid #d5dcd5;border-radius:6px;min-width:0;padding:10px}.viewer-metrics dt{color:#5b665f;font-size:.78rem}.viewer-metrics dd{margin:3px 0 0;font-size:1.45rem;font-weight:750}.capability-warning,.viewer-error,.viewer-empty{align-items:center;gap:10px;padding:14px;display:flex}.capability-warning,.viewer-error{color:#812e26;background:#fff1ed}.capability-list{overflow-wrap:anywhere}.engine-panel{border-top:1px solid #d5dcd5;gap:14px;padding-top:16px;display:grid}.engine-panel-header,.engine-progress-row,.engine-summary-header,.engine-actions,.engine-badge,.engine-error{align-items:center;display:flex}.engine-panel-header,.engine-progress-row{justify-content:space-between;gap:12px}.engine-actions{flex-wrap:wrap;gap:8px}.engine-badge{color:#24342d;background:#f8faf8;border:1px solid #c7d1ca;border-radius:6px;gap:6px;min-height:32px;padding:0 10px;font-size:.82rem;font-weight:700}.engine-badge-ready{color:#205d4e;border-color:#94b9a8}.engine-badge-error{color:#812e26;border-color:#e2b5ac}.engine-progress{gap:7px;display:grid}.engine-progress-row,.engine-progress-text{color:#5b665f;font-size:.85rem}.engine-progress-track{background:#dbe3dd;border-radius:999px;height:8px;overflow:hidden}.engine-progress-fill{border-radius:inherit;background:#205d4e;min-width:8px;height:100%;transition:width .18s}.engine-error,.engine-summary{border-radius:6px;gap:10px;padding:12px}.engine-error{color:#812e26;background:#fff1ed}.engine-summary{background:#f8faf8;border:1px solid #d5dcd5;display:grid}.engine-summary-header{color:#205d4e;gap:8px;font-weight:700}.spin-icon{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.viewer-shell{padding:12px}.viewer-toolbar,.viewer-layout,.editor-layout{grid-template-columns:1fr}.viewer-toolbar{display:grid}.toolbar-actions{justify-content:stretch}.primary-button,.ghost-button{flex:150px;justify-content:center}.viewer-layout{display:grid}.canvas-wrap,.project-svg{min-height:380px}.tool-rail{grid-template-columns:repeat(5,40px);overflow-x:auto}.editor-canvas-wrap,.editor-svg{min-height:430px}}
