/* 编辑器/大屏严格 1 屏样式（任务 #2）
   - 强制 100vh，禁滚，所有滚动均限制在内部 .ed-pane / .ed-tab-pane
   - 适用：BI 报表/大屏/组态设计器、DT 编辑器、应用大屏
   - 通过 body.is-editor 启用
*/
html, body { height:100%; }
body.is-editor {
  margin:0;
  height:100vh;
  width:100vw;
  overflow:hidden !important;
  background:#0E1530;
  color:#E8ECF8;
  font-family:'Inter','PingFang SC','Microsoft YaHei',sans-serif;
}

/* 编辑器顶栏 */
.ed-topbar{
  height:48px;flex:none;display:flex;align-items:center;gap:12px;
  padding:0 16px;background:#141C3D;border-bottom:1px solid rgba(255,255,255,.06);
  color:#E8ECF8;
}
.ed-topbar .ed-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;}
.ed-topbar .ed-actions{margin-left:auto;display:flex;align-items:center;gap:8px;}
.ed-topbar .ed-btn{
  height:30px;padding:0 12px;border-radius:6px;border:1px solid rgba(255,255,255,.12);
  background:transparent;color:#E8ECF8;font-size:12.5px;cursor:pointer;
  display:inline-flex;align-items:center;gap:4px;transition:all .15s ease;
}
.ed-topbar .ed-btn:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.24);}
.ed-topbar .ed-btn.primary{background:linear-gradient(135deg,#2E63E8,#4C7CF4);border-color:transparent;}
.ed-topbar .ed-btn.primary:hover{filter:brightness(1.1);}

/* 主体三栏 */
.ed-shell{ display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;}
.ed-body{ flex:1;min-height:0;display:flex;overflow:hidden; }
.ed-left{ width:280px;flex:none;border-right:1px solid rgba(255,255,255,.06);background:#101732;display:flex;flex-direction:column;overflow:hidden;}
.ed-center{ flex:1;min-width:0;display:flex;flex-direction:column;background:#0E1530;overflow:hidden;}
.ed-right{ width:300px;flex:none;border-left:1px solid rgba(255,255,255,.06);background:#101732;display:flex;flex-direction:column;overflow:hidden;}

/* 编辑器内 Tab —— 多内容用 Tab/滑动来承载 */
.ed-tabs{ flex:none;display:flex;align-items:center;gap:0;padding:0 8px;background:#101732;border-bottom:1px solid rgba(255,255,255,.06);}
.ed-tabs .ed-tab{ padding:10px 14px;font-size:12.5px;color:#9DA9C7;cursor:pointer;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:5px;}
.ed-tabs .ed-tab:hover{ color:#E8ECF8; }
.ed-tabs .ed-tab.active{ color:#5B8DEF;border-bottom-color:#5B8DEF;font-weight:500;}
.ed-tab-pane{ flex:1;min-height:0;overflow:auto;padding:12px; }
.ed-tab-pane[hidden]{ display:none; }

/* 横向滑动容器 —— 用于组件/资产库 */
.ed-hscroll{
  display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;
}
.ed-hscroll::-webkit-scrollbar{height:6px;}
.ed-hscroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:3px;}

/* 折叠面板 */
.ed-collapse{ border-bottom:1px solid rgba(255,255,255,.06); }
.ed-collapse-head{ padding:10px 12px;font-size:12.5px;color:#9DA9C7;display:flex;align-items:center;gap:6px;cursor:pointer;background:#0E1530;}
.ed-collapse-head:hover{ color:#E8ECF8;}
.ed-collapse-head .chev{ margin-left:auto;transition:transform .2s ease; }
.ed-collapse.open .ed-collapse-head .chev{ transform:rotate(90deg); }
.ed-collapse-body{ padding:8px 10px;display:none;background:#101732;}
.ed-collapse.open .ed-collapse-body{ display:block; }

/* 画布工作区（v6 加高 · 任务 18） */
.ed-canvas-wrap{
  flex:1;min-height:720px;display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:#0A1027;position:relative;
}
.ed-canvas-wrap .ed-canvas{
  background:#FFFFFF;color:#1F2A44;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.4);
  transform-origin:center center;
}
.ed-canvas-toolbar{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:6px;padding:6px 10px;
  background:rgba(20,28,61,.92);border:1px solid rgba(255,255,255,.08);
  border-radius:8px;color:#E8ECF8;font-size:12px;
}
.ed-canvas-toolbar .ed-tool{
  width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:4px;cursor:pointer;color:#9DA9C7;
}
.ed-canvas-toolbar .ed-tool:hover{background:rgba(255,255,255,.08);color:#E8ECF8;}

/* 属性面板 */
.ed-prop-section{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);}
.ed-prop-section h4{margin:0 0 8px;font-size:12.5px;color:#9DA9C7;font-weight:500;}
.ed-prop-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px;color:#C8D0E8;}
.ed-prop-row label{flex:none;width:64px;color:#9DA9C7;}
.ed-prop-row input,.ed-prop-row select,.ed-prop-row textarea{
  flex:1;min-width:0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  color:#E8ECF8;font-size:12px;padding:4px 8px;border-radius:4px;outline:none;
}
.ed-prop-row input:focus{border-color:#5B8DEF;background:rgba(91,141,239,.06);}

/* 组件库网格 */
.ed-comp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.ed-comp-card{
  padding:10px 6px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
  border-radius:6px;cursor:grab;text-align:center;transition:all .15s ease;
}
.ed-comp-card:hover{background:rgba(91,141,239,.1);border-color:rgba(91,141,239,.3);transform:translateY(-1px);}
.ed-comp-card iconify-icon{font-size:24px;color:#7A95D8;}
.ed-comp-card .nm{font-size:11.5px;color:#9DA9C7;margin-top:4px;}

/* 大屏预览模式（applied to body.is-screen） */
body.is-screen{
  margin:0;width:100vw;height:100vh;overflow:hidden;
  background:radial-gradient(ellipse at center, #0F1933 0%, #050913 100%);
  color:#E8ECF8;font-family:'Inter','PingFang SC','Microsoft YaHei',sans-serif;
}
body.is-screen .screen-frame{
  width:100vw;height:100vh;position:relative;overflow:hidden;
}

/* 编辑器内内容溢出处理：所有子区域 overflow 必须本地处理 */
body.is-editor *{ scrollbar-width:thin; }
body.is-editor *::-webkit-scrollbar{ width:6px;height:6px; }
body.is-editor *::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.16);border-radius:3px; }
body.is-editor *::-webkit-scrollbar-track{ background:transparent; }
