.block-editor-mode-switch{
    display:flex;
    gap:8px;
    margin:12px 0 10px;
}

.block-editor-mode-tip{
    font-size:12px;
    color:#64748b;
    padding:6px 0;
}

.block-editor-mode-btn{
    border:1px solid #d0d7de;
    background:#fff;
    color:#334155;
    border-radius:6px;
    padding:6px 14px;
    cursor:pointer;
    font-size:12px;
    font-weight:600;
}

.block-editor-mode-btn.block-editor-mode-btn-active{
    background:linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
    border-color:#60a5fa;
    color:#1d4ed8;
}

.block-editor-panel{
    display:block;
}
.block-editor-panel.block-editor-panel-active{
    display:block;
}

.block-editor-layout{
    display:flex;
    gap:14px;
    align-items:stretch;
}

/* 3 列分屏：左树 280px，中间预览吃满，右侧属性 320px */
.block-editor-form-pane{
    flex:0 0 280px;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:10px;
    height: 100%;
    min-height: 340px;
}

.block-editor-preview-pane{
    flex:1 1 auto;
    min-width:0;
    border:1px solid #dbe2ea;
    border-radius:10px;
    background:#f8fafc;
    padding:10px;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    gap:8px;
    min-height:340px;
    overflow:hidden;
}

.block-editor-property-pane{
    flex:0 0 320px;
    min-width:0;
    border:1px solid #dbe2ea;
    border-radius:10px;
    background:#ffffff;
    display:flex;
    flex-direction:column;
    min-height:340px;
    height: 100%;
    overflow:hidden;
}
.block-editor-property-head{
    display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#eef2ff,#f8fafc);border-radius:10px 10px 0 0;font-size:12px;font-weight:700;color:#1e293b;flex:0 0 auto;
}
.block-editor-property-name{flex:1;min-width:0;font-size:11px;color:#475569;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.block-editor-property-body{padding:8px 10px;overflow:auto;flex:1 1 auto;}

/* details 折叠样式：原生的 <summary> 在深色背景下不够亮，做一点优化 */
.block-editor-property-body details.block-editor-prop-section{
    border:1px solid #e2e8f0;
    border-radius:8px;
    background:#ffffff;
    margin-bottom:8px;
    overflow:hidden;
}
.block-editor-property-body details.block-editor-prop-section > summary{
    list-style:none;
    cursor:pointer;
    padding:8px 12px;
    font-size:12px;
    font-weight:700;
    color:#1e293b;
    background:linear-gradient(135deg,#f1f5f9,#e2e8f0);
    border-bottom:1px solid transparent;
    user-select:none;
    display:flex;
    align-items:center;
    gap:6px;
}
.block-editor-property-body details.block-editor-prop-section[open] > summary{
    border-bottom-color:#cbd5e1;
}
.block-editor-property-body details.block-editor-prop-section > summary::-webkit-details-marker{display:none;}
.block-editor-property-body details.block-editor-prop-section > summary::before{
    content:"▸";
    font-size:10px;
    color:#475569;
    transition:transform 0.15s;
    display:inline-block;
    width:12px;
}
.block-editor-property-body details.block-editor-prop-section[open] > summary::before{
    transform:rotate(90deg);
}
.block-editor-property-body details.block-editor-prop-section > summary .prop-badge{
    margin-left:auto;
    font-size:10px;
    font-weight:500;
    color:#475569;
    background:#fff;
    padding:1px 6px;
    border-radius:999px;
    border:1px solid #cbd5e1;
}
.block-editor-property-body details.block-editor-prop-section[hidden]{display:none !important;}
.block-editor-property-body details.block-editor-prop-section > .prop-body{
    padding:8px 12px 10px 12px;
}

.block-editor-preview-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    font-size:12px;
    color:#475569;
}

.block-editor-preview-size{
    color:#64748b;
    font-size:11px;
}

.block-editor-preview-frame{
    width:100%;
    height:auto;
    min-height:240px;
    border:1px solid #cbd5e1;
    border-radius:8px;
    background:#ffffff;
}

.block-editor-help{
    margin:0;
    color:#64748b;
    font-size:11px;
    line-height:1.5;
}

.block-editor-inline-tip{
    margin-top:8px;
    font-size:12px;
    color:#64748b;
}

.block-editor-grid-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.block-editor-field-block{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.block-editor-field-block label{
    font-size:12px;
    color:#475569;
    font-weight:600;
}

.block-editor-field-block input,
.block-editor-field-block select,
.block-editor-field-block textarea{
    width:100%;
    box-sizing:border-box;
}

.block-editor-field-block textarea{
    min-height:72px;
    resize:vertical;
}

.block-editor-inline-check{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:32px;
    padding-top:22px;
}

.block-editor-inline-check input{
    width:auto;
}

.block-editor-source-wrap{
    display:flex;
    flex-direction:column;
    gap:10px;
}

#block_editor_tab_source .edit-textarea{
    min-height:240px;
    height:240px;
    resize:vertical;
    font-family:Consolas, "Courier New", monospace;
    font-size:12px;
    line-height:1.5;
    display:block !important;
}

#block_editor_tab_source .block-editor-source-wrap{
    display:block !important;
}

#block_editor_tab_source{
    display:none;
}
#block_editor_tab_source.block-editor-tab-pane-active{
    display:block !important;
}

.block-editor-source-note{
    background:#fff7ed;
    border:1px solid #fed7aa;
    color:#9a3412;
    border-radius:8px;
    padding:8px 10px;
    font-size:12px;
    line-height:1.5;
}

.block-editor-help{
    margin:8px 0 0 0;
    font-size:12px;
    color:#64748b;
    line-height:1.5;
}

.block-editor-preview-tip{
    margin:6px 0 0 0;
    font-size:11px;
    color:#475569;
    line-height:1.5;
}

.ffv-resize-handle{
    box-shadow:0 0 0 2px rgba(255,255,255,0.6);
}

.block-editor-elements{
    margin-top:10px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    padding:10px;
    background:#f8fafc;
}

.block-editor-elements-head{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
    margin-bottom:8px;
}

.block-editor-elements-head > span{
    font-size:12px;
    font-weight:600;
    color:#334155;
    margin-right:auto;
}

.block-editor-element-type{
    width:auto;
    min-width:90px;
}

.block-editor-mini-btn-danger{
    color:#b91c1c;
    border-color:#fecaca;
    background:#fff1f2;
}

.block-editor-element-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:6px;
    max-height:180px;
    overflow:auto;
}

.block-editor-element-tree{
    font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    font-size:12px;
    user-select:none;
    -webkit-user-select:none;
    -webkit-user-drag:none;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:6px;
    padding:4px 0;
    overflow:auto;
    flex: 1 1 auto;
    min-height: 200px;
}
.block-editor-element-tree ul{list-style:none;margin:0;padding:0;}

/* 节点行：紧凑布局 */
.block-editor-element-item{
    margin:0;
    padding:0;
    border-radius:4px;
    line-height:22px;
    color:#0f172a;
    transition:background 0.1s;
    position:relative;
}
.block-editor-element-item > .el-row{
    display:flex;
    align-items:center;
    gap:4px;
    padding:2px 6px 2px 4px;
    border-radius:4px;
    min-height:24px;
    cursor:pointer;
    position:relative;
}
.block-editor-element-item:hover > .el-row{background:rgba(37,99,235,0.07);}
.block-editor-element-item.is-selected > .el-row{
    background:linear-gradient(90deg, rgba(37,99,235,0.15) 0%, rgba(37,99,235,0.06) 100%);
    box-shadow:inset 2px 0 0 #2563eb;
}

/* 嵌套 ul：左侧竖线 + 缩进（Godot 风格） */
.block-editor-element-children{
    margin:0 0 0 10px;
    padding:0 0 0 16px;
    border-left:1px solid #cbd5e1;
    position:relative;
}
.block-editor-element-item.el-collapsed > .block-editor-element-children{display:none;}

/* 折叠按钮 */
.block-editor-element-item .el-toggle{
    display:inline-block;
    width:14px;
    text-align:center;
    font-size:10px;
    color:#64748b;
    cursor:pointer;
    user-select:none;
    flex:0 0 14px;
    transition:color 0.1s;
}
.block-editor-element-item .el-toggle:hover{color:#2563eb;}
.block-editor-element-item[data-has-children="1"] .el-toggle{color:#1d4ed8;font-weight:700;}

/* 类型图标：彩色圆角方块 + 字符 */
.block-editor-element-item .el-type-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border-radius:4px;
    color:#fff;
    font-size:11px;
    font-weight:700;
    line-height:1;
    flex:0 0 18px;
    box-shadow:0 1px 2px rgba(0,0,0,0.10);
    text-shadow:0 1px 1px rgba(0,0,0,0.15);
}

/* 节点名 */
.block-editor-element-item .el-name{
    font-weight:600;
    color:#0f172a;
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    padding-left:2px;
}
.block-editor-element-item .el-name-input{
    width:100%;
    font-size:12px;
    font-weight:600;
    border:1px solid #2563eb;
    border-radius:3px;
    padding:1px 4px;
    outline:none;
    background:#fff;
}

/* 短 id：浅灰等宽小字 */
.block-editor-element-item .el-id{
    display:inline-block;
    margin-left:0;
    padding:0 5px;
    font-size:9.5px;
    color:#94a3b8;
    background:#f1f5f9;
    border-radius:3px;
    cursor:pointer;
    user-select:none;
    font-family:ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
    flex:0 0 auto;
    transition:all 0.12s;
    letter-spacing:0.02em;
}
.block-editor-element-item .el-id:hover{background:#2563eb;color:#fff;transform:scale(1.05);}

/* 非法嵌套红框 */
.block-editor-element-item.el-invalid-nesting > .el-row{
    background:rgba(254,226,226,0.55) !important;
    box-shadow:inset 2px 0 0 #dc2626, 0 0 0 1px rgba(220,38,38,0.30) !important;
}
.block-editor-element-item.el-invalid-nesting.is-selected > .el-row{
    background:linear-gradient(90deg, rgba(220,38,38,0.20) 0%, rgba(220,38,38,0.10) 100%) !important;
}
.block-editor-element-item .el-warn{
    color:#dc2626;
    font-weight:700;
    font-size:13px;
    cursor:help;
    flex:0 0 auto;
    animation:el-warn-blink 1.4s ease-in-out infinite;
}
@keyframes el-warn-blink{
    0%, 100%{opacity:1;}
    50%{opacity:0.55;}
}

/* 不可见节点 */
.block-editor-element-item.el-hidden-node > .el-row{
    opacity:0.5;
    background:repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(148,163,184,0.10) 6px, rgba(148,163,184,0.10) 12px);
}
.block-editor-element-item.el-hidden-node > .el-row > .el-name{text-decoration:line-through;color:#94a3b8;}

/* 操作按钮区：hover 才显示 */
.block-editor-element-item .el-ops{
    display:inline-flex;
    align-items:center;
    gap:2px;
    margin-left:auto;
    flex:0 0 auto;
    opacity:0;
    transition:opacity 0.12s;
}
.block-editor-element-item:hover .el-ops,
.block-editor-element-item.is-selected .el-ops{opacity:1;}
.block-editor-element-item .el-op{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    font-size:11px;
    cursor:pointer;
    border-radius:3px;
    color:#64748b;
    user-select:none;
    transition:all 0.1s;
}
.block-editor-element-item .el-op:hover{background:rgba(37,99,235,0.15);color:#2563eb;}
.block-editor-element-item .el-op-del:hover{background:rgba(220,38,38,0.15);color:#dc2626;}

/* 手动拖动：源节点淡化、ghost 跟随、落点位置线 */
.block-editor-element-item.el-dragging > .el-row{opacity:0.35;background:rgba(37,99,235,0.06);box-shadow:none;}
.el-drag-ghost{
    background:linear-gradient(135deg, #1d4ed8 0%, #0ea5e9 100%) !important;
    color:#fff !important;
    border:1px solid #1d4ed8 !important;
    box-shadow:0 8px 20px rgba(37,99,235,0.4) !important;
    border-radius:6px !important;
    opacity:0.95 !important;
    padding:6px 10px !important;
    font-size:12px !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.el-drag-ghost > *{color:#fff !important;}
/* 拖动落点视觉反馈：before/after 用 2px 蓝线 + 发光；inside 用整行蓝边 + 半透底色 */
.el-drop-line{
    display:block !important;
    height:3px !important;
    background:linear-gradient(90deg, #2563eb 0%, #60a5fa 50%, #2563eb 100%) !important;
    border-radius:2px !important;
    box-shadow:0 0 0 1px rgba(255,255,255,0.6), 0 0 8px rgba(37,99,235,0.6) !important;
    pointer-events:none;
    z-index:5;
    position:relative;
    margin:1px 0 !important;
    animation:el-drop-pulse 1.2s ease-in-out infinite;
}
@keyframes el-drop-pulse{
    0%, 100%{box-shadow:0 0 0 1px rgba(255,255,255,0.6), 0 0 8px rgba(37,99,235,0.6);}
    50%     {box-shadow:0 0 0 1px rgba(255,255,255,0.9), 0 0 14px rgba(37,99,235,0.85);}
}
/* before 落点：目标行顶部蓝色高亮 */
.block-editor-element-item.el-drop-before > .el-row{
    box-shadow:inset 0 3px 0 0 #2563eb, 0 -2px 6px rgba(37,99,235,0.30) !important;
    background:linear-gradient(180deg, rgba(37,99,235,0.12) 0%, rgba(37,99,235,0) 100%) !important;
}
/* after 落点：目标行底部蓝色高亮 */
.block-editor-element-item.el-drop-after > .el-row{
    box-shadow:inset 0 -3px 0 0 #2563eb, 0 2px 6px rgba(37,99,235,0.30) !important;
    background:linear-gradient(0deg, rgba(37,99,235,0.12) 0%, rgba(37,99,235,0) 100%) !important;
}
/* inside 落点：整行蓝边 + children 区域淡蓝底 */
.block-editor-element-item.el-drop-inside > .el-row{
    background:rgba(37,99,235,0.18) !important;
    box-shadow:inset 0 0 0 2px #2563eb, 0 0 0 2px rgba(37,99,235,0.25) !important;
}
.block-editor-element-item.el-drop-inside > .block-editor-element-children{
    background:rgba(37,99,235,0.06);
    box-shadow:inset 0 0 0 1px rgba(37,99,235,0.30);
}

.block-editor-element-empty{
    text-align:center;
    color:#94a3b8;
    font-size:12px;
    padding:14px;
    background:#fff;
    border-radius:6px;
    border:1px dashed #e2e8f0;
    margin:6px;
}

.block-editor-element-empty{
    text-align:center;
    color:#94a3b8;
    font-size:12px;
    padding:6px;
    background:#fff;
    border-radius:6px;
    border:1px dashed #e2e8f0;
}

.block-editor-hidden{
    display:none !important;
}

.block-editor-tabs{
    display:flex;
    gap:6px;
    border-bottom:1px solid #e2e8f0;
    margin:0 0 12px 0;
    padding:0 0 6px 0;
}

.block-editor-tab{
    border:1px solid #d0d7de;
    background:#fff;
    color:#334155;
    border-radius:6px 6px 0 0;
    padding:6px 14px;
    cursor:pointer;
    font-size:12px;
    font-weight:600;
}

.block-editor-tab.block-editor-tab-active{
    background:linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
    border-color:#60a5fa;
    color:#1d4ed8;
}

.block-editor-tab-pane{
    display:none;
}

.block-editor-tab-pane.block-editor-tab-pane-active{
    display:block !important;
}

#block_editor_tab_visual.block-editor-tab-pane-active .block-editor-preview-pane{
    min-height:320px;
}

@media (max-width: 1100px){
    .block-editor-layout{
        flex-direction:column;
    }

    .block-editor-form-pane{
        flex:1 1 auto;
    }

    .block-editor-preview-pane{
        min-height:340px;
    }
}

/* 元素属性弹窗 */
.layer_element_property .edit-form{padding:14px 18px 18px;}
.layer_element_property .pwd-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#1d4ed8 0%, #0ea5e9 100%);color:#fff;padding:14px 16px;border-radius:12px;margin-bottom:14px;box-shadow:0 10px 24px rgba(29,78,216,0.18);}
.layer_element_property .pwd-banner-icon{font-size:24px;background:rgba(255,255,255,0.18);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;}
.layer_element_property .pwd-banner-title{font-size:15px;font-weight:700;letter-spacing:0.02em;}
.layer_element_property .pwd-banner-desc{font-size:12px;opacity:0.85;margin-top:2px;}
.layer_element_property .block-editor-prop-section{margin-top:14px;padding:12px 14px;background:rgba(248,250,252,0.85);border:1px solid rgba(148,163,184,0.22);border-radius:10px;}
.layer_element_property .block-editor-prop-section-title{font-size:12px;font-weight:700;color:#0f172a;letter-spacing:0.04em;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.layer_element_property .block-editor-prop-section-title::before{content:"";width:3px;height:12px;background:#2563eb;border-radius:2px;}
.layer_element_property .edit-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;}
.layer_element_property .edit-cell{display:flex;flex-direction:column;gap:4px;}
.layer_element_property .edit-cell .edit-label{margin:0;font-size:12px;}
.layer_element_property .edit-cell .edit-input,
.layer_element_property .edit-cell .edit-select{padding:6px 8px;font-size:13px;height:32px;box-sizing:border-box;}
.layer_element_property .edit-mini-row{display:flex;gap:14px;align-items:center;height:32px;}
.layer_element_property .edit-inline-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#0f172a;cursor:pointer;}
.layer_element_property .edit-mini-btn{padding:6px 10px;font-size:12px;}
.layer_element_property .edit-save-big{padding:8px 18px;font-size:13px;border-radius:8px;background:linear-gradient(135deg,#1d4ed8 0%, #0ea5e9 100%);color:#fff;border:none;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(29,78,216,0.22);}
.layer_element_property .edit-save-big:hover{filter:brightness(1.05);}

/* 节点树工具条：搜索框 */
.block-editor-element-search{flex:1;min-width:80px;height:28px;padding:0 8px;font-size:12px;}

/* 节点树：分类过滤下拉 + 添加按钮（独立） */
.block-editor-category-filter{max-width:120px;flex:0 0 auto;}
.block-editor-add-btn{margin-left:auto;font-weight:700;background:linear-gradient(135deg,#1d4ed8 0%, #0ea5e9 100%);color:#fff;border:1px solid #1d4ed8;}
.block-editor-add-btn:hover{filter:brightness(1.08);}

/* 添加节点弹窗（layer.open） */
.block-editor-add-menu{padding:6px 4px 2px;}
.block-editor-add-menu .add-menu-group{margin-bottom:14px;}
.block-editor-add-menu .add-menu-title{font-size:12px;font-weight:700;color:#475569;letter-spacing:0.04em;text-transform:uppercase;margin-bottom:6px;padding-left:2px;display:flex;align-items:center;gap:6px;}
.block-editor-add-menu .add-menu-title::before{content:"";display:inline-block;width:3px;height:12px;background:#2563eb;border-radius:2px;}
.block-editor-add-menu .add-menu-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:8px;}
.block-editor-add-menu .add-menu-item{
    border:1px solid #e2e8f0;
    background:#fff;
    border-radius:8px;
    padding:10px 6px 8px;
    text-align:center;
    cursor:pointer;
    transition:all 0.15s;
    user-select:none;
}
.block-editor-add-menu .add-menu-item:hover{
    border-color:#2563eb;
    background:linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
    transform:translateY(-1px);
    box-shadow:0 4px 10px rgba(37,99,235,0.15);
}
.block-editor-add-menu .add-menu-item:active{transform:translateY(0);}
.block-editor-add-menu .add-menu-icon{font-size:22px;color:#1d4ed8;font-weight:700;line-height:1.2;margin-bottom:4px;}
.block-editor-add-menu .add-menu-item:hover .add-menu-icon{color:#1e40af;}
.block-editor-add-menu .add-menu-name{font-size:12px;color:#0f172a;font-weight:600;}

/* layer 自定义皮肤：去掉默认 padding */
.layer-add-element .layui-layer-content{padding:14px 16px !important;}

.block-editor-elements-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap;}
.block-editor-elements-toolbar .block-editor-element-type{flex:1;min-width:0;}
.block-editor-elements-toolbar .edit-mini-btn{padding:4px 8px;font-size:12px;}
.block-editor-elements-footer{display:flex;align-items:center;gap:4px;margin-top:8px;flex-wrap:wrap;}
.block-editor-elements-footer .edit-mini-btn{padding:4px 8px;font-size:12px;flex:1 1 auto;min-width:60px;}

/* 预览区元素被选中时高亮 */
.ffv-element.ffv-el-selected{outline:2px solid #2563eb !important;outline-offset:1px;box-shadow:0 0 0 2px rgba(37,99,235,0.18);}
.ffv-element.ffv-el-selected::after{content:attr(data-el-id);position:absolute;top:-18px;left:0;background:#2563eb;color:#fff;font-size:10px;padding:1px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;}
.ffv-element.ffv-el-dragging{cursor:grabbing !important;outline:2px dashed #f59e0b !important;outline-offset:1px;opacity:0.92;}
/* 关键：禁用文本选中，否则 mousedown 会触发 native 文本选择、抢走 dragstart */
.ffv-element{cursor:grab;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;}
.ffv-element *{user-select:none;-webkit-user-select:none;}
/* 链接型容器：拖动区域、悬浮高亮 */
.ffv-element-anchor{cursor:pointer;transition:background 0.15s;}
.ffv-element-anchor:hover{background:rgba(37,99,235,0.04);}
.ffv-element-anchor:hover .ffv-el-group{outline:1.5px dashed #2563eb !important;}
/* group 容器虚线框，方便识别 */
.ffv-el-group{outline:1px dashed rgba(148,163,184,0.45);outline-offset:-1px;transition:outline 0.15s;}
.ffv-el-group:hover{outline:1.5px dashed #94a3b8 !important;}

/* 中等屏以上：再放宽左树一点 */
@media (min-width:1280px){
    .block-editor-form-pane{flex:0 0 320px;}
}

/* ===== 2026-07-25 23:56：源码区 3 个 textarea 用 tabview 切换 ===== */
.source-tabs{
    display:flex;
    flex-direction:column;
    gap:0;
    margin-top:8px;
    border:1px solid #e2e8f0;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
}
.source-tabs-nav{
    display:flex;
    align-items:center;
    gap:0;
    background:#f8fafc;
    border-bottom:1px solid #e2e8f0;
    padding:0 6px;
}
.source-tab{
    background:none;
    border:0;
    padding:9px 14px;
    font-size:12px;
    color:#475569;
    cursor:pointer;
    border-bottom:2px solid transparent;
    transition:color 0.1s, border-color 0.1s;
    font-weight:500;
}
.source-tab:hover{ color:#0f172a; background:#f1f5f9; }
.source-tab-active{
    color:#2563eb !important;
    border-bottom-color:#2563eb !important;
    background:#fff !important;
    font-weight:700;
}
.source-tabs-right{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:6px;
    padding-right:6px;
}
.source-tab-pane{
    display:none;
    padding:10px;
    min-height:380px;
    background:#fff;
}
.source-tab-pane-active{ display:block; }
.source-tab-pane .edit-textarea{
    width:100%;
    min-height:340px !important;
    height:100%;
    font-family:Consolas, "Courier New", monospace;
    font-size:12px;
    line-height:1.5;
    resize:vertical;
    border:1px solid #cbd5e1;
    border-radius:6px;
    box-sizing:border-box;
}
.source-tab-pane .edit-label-block{ margin-bottom:6px !important; }

/* 2026-07-26 00:17：pane 顶部工具条（标题 + 右侧高级编辑按钮） */
.source-pane-toolbar{
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 2px 8px 2px;
    border-bottom:1px dashed #e2e8f0;
    margin-bottom:8px;
}
.source-pane-title{
    font-size:12px;
    font-weight:700;
    color:#0f172a;
}
.source-pane-spacer{ flex:1 1 auto; }
