#canvas{background:var(--bg-secondary);border:1px solid var(--border);width:100%;height:100%;box-shadow:0 2px 8px var(--shadow);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:column;display:none;overflow:hidden}#canvas.open{display:flex}.canvas-header{border-bottom:1px solid var(--border);background:var(--bg-tertiary);flex-shrink:0;justify-content:space-between;align-items:center;height:44px;padding:0 12px;display:flex}.canvas-header-left{align-items:center;gap:10px;display:flex}.canvas-header h2{color:var(--text-primary);margin:0;font-size:.9rem;font-weight:500}.canvas-header .print-button{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;border-radius:3px;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:500;transition:all .2s;display:flex}.canvas-header .print-button:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-secondary)}.canvas-header .close-button{color:var(--text-secondary);cursor:pointer;opacity:.65;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:1.3rem;line-height:1;transition:all .2s;display:flex}.canvas-header .close-button:hover{background:var(--bg-hover);color:var(--text-primary);opacity:1}.canvas-header .close-button:active{background:var(--bg-active)}.canvas-body{background:var(--bg-primary);flex:1;padding:12px;overflow:auto}.canvas-body:has(.rc-column-drawing-sheet){justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}@media print{:root{--text-primary:#111;--text-secondary:#555;--border:#ccc;--bg:#fff;--bg-primary:#fff;--bg-secondary:#fff;--bg-tertiary:#f5f5f5;--shadow:none}html.printing-canvas,body.printing-canvas{background:#fff!important;height:auto!important;position:static!important;overflow:visible!important}body.printing-canvas>:not(#layout){display:none!important}body.printing-canvas #layout{background:#fff!important;height:auto!important;display:block!important;position:static!important;overflow:visible!important}body.printing-canvas #layout>div:not(.canvas){display:none!important}body.printing-canvas #layout .canvas{background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}body.printing-canvas #canvas{box-shadow:none!important;background:#fff!important;border:none!important;width:100%!important;height:auto!important;display:block!important;position:static!important;overflow:visible!important}body.printing-canvas .canvas-header{display:none!important}body.printing-canvas .canvas-body{background:#fff!important;height:auto!important;padding:0!important;display:block!important;overflow:visible!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}[style*="opacity: 0.6"]{opacity:1!important}[style*="background: #f59e0b"],[style*="background:#f59e0b"]{color:#7a5800!important;background:#fff8e1!important;border:1px solid #d97706!important}[style*="color: #f59e0b"]{color:#7a5800!important}[style*="background: #10b981"],[style*="background:#10b981"]{color:#065f46!important;background:#ecfdf5!important;border:1px solid #059669!important}[style*="color: #10b981"]{color:#065f46!important}[style*="background: #ef4444"],[style*="background:#ef4444"]{color:#991b1b!important;background:#fef2f2!important;border:1px solid #dc2626!important}[style*="color: #ef4444"]{color:#991b1b!important}}:root{--bg-primary:#1e1e1e;--bg-secondary:#252525;--bg-tertiary:#2d2d2d;--bg-hover:#3a3a3a;--bg-active:#4a4a4a;--accent:#4a9eff;--accent-hover:#6ab0ff;--accent-active:#ff6b6b;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--border:#3d3d3d;--shadow:#0000004d}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;overflow:hidden}.spinner{border:2px solid var(--border);border-top-color:var(--text-primary);border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#layout{grid-template:"display header""bottom-left canvas"1fr"bottom-left canvas"/1fr 1fr;height:100%;display:grid}#layout>div{z-index:1;pointer-events:none}#layout>div>*{pointer-events:auto}#layout .viewer{z-index:0;pointer-events:auto;grid-area:1/1/4/3}#layout:has(#canvas.open) .viewer{grid-area:viewer}#layout:has(#canvas.open){grid-template:"viewer canvas"minmax(0,1fr)/minmax(0,1fr) minmax(0,1fr)}#layout:has(#canvas.open) .canvas{grid-area:canvas}:is(#layout:has(#canvas.open) .header,#layout:has(#canvas.open) .display,#layout:has(#canvas.open) .bottom-left){display:none}#layout .header{grid-area:header;place-self:start end;align-items:flex-start;gap:8px;padding:6px 6px 0 0;display:flex}#layout .display{grid-area:display;align-self:start}#layout .bottom-left{grid-area:bottom-left;align-self:end;min-width:0}#layout .canvas{grid-area:canvas;align-self:stretch;min-width:0;min-height:0;padding:10px;overflow:hidden}#layout:has(#canvas:not(.open)) .canvas{display:none}#layout:has(#canvas:not(.open)) .bottom-left{grid-area:2/1/4/-1}@media (width<=1024px){#layout{grid-template:"display""header""canvas"minmax(0,1fr)"bottom-left"/1fr}#layout .viewer{grid-area:1/1/5/2}#layout:has(#canvas.open) .viewer{grid-area:viewer}#layout:has(#canvas.open){grid-template:"viewer"minmax(0,42vh)"canvas"minmax(0,1fr)/minmax(0,1fr)}}#viewer{background:var(--bg-primary);width:100%;height:100%;margin:0;padding:0;position:relative;overflow:hidden}.rc-column-drawing{width:100%;min-width:0;height:100%;min-height:0;display:flex}.rc-column-drawing-sheet{color:#111;-webkit-user-select:text;user-select:text;background:#fff;border:1px solid #d8d8d8;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;margin:0 auto;padding:6px;display:flex;overflow:hidden;box-shadow:0 12px 30px #0003}.rc-column-detail-svg{background:#fff;width:100%;min-width:0;height:100%;min-height:0;display:block}.rc-column-detail-svg text{fill:#111;letter-spacing:0;font-family:Arial,Helvetica,sans-serif;font-weight:400}.rc-column-detail-svg marker path{fill:#111}.drawing-layer{fill:none;stroke:#111;stroke-linecap:square;stroke-linejoin:miter}.concrete-core{fill:#fff;stroke:#111;stroke-width:1.5px}.section-tie{fill:none;stroke:#111;stroke-width:3px}.rebar-line{fill:none;stroke:#111;stroke-width:4px}.link-line{stroke:#111;stroke-width:3px}.section-bar{fill:#111;stroke:none}.tie-hook{fill:none;stroke:#111;stroke-width:3px}.extension-line,.leader-line,.note-underline{stroke:#111;stroke-width:1px}.leader-line{marker-start:url(#rc-column-arrow)}.dimension-line,.height-dimension-line{fill:none;marker-end:url(#rc-column-arrow);marker-start:url(#rc-column-arrow);stroke:#111;stroke-width:1px}.dimension-text,.callout{font-size:24px}.height-text{font-size:26px}.section-label{font-size:24px}.drawing-title{font-size:30px}@media (width<=780px){.rc-column-drawing-sheet{padding:4px}}@media print{@page{size:A4 portrait;margin:10mm}body.printing-canvas .rc-column-drawing-sheet{width:100%!important;min-width:0!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.printing-canvas .rc-column-detail-svg{background:#fff!important;width:100%!important;min-width:0!important;max-height:270mm!important}}#column-controls{z-index:2;background:var(--bg-secondary);border:1px solid var(--border);width:180px;box-shadow:0 1px 4px var(--shadow);-webkit-user-select:none;user-select:none;border-radius:4px;position:absolute;top:8px;left:8px;overflow:hidden}#column-controls summary{cursor:pointer;background:var(--bg-tertiary);color:var(--text-primary);border-bottom:1px solid var(--border);padding:6px 10px;font-size:.8rem;font-weight:500;transition:background .2s}#column-controls summary:hover,#column-controls[open] summary{background:var(--bg-hover)}#column-controls .column-controls-item{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 10px;display:flex}#column-controls .column-controls-item:last-child{border-bottom:none}#column-controls .column-controls-item label{color:var(--text-secondary);margin-right:auto;font-size:.8rem}#column-controls .column-controls-item input[type=range]{cursor:pointer;width:70px;accent-color:var(--accent);margin:0}#column-controls .column-controls-item .value-display{min-width:30px;color:var(--text-secondary);text-align:right;font-variant-numeric:tabular-nums;font-size:.8rem}
