.editor-body{overflow:hidden;display:flex;flex-direction:column;height:100vh;background:#0f1117}

.ed-bar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:#171b24;
  border-bottom:1px solid var(--panel-line);flex-wrap:wrap}
.ed-title{display:flex;align-items:center;gap:12px;font-size:1.05rem}
.ed-title input{width:190px;padding:8px 12px}
.ed-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ed-actions .btn{width:auto;text-decoration:none;display:inline-flex;align-items:center}
.btn.danger{background:#5c1f24;border-color:#8c2f36;color:#ffd8da}
.btn.danger:hover{background:#7a2a30}

.ed-main{flex:1;display:flex;min-height:0}
.ed-canvas-wrap{flex:1;position:relative;min-width:0}
#map{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}

.ed-hint{position:absolute;left:14px;top:14px;background:rgba(10,13,20,.8);
  border:1px solid var(--panel-line);border-radius:10px;padding:9px 14px;
  font-size:.85rem;color:var(--muted);max-width:340px;line-height:1.5;pointer-events:none}
.ed-zoom{position:absolute;right:14px;bottom:14px;display:flex;gap:6px}
.ed-zoom .btn{width:auto;min-width:40px}

.ed-side{width:280px;flex:none;background:#141821;border-left:1px solid var(--panel-line);
  overflow-y:auto;padding:14px}
.ed-panel{background:#191e29;border:1px solid var(--panel-line);border-radius:12px;
  padding:14px;margin-bottom:14px}
.ed-panel h3{margin:0 0 10px}
.ed-muted{color:var(--muted);font-size:.85rem;line-height:1.5}
.ed-row{display:flex;gap:8px;flex-wrap:wrap}
.ed-row .btn{width:auto;flex:1}
input[type=range]{width:100%;accent-color:var(--accent);padding:0}

.ed-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;
  font-size:.85rem;line-height:1.45}
.ed-checks li{display:flex;gap:9px;align-items:flex-start}
.ed-checks .ico{flex:none;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;
  font-size:.68rem;font-weight:900;margin-top:1px}
.ed-checks .ok .ico{background:#2f8f4e;color:#fff}
.ed-checks .warn .ico{background:#c98a16;color:#1a1200}
.ed-checks .bad .ico{background:var(--danger);color:#fff}
.ed-checks .warn span:last-child,.ed-checks .bad span:last-child{color:var(--ink)}
.ed-checks span:last-child{color:var(--muted)}

.ed-modal{position:fixed;inset:0;background:rgba(5,7,13,.8);display:grid;place-items:center;z-index:60;padding:18px}
.ed-modal-box{background:var(--panel);border:1px solid var(--panel-line);border-radius:16px;
  padding:22px;width:min(420px,94vw);max-height:84vh;overflow-y:auto}
.ed-modal-box h2{margin:0 0 14px}
.ed-modal-box .ed-row{margin-top:14px}
.ed-modal-box .ed-row .btn{flex:1}
.ed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ed-list li{display:flex;align-items:center;gap:10px;background:#151a24;border-radius:10px;padding:11px 13px}
.ed-list .nm{font-weight:700}
.ed-list .meta{color:var(--muted);font-size:.78rem;margin-left:auto}
.ed-list button{width:auto;padding:6px 12px;font-size:.8rem}

@media (max-width:760px){
  .ed-main{flex-direction:column}
  .ed-side{width:auto;max-height:42vh;border-left:none;border-top:1px solid var(--panel-line)}
  .ed-hint{font-size:.76rem;max-width:230px}
}
