/* v0.6 standalone layout; canvas and boxes share one coordinate space */
.cx-layout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(450px,1fr);gap:18px;align-items:start}
.cx-page-viewport{overflow:auto;max-height:75vh;background:#dfe7ed;padding:14px;text-align:center;border-radius:9px}
.cx-page-stage{position:relative;display:inline-block;line-height:0;vertical-align:top;box-shadow:0 2px 12px #a5b7c5}
.cx-page-stage canvas{display:block;max-width:100%;height:auto;touch-action:none}
.cx-overlay{position:absolute;inset:0;pointer-events:none;width:100%;height:100%;z-index:2}
.cx-box{position:absolute;border:1px solid #3487b7;background:rgba(52,135,183,.09);box-sizing:border-box}
.cx-box.cx-active{border:2px solid #e08a27;background:rgba(224,138,39,.11)}
.cx-box span{position:absolute;top:0;left:0;background:#da7a25;color:#fff;font:bold 11px Arial;padding:2px}
.cx-drag{position:absolute;display:none;pointer-events:none;z-index:3;border:2px dashed #ba610e;background:rgba(255,175,61,.15)}
.cx-review{overflow:auto;max-height:420px;border:1px solid #d8e4ed;border-radius:8px;margin-top:7px}
.cx-review table{border-collapse:collapse;width:100%;font-size:13px}.cx-review th,.cx-review td{padding:8px;border-bottom:1px solid #dce5eb;text-align:left;white-space:nowrap}
.cx-review .cx-current{background:#e6f2f8}.cx-note{font-size:13px;color:#456373;margin:8px 0;line-height:1.55}
.cx-status{padding:11px;margin-top:12px;border-radius:8px;background:#e9f5f3;color:#126f66;white-space:pre-wrap;font-size:13px}
.cx-section h2{font-size:17px;margin:0 0 13px}.cx-section{margin-bottom:16px}.cx-section .toolbar{margin-top:10px}
.cx-controlbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}
@media(max-width:1050px){.cx-layout{grid-template-columns:1fr}}
