: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:168px 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:10px;display:grid}.tool-button{color:#24342d;cursor:pointer;text-align:left;background:#f9fbf9;border:1px solid #c7d1ca;border-radius:6px;justify-content:flex-start;align-items:center;gap:9px;width:100%;min-height:46px;padding:0 8px;display:inline-flex}.tool-button span{flex:auto;min-width:0;font-size:.9rem;font-weight:750}.tool-button kbd{min-width:22px;height:22px;font:inherit;opacity:.72;border:1px solid;border-radius:5px;place-items:center;font-size:.72rem;font-weight:800;display:inline-grid}.tool-button-active{color:#fff;background:#205d4e;border-color:#205d4e}.editor-canvas-wrap{cursor:crosshair;min-height:620px;position:relative}.editor-svg{touch-action:none;min-height:620px}.editor-command-status{z-index:2;pointer-events:none;background:#ffffffeb;border:1px solid #d5dcd5;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:10px 12px;display:flex;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 8px 20px #18211d14}.editor-command-status h2{font-size:1rem}.editor-command-status p:last-child{color:#34443c;text-align:right;font-size:.92rem;font-weight:650}.editor-grid line{stroke:#205d4e1f;stroke-width:1px}.legal-shell{background:#f1f3f1;min-height:100vh;padding:22px}.legal-nav{color:#5b6861;flex-wrap:wrap;align-items:center;gap:10px;max-width:840px;margin:0 auto 18px;font-size:.95rem;display:flex}.legal-nav a{color:#205d4e;font-weight:700;text-decoration:none}.legal-nav a:hover{text-decoration:underline}.legal-document{background:#ffffffe6;border:1px solid #d5dcd5;border-radius:8px;max-width:840px;margin:0 auto;padding:30px}.legal-document h1{margin-bottom:8px}.legal-updated{color:#5b6861;font-size:.95rem}.legal-language-divider{border-top:1px solid #d5dcd5;margin:34px 0 28px}.legal-document section{margin-top:28px}.legal-document section p{color:#34443c;margin-top:10px;line-height:1.6}.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-selection-panel{padding-bottom:16px}.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}.segmented-row .segment-active{color:#123c31;background:#e5f0eb;border-color:#205d4e}.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,minmax(132px,1fr));overflow-x:auto}.editor-canvas-wrap,.editor-svg{min-height:430px}.editor-command-status{margin:10px;display:grid;position:static}.editor-command-status p:last-child{text-align:left}}
