
.editor-intro{max-width:690px}
.editor-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:20px;align-items:start}
.editor-pane{background:linear-gradient(150deg,#152f3a,#0c202d);border:1px solid #2b4d5d;border-radius:21px;padding:20px;min-width:0}
.editor-stage{position:sticky;top:15px}
.editor-stage .stl-preview-box{margin:12px 0 14px}
.editor-stage .stl-preview-stage{height:375px}
.editor-stage .stl-preview-footer{min-height:25px}
.editor-upload{border:1.5px dashed #578b7c;background:#1a3839;border-radius:13px;
 display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;font-weight:750;font-size:14px}
.editor-upload:hover,.editor-upload.dragover{background:#235244;border-color:#b4f17e}
.editor-upload svg{flex:none;width:23px;height:23px;stroke:#b4f17e;fill:none;stroke-width:1.8}
.editor-upload span{color:#dff5f0}
.editor-file-label{margin:11px 0 0;color:#a2c1c1;font-size:12px;overflow-wrap:anywhere}
.editor-file-label.error{color:#ffb9b9}
.editor-stage-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.editor-stage-head strong{font-size:17px}
.editor-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.editor-stat{padding:11px 9px;border:1px solid #31565b;border-radius:11px;background:#102b35}
.editor-stat small{display:block;font-size:10px;color:#92b5b4}
.editor-stat strong{display:block;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.editor-action-row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.editor-action-row>*{flex:1;min-width:0}
.editor-action-row .btn{padding:11px 10px;font-size:12px}
.editor-action-row button:disabled{opacity:.38}
.editor-ready{display:block;color:#afcbca;font-size:12px;min-height:21px;margin:11px 0 0}
.editor-ready.error{color:#ffbfbf}
.editor-tool{background:#102937;border:1px solid #305160;border-radius:13px;margin-top:10px;overflow:hidden}
.editor-tool summary{cursor:pointer;display:flex;align-items:center;gap:12px;list-style:none;padding:14px 15px;font-size:15px;font-weight:800}
.editor-tool summary::-webkit-details-marker{display:none}
.editor-tool summary::after{content:"⌄";font-size:20px;color:#a9dcb7;margin-left:auto}
.editor-tool[open] summary::after{transform:rotate(180deg)}
.editor-tool summary:hover{background:#1b3a40}
.editor-tool .tool-content{padding:0 15px 15px}
.editor-tool .field-grid{gap:10px}
.editor-tool .field input,.editor-tool .field select{padding:9px;font-size:14px}
.editor-tool .btn{padding:10px 14px;margin-top:12px;width:100%}
.editor-tool-note{font-size:11px;line-height:1.4;color:#9db6b6;margin:9px 0 0}
.editor-tool .check-line{display:flex;align-items:center;gap:8px;font-size:12px;color:#d7e8e3;margin:9px 0}
.editor-tool .check-line input{accent-color:#b4f17e;width:17px;height:17px}
.editor-brush-selected{border:1px solid #375b51;border-radius:9px;padding:9px 11px;color:#bce4c5;font-size:12px;margin:10px 0}
.editor-brush-selected:not([data-picked="true"]){color:#a5b8b8;border-style:dashed}
.editor-picked-point{position:absolute;z-index:5;left:0;top:0;transform:translate(-50%,-50%);width:20px;height:20px;
 border:3px solid #dcff8e;border-radius:50%;background:#b5ff5580;box-shadow:0 0 0 5px #ddff8240;
 pointer-events:none}
.editor-picked-point[hidden]{display:none!important}
.editor-progress{position:relative;height:4px;border-radius:5px;overflow:hidden;background:#214b47;margin-top:11px}
.editor-progress[hidden]{display:none}
.editor-progress::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#356a53,#b4f17e,#356a53);background-size:200% 100%;animation:editor-progress 1.1s linear infinite}
@keyframes editor-progress{to{background-position:-200% 0}}
.editor-constraints{margin:24px auto 15px;max-width:980px}
.editor-constraints h2{font-size:21px;letter-spacing:-.03em;margin:0 0 9px}
.editor-constraints p{font-size:13px;color:#9eb8b8;margin:0}
@media(max-width:960px){.editor-layout{grid-template-columns:1fr}.editor-stage{position:relative;top:auto}.editor-stage .stl-preview-stage{height:340px}}
@media(max-width:540px){.editor-pane{padding:14px}.editor-stage .stl-preview-stage{height:280px}.editor-tool summary{padding:11px}
.editor-stats{gap:5px}.editor-stat{padding:8px 5px}.editor-stat strong{font-size:12px}.editor-action-row .btn{font-size:11px}}
