:root{font-family:Inter,"Microsoft YaHei",Arial,sans-serif;color:#193b33;background:#f5f6f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.file-button{border:1px solid #cfdcd4;background:white;border-radius:7px;padding:10px 13px;cursor:pointer;color:inherit;font-size:13px;display:inline-block;text-align:center}button:hover,.file-button:hover{background:#eaf4ec;border-color:#739b84}button:disabled{opacity:.38;cursor:default}button.primary{background:#235745;color:white;border-color:#235745}.danger{color:#a74232}header{height:70px;display:flex;align-items:center;gap:20px;border-bottom:1px solid #dde4d9;padding:0 4vw;background:#fff}header a{color:inherit;text-decoration:none;font-size:13px}header>a:last-child{margin-left:auto}.brand{font-weight:700;font-size:22px}.brand span{font-size:14px;font-weight:400;color:#788a7f}.pill{background:#e8f0dd;color:#426833;padding:6px 10px;border-radius:20px;font-size:12px}main{max-width:1680px;margin:auto;padding:30px 3vw}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 28px}.intro small,.next small{letter-spacing:2px;color:#879168;font-size:12px}.intro h1{font-size:34px;letter-spacing:1px;margin:12px 0}.intro p,.next p{font-size:14px;color:#6a7f70;line-height:1.7}.exports{display:flex;gap:8px;flex-wrap:wrap}.editor{display:grid;grid-template-columns:220px minmax(320px,1fr) 230px;min-height:650px;border:1px solid #d9e1d8;background:white;border-radius:14px;overflow:hidden;box-shadow:0 12px 45px #2e4d3510}aside{padding:18px}h2{font-size:14px;margin:4px 0 16px}aside h2:not(:first-child){margin-top:25px}label{display:block;font-size:12px;color:#607a6d;margin-bottom:12px}input:not([type=checkbox]),select{display:block;width:100%;height:36px;margin-top:6px;border:1px solid #d3dfd6;border-radius:5px;background:#fff;color:#193b33;padding:6px 8px}input[type=color]{padding:3px}.pair,.shapes,.presets{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pair label{margin:0 0 7px}.hint{font-size:12px;line-height:1.7;color:#728575}.check{display:flex;align-items:center;gap:7px;margin-top:22px}.workspace{background:#e9ede7;border-left:1px solid #e1e8de;border-right:1px solid #e1e8de;display:flex;flex-direction:column;min-width:0}.canvas-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px;background:#f8faf5}.canvas-tools button{padding:7px 9px}#saved{font-size:11px;color:#7a8b7c}#canvas{padding:24px;flex:1;display:flex;align-items:center;justify-content:center;min-height:470px;overflow:auto}#canvas svg{width:100%;height:auto;max-height:70vh;touch-action:none;filter:drop-shadow(0 8px 13px #34452c18)}#canvas g[data-id]{cursor:grab}#canvas g[data-id]:active{cursor:grabbing}.canvas-footer{font-size:11px;display:flex;justify-content:space-between;gap:10px;padding:10px 15px;color:#788a78}.properties fieldset{border:0;padding:0;margin:0;min-width:0}#layers{max-height:230px;overflow:auto;display:flex;flex-direction:column;gap:5px}#layers button{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px}.selected{background:#e7f0e8!important;border-color:#447b58!important}#count{color:#93a18f;font-weight:400}.next{display:grid;grid-template-columns:1.6fr 1fr;align-items:center;gap:40px;margin-top:24px;padding:28px;background:#e7eddf;border-radius:12px}.next h2{font-size:23px;margin:10px 0}.next>div:last-child{max-width:360px;justify-self:end}.next>div:last-child button{width:100%}#style-name{font-size:12px;color:#73826d;margin-left:10px}#style-preview{display:block;max-width:170px;max-height:110px;margin-top:12px;border-radius:6px}#style-preview[hidden]{display:none}.footnote{font-size:12px;color:#879283;text-align:center;margin:22px}#toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);max-width:90vw;padding:14px 22px;background:#203d33;color:white;border-radius:8px;box-shadow:0 5px 30px #0002;z-index:10;font-size:14px}#toast:empty{display:none}@media(max-width:1100px){.editor{grid-template-columns:185px minmax(260px,1fr) 195px}aside{padding:13px}.intro{align-items:flex-start;flex-direction:column}.canvas-footer{flex-direction:column}#saved{display:none}}@media(max-width:760px){main{padding:20px 12px}header{padding:0 15px}.brand span{display:none}.editor{grid-template-columns:1fr 1fr}.workspace{grid-column:1/-1;grid-row:1;border:0}.tools,.properties{border-top:1px solid #ddd}#canvas{padding:10px;min-height:300px}.next{grid-template-columns:1fr;padding:20px;gap:10px}.next>div:last-child{max-width:none;justify-self:stretch}.intro h1{font-size:28px}.footnote{text-align:left}.exports button,.file-button{font-size:12px}}
[hidden]{display:none!important}.exports{align-items:center}.exports .file-button{margin:0}

/* v255: a bounded viewport keeps all editing controls reachable at every zoom. */
#canvas{display:block;flex:none;height:560px;min-height:0;overflow:auto;overscroll-behavior:contain}
#canvas svg{display:block;margin:auto;max-width:none;max-height:none;width:auto;height:auto;flex-shrink:0}
#canvas [data-handle]{cursor:nwse-resize}#canvas [data-handle=rotate]{cursor:crosshair}
.zoom-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:#f8faf5;border-top:1px solid #e1e8de;font-size:12px}
.zoom-tools button{padding:6px 10px}.zoom-tools>span:last-child{color:#728575}#zoom-level{min-width:42px;text-align:center}
@media(max-width:760px){#canvas{height:360px;padding:24px}.zoom-tools>span:last-child{width:100%}}

/* v257: common objects sit above the board; object selection stays on the board. */
.object-palette{padding:12px 16px;background:#f8faf5;border-top:1px solid #e1e8de;border-bottom:1px solid #e1e8de}
.object-palette h2{font-size:13px;margin:0 0 9px}
.object-palette .presets{display:flex;flex-wrap:wrap;gap:7px}
.object-palette button{padding:8px 12px;flex:0 0 auto}
@media(max-width:760px){.object-palette{padding:10px}.object-palette button{padding:8px 10px}}
