/* ---- css/jms_tg_variables_delete_confirm_ui.css ---- */
/**
 * 线程组 · 用户定义的变量组件 · 删除确认弹窗（隔离样式）
 */
body.lth-hub-jmeter-tab.jms-tg-vars-del-confirm-lock {
    overflow: hidden !important;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm {
    position: fixed;
    inset: 0;
    z-index: 12070;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.18s ease;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm--open {
    pointer-events: auto;
    opacity: 1;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.36);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__panel {
    position: relative;
    width: min(100%, 22.5rem);
    padding: 1.35rem 1.35rem 1.15rem;
    border-radius: 0.875rem;
    border: 1px solid rgba(226, 232, 240, 0.96);
    background: #ffffff;
    box-shadow:
        0 24px 48px rgba(15, 23, 42, 0.12),
        0 1px 0 rgba(255, 255, 255, 0.85) inset;
    transform: translateY(8px) scale(0.988);
    transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm--open .jms-tg-vars-del-confirm__panel {
    transform: translateY(0) scale(1);
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    letter-spacing: -0.015em;
    color: #0f172a;
    line-height: 1.35;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__message {
    margin: 0.65rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.65;
    color: #64748b;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__foot {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1.25rem;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__btn {
    min-width: 4.5rem;
    padding: 0.48rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__btn--ghost {
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #475569;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__btn--ghost:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__btn--danger {
    border: 1px solid #e11d48;
    background: #e11d48;
    color: #ffffff;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__btn--danger:hover {
    background: #be123c;
    border-color: #be123c;
}

body.lth-hub-jmeter-tab .jms-tg-vars-del-confirm__btn:focus-visible {
    outline: 2px solid rgba(13, 148, 136, 0.45);
    outline-offset: 2px;
}

/* ---- css/jms_tg_variables_editor_modal_ui.css ---- */
/**
 * 线程组 · 用户定义的变量 · 编辑弹窗（隔离样式）
 */
body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 12060;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    pointer-events: none;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal.jms-modal-open {
    display: flex !important;
    pointer-events: auto;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.36);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__panel {
    position: relative;
    
    width: min(100%, 32rem);
    max-height: min(80vh, 36rem);
    display: flex;
    flex-direction: column;
    border-radius: 0.875rem;
    border: 1px solid rgba(226, 232, 240, 0.96);
    background: #ffffff;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18);
    overflow: hidden;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.15rem 0.75rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: #0f172a;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__close {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.15rem 0.35rem;
    border-radius: 0.375rem;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__body {
    padding: 0.85rem 1.15rem;
    overflow: auto;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-modal__foot {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.15rem 1rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.5rem;
    align-items: center;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-tg-variables-add-row {
    margin-top: 0.65rem;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row .jms-kv-key,
body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row .jms-kv-val {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    caret-color: #0f172a;
    background: #ffffff !important;
    border: 1px solid #cbd5e1;
    border-radius: 0.375rem;
    padding: 0.4rem 0.55rem;
    font-size: 0.875rem;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row .jms-kv-key::placeholder,
body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row .jms-kv-val::placeholder {
    color: #94a3b8;
    opacity: 1;
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row .jms-kv-key:focus,
body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row .jms-kv-val:focus {
    outline: none;
    border-color: #818cf8;
    box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.18);
}

body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row input:-webkit-autofill,
body.lth-hub-jmeter-tab #jms-tg-variables-editor-modal .jms-kv-row input:-webkit-autofill:focus {
    -webkit-text-fill-color: #0f172a !important;
    box-shadow: 0 0 0 1000px #ffffff inset !important;
}

/* ---- css/jms_studio_v2_steps_override.css ---- */
/**
 * Studio v2 · legacy 网格步骤区最终覆盖（POST-JS 最后加载 · 20260707v2style5）
 * 修复：逻辑控制器 / Debug Sampler 无卡片样式（此前 ctrl_cards 未进 bundle）
 */
/**
 * Studio v2 · legacy 网格内逻辑控制器 + catalog 卡片（对齐 If 控制器 jms_if_card_layout）
 */
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-transaction-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-loop-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-simple-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-random-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-catalog-plan-native {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 0.35rem !important;
    border-radius: 10px !important;
    border: 1px solid rgba(251, 191, 36, 0.28) !important;
    background: rgba(251, 191, 36, 0.06) !important;
    overflow: hidden !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-transaction-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-loop-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-simple-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-random-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-catalog-plan-card__head {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.35rem 0.5rem !important;
    padding: 0.45rem 0.55rem !important;
    border-bottom: 1px solid rgba(251, 191, 36, 0.18) !important;
    background: rgba(251, 191, 36, 0.08) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-transaction-badge,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-loop-badge,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-simple-badge,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-random-badge,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-catalog-plan-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 1.65rem !important;
    padding: 0.1rem 0.4rem !important;
    border-radius: 999px !important;
    font-size: 0.625rem !important;
    font-weight: 800 !important;
    color: #fcd34d !important;
    background: rgba(251, 191, 36, 0.2) !important;
    border: 1px solid rgba(251, 191, 36, 0.35) !important;
    flex-shrink: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-transaction-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-loop-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-simple-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-random-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-catalog-plan-card__body {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
    padding: 0.45rem 0.55rem 0.55rem !important;
    background: rgba(255, 255, 255, 0.35) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-transaction-card__body .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-loop-card__body .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-simple-card__body .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-random-card__body .jms-http-card {
    margin-bottom: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card.jms-aux-card--debug,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card.jms-catalog-plan-native {
    display: flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    width: 100% !important;
    padding: 0.45rem 0.55rem !important;
    margin-bottom: 0.35rem !important;
    border-radius: 10px !important;
    border: 1px solid rgba(148, 163, 184, 0.45) !important;
    background: rgba(255, 255, 255, 0.92) !important;
    box-sizing: border-box !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-http-assert-badge {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-if-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}


/* --- aux card inner (from jms_aux_step_cards, steps-scoped) --- */
/* 兼容非 hub tab 场景（API 场景页） */
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card {
    display: flex;
    align-items: stretch;
    gap: 0;
    min-height: 3rem;
    margin-bottom: 0.35rem;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.25);
    background: #fff;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card__stripe { flex: 0 0 4px; }
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card--beanshell .jms-aux-card__stripe {
    background: linear-gradient(180deg, #22c55e, #15803d);
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card--debug .jms-aux-card__stripe {
    background: linear-gradient(180deg, #3b82f6, #1d4ed8);
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card__content {
    flex: 1; min-width: 0; padding: 0.4rem 0.5rem 0.4rem 0;
    display: flex; flex-direction: column; gap: 0.12rem;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-name {
    font-size: 0.8125rem; font-weight: 600; color: #0f172a;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-if-card__head .lth-step-actions {
    margin-left: auto;
    flex-shrink: 0;
}

body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-simple-card__head .jms-http-name,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-random-card__head .jms-http-name,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-transaction-card__head .jms-http-name,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-loop-card__head .jms-http-name {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card__icon {
    flex: 0 0 2.4rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card--debug .jms-aux-card__icon {
    color: #1d4ed8 !important;
    background: rgba(59, 130, 246, 0.1) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card--debug .jms-aux-card__stripe {
    background: linear-gradient(180deg, #3b82f6, #1d4ed8) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-workspace .jms-plan-tgs > .jms-tg-block .jms-tg-steps:not(.jms-tg-tree-steps) .jms-aux-card--debug .jms-aux-type {
    color: #1e40af !important;
    background: rgba(59, 130, 246, 0.14) !important;
    border: 1px solid rgba(59, 130, 246, 0.28) !important;
}

/* ---- css/jms_tg_tree_aux_actions_right_v2.css ---- */
/**
 * Studio v2 · Aux/后置处理器卡片 ⋯ 靠右（覆盖 aux_compact / row_layout_fit，POST-JS 末位）
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node__body {
    width: 100% !important;
    max-width: 100% !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--regex .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--xpath .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--jdbc .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--beanshell .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--json .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--jsr223 .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--debug .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--config .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--tg-listener .jms-aux-card {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__content,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__content--tree {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card .jms-config-card-toolbar,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card .jms-config-card-toolbar .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-processor-row .lth-step-actions {
    margin-left: auto !important;
    margin-right: 0.35rem !important;
    flex: 0 0 auto !important;
    align-self: center !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .jms-config-card-toolbar .lth-step-actions {
    margin-left: auto !important;
    margin-right: 0.35rem !important;
}

/* ---- css/jms_studio_v2_tree_steps_compact.css ---- */
/**
 * Studio v2 · 树形步骤区：drag-handle 与卡片同一行（全局）
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-steps.jms-tg-tree-steps,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-steps.jms-tg-tree-steps {
    gap: 0.06rem !important;
    row-gap: 0.06rem !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    min-height: 0 !important;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node > .jms-tree-drag-handle {
    flex: 0 0 auto !important;
    align-self: center !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node > .jms-tree-node__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

/* ---- css/jms_studio_v2_setup_tg_steps_gap.css ---- */
/**
 * Studio v2 树形 · SetUp 步骤卡片间距（真实间隙来自 drag-handle 换行，不是 flex gap）
 * 页面：https://testhubkit.com/tool/api-scenario-studio?tab=jmeter
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) > .jms-tg-steps.jms-tg-tree-steps,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) > .jms-tg-steps.jms-tg-tree-steps {
    gap: 0.06rem !important;
    row-gap: 0.06rem !important;
}

/* 根因：.jms-tree-node 为 block，drag-handle 占一行，卡片被挤到下一行 → 视觉 ~25px 空档 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tg-tree-steps > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tg-tree-steps > .jms-tree-node {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    min-height: 0 !important;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tg-tree-steps > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tg-tree-steps > .jms-tree-node > .jms-tree-drag-handle {
    flex: 0 0 auto !important;
    align-self: center !important;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tg-tree-steps > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tg-tree-steps > .jms-tree-node > .jms-tree-node__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tree-node--debug .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tree-node--http .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tree-node--debug .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.jms-tree-setup-tag:not(.jms-tree-post-tag)) .jms-tree-node--http .jms-http-card {
    margin: 0 !important;
}

/* ---- css/jms_studio_v2_tree_step_row_unify.css ---- */
/**
 * Studio v2 树形 · 步骤行视觉统一：类型标签 + 名称 + 次要信息
 * /tool/api-scenario-studio?tab=jmeter
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps {
    --jms-tree-row-h: 2.25rem;
    --jms-tree-pill-fs: 0.5625rem;
    --jms-tree-name-fs: 0.6875rem;
    --jms-tree-meta-fs: 0.625rem;
    --jms-tree-row-border: rgba(226, 232, 240, 0.95);
    --jms-tree-row-bg: rgba(255, 255, 255, 0.97);
}

/* ── 类型 Pill（HTTP / 后置 / 逻辑 / Catalog 统一规格） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-method,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-method,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-type,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    min-width: 2.1rem !important;
    max-width: 4.8rem !important;
    padding: 0.06rem 0.36rem !important;
    border-radius: 999px !important;
    font-size: var(--jms-tree-pill-fs) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    border: 1px solid rgba(148, 163, 184, 0.32) !important;
    background: #f8fafc !important;
    color: #475569 !important;
    box-shadow: none !important;
}

/* ── 名称 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-name,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-name,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-name,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-name {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: 14rem !important;
    font-size: var(--jms-tree-name-fs) !important;
    font-weight: 600 !important;
    color: #0f172a !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* ── 次要信息（path / 条件 / 脚本摘要） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-path,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-path,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__condition,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__condition,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__meta-text,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__meta-text,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__meta-text,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__meta-text,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__meta-text,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__meta-text,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__meta-text,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__meta-text,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card__meta-text,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card__meta-text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: var(--jms-tree-meta-fs) !important;
    color: #94a3b8 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* ── 右侧计数 Chip ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-assert-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-assert-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__child-count,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__child-count,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__child-count,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__child-count,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__child-count,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card__child-count {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0.04rem 0.32rem !important;
    border-radius: 999px !important;
    font-size: 0.5625rem !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
    color: #64748b !important;
    background: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
}

/* ── HTTP / Aux 行：统一白底卡片 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card {
    min-height: var(--jms-tree-row-h) !important;
    height: auto !important;
    max-height: none !important;
    padding: 0.34rem 0.46rem !important;
    background: var(--jms-tree-row-bg) !important;
    border: 1px solid var(--jms-tree-row-border) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card::before,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card::before {
    display: none !important;
    content: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__stripe,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__stripe,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__icon,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__icon {
    display: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__main,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__content,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__content,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__content--tree,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__content--tree {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.34rem !important;
    min-width: 0 !important;
    padding: 0 !important;
}

/* ── 逻辑控制器：头行与 HTTP 行一致 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card__head {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.34rem !important;
    width: 100% !important;
    min-height: var(--jms-tree-row-h) !important;
    padding: 0.34rem 0.46rem !important;
    background: var(--jms-tree-row-bg) !important;
    border: 1px solid var(--jms-tree-row-border) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__meta {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.34rem !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card__body {
    margin-top: 0.06rem !important;
    padding: 0.1rem 0 0.12rem 0.28rem !important;
    background: transparent !important;
    border: none !important;
    gap: 0.06rem !important;
}

/* ── 类型 Pill 语义色（低饱和） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-badge,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-badge {
    color: #92400e !important;
    background: #fffbeb !important;
    border-color: #fde68a !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--regex .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--regex .jms-aux-type {
    color: #6d28d9 !important;
    background: #f5f3ff !important;
    border-color: #ddd6fe !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--xpath .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--xpath .jms-aux-type {
    color: #0369a1 !important;
    background: #f0f9ff !important;
    border-color: #bae6fd !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--jdbc .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--jdbc .jms-aux-type {
    color: #047857 !important;
    background: #ecfdf5 !important;
    border-color: #a7f3d0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--beanshell .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--beanshell .jms-aux-type,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--jsr223 .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--jsr223 .jms-aux-type {
    color: #334155 !important;
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--json .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--json .jms-aux-type {
    color: #0f766e !important;
    background: #f0fdfa !important;
    border-color: #99f6e4 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card--debug .jms-aux-type,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card--debug .jms-aux-type {
    color: #64748b !important;
    background: #f1f5f9 !important;
    border-color: #e2e8f0 !important;
}

/* ── ⋯ 操作列：固定宽度 + 统一右缘（覆盖 HTTP/Aux margin-right 与 Logic 不一致） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node__body {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card__head {
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding-right: 0.3rem !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__main,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__content,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__content,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card__content--tree,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__content--tree,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__meta,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__meta {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-aux-card .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card__head .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card__head .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card__head .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card__head .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card__head .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card__head .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card__head .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card__head .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card__head .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card__head .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card__head .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card__head .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-config-card-toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar {
    flex: 0 0 1.65rem !important;
    width: 1.65rem !important;
    min-width: 1.65rem !important;
    max-width: 1.65rem !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-right: 0 !important;
    margin-left: auto !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-config-card-toolbar .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar .lth-step-actions {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .lth-step-menu-btn,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .lth-step-menu-btn {
    width: 1.45rem !important;
    height: 1.45rem !important;
    min-width: 1.45rem !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
}

/* ---- css/jms_studio_v2_tree_step_menu_click_only.css ---- */
/**
 * Studio v2 树形 · ⋯ 菜单仅点击展开（禁用 hover 预览）
 * 覆盖 jms-load-test-studio-inline.css 中 .is-hover 展示规则
 */
body.lth-studio-v2 .lth-step-actions.is-hover:not(.is-open) .lth-step-menu {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.lth-studio-v2 .lth-step-actions.is-open .lth-step-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.15rem !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(.lth-step-actions.is-hover:not(.is-open)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:has(.lth-step-actions.is-hover:not(.is-open)) {
    overflow: hidden !important;
    z-index: auto !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .lth-step-actions.is-hover:not(.is-open) {
    position: static !important;
    z-index: auto !important;
}

/* ---- css/jms_studio_v2_tree_aux_menu_clip_fix.css ---- */
/**
 * Studio v2 树形 · Aux 步骤 ⋯ 菜单防裁切 + 编辑可点击（post-js 最后加载）
 * 1) 覆盖 aux_compact 的 overflow:hidden
 * 2) 抬高 is-open 行 z-index，避免下一行（如 HEAD 探活）挡住「编辑」
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-open),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-measuring),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-measuring) {
    position: relative !important;
    overflow: visible !important;
    z-index: 120 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-open) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-measuring) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-open) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node:has(.lth-step-actions.is-measuring) > .jms-tree-node__body {
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .jms-aux-card:has(.lth-step-actions.is-measuring),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node .jms-aux-card:has(.lth-step-actions.is-measuring) {
    overflow: visible !important;
    max-height: none !important;
    position: relative !important;
    z-index: 121 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-block--tree:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-block--tree:has(.lth-step-actions.is-open) {
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-measuring,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-open,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-measuring {
    position: relative !important;
    z-index: 130 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-open .lth-step-menu,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-measuring .lth-step-menu,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-open .lth-step-menu,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node .lth-step-actions.is-measuring .lth-step-menu {
    z-index: 140 !important;
    pointer-events: auto !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .lth-step-menu .jms-btn-ghost,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .lth-step-menu .jms-btn-ghost {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* IF/TXN 等容器内嵌 Aux 步骤 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-aux-card:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-aux-card:has(.lth-step-actions.is-open) {
    overflow: visible !important;
    max-height: none !important;
    z-index: 121 !important;
}

/* ---- css/jms_studio_v2_tree_step_edit_modal_unify.css ---- */
/**
 * Studio v2 · JMeter 全部编辑/配置弹窗统一居中（post-js 最后加载，覆盖 legacy drawer）
 */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-http-mgr,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-assert,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-jdbc-post-proc-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-jdbc-post-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-if-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-mount-timer-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-if-edit,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-step-user-params-edit,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"],
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"] {
    display: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-http-mgr.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-assert.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-jdbc-post-proc-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-jdbc-post-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-mount-timer-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-step-user-params-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"].jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"].jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-scene-monitor.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-tg-load.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-tg-http-mgr.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-step-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-step-assert.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-beanshell-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open #modal-debug-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open [id^="modal-tg-"].jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-drawer-open [id^="modal-http-"].jms-modal-open {
    display: flex !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 10200 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 1rem !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    background: rgba(15, 23, 42, 0.55) !important;
    pointer-events: auto !important;
    overflow: auto !important;
    transform: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-vars-modal {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: min(36rem, 96vw) !important;
    max-height: 90vh !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 1.25rem !important;
    display: block !important;
    flex: 0 0 auto !important;
    flex-direction: unset !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border-radius: 1rem !important;
    border: 1px solid #e2e8f0 !important;
    background: #fff !important;
    color: #0f172a !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
    animation: none !important;
    pointer-events: auto !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit.jms-modal-open .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-assert.jms-modal-open .jms-step-modal {
    max-width: min(42rem, 96vw) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab [id*="assert-edit"].jms-modal-open .jms-step-modal {
    max-width: min(1040px, 96vw) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal > h3,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit-title,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-vars-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-output-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-"] .jms-step-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-"] .jms-step-modal > h3 {
    color: #020617 !important;
    font-weight: 800 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #020617 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-sec__title,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal summary.lth-step-sec__title {
    color: #0f172a !important;
    font-weight: 700 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-step-form,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-edit-form {
    margin-top: 0.75rem !important;
    color: #0f172a !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-foot {
    margin-top: 1.25rem !important;
    padding-top: 1rem !important;
    border-top: 1px solid rgba(148, 163, 184, 0.22) !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* ---- css/jms_tg_tree_head_actions_layout_fix.css ---- */
/**
 * 树形视图 · 头行操作区布局：子步骤 | 启用/停用 | ⋮，全宽自适应
 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-editor,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node__body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* 逻辑控制器头行：占满可用宽度 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__head {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__head .jms-if-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__head .jms-transaction-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__head .jms-random-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__head .jms-simple-card__meta,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__head .jms-loop-card__meta {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

/* HTTP 折叠态单行；展开态由 logic_mount_toolbar_polish / http_context_ui 纵向布局 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card.jms-http-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__content,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card__content--tree {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden !important;
}

/* 右侧操作簇：[标签…向左扩展] [启用/停用] [⋮] */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    gap: 0.28rem !important;
    margin-left: auto !important;
}

/* 动态标签：紧贴启用按钮左侧，有几个显示几个，向左增长 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badges {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    gap: 0.22rem !important;
    max-width: min(52vw, 24rem) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badges:empty {
    display: none !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badge-slot.is-empty {
    display: none !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badges > * {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badges .jms-http-assert-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badges .jms-http-proc-badge {
    flex: 0 0 auto !important;
    margin: 0 !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
    padding: 0.05rem 0.35rem !important;
    border-radius: 999px !important;
    color: #64748b !important;
    background: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-child-count-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-badges .jms-tree-child-count-badge,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-if-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-transaction-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-random-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-simple-card__child-count,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-loop-card__child-count {
    flex: 0 0 auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
    padding: 0.05rem 0.35rem !important;
    border-radius: 999px !important;
    color: #b45309 !important;
    background: #fffbeb !important;
    border: 1px solid #fde68a !important;
}

/* 覆盖 row_unify 对 toolbar 的 1.65rem 限宽 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-config-card-toolbar {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: 0 !important;
    gap: 0.22rem !important;
    padding: 0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card > .jms-card-head-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card > .jms-card-head-actions {
    margin-left: auto !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card > .jms-config-card-toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card > .jms-config-card-toolbar {
    margin-left: auto !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-config-card-toolbar {
    margin-left: 0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__actions {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 1.45rem !important;
    max-width: none !important;
    margin: 0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps [class*="-enable-seg"] {
    flex-shrink: 0 !important;
}

/* 名称/路径过长时截断，避免撑出横向滚动 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-name {
    flex: 0 1 auto !important;
    max-width: min(28vw, 12rem) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-path,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__head .jms-if-card__condition {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* 窄屏 / F12 缩小时：头行可横向滑动查看操作区 */
@media (max-width: 1100px) {
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__head,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__head,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__head,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__head,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__head,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        overscroll-behavior-x: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

/* ---- css/jms_tg_tree_enable_menu_pin_fix.css ---- */
/**
 * 树形视图 · 启用/停用 紧贴 ⋮ 菜单（最高优先级覆盖 row_unify 1.65rem 限宽）
 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__head {
    position: relative !important;
}

/* 启用+⋮ 操作簇：始终靠右，宽度随内容 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-config-card-toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__actions {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    padding: 0 !important;
    gap: 0.22rem !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

/* 在 head-actions 内：标签在左，启用+⋮ 作为整体贴右 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    gap: 0.28rem !important;
    white-space: nowrap !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-config-card-toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-card-head-actions .jms-http-card__actions {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar [class*="-enable-seg"],
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar .jms-step-enable-seg {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-config-card-toolbar .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-config-card-toolbar .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__actions.lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__actions.lth-step-actions {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 1.45rem !important;
    max-width: none !important;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .lth-step-menu-btn,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .lth-step-menu-btn {
    flex: 0 0 auto !important;
    width: 1.45rem !important;
    min-width: 1.45rem !important;
    max-width: 1.45rem !important;
}

/* ---- css/jms_tg_logic_mount_toolbar_polish.css ---- */
/**
 * 线程组头工具栏 + 逻辑控制器挂载区 · 按钮尺寸/样式统一（隔离覆盖层，末位加载）
 * 参考线程组级 jms-tg-tree-btn-ghost 规范，对齐高度与圆角，不影响点击/菜单逻辑
 */
body.lth-tg-view-tree.lth-hub-jmeter-tab {
    --jms-tg-chip-h: 1.65rem;
    --jms-tg-chip-px: 0.42rem;
    --jms-tg-chip-fs: 10px;
    --jms-tg-chip-lh: 1.2;
    --jms-tg-chip-radius: 7px;
    --jms-tg-chip-gap: 0.12rem;
}

/* ── 线程组头：所有下拉触发按钮统一高度（含无 caret 的 fallback 配置按钮） ── */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-config-trigger,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-config-btn,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-logic-ctrl-trigger,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-sampler-trigger,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-post-proc-trigger,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-assert-trigger,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-listener-menu-trigger {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--jms-tg-chip-gap) !important;
    min-height: var(--jms-tg-chip-h) !important;
    height: var(--jms-tg-chip-h) !important;
    padding: 0 var(--jms-tg-chip-px) !important;
    font-size: var(--jms-tg-chip-fs) !important;
    font-weight: 600 !important;
    line-height: var(--jms-tg-chip-lh) !important;
    border-radius: var(--jms-tg-chip-radius) !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
    box-shadow: none !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-config-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-logic-ctrl-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-sampler-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-post-proc-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-assert-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings .jms-tg-listener-menu-caret {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
    font-size: 9px !important;
    opacity: 0.75 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings > .jms-tg-config-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings > .jms-tg-logic-ctrl-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings > .jms-tg-sampler-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings > .jms-tg-post-proc-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings > .jms-tg-assert-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings > .jms-tg-listener-more {
    display: inline-flex !important;
    align-items: stretch !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-head__group--settings {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.22rem !important;
}

/* ── 逻辑控制器挂载区：容器 ── */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0.38rem 0.55rem !important;
    border: none !important;
    border-bottom: 1px solid rgba(226, 232, 240, 0.92) !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(241, 245, 249, 0.88)) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card:not(.jms-if-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card:not(.jms-if-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card:not(.jms-transaction-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card:not(.jms-transaction-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card:not(.jms-loop-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card:not(.jms-loop-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card:not(.jms-random-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card:not(.jms-random-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card:not(.jms-simple-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card:not(.jms-simple-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only {
    display: block !important;
}

/* ── 逻辑挂载工具栏：横向单行（对齐线程组 tools 行） ── */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-context__toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-context__toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context__toolbar {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0.22rem !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
}


body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-config-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-preproc-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-timer-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-proc-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-assert-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-listener-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-sampler-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-logic-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-assert-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-timer-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-preproc-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-proc-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-config-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-listener-more,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context__toolbar > .jms-catalog-mount-ctx-more {
    position: relative !important;
    display: inline-flex !important;
    align-items: stretch !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    width: auto !important;
    max-width: none !important;
}

/* ── 逻辑挂载按钮：与线程组头 ghost 按钮同规格 ── */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--jms-tg-chip-gap) !important;
    min-height: var(--jms-tg-chip-h) !important;
    height: var(--jms-tg-chip-h) !important;
    padding: 0 var(--jms-tg-chip-px) !important;
    font-size: var(--jms-tg-chip-fs) !important;
    font-weight: 600 !important;
    line-height: var(--jms-tg-chip-lh) !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    border-radius: var(--jms-tg-chip-radius) !important;
    border: 1px solid rgba(203, 213, 225, 0.95) !important;
    background: #fff !important;
    color: #475569 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transform: none !important;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn:hover,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn:hover,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn:hover {
    border-color: rgba(148, 163, 184, 0.95) !important;
    background: #f8fafc !important;
    color: #334155 !important;
    transform: none !important;
    box-shadow: none !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-caret,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-caret {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
    font-size: 9px !important;
    opacity: 0.75 !important;
    margin: 0 !important;
    transform: none !important;
}

/* ── 分类配色（与线程组头一致） ── */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-sampler,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn-preproc,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-sampler,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-preproc,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-preproc {
    color: #047857 !important;
    border-color: rgba(52, 211, 153, 0.45) !important;
    background: rgba(236, 253, 245, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-logic,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-logic {
    color: #6d28d9 !important;
    border-color: rgba(139, 92, 246, 0.45) !important;
    background: rgba(245, 243, 255, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-assert,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn-assert-menu,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-assert {
    color: #b45309 !important;
    border-color: rgba(251, 191, 36, 0.55) !important;
    background: rgba(255, 251, 235, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-timer,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn-timers,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-timer {
    color: #0369a1 !important;
    border-color: rgba(56, 189, 248, 0.5) !important;
    background: rgba(240, 249, 255, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-processors,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn-postproc,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-processors {
    color: #c2410c !important;
    border-color: rgba(251, 146, 60, 0.5) !important;
    background: rgba(255, 247, 237, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-config,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn-config,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-config {
    color: #4338ca !important;
    border-color: rgba(99, 102, 241, 0.45) !important;
    background: rgba(238, 242, 255, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-btn-listeners,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-ctx-btn-listeners,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context .jms-catalog-mount-ctx-btn-listeners {
    color: #475569 !important;
    border-color: rgba(148, 163, 184, 0.65) !important;
    background: rgba(248, 250, 252, 0.98) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only [class*="-more"].is-open > .jms-if-mount-ctx-btn {
    border-color: rgba(148, 163, 184, 0.95) !important;
    background: #f8fafc !important;
}

/* ── 下拉菜单 ── */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-menu {
    min-width: 11rem !important;
    padding: 0.28rem !important;
    border-radius: 10px !important;
    border: 1px solid rgba(226, 232, 240, 0.98) !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12) !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-item {
    display: block !important;
    width: 100% !important;
    padding: 0.38rem 0.52rem !important;
    border: none !important;
    border-radius: 7px !important;
    background: transparent !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    color: #334155 !important;
    text-align: left !important;
    cursor: pointer !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-ctx-item:hover {
    background: rgba(241, 245, 249, 0.98) !important;
    color: #0f172a !important;
}

@media (max-width: 720px) {
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-mount-context--toolbar-only .jms-if-mount-context__toolbar,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-context--toolbar-only .jms-http-context__toolbar,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-mount-context__toolbar {
        flex-wrap: nowrap !important;
    }
}

/* ── HTTP 请求展开：元件工具栏在卡片内、头行下方（对齐逻辑控制器 TXN） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http.is-selected,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http.is-selected,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    align-items: stretch !important;
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http.is-selected > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http.is-selected > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__head {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 0.22rem !important;
    flex: 0 0 auto !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) .jms-http-card__main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) .jms-http-card__main {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .jms-http-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card .jms-http-context--toolbar-only {
    display: block !important;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border-top: 1px solid rgba(226, 232, 240, 0.92) !important;
    border-radius: 0 0 8px 8px !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .jms-http-context--toolbar-only .jms-http-context__toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card .jms-http-context--toolbar-only .jms-http-context__toolbar {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card .jms-http-context--toolbar-only .jms-http-context__toolbar-main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card .jms-http-context--toolbar-only .jms-http-context__toolbar-main {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.22rem !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card--collapsed {
    flex-direction: row !important;
    align-items: center !important;
    width: auto !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card--collapsed .jms-http-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card--collapsed .jms-http-context {
    display: none !important;
}
/* ── 取样器/逻辑控制器展开：头行 + 下方挂载工具栏（对齐 Txn-下单事务） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--if:has(> .jms-tree-node__body > .jms-if-card:not(.jms-if-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--if:has(> .jms-tree-node__body > .jms-if-card:not(.jms-if-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--transaction:has(> .jms-tree-node__body > .jms-transaction-card:not(.jms-transaction-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--transaction:has(> .jms-tree-node__body > .jms-transaction-card:not(.jms-transaction-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--loop:has(> .jms-tree-node__body > .jms-loop-card:not(.jms-loop-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--loop:has(> .jms-tree-node__body > .jms-loop-card:not(.jms-loop-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--random:has(> .jms-tree-node__body > .jms-random-card:not(.jms-random-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--random:has(> .jms-tree-node__body > .jms-random-card:not(.jms-random-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--simple:has(> .jms-tree-node__body > .jms-simple-card:not(.jms-simple-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--simple:has(> .jms-tree-node__body > .jms-simple-card:not(.jms-simple-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--catalog:has(> .jms-tree-node__body > .jms-catalog-card:not(.jms-catalog-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--catalog:has(> .jms-tree-node__body > .jms-catalog-card:not(.jms-catalog-card--collapsed)) {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}
/* ── 折叠态：仅保留头行，强制隐藏挂载区（覆盖上方 display:block） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-http-card--collapsed > .jms-http-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-card--collapsed > .jms-http-context {
    display: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card--collapsed,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card--collapsed,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card--collapsed,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card--collapsed,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card--collapsed,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card--collapsed {
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* 头行 order 仅展开态需要；折叠态避免错位 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed) .jms-if-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed) .jms-if-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed) .jms-transaction-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed) .jms-transaction-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed) .jms-loop-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed) .jms-loop-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed) .jms-random-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed) .jms-random-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed) .jms-simple-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed) .jms-simple-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) .jms-catalog-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) .jms-catalog-card__head {
    order: 1 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context {
    order: 2 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed) > .jms-if-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-if-card:not(.jms-if-card--collapsed) > .jms-if-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed) > .jms-transaction-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-transaction-card:not(.jms-transaction-card--collapsed) > .jms-transaction-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed) > .jms-loop-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed) > .jms-loop-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed) > .jms-random-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed) > .jms-random-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed) > .jms-simple-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed) > .jms-simple-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-catalog-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-catalog-card__body {
    order: 3 !important;
}
/* ── HTTP 展开：卡片高度随头行+工具栏撑开（覆盖 row_layout_fit inline-flex / flex-basis:100%） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-http-card:not(.jms-http-card--collapsed) {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: var(--jms-tree-row-h, 2.25rem) !important;
    max-height: none !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    align-items: stretch !important;
    align-self: stretch !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
}
/* ── HTTP 展开：tree-node/body 随卡片撑开（fix row-wrap 重叠） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    align-self: stretch !important;
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    align-self: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-http-card:not(.jms-http-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-http-card:not(.jms-http-card--collapsed) {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    max-height: none !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-card__head,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-card__head,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-card__head {
    flex: 0 0 auto !important;
    order: 1 !important;
    width: 100% !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-http-card:not(.jms-http-card--collapsed) > .jms-http-context--toolbar-only {
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    order: 2 !important;
    width: 100% !important;
}
/* tree-node 作为 steps 行项：展开 HTTP 时必须有高度参与 wrap 流 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    height: auto !important;
    min-height: fit-content !important;
    align-self: stretch !important;
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}
/* ══════════════════════════════════════════════════════════════════
   树形步骤布局重构（末位覆盖 row_layout_fit 双列 + inline-flex）
   目标：单列纵向流式排版，展开 HTTP/逻辑控制器时祖先容器同步撑高
   ══════════════════════════════════════════════════════════════════ */

/* ── 1. 步骤列表：强制单列，禁止双列 wrap 导致重叠 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-content: stretch !important;
    justify-content: flex-start !important;
    gap: 0.28rem !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
    min-height: fit-content !important;
    height: auto !important;
}

@media (min-width: 900px) {
    body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node,
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ── 2. HTTP 卡片：树形视图统一 column，禁用 inline-flex 单行 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-http-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-http-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-http-card {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card.jms-http-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card.jms-http-card--collapsed,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card.jms-http-card--collapsed,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card.jms-http-card--collapsed {
    flex-direction: row !important;
    align-items: center !important;
    width: 100% !important;
    min-height: var(--jms-tree-row-h, 2.25rem) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-card__main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-card__main,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-http-card__main,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-http-card__main {
    max-width: none !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-name,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-name,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-http-path,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-http-path {
    max-width: none !important;
}

/* ── 3. tree-node / body：HTTP 展开时参与文档流撑高 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
}

/* ── 4. 逻辑控制器祖先链：子 HTTP 展开时容器不得 overflow:hidden / 高度塌陷 ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--if .jms-if-card:not(.jms-if-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--if .jms-if-card:not(.jms-if-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--loop .jms-loop-card:not(.jms-loop-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--loop .jms-loop-card:not(.jms-loop-card--collapsed),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--transaction .jms-transaction-card:not(.jms-transaction-card--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--transaction .jms-transaction-card:not(.jms-transaction-card--collapsed) {
    overflow: visible !important;
    height: auto !important;
    min-height: fit-content !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0.28rem !important;
    width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--if:not(.jms-tree-node--collapsed),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--if:has(> .jms-tree-node__body > .jms-if-card:not(.jms-if-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--loop:has(> .jms-tree-node__body > .jms-loop-card:not(.jms-loop-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--loop:has(> .jms-tree-node__body > .jms-loop-card:not(.jms-loop-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--transaction:has(> .jms-tree-node__body > .jms-transaction-card:not(.jms-transaction-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--transaction:has(> .jms-tree-node__body > .jms-transaction-card:not(.jms-transaction-card--collapsed)) {
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
    align-items: stretch !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--if > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--if > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--loop > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--loop > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tree-node--transaction > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--transaction > .jms-tree-node__body {
    width: 100% !important;
    height: auto !important;
    min-height: fit-content !important;
    overflow: visible !important;
}

/* ── collcascade1: 折叠态强制隐藏子步骤 body（覆盖 treeref1 display:flex） ── */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card--collapsed > .jms-if-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card--collapsed > .jms-if-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card--collapsed > .jms-if-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card--collapsed > .jms-if-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card--collapsed > .jms-transaction-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card--collapsed > .jms-transaction-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card--collapsed > .jms-transaction-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card--collapsed > .jms-transaction-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card--collapsed > .jms-loop-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card--collapsed > .jms-loop-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card--collapsed > .jms-loop-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card--collapsed > .jms-loop-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card--collapsed > .jms-random-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card--collapsed > .jms-random-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card--collapsed > .jms-random-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card--collapsed > .jms-random-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card--collapsed > .jms-simple-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card--collapsed > .jms-simple-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card--collapsed > .jms-simple-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card--collapsed > .jms-simple-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card--collapsed > .jms-catalog-card__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card--collapsed > .jms-catalog-card__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card--collapsed > .jms-catalog-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card--collapsed > .jms-catalog-card__body.jms-tree-if-children {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: hidden !important;
}

/* ---- css/jms_catalog_native_card_mount_collapse_fix_v1.css ---- */
/**
 * 原生 catalog 控制器卡片（TXN/LOOP/RND/SIM）· 挂载工具栏折叠联动
 * 修复：polish 用 legacy *-card--collapsed，native 视图仅用 jms-catalog-card--collapsed，导致工具栏无法收回
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card.jms-catalog-card--collapsed > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card.jms-catalog-card--collapsed > .jms-if-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card.jms-catalog-card--collapsed > .jms-if-mount-context--toolbar-only {
    display: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-transaction-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card.jms-catalog-card--expandable:not(.jms-catalog-card--collapsed) > .jms-catalog-mount-context {
    display: block !important;
}

/* ---- css/jms_tg_mount_children_gap_unify.css ---- */
/**
 * 树形视图 · 挂载区（取样器/逻辑控制器）子步骤间距与主步骤区对齐（隔离模块）
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-mount-children {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0.06rem !important;
    row-gap: 0.06rem !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab[class*="jms-density-"] .jms-if-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab[class*="jms-density-"] .jms-random-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab[class*="jms-density-"] .jms-simple-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab[class*="jms-density-"] .jms-transaction-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab[class*="jms-density-"] .jms-loop-card__body.jms-tree-if-children,
body.lth-tg-view-tree.lth-hub-jmeter-tab[class*="jms-density-"] .jms-catalog-card__body.jms-tree-if-children {
    gap: var(--jms-density-steps-gap, 0.06rem) !important;
    row-gap: var(--jms-density-steps-gap, 0.06rem) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-mount-children > .jms-tree-node {
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children .jms-aux-card,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children .jms-aux-card,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-mount-children .jms-aux-card {
    margin-bottom: 0 !important;
}
/* Mount children tree rows: align drag-handle + card on one line like top-level steps */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-mount-children > .jms-tree-node {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    min-height: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-mount-children > .jms-tree-node > .jms-tree-drag-handle {
    flex: 0 0 auto !important;
    align-self: center !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-if-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-random-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-random-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-simple-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-simple-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-loop-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-http-mount-children > .jms-tree-node > .jms-tree-node__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}
/* ---- css/jms_http_expand_mount_gap_fix.css ---- */
/**
 * HTTP 取样器展开 · 挂载区紧贴工具栏（隔离模块，覆盖 row_layout_fit 在 Studio v2 单列下的纵向拉伸）
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http.is-selected,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http.is-selected > .jms-tree-node__body,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http.is-selected + .jms-http-mount-children,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) + .jms-http-mount-children {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 0 !important;
}

/* 非 Studio v2 单列树（tree_layout column）同样避免纵向撑满 */
body.lth-tg-view-tree.lth-hub-jmeter-tab:not(.lth-studio-v2) .jms-tg-tree-steps > .jms-tree-node--http.is-selected,
body.lth-tg-view-tree.lth-hub-jmeter-tab:not(.lth-studio-v2) .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
}

body.lth-tg-view-tree.lth-hub-jmeter-tab:not(.lth-studio-v2) .jms-tg-tree-steps > .jms-tree-node--http.is-selected > .jms-tree-node__body,
body.lth-tg-view-tree.lth-hub-jmeter-tab:not(.lth-studio-v2) .jms-tg-tree-steps > .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) > .jms-tree-node__body {
    flex: 0 0 auto !important;
    height: auto !important;
}

/* ---- css/jms_tg_tree_expand_top_blank_fix_v1.css ---- */
/**
 * 树形步骤 · 展开组件顶部空白修复（隔离模块，末位覆盖）
 * 根因：catalog/控制器展开时 tree-node 被 flex:1 1 100% 纵向撑满，
 *       再叠加 align-items:center 使卡片垂直居中，头行上方出现大块空白。
 * 修复：展开态仅占内容高度，内容贴顶向下展开。
 */

/* 1) 步骤行贴顶对齐，禁止纵向居中 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node {
    align-items: flex-start !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps > .jms-tree-node > .jms-tree-drag-handle,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node > .jms-tree-drag-handle {
    align-self: flex-start !important;
}

/* 2) catalog 节点：禁止撑满剩余高度（覆盖 catalog_element_tree_layout_fit） */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node--catalog {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
}

@media (min-width: 900px) {
    body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps > .jms-tree-node--catalog {
        flex: 0 0 auto !important;
    }
}

body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--catalog .jms-tree-node__body {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
}

/* 3) 展开态 catalog / 逻辑控制器 / HTTP：仅占内容高度 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--catalog:has(> .jms-tree-node__body > .jms-catalog-card:not(.jms-catalog-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--catalog:has(> .jms-tree-node__body > .jms-catalog-card:not(.jms-catalog-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--if:has(> .jms-tree-node__body > .jms-if-card:not(.jms-if-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--if:has(> .jms-tree-node__body > .jms-if-card:not(.jms-if-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--transaction:has(> .jms-tree-node__body > .jms-transaction-card:not(.jms-transaction-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--transaction:has(> .jms-tree-node__body > .jms-transaction-card:not(.jms-transaction-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--loop:has(> .jms-tree-node__body > .jms-loop-card:not(.jms-loop-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--loop:has(> .jms-tree-node__body > .jms-loop-card:not(.jms-loop-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--random:has(> .jms-tree-node__body > .jms-random-card:not(.jms-random-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--random:has(> .jms-tree-node__body > .jms-random-card:not(.jms-random-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--simple:has(> .jms-tree-node__body > .jms-simple-card:not(.jms-simple-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--simple:has(> .jms-tree-node__body > .jms-simple-card:not(.jms-simple-card--collapsed)),
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http.is-selected,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http.is-selected,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--http:has(> .jms-tree-node__body > .jms-http-card:not(.jms-http-card--collapsed)) {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
}

/* 4) 控制器子步骤行同样贴顶 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-if-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-transaction-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-loop-card__body.jms-tree-if-children > .jms-tree-node,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-catalog-card__body.jms-tree-if-children > .jms-tree-node {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    align-items: flex-start !important;
}

/* ---- css/jms_logic_ctrl_mount_toolbar_order_fix.css ---- */
/**
 * 逻辑控制器挂载工具栏 flex order 补全（loop / random / simple）
 * 问题：jms_tg_logic_mount_toolbar_polish 仅给 if/transaction/catalog 设 order:2，
 *       loop/random/simple 工具栏默认 order:0，展开时会跑到头行上方。
 * 范围：仅补缺失的 order，不改已有 polish 规则。
 */
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-loop-card:not(.jms-loop-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-random-card:not(.jms-random-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-simple-card:not(.jms-simple-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-catalog-card:not(.jms-catalog-card--collapsed) > .jms-if-mount-context--toolbar-only {
    order: 2 !important;
}

/* ---- css/output_modal_ui.css ---- */
/**
 * 生成结果弹窗 UI（隔离模块，仅 #modal-output）
 */
#modal-output.jms-modal-open {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.52);
    backdrop-filter: blur(6px);
}

body.lth-studio-v2 #modal-output.jms-modal-open {
    background: rgba(0, 0, 0, 0.62);
    backdrop-filter: blur(4px);
}

#modal-output .jms-output-modal,
body.lth-studio-v2 #modal-output .jms-output-modal {
    width: min(52rem, 94vw);
    max-width: min(52rem, 94vw);
    max-height: min(90vh, 44rem);
    display: flex;
    flex-direction: column;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.35);
    overflow: hidden;
}

body.lth-studio-v2 #modal-output .jms-output-modal {
    border-color: var(--lth-border-subtle, rgba(148, 163, 184, 0.25));
    background: rgba(17, 24, 39, 0.96);
    color: var(--lth-text, #f1f5f9);
    box-shadow: var(--lth-shadow-panel, 0 25px 50px -12px rgba(0, 0, 0, 0.5));
}

#modal-output .jms-output-modal__head,
body.lth-studio-v2 #modal-output .jms-output-modal__head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 3rem 0.75rem 1.25rem;
    border-bottom: 1px solid #e2e8f0;
    background: linear-gradient(125deg, #f8fafc 0%, #f0fdfa 100%);
    flex-shrink: 0;
}

body.lth-studio-v2 #modal-output .jms-output-modal__head {
    border-bottom-color: var(--lth-border-subtle, rgba(148, 163, 184, 0.2));
    background: rgba(255, 255, 255, 0.03);
}

#modal-output .jms-output-modal__head-main,
body.lth-studio-v2 #modal-output .jms-output-modal__head-main {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

#modal-output .jms-output-modal__title,
body.lth-studio-v2 #modal-output .jms-output-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    white-space: nowrap;
    flex-shrink: 0;
}

body.lth-studio-v2 #modal-output .jms-output-modal__title {
    color: var(--lth-text, #f1f5f9) !important;
}

#modal-output .jms-output-modal__close,
body.lth-studio-v2 #modal-output .jms-output-modal__close {
    position: static;
    top: auto;
    right: auto;
    left: auto;
    transform: none;
    z-index: 5;
    flex-shrink: 0;
    margin: 0 0 0 auto;
    border: none;
    background: #e2e8f0;
    color: #475569;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

body.lth-studio-v2 #modal-output .jms-output-modal__close {
    background: rgba(255, 255, 255, 0.08);
    color: var(--lth-text-muted, #94a3b8);
}

#modal-output .jms-output-modal__close:hover,
body.lth-studio-v2 #modal-output .jms-output-modal__close:hover {
    background: #cbd5e1;
}

body.lth-studio-v2 #modal-output .jms-output-modal__close:hover {
    background: rgba(255, 255, 255, 0.14);
}

/* 分段 Tab 切换器：与标题同一行 */
#modal-output .jms-output-modal__tabs,
body.lth-studio-v2 #modal-output .jms-output-modal__tabs {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem;
    padding: 0.2rem;
    margin: 0;
    border-radius: 0.625rem;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(148, 163, 184, 0.35);
    flex: 1 1 auto;
    min-width: min(100%, 18rem);
    max-width: 100%;
}

body.lth-studio-v2 #modal-output .jms-output-modal__tabs {
    background: rgba(0, 0, 0, 0.28);
    border-color: var(--lth-border-subtle, rgba(148, 163, 184, 0.2));
}

#modal-output .jms-output-tab.tab-btn,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn {
    flex: 1 1 0;
    min-width: 4.5rem;
    border: none;
    border-radius: 0.5rem;
    background: transparent;
    padding: 0.45rem 0.85rem;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #64748b;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    white-space: nowrap;
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn {
    color: var(--lth-text-muted, #94a3b8);
}

#modal-output .jms-output-tab.tab-btn:hover,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn:hover {
    color: #334155;
    background: rgba(255, 255, 255, 0.55);
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn:hover {
    color: var(--lth-text, #e2e8f0);
    background: rgba(255, 255, 255, 0.06);
}

#modal-output .jms-output-tab.tab-btn.hf-tab-active,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    background: #fff;
    color: #0f766e;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    background: rgba(45, 212, 191, 0.18);
    color: #99f6e4;
    box-shadow: inset 0 0 0 1px rgba(45, 212, 191, 0.35);
}

#modal-output .jms-output-modal__main {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.75rem 1.25rem 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

/* JMX 结构摘要：多列网格 */
#modal-output .jms-output-summary,
body.lth-studio-v2 #modal-output .jms-output-summary,
#modal-output #summary-box,
body.lth-studio-v2 #modal-output #summary-box {
    margin: 0;
    flex-shrink: 0;
    padding: 0.75rem 0.875rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(16, 185, 129, 0.25);
    background: linear-gradient(135deg, rgba(236, 253, 245, 0.95) 0%, rgba(240, 253, 250, 0.85) 100%);
}

body.lth-studio-v2 #modal-output #summary-box,
body.lth-studio-v2 #modal-output .jms-output-summary {
    border-color: rgba(45, 212, 191, 0.22);
    background: rgba(45, 212, 191, 0.08);
}

#modal-output .jms-output-summary__title,
body.lth-studio-v2 #modal-output .jms-output-summary__title {
    margin: 0 0 0.55rem;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #047857;
}

body.lth-studio-v2 #modal-output .jms-output-summary__title {
    color: #6ee7b7;
}

#modal-output .jms-output-summary-grid,
body.lth-studio-v2 #modal-output .jms-output-summary-grid,
#modal-output #summary-list,
body.lth-studio-v2 #modal-output #summary-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
    min-height: 0;
}

#modal-output .jms-output-summary-grid__item,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.45rem 0.55rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(16, 185, 129, 0.12);
    min-width: 0;
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__item {
    background: rgba(0, 0, 0, 0.22);
    border-color: rgba(45, 212, 191, 0.12);
}

#modal-output .jms-output-summary-grid__label,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #059669;
    line-height: 1.2;
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__label {
    color: #5eead4;
}

#modal-output .jms-output-summary-grid__value,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__value {
    font-size: 12px;
    font-weight: 500;
    color: #134e4a;
    line-height: 1.35;
    word-break: break-word;
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__value {
    color: #ecfdf5;
}

#modal-output .jms-output-summary-grid__item--plan,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan {
    grid-column: span 2;
    background: rgba(255, 255, 255, 0.88);
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan {
    background: rgba(45, 212, 191, 0.12);
}

#modal-output .jms-output-summary-grid__item--plan .jms-output-summary-grid__value,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan .jms-output-summary-grid__value {
    font-size: 13px;
    font-weight: 700;
}

#modal-output .jms-output-summary-grid__item--wide,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--wide {
    grid-column: span 2;
}

#modal-output .jms-output-summary-grid__item--sub,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--sub {
    grid-column: span 2;
    background: rgba(255, 255, 255, 0.5);
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--sub {
    background: rgba(0, 0, 0, 0.15);
}

#modal-output .jms-output-summary-grid__item--sub .jms-output-summary-grid__label,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--sub .jms-output-summary-grid__label {
    color: #0d9488;
    text-transform: none;
    font-size: 11px;
}

#modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
body.lth-studio-v2 #modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
#modal-output #link-grafana.jms-output-tool-btn,
body.lth-studio-v2 #modal-output #link-grafana.jms-output-tool-btn {
    border-radius: 0.5rem;
    border: 1px solid #e2e8f0;
    background: #fff;
    padding: 0.35rem 0.75rem;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
}

body.lth-studio-v2 #modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
body.lth-studio-v2 #modal-output #link-grafana.jms-output-tool-btn {
    border-color: var(--lth-border-subtle);
    background: rgba(255, 255, 255, 0.04);
    color: var(--lth-text-muted);
}

#modal-output .hf-out,
body.lth-studio-v2 #modal-output .hf-out {
    min-height: 11rem;
    max-height: min(42vh, 22rem);
    margin-top: 0;
}

#modal-output .jms-output-modal__foot,
body.lth-studio-v2 #modal-output .jms-output-modal__foot {
    padding: 0.5rem 1.25rem 0.875rem;
    font-size: 11px;
    color: #94a3b8;
    flex-shrink: 0;
}

@media (max-width: 720px) {
    #modal-output .jms-output-modal__head-main {
        flex-direction: column;
        align-items: stretch;
    }

    #modal-output .jms-output-summary-grid,
    #modal-output #summary-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #modal-output .jms-output-summary-grid__item--plan,
    #modal-output .jms-output-summary-grid__item--wide,
    #modal-output .jms-output-summary-grid__item--sub {
        grid-column: span 2;
    }
}

@media (max-width: 420px) {
    #modal-output .jms-output-summary-grid,
    #modal-output #summary-list {
        grid-template-columns: 1fr;
    }

    #modal-output .jms-output-summary-grid__item--plan,
    #modal-output .jms-output-summary-grid__item--wide,
    #modal-output .jms-output-summary-grid__item--sub {
        grid-column: span 1;
    }

    #modal-output .hf-out {
        max-height: 36vh;
    }
}

/* === outputui3: 全宽 Tab 栏 + 摘要网格密度（覆盖 studio 内联旧样式） === */
#modal-output .jms-output-modal,
body.lth-studio-v2 #modal-output .jms-output-modal {
    width: min(56rem, 96vw) !important;
    max-width: min(56rem, 96vw) !important;
}

#modal-output .jms-output-modal__head,
body.lth-studio-v2 #modal-output .jms-output-modal__head {
    padding: 0.875rem 1.25rem !important;
    border-bottom: none !important;
}

#modal-output .jms-output-modal__tabs-bar,
body.lth-studio-v2 #modal-output .jms-output-modal__tabs-bar {
    flex-shrink: 0;
    padding: 0 1.25rem;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}

body.lth-studio-v2 #modal-output .jms-output-modal__tabs-bar {
    border-bottom-color: var(--lth-border-subtle, rgba(148, 163, 184, 0.2));
    background: rgba(0, 0, 0, 0.18);
}

#modal-output .jms-output-modal__tabs,
body.lth-studio-v2 #modal-output .jms-output-modal__tabs {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}

#modal-output .jms-output-tab.tab-btn,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    min-width: 0 !important;
    padding: 0.7rem 1rem 0.65rem !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #64748b;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn {
    color: var(--lth-text-muted, #94a3b8);
}

#modal-output .jms-output-tab__label,
body.lth-studio-v2 #modal-output .jms-output-tab__label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

#modal-output .jms-output-tab__hint,
body.lth-studio-v2 #modal-output .jms-output-tab__hint {
    font-size: 10px;
    font-weight: 500;
    opacity: 0.72;
    line-height: 1.2;
}

#modal-output .jms-output-tab.tab-btn:hover,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn:hover {
    background: rgba(15, 23, 42, 0.04) !important;
    color: #334155;
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn:hover {
    background: rgba(255, 255, 255, 0.05) !important;
    color: var(--lth-text, #e2e8f0);
}

#modal-output .jms-output-tab.tab-btn.hf-tab-active,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    color: #0f766e !important;
    border-bottom-color: #14b8a6 !important;
    background: rgba(20, 184, 166, 0.08) !important;
    box-shadow: none !important;
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    color: #99f6e4 !important;
    border-bottom-color: #2dd4bf !important;
    background: rgba(45, 212, 191, 0.1) !important;
}

#modal-output .jms-output-tab.tab-btn.hf-tab-active .jms-output-tab__hint,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active .jms-output-tab__hint {
    opacity: 0.9;
}

#modal-output #summary-box,
body.lth-studio-v2 #modal-output #summary-box {
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

#modal-output #summary-list,
body.lth-studio-v2 #modal-output #summary-list {
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0.4rem 0.5rem !important;
}

#modal-output .jms-output-summary-grid__item--plan,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan {
    grid-column: 1 / -1 !important;
}

#modal-output .jms-output-summary-grid__item--wide,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--wide {
    grid-column: 1 / -1 !important;
}

#modal-output .jms-output-summary-grid__item--sub,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--sub {
    grid-column: span 1 !important;
}

#modal-output[data-active-tab="readme"] #summary-box,
body.lth-studio-v2 #modal-output[data-active-tab="readme"] #summary-box {
    display: none !important;
}

#modal-output[data-active-tab="readme"] #out-readme:not(.hidden),
body.lth-studio-v2 #modal-output[data-active-tab="readme"] #out-readme:not(.hidden) {
    max-height: min(56vh, 28rem);
}

@media (max-width: 720px) {
    #modal-output #summary-list,
    body.lth-studio-v2 #modal-output #summary-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #modal-output .jms-output-summary-grid__item--plan,
    #modal-output .jms-output-summary-grid__item--wide,
    body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan,
    body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--wide {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 420px) {
    #modal-output #summary-list,
    body.lth-studio-v2 #modal-output #summary-list {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* === outputui4: 碎玻璃玻璃态 + 配色优化（仅 #modal-output） === */
#modal-output.jms-modal-open,
body.lth-studio-v2 #modal-output.jms-modal-open {
    background: linear-gradient(
        145deg,
        rgba(15, 23, 42, 0.38) 0%,
        rgba(13, 148, 136, 0.22) 42%,
        rgba(30, 41, 59, 0.48) 100%
    ) !important;
    backdrop-filter: blur(14px) saturate(1.35) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.35) !important;
}

body.lth-studio-v2 #modal-output.jms-modal-open {
    background: linear-gradient(
        145deg,
        rgba(2, 6, 23, 0.72) 0%,
        rgba(13, 148, 136, 0.18) 45%,
        rgba(15, 23, 42, 0.78) 100%
    ) !important;
}

#modal-output .jms-output-modal,
body.lth-studio-v2 #modal-output .jms-output-modal {
    position: relative;
    isolation: isolate;
    border-radius: 1.125rem !important;
    border: 1px solid rgba(255, 255, 255, 0.55) !important;
    background: linear-gradient(
        160deg,
        rgba(255, 255, 255, 0.78) 0%,
        rgba(240, 253, 250, 0.62) 48%,
        rgba(248, 250, 252, 0.72) 100%
    ) !important;
    backdrop-filter: blur(22px) saturate(1.65) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.65) !important;
    box-shadow:
        0 24px 64px rgba(15, 23, 42, 0.18),
        0 0 0 1px rgba(255, 255, 255, 0.45) inset,
        0 1px 0 rgba(255, 255, 255, 0.85) inset,
        0 0 40px rgba(20, 184, 166, 0.12) !important;
    overflow: hidden !important;
}

body.lth-studio-v2 #modal-output .jms-output-modal {
    border-color: rgba(255, 255, 255, 0.14) !important;
    background: linear-gradient(
        160deg,
        rgba(30, 41, 59, 0.72) 0%,
        rgba(15, 23, 42, 0.58) 50%,
        rgba(17, 24, 39, 0.68) 100%
    ) !important;
    box-shadow:
        0 28px 72px rgba(0, 0, 0, 0.55),
        0 0 0 1px rgba(255, 255, 255, 0.07) inset,
        0 1px 0 rgba(255, 255, 255, 0.1) inset,
        0 0 56px rgba(45, 212, 191, 0.14) !important;
}

#modal-output .jms-output-modal::before,
body.lth-studio-v2 #modal-output .jms-output-modal::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5.5rem;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.42) 0%,
        rgba(255, 255, 255, 0) 100%
    );
    pointer-events: none;
    z-index: 0;
}

body.lth-studio-v2 #modal-output .jms-output-modal::before {
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.08) 0%,
        rgba(255, 255, 255, 0) 100%
    );
}

#modal-output .jms-output-modal > *,
body.lth-studio-v2 #modal-output .jms-output-modal > * {
    position: relative;
    z-index: 1;
}

#modal-output .jms-output-modal__head,
body.lth-studio-v2 #modal-output .jms-output-modal__head {
    background: linear-gradient(
        125deg,
        rgba(255, 255, 255, 0.55) 0%,
        rgba(204, 251, 241, 0.35) 100%
    ) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.5) !important;
}

body.lth-studio-v2 #modal-output .jms-output-modal__head {
    background: linear-gradient(
        125deg,
        rgba(255, 255, 255, 0.06) 0%,
        rgba(45, 212, 191, 0.08) 100%
    ) !important;
    border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

#modal-output .jms-output-modal__title,
body.lth-studio-v2 #modal-output .jms-output-modal__title {
    color: #0f172a !important;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
}

body.lth-studio-v2 #modal-output .jms-output-modal__title {
    color: #f8fafc !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

#modal-output .jms-output-modal__close,
body.lth-studio-v2 #modal-output .jms-output-modal__close {
    background: rgba(255, 255, 255, 0.65) !important;
    border: 1px solid rgba(255, 255, 255, 0.75) !important;
    color: #475569 !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

body.lth-studio-v2 #modal-output .jms-output-modal__close {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    color: #cbd5e1 !important;
    box-shadow: none;
}

#modal-output .jms-output-modal__close:hover,
body.lth-studio-v2 #modal-output .jms-output-modal__close:hover {
    background: rgba(255, 255, 255, 0.92) !important;
    color: #0f766e !important;
}

body.lth-studio-v2 #modal-output .jms-output-modal__close:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    color: #99f6e4 !important;
}

#modal-output .jms-output-modal__tabs-bar,
body.lth-studio-v2 #modal-output .jms-output-modal__tabs-bar {
    background: rgba(255, 255, 255, 0.28) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

body.lth-studio-v2 #modal-output .jms-output-modal__tabs-bar {
    background: rgba(0, 0, 0, 0.22) !important;
    border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

#modal-output .jms-output-tab.tab-btn.hf-tab-active,
body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    color: #0d9488 !important;
    border-bottom-color: rgba(20, 184, 166, 0.85) !important;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.55) 0%,
        rgba(204, 251, 241, 0.28) 100%
    ) !important;
}

body.lth-studio-v2 #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    color: #5eead4 !important;
    border-bottom-color: rgba(45, 212, 191, 0.9) !important;
    background: linear-gradient(
        180deg,
        rgba(45, 212, 191, 0.14) 0%,
        rgba(45, 212, 191, 0.04) 100%
    ) !important;
}

#modal-output #summary-box,
body.lth-studio-v2 #modal-output #summary-box,
#modal-output .jms-output-summary,
body.lth-studio-v2 #modal-output .jms-output-summary {
    border: 1px solid rgba(255, 255, 255, 0.55) !important;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.52) 0%,
        rgba(204, 251, 241, 0.28) 100%
    ) !important;
    backdrop-filter: blur(12px) saturate(1.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.4);
    box-shadow:
        0 4px 16px rgba(13, 148, 136, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

body.lth-studio-v2 #modal-output #summary-box,
body.lth-studio-v2 #modal-output .jms-output-summary {
    border-color: rgba(45, 212, 191, 0.22) !important;
    background: linear-gradient(
        135deg,
        rgba(45, 212, 191, 0.12) 0%,
        rgba(15, 23, 42, 0.35) 100%
    ) !important;
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

#modal-output .jms-output-summary-grid__item,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item {
    background: rgba(255, 255, 255, 0.58) !important;
    border: 1px solid rgba(255, 255, 255, 0.72) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__item {
    background: rgba(15, 23, 42, 0.42) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

#modal-output .jms-output-summary-grid__item--plan,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan {
    background: rgba(255, 255, 255, 0.72) !important;
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--plan {
    background: rgba(45, 212, 191, 0.14) !important;
}

#modal-output .jms-output-summary-grid__item--sub,
body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--sub {
    background: rgba(255, 255, 255, 0.42) !important;
}

body.lth-studio-v2 #modal-output .jms-output-summary-grid__item--sub {
    background: rgba(0, 0, 0, 0.28) !important;
}

#modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
body.lth-studio-v2 #modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
#modal-output #link-grafana.jms-output-tool-btn,
body.lth-studio-v2 #modal-output #link-grafana.jms-output-tool-btn {
    border: 1px solid rgba(255, 255, 255, 0.65) !important;
    background: rgba(255, 255, 255, 0.55) !important;
    color: #334155 !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

body.lth-studio-v2 #modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
body.lth-studio-v2 #modal-output #link-grafana.jms-output-tool-btn {
    border-color: rgba(255, 255, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #cbd5e1 !important;
    box-shadow: none;
}

#modal-output .jms-output-modal__toolbar .jms-output-tool-btn:hover,
body.lth-studio-v2 #modal-output .jms-output-modal__toolbar .jms-output-tool-btn:hover {
    background: rgba(255, 255, 255, 0.88) !important;
    color: #0f766e !important;
    box-shadow: 0 4px 12px rgba(20, 184, 166, 0.15);
}

body.lth-studio-v2 #modal-output .jms-output-modal__toolbar .jms-output-tool-btn:hover,
body.lth-studio-v2 #modal-output #link-grafana.jms-output-tool-btn:hover {
    background: rgba(45, 212, 191, 0.18) !important;
    color: #99f6e4 !important;
}

#modal-output .hf-out,
body.lth-studio-v2 #modal-output .hf-out {
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: linear-gradient(
        165deg,
        rgba(15, 23, 42, 0.92) 0%,
        rgba(30, 41, 59, 0.88) 100%
    ) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 8px 24px rgba(0, 0, 0, 0.28);
    border-radius: 0.875rem !important;
}

#modal-output #out-jmx,
body.lth-studio-v2 #modal-output #out-jmx {
    color: #bae6fd !important;
}

#modal-output #out-readme,
body.lth-studio-v2 #modal-output #out-readme {
    color: #a7f3d0 !important;
}

#modal-output .jms-output-modal__foot,
body.lth-studio-v2 #modal-output .jms-output-modal__foot {
    color: #64748b !important;
    border-top: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

body.lth-studio-v2 #modal-output .jms-output-modal__foot {
    color: #94a3b8 !important;
    border-top-color: rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.18);
}

/* ---- css/jms_output_modal_jmx_tab_readability_v1.css ---- */
/**
 * 生成结果弹窗 · JMX Tab 可读性增强（隔离模块，末位覆盖 glass 浅色字）
 * 场景：lth-studio-v2 下摘要网格与 JMX 正文对比度不足、排版松散。
 */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary__title {
    color: #0f766e !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    text-transform: none !important;
    margin: 0 0 0.65rem !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #summary-box,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary {
    padding: 0.85rem 0.95rem !important;
    border-radius: 0.75rem !important;
    border: 1px solid rgba(13, 148, 136, 0.28) !important;
    background: linear-gradient(135deg, rgba(240, 253, 250, 0.98) 0%, rgba(255, 255, 255, 0.96) 100%) !important;
    box-shadow: 0 2px 10px rgba(15, 118, 110, 0.08) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #summary-list,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0.5rem 0.65rem !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__item {
    padding: 0.5rem 0.6rem !important;
    border-radius: 0.5rem !important;
    border: 1px solid rgba(13, 148, 136, 0.16) !important;
    background: rgba(255, 255, 255, 0.92) !important;
    box-shadow: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__label {
    color: #047857 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    line-height: 1.25 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__value {
    color: #0f172a !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__item--plan {
    grid-column: span 2 !important;
    background: rgba(204, 251, 241, 0.45) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__item--plan .jms-output-summary-grid__value {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #134e4a !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__item--wide,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__item--sub {
    grid-column: span 2 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid__item--sub .jms-output-summary-grid__label {
    text-transform: none !important;
    font-size: 11px !important;
    color: #0d9488 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #out-jmx,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #out-jmx.hf-out {
    color: #e2e8f0 !important;
    background: #0f172a !important;
    border: 1px solid rgba(51, 65, 85, 0.85) !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    padding: 0.85rem 1rem !important;
    border-radius: 0.75rem !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal__main {
    gap: 0.75rem !important;
}

@media (max-width: 720px) {
    body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #summary-list,
    body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
/* ---- css/jms_jmx_import_modal_green_v2.css ---- */
/**
 * JMX 解析弹窗 · 绿色专业主题（仅 #modal-jmx-import，高优先级覆盖）
 */
#modal-jmx-import.jms-modal-open {
    background: rgba(6, 78, 59, 0.38) !important;
    backdrop-filter: blur(12px) saturate(140%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
}

#modal-jmx-import .jmx-import-modal-card,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal-card {
    border: 1px solid rgba(167, 243, 208, 0.65) !important;
    background: linear-gradient(
        168deg,
        rgba(255, 255, 255, 0.97) 0%,
        rgba(236, 253, 245, 0.94) 42%,
        rgba(209, 250, 229, 0.9) 100%
    ) !important;
    box-shadow:
        0 24px 48px rgba(6, 78, 59, 0.18),
        0 0 0 1px rgba(255, 255, 255, 0.55) inset !important;
    color: #064e3b !important;
}

#modal-jmx-import .jmx-import-modal__head {
    padding: 1rem 1.15rem 0.75rem !important;
    border-bottom: 1px solid rgba(16, 185, 129, 0.22) !important;
    background: rgba(255, 255, 255, 0.35);
}

#modal-jmx-import .jmx-import-modal__title,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__title {
    color: #065f46 !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em;
}

#modal-jmx-import .jmx-import-modal__sub,
#modal-jmx-import .jmx-import-modal__hint,
#modal-jmx-import #jmx-import-filename,
#modal-jmx-import #jmx-import-status,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__sub,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__hint,
body.lth-studio-v2 #modal-jmx-import #jmx-import-filename,
body.lth-studio-v2 #modal-jmx-import #jmx-import-status {
    color: #047857 !important;
    opacity: 1 !important;
    font-size: 0.78rem !important;
    line-height: 1.5 !important;
}

#modal-jmx-import #jmx-import-status {
    font-weight: 600;
    color: #065f46 !important;
}

#modal-jmx-import .jmx-import-modal__scroll {
    padding: 0.85rem 1.15rem 0.75rem !important;
}

#modal-jmx-import .jmx-import-drop,
body.lth-studio-v2 #modal-jmx-import .jmx-import-drop {
    border: 2px dashed rgba(16, 185, 129, 0.45) !important;
    background: rgba(255, 255, 255, 0.72) !important;
    padding: 1.15rem 1rem !important;
}

#modal-jmx-import .jmx-import-drop .text-sm,
#modal-jmx-import .jmx-import-drop p,
body.lth-studio-v2 #modal-jmx-import .jmx-import-drop .text-sm {
    color: #065f46 !important;
    font-weight: 600 !important;
}

#modal-jmx-import .jmx-import-drop:hover,
#modal-jmx-import .jmx-import-drop.is-dragover {
    border-color: rgba(5, 150, 105, 0.65) !important;
    background: rgba(236, 253, 245, 0.92) !important;
}

#modal-jmx-import .jmx-import-summary-grid,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid {
    gap: 0.45rem 0.65rem !important;
    padding: 0.65rem 0.85rem !important;
    border: 1px solid rgba(16, 185, 129, 0.32) !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

#modal-jmx-import .jmx-import-summary-grid__label,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid__label {
    color: #059669 !important;
    opacity: 1 !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
}

#modal-jmx-import .jmx-import-summary-grid__value,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid__value {
    color: #064e3b !important;
    font-size: 0.86rem !important;
    font-weight: 700 !important;
}

#modal-jmx-import #jmx-import-csv-panel,
body.lth-studio-v2 #modal-jmx-import #jmx-import-csv-panel {
    border-color: rgba(245, 158, 11, 0.35) !important;
    background: rgba(255, 251, 235, 0.88) !important;
}

#modal-jmx-import .jmx-import-csv-panel__title,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-panel__title {
    color: #92400e !important;
}

#modal-jmx-import .jmx-import-csv-row__name,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__name {
    color: #0f172a !important;
}

#modal-jmx-import .jmx-import-modal__foot {
    border-top: 1px solid rgba(16, 185, 129, 0.2) !important;
    background: rgba(236, 253, 245, 0.55) !important;
    padding: 0.9rem 1.15rem 1rem !important;
}

#modal-jmx-import .jmx-import-modal__btn--ghost,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__btn--ghost {
    border-color: rgba(16, 185, 129, 0.35) !important;
    background: rgba(255, 255, 255, 0.85) !important;
    color: #047857 !important;
}

#modal-jmx-import .jmx-import-modal__btn--primary,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__btn--primary {
    background: linear-gradient(135deg, #059669 0%, #047857 100%) !important;
    color: #ecfdf5 !important;
    box-shadow: 0 4px 14px rgba(5, 150, 105, 0.28);
}

#modal-jmx-import .jmx-import-csv-row__pick-btn,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__pick-btn {
    border-color: rgba(16, 185, 129, 0.4) !important;
    background: linear-gradient(135deg, #ecfdf5, #d1fae5) !important;
    color: #047857 !important;
}


#modal-jmx-import .jmx-import-official-wrap__title { margin: 0 0 0.35rem; }
#modal-jmx-import .jmx-official-tree {
  max-height: 16rem;
  overflow: auto;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.65rem;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.55rem 0.65rem;
  font-size: 12px;
}
#modal-jmx-import .jmx-official-tree__meta {
  margin: 0 0 0.45rem;
  color: #475569;
  font-size: 11px;
}
#modal-jmx-import .jmx-official-tree__root,
#modal-jmx-import .jmx-official-tree__children {
  list-style: none;
  margin: 0;
  padding-left: 0.85rem;
}
#modal-jmx-import .jmx-official-tree__item { margin: 0.15rem 0; }
#modal-jmx-import .jmx-official-tree__summary,
#modal-jmx-import .jmx-official-tree__item--leaf {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
#modal-jmx-import .jmx-official-tree__name { font-weight: 600; color: #0f172a; }
#modal-jmx-import .jmx-official-tree__type {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: #64748b;
  font-size: 11px;
}
#modal-jmx-import .jmx-official-tree__badge {
  font-size: 10px;
  padding: 0 0.35rem;
  border-radius: 999px;
}
#modal-jmx-import .jmx-official-tree__badge--off {
  background: #fee2e2;
  color: #991b1b;
}

#modal-jmx-import .jmx-import-status--pending .jmx-import-status__main {
    color: #0f766e;
    font-weight: 600;
}
#modal-jmx-import .jmx-import-queue-note {
    margin: 7px 0 0;
    padding: 0;
    font-size: 11px;
    line-height: 1.45;
    font-weight: 400;
    color: #64748b;
}
body.lth-studio-v2 #modal-jmx-import .jmx-import-queue-note {
    color: #5f8278;
}

/* ---- css/jmx_import_modal_ui.css ---- */
/**
 * JMX 解析弹窗 UI（隔离模块，仅作用于 #modal-jmx-import）
 */
:root {
    --jmx-import-modal-edge: max(0.75rem, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
    /* 底部留白：避免弹窗贴边，移动端叠加 safe-area */
    --jmx-import-modal-bottom: max(1rem, calc(env(safe-area-inset-bottom, 0px) + 0.65rem));
    --jmx-import-modal-top: calc(max(env(safe-area-inset-top, 0px), var(--hf-gnav-height, 3.5rem)) + 0.45rem);
}

#modal-jmx-import.jms-modal-open {
    align-items: flex-start !important;
    justify-content: center !important;
    padding:
        var(--jmx-import-modal-top)
        var(--jmx-import-modal-edge)
        var(--jmx-import-modal-bottom) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}

/* 弹窗打开时锁定页面滚动，避免出现双滚动条 */
body.jmx-import-modal-open {
    overflow: hidden !important;
}

#modal-jmx-import .jmx-import-modal-card {
    display: flex;
    flex-direction: column;
    max-width: min(56rem, calc(100vw - 2rem)) !important;
    width: 100%;
    max-height: min(
        calc(100dvh - var(--jmx-import-modal-top) - var(--jmx-import-modal-bottom)),
        calc(100vh - var(--jmx-import-modal-top) - var(--jmx-import-modal-bottom))
    );
    padding: 0 !important;
    overflow: hidden;
}

#modal-jmx-import .jmx-import-modal__head {
    flex-shrink: 0;
    padding: 0.65rem 1rem 0.5rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

#modal-jmx-import .jmx-import-modal__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

#modal-jmx-import .jmx-import-modal__sub {
    margin: 0.2rem 0 0;
    font-size: 0.72rem;
    line-height: 1.35;
}

#modal-jmx-import .jmx-import-modal__scroll {
    flex: 1;
    min-height: 0;
    overflow: auto;
    overflow-anchor: none;
    padding: 0.65rem 1rem 0.55rem;
}

#modal-jmx-import .jmx-import-csv-row__pick input.jmx-import-csv-file {
    position: fixed;
    left: -9999px;
    top: 0;
    width: 1px;
    height: 1px;
    opacity: 0;
}

#modal-jmx-import .jmx-import-modal__foot {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.85rem 1.2rem 1rem;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
    background: rgba(248, 250, 252, 0.65);
}



body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__sub,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__hint,
body.lth-studio-v2 #modal-jmx-import #jmx-import-filename,



#modal-jmx-import .jmx-import-drop {
    border-radius: 0.85rem;
    padding: 1rem 0.85rem;
}

#modal-jmx-import #jmx-import-status {
    margin-top: 0.65rem !important;
}

#modal-jmx-import #jmx-import-summary {
    margin-top: 0.65rem !important;
    white-space: normal !important;
}

#modal-jmx-import .jmx-import-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.3rem 0.75rem;
    margin: 0;
    padding: 0.5rem 0.8rem;
    list-style: none;
    border-radius: 0.75rem;
    border: 1px solid rgba(16, 185, 129, 0.22);
    background: rgba(16, 185, 129, 0.08);
}

#modal-jmx-import .jmx-import-summary-grid__item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

#modal-jmx-import .jmx-import-summary-grid__label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    opacity: 0.75;
}

#modal-jmx-import .jmx-import-summary-grid__value {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.3;
    word-break: break-word;
}

#modal-jmx-import .jmx-import-summary-grid__item--wide {
    grid-column: 1 / -1;
}

#modal-jmx-import .jmx-import-summary-grid__item--plan {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: baseline;
    gap: 0.55rem;
    padding: 0.1rem 0;
}

#modal-jmx-import .jmx-import-summary-grid__item--plan .jmx-import-summary-grid__label {
    flex-shrink: 0;
    text-transform: none;
    font-size: 0.72rem;
}

#modal-jmx-import .jmx-import-summary-grid__item--plan .jmx-import-summary-grid__value {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.8rem;
}



#modal-jmx-import .jmx-import-summary-grid__item--warn .jmx-import-summary-grid__value {
    color: #b45309;
}



#modal-jmx-import #jmx-import-csv-panel {
    margin-top: 0.75rem !important;
    padding: 0.75rem 0.85rem !important;
    min-height: 8.5rem;
    border-radius: 0.75rem !important;
}


#modal-jmx-import .jmx-import-csv-panel__head,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    margin-bottom: 0.4rem;
}

#modal-jmx-import .jmx-import-csv-panel__head .jmx-import-csv-panel__title,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-panel__head .jmx-import-csv-panel__title {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

#modal-jmx-import .jmx-import-csv-bulk-btn,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-bulk-btn {
    flex: 0 0 auto;
    border: 1px solid rgba(245, 158, 11, 0.45);
    border-radius: 0.45rem;
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    color: #92400e;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.28rem 0.62rem;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(146, 64, 14, 0.08);
}

#modal-jmx-import .jmx-import-csv-bulk-btn:hover,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-bulk-btn:hover {
    border-color: rgba(217, 119, 6, 0.55);
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    color: #78350f;
}

#modal-jmx-import .jmx-import-csv-bulk-status,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-bulk-status {
    margin: 0 0 0.35rem;
    font-size: 0.65rem;
    line-height: 1.35;
    color: #047857;
}

#modal-jmx-import .jmx-import-csv-bulk-status.is-warn,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-bulk-status.is-warn {
    color: #b45309;
}


#modal-jmx-import .jmx-import-csv-panel__title {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.35;
}

#modal-jmx-import #jmx-import-csv-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem 0.65rem;
    max-height: min(18rem, 38vh);
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.15rem;
}

#modal-jmx-import .jmx-import-csv-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.55rem 0.75rem;
    padding: 0.42rem 0.55rem;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.72);
}


#modal-jmx-import .jmx-import-csv-row__info {
    min-width: 0;
}

#modal-jmx-import .jmx-import-csv-row__name {
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.74rem;
    font-weight: 600;
    line-height: 1.35;
    word-break: break-all;
}

#modal-jmx-import .jmx-import-csv-row__path {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.68rem;
    line-height: 1.35;
    color: #64748b;
    word-break: break-all;
}


#modal-jmx-import .jmx-import-csv-row__pick {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
    cursor: pointer;
    flex-shrink: 0;
}

#modal-jmx-import .jmx-import-csv-row__pick-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.85rem;
    padding: 0 0.65rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(99, 102, 241, 0.35);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.14), rgba(79, 70, 229, 0.08));
    color: #4338ca;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s;
}


#modal-jmx-import .jmx-import-csv-row__pick:hover .jmx-import-csv-row__pick-btn {
    border-color: rgba(99, 102, 241, 0.55);
    background: rgba(99, 102, 241, 0.2);
}

#modal-jmx-import .jmx-import-csv-row__pick-name {
    max-width: 11rem;
    font-size: 0.65rem;
    color: #64748b;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


#modal-jmx-import .jmx-import-csv-row__pick-name.is-selected {
    color: #047857;
    font-weight: 600;
}


#modal-jmx-import .jmx-import-modal__hint {
    margin: 0.65rem 0 0;
    font-size: 0.72rem;
    line-height: 1.45;
}

#modal-jmx-import .jmx-import-modal__btn {
    min-height: 2.25rem;
    padding: 0 1rem;
    border-radius: 0.625rem;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

#modal-jmx-import .jmx-import-modal__btn--ghost {
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: transparent;
}

#modal-jmx-import .jmx-import-modal__btn--primary {
    border: none;
    background: linear-gradient(135deg, #6366f1, #4f46e5);
    color: #fff;
}

#modal-jmx-import .jmx-import-modal__btn--primary:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}


/* ===== 碎玻璃主题（仅 #modal-jmx-import，覆盖页面深色弹窗默认） ===== */
#modal-jmx-import.jms-modal-open {
    background: rgba(6, 78, 99, 0.34) !important;
    backdrop-filter: blur(14px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(14px) saturate(150%) !important;
}

#modal-jmx-import .jmx-import-modal-card,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal-card,
body.lth-studio-v2 #modal-jmx-import .jms-modal-card.jmx-import-modal-card {
    border: 1px solid rgba(255, 255, 255, 0.58) !important;
    background: linear-gradient(
        155deg,
        rgba(240, 249, 255, 0.9) 0%,
        rgba(224, 242, 254, 0.82) 48%,
        rgba(186, 230, 253, 0.76) 100%
    ) !important;
    backdrop-filter: blur(22px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(22px) saturate(170%) !important;
    box-shadow:
        0 28px 60px rgba(8, 89, 120, 0.22),
        0 0 0 1px rgba(255, 255, 255, 0.38) inset !important;
    color: #0c4a6e !important;
}

#modal-jmx-import .jmx-import-modal__head,
#modal-jmx-import .jmx-import-modal__foot {
    border-color: rgba(14, 116, 144, 0.2) !important;
}

#modal-jmx-import .jmx-import-modal__foot {
    background: rgba(255, 255, 255, 0.42) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

#modal-jmx-import .jmx-import-modal__title,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__title {
    color: #0e4a66 !important;
}

#modal-jmx-import .jmx-import-modal__sub,
#modal-jmx-import .jmx-import-modal__hint,
#modal-jmx-import #jmx-import-filename,
#modal-jmx-import #jmx-import-status,
#modal-jmx-import .jmx-import-drop .text-sm,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__sub,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__hint,
body.lth-studio-v2 #modal-jmx-import #jmx-import-filename,
body.lth-studio-v2 #modal-jmx-import .jmx-import-drop .text-sm {
    color: #0369a1 !important;
}

#modal-jmx-import .jmx-import-drop,
body.lth-studio-v2 #modal-jmx-import .jmx-import-drop {
    border: 2px dashed rgba(14, 116, 144, 0.38) !important;
    background: rgba(255, 255, 255, 0.48) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

#modal-jmx-import .jmx-import-drop:hover,
#modal-jmx-import .jmx-import-drop.is-dragover,
body.lth-studio-v2 #modal-jmx-import .jmx-import-drop:hover,
body.lth-studio-v2 #modal-jmx-import .jmx-import-drop.is-dragover {
    border-color: rgba(79, 70, 229, 0.55) !important;
    background: rgba(238, 242, 255, 0.72) !important;
}

#modal-jmx-import .jmx-import-summary-grid,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid {
    border-color: rgba(16, 185, 129, 0.38) !important;
    background: rgba(255, 255, 255, 0.52) !important;
    color: #065f46 !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

#modal-jmx-import .jmx-import-summary-grid__label,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid__label {
    color: #047857 !important;
    opacity: 0.9;
}

#modal-jmx-import .jmx-import-summary-grid__value,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid__value {
    color: #064e3b !important;
}

#modal-jmx-import .jmx-import-summary-grid__item--warn .jmx-import-summary-grid__value,
body.lth-studio-v2 #modal-jmx-import .jmx-import-summary-grid__item--warn .jmx-import-summary-grid__value {
    color: #b45309 !important;
}

#modal-jmx-import #jmx-import-csv-panel,
body.lth-studio-v2 #modal-jmx-import #jmx-import-csv-panel {
    border-color: rgba(245, 158, 11, 0.42) !important;
    background: rgba(255, 251, 235, 0.72) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

#modal-jmx-import .jmx-import-csv-panel__title,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-panel__title {
    color: #92400e !important;
}

#modal-jmx-import .jmx-import-csv-row,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row {
    border-color: rgba(148, 163, 184, 0.38) !important;
    background: rgba(255, 255, 255, 0.68) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

#modal-jmx-import .jmx-import-csv-row__name,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__name {
    color: #0f172a !important;
}

#modal-jmx-import .jmx-import-csv-row__path,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__path {
    color: #475569 !important;
}

#modal-jmx-import .jmx-import-csv-row__pick-btn,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__pick-btn {
    color: #4338ca !important;
    border-color: rgba(99, 102, 241, 0.42) !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(224, 231, 255, 0.72)) !important;
}

#modal-jmx-import .jmx-import-csv-row__pick-name,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__pick-name {
    color: #64748b !important;
}

#modal-jmx-import .jmx-import-csv-row__pick-name.is-selected,
body.lth-studio-v2 #modal-jmx-import .jmx-import-csv-row__pick-name.is-selected {
    color: #047857 !important;
}

#modal-jmx-import .jmx-import-modal__btn--ghost,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__btn--ghost {
    border-color: rgba(14, 116, 144, 0.35) !important;
    background: rgba(255, 255, 255, 0.45) !important;
    color: #0e7490 !important;
}

#modal-jmx-import .jmx-import-modal__btn--ghost:hover,
body.lth-studio-v2 #modal-jmx-import .jmx-import-modal__btn--ghost:hover {
    background: rgba(255, 255, 255, 0.72) !important;
    border-color: rgba(14, 116, 144, 0.5) !important;
}

@media (max-width: 720px) {
    #modal-jmx-import .jmx-import-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #modal-jmx-import #jmx-import-csv-list {
        grid-template-columns: 1fr;
        max-height: min(15rem, 34vh);
    }
}

@media (max-width: 520px) {
    #modal-jmx-import .jmx-import-summary-grid {
        grid-template-columns: 1fr;
    }

    #modal-jmx-import .jmx-import-csv-row {
        grid-template-columns: 1fr;
    }

    #modal-jmx-import .jmx-import-csv-row__pick {
        align-items: stretch;
    }

    #modal-jmx-import .jmx-import-csv-row__pick-name {
        max-width: none;
        text-align: left;
    }
}

@media (max-height: 640px) {
    #modal-jmx-import .jmx-import-modal__sub {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ---- css/jms_studio_green_shell_v1.css ---- */
/**
 * JMeter 压测工作台 · 绿色主基调（隔离覆盖，仅 jmeter-tab 相关弹窗与底栏）
 */
:root {
    --jms-green-50: #ecfdf5;
    --jms-green-100: #d1fae5;
    --jms-green-200: #a7f3d0;
    --jms-green-600: #059669;
    --jms-green-700: #047857;
    --jms-green-800: #065f46;
    --jms-green-900: #064e3b;
    --jms-green-primary: linear-gradient(135deg, #10b981 0%, #059669 55%, #047857 100%);
    --jms-green-panel: linear-gradient(168deg, #ffffff 0%, #f0fdf4 45%, #ecfdf5 100%);
    --jms-green-overlay: rgba(6, 78, 59, 0.42);
}

/* ===== 底部操作栏 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock {
    border: 1px solid rgba(16, 185, 129, 0.35) !important;
    background: linear-gradient(168deg, #ecfdf5 0%, #d1fae5 38%, #a7f3d0 72%, #d1fae5 100%) !important;
    box-shadow: 0 -3px 22px -10px rgba(5, 150, 105, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.55) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock .jms-action-btn,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock .lth-dock-btn {
    border: 1px solid rgba(16, 185, 129, 0.38) !important;
    background: rgba(255, 255, 255, 0.72) !important;
    color: var(--jms-green-800) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock .jms-action-btn:hover:not(:disabled),
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock .lth-dock-btn:hover:not(:disabled) {
    background: rgba(236, 253, 245, 0.95) !important;
    border-color: rgba(5, 150, 105, 0.55) !important;
    color: var(--jms-green-900) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock #btn-generate-result,
body.lth-studio-v2.lth-hub-jmeter-tab .lth-studio-dock .lth-dock-btn--primary {
    background: var(--jms-green-primary) !important;
    border-color: rgba(4, 120, 87, 0.35) !important;
    color: #f0fdf4 !important;
    box-shadow: 0 2px 12px -2px rgba(5, 150, 105, 0.45) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-more-panel {
    border-color: rgba(16, 185, 129, 0.35) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 12px 28px rgba(6, 78, 59, 0.14) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-more-item {
    color: var(--jms-green-800) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .lth-more-item:hover {
    background: var(--jms-green-50) !important;
    color: var(--jms-green-900) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-count-badge {
    color: var(--jms-green-700) !important;
}

/* ===== 通用弹窗 overlay ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jmx-import.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load.jms-modal-open,
    background: var(--jms-green-overlay) !important;
    backdrop-filter: blur(10px) saturate(130%) !important;
    -webkit-backdrop-filter: blur(10px) saturate(130%) !important;
}

/* ===== 生成结果弹窗 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal {
    border: 1px solid rgba(167, 243, 208, 0.65) !important;
    background: var(--jms-green-panel) !important;
    color: var(--jms-green-900) !important;
    box-shadow: 0 24px 48px rgba(6, 78, 59, 0.2) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal__head {
    border-bottom-color: rgba(16, 185, 129, 0.22) !important;
    background: rgba(255, 255, 255, 0.55) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-summary__title {
    color: var(--jms-green-800) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.is-active {
    background: rgba(16, 185, 129, 0.18) !important;
    color: var(--jms-green-900) !important;
    border-color: rgba(16, 185, 129, 0.35) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #out-jmx,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #out-readme {
    background: #0f172a !important;
    color: #e2e8f0 !important;
    border-color: rgba(16, 185, 129, 0.25) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal__foot .jms-output-action-btn--primary {
    background: var(--jms-green-primary) !important;
    color: #ecfdf5 !important;
    border: none !important;
}

/* ===== 重置确认 / JMS 确认弹窗 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm .jms-modal-card {
    border: 1px solid rgba(167, 243, 208, 0.6) !important;
    background: var(--jms-green-panel) !important;
    color: var(--jms-green-900) !important;
    box-shadow: 0 20px 40px rgba(6, 78, 59, 0.18) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm .jms-confirm-title {
    color: var(--jms-green-800) !important;
    font-weight: 700 !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm .jms-confirm-msg {
    color: #14532d !important;
    line-height: 1.55 !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm #btn-jms-confirm-ok {
    background: var(--jms-green-primary) !important;
    color: #ecfdf5 !important;
    border: none !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm #btn-jms-confirm-cancel {
    border: 1px solid rgba(16, 185, 129, 0.35) !important;
    background: rgba(255, 255, 255, 0.85) !important;
    color: var(--jms-green-700) !important;
}

/* ===== 暂存弹窗 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-save-modal > div,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-list-modal > div,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-restore-modal > div {
    border: 1px solid rgba(167, 243, 208, 0.55) !important;
    background: var(--jms-green-panel) !important;
    color: var(--jms-green-900) !important;
    box-shadow: 0 22px 44px rgba(6, 78, 59, 0.2) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-save-modal h3,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-list-modal h3,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-restore-modal h3 {
    color: var(--jms-green-800) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-save-modal p,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-restore-modal p,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-save-modal label {
    color: #166534 !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-save-submit,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-restore-overwrite {
    background: var(--jms-green-primary) !important;
    color: #ecfdf5 !important;
    border: none !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-save-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-list-close,
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-restore-cancel {
    border: 1px solid rgba(16, 185, 129, 0.35) !important;
    background: rgba(255, 255, 255, 0.88) !important;
    color: var(--jms-green-700) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #jm-stash-list .text-slate-800 {
    color: var(--jms-green-900) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab .jm-stash-restore {
    color: var(--jms-green-700) !important;
}

/* ===== 场景与监控 / 压测负载 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal,
    border: 1px solid rgba(167, 243, 208, 0.55) !important;
    background: var(--jms-green-panel) !important;
    color: var(--jms-green-900) !important;
    box-shadow: 0 22px 44px rgba(6, 78, 59, 0.18) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__title,
    color: var(--jms-green-800) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__sub,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__sub,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor label,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load label,
    color: #166534 !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor input,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load input,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor select,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load select,
    border-color: rgba(16, 185, 129, 0.35) !important;
    background: rgba(255, 255, 255, 0.92) !important;
    color: var(--jms-green-900) !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__foot button[type="submit"],
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__foot button[type="submit"],
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor #btn-scene-monitor-save,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load #btn-tg-load-save,
    background: var(--jms-green-primary) !important;
    color: #ecfdf5 !important;
    border: none !important;
}
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__foot button[type="button"],
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__foot button[type="button"],
    border: 1px solid rgba(16, 185, 129, 0.35) !important;
    background: rgba(255, 255, 255, 0.88) !important;
    color: var(--jms-green-700) !important;
}

/* ===== JMX 解析弹窗主按钮 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jmx-import .jmx-import-modal__btn--primary {
    background: var(--jms-green-primary) !important;
    color: #ecfdf5 !important;
    box-shadow: 0 4px 14px rgba(5, 150, 105, 0.28) !important;
}

/* ---- css/jms_studio_modals_polish_v2.css ---- */
/**
 * JMeter 工作台弹窗 · 视觉疲劳优化（隔离覆盖 · post-js 末位）
 * 覆盖：重置确认 / 生成结果 / 场景与监控 / 压测负载
 */
:root {
    --jms-polish-green-50: #ecfdf5;
    --jms-polish-green-100: #d1fae5;
    --jms-polish-green-600: #059669;
    --jms-polish-green-700: #047857;
    --jms-polish-green-800: #065f46;
    --jms-polish-green-900: #064e3b;
    --jms-polish-head-bg: linear-gradient(125deg, rgba(236, 253, 245, 0.98) 0%, rgba(209, 250, 229, 0.92) 55%, rgba(255, 255, 255, 0.99) 100%);
    --jms-polish-foot-bg: linear-gradient(180deg, rgba(236, 253, 245, 0.72) 0%, rgba(209, 250, 229, 0.55) 100%);
}

/* ===== 1 · 重置场景确认：移除装饰线条背景 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm .jms-modal-card::before,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm .jms-modal-card::after {
    display: none !important;
    content: none !important;
    background: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-jms-confirm .jms-modal-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(167, 243, 208, 0.65) !important;
    background: linear-gradient(168deg, #ffffff 0%, #f0fdf4 48%, #ecfdf5 100%) !important;
    box-shadow: 0 22px 44px rgba(6, 78, 59, 0.16) !important;
}

/* ===== 2–3 · 场景/负载：恢复 flex 布局 + 绿色头部 + 紧凑底栏 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal,
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    overflow: hidden !important;
    max-height: min(90vh, 40rem) !important;
    border: 1px solid rgba(167, 243, 208, 0.55) !important;
    background: linear-gradient(168deg, #ffffff 0%, #f8fffb 42%, #f0fdf4 100%) !important;
    box-shadow: 0 22px 44px rgba(6, 78, 59, 0.16) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal {
    max-width: min(38rem, 96vw) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__head,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__head,
    flex-shrink: 0;
    display: flex !important;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.2rem !important;
    border-bottom: 1px solid rgba(16, 185, 129, 0.2) !important;
    background: var(--jms-polish-head-bg) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__icon,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__icon,
    background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
    box-shadow: 0 2px 10px rgba(5, 150, 105, 0.25) !important;
    color: #ecfdf5 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__title,
    color: var(--jms-polish-green-800) !important;
    -webkit-text-fill-color: var(--jms-polish-green-800) !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em;
    line-height: 1.35;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__sub,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__sub,
    color: #4b7c6a !important;
    font-size: 11px !important;
    font-weight: 500;
    line-height: 1.5;
    margin-top: 0.2rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__body,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__body,
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    padding: 1rem 1.2rem !important;
    background: transparent !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-scene-form label,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load label,
    color: #166534 !important;
    font-size: 12px;
    font-weight: 600;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor input,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load input,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor select,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load select,
    border: 1px solid rgba(16, 185, 129, 0.32) !important;
    background: rgba(255, 255, 255, 0.94) !important;
    color: var(--jms-polish-green-900) !important;
    border-radius: 0.5rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor input:focus,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load input:focus,
    border-color: rgba(5, 150, 105, 0.55) !important;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.14) !important;
    outline: none !important;
}

/* 压测负载卡片 */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-tg-load-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
}

@media (min-width: 520px) {
    body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-tg-load-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-tg-load-field label {
    color: #4b7c6a !important;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-tg-load-card__name {
    color: var(--jms-polish-green-900) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-tg-load-card--thread .jms-vars-plan__head {
    background: rgba(236, 253, 245, 0.85) !important;
    border-bottom-color: rgba(167, 243, 208, 0.65) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-tg-load-kind-badge--thread {
    background: #d1fae5 !important;
    color: #065f46 !important;
    border-color: #86efac !important;
}

/* 紧凑底栏：减少纯白大块 */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-modal__foot,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-modal__foot,
    flex-shrink: 0;
    display: flex !important;
    justify-content: flex-end;
    gap: 0.5rem;
    margin: 0 !important;
    padding: 0.65rem 1.2rem !important;
    border-top: 1px solid rgba(16, 185, 129, 0.22) !important;
    background: var(--jms-polish-foot-bg) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-btn-apply,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-btn-apply,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor #btn-scene-apply,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load #btn-tg-load-apply,
    border: none !important;
    border-radius: 0.5rem !important;
    padding: 0.48rem 1.05rem !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #ecfdf5 !important;
    background: linear-gradient(135deg, #10b981 0%, #059669 55%, #047857 100%) !important;
    box-shadow: 0 3px 12px rgba(5, 150, 105, 0.28) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-btn-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-btn-cancel,
    border: 1px solid rgba(16, 185, 129, 0.32) !important;
    border-radius: 0.5rem !important;
    padding: 0.48rem 1.05rem !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--jms-polish-green-700) !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-btn-apply:hover,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-btn-apply:hover,
    filter: brightness(1.04);
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-btn-cancel:hover,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-load .jms-vars-btn-cancel:hover,
    background: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(5, 150, 105, 0.45) !important;
}

/* ===== 4–5 · 生成结果：Tab 柔和色 + 工具按钮可见 ===== */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn {
    color: #64748b !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn .jms-output-tab__label {
    color: #475569 !important;
    font-weight: 700;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn .jms-output-tab__hint {
    color: #94a3b8 !important;
    opacity: 1 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn:hover {
    background: rgba(236, 253, 245, 0.65) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn:hover .jms-output-tab__label {
    color: #334155 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn.hf-tab-active {
    background: rgba(16, 185, 129, 0.14) !important;
    box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.28) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn.hf-tab-active .jms-output-tab__label {
    color: #065f46 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-tab.tab-btn.hf-tab-active .jms-output-tab__hint {
    color: #047857 !important;
    opacity: 0.88 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal__toolbar .jms-output-tool-btn,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #link-grafana.jms-output-tool-btn {
    border: 1px solid rgba(5, 150, 105, 0.42) !important;
    background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%) !important;
    color: #065f46 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    padding: 0.42rem 0.85rem !important;
    border-radius: 0.5rem !important;
    box-shadow: 0 2px 8px rgba(5, 150, 105, 0.12) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-output .jms-output-modal__toolbar .jms-output-tool-btn:hover,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-output #link-grafana.jms-output-tool-btn:hover {
    background: linear-gradient(180deg, #d1fae5 0%, #a7f3d0 100%) !important;
    color: #064e3b !important;
    border-color: rgba(4, 120, 87, 0.5) !important;
    box-shadow: 0 4px 12px rgba(5, 150, 105, 0.2) !important;
}

/* 场景与监控表单间距 */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-scene-form {
    display: grid;
    gap: 0.75rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-scene-monitor .jms-vars-banner {
    border-radius: 0.6rem;
}

/* ---- css/jms_step_modals_green_unify_v3.css ---- */
/**
 * 步骤区 · 全部编辑/配置弹窗 · 亮绿简约统一（隔离覆盖 · post-js 末位）
 * 范围：线程组步骤树内打开的弹窗与子组件弹窗（不含生成结果/JMX/侧栏负载）
 */
body.lth-studio-v2.lth-hub-jmeter-tab {
    --jms-sg-50: #ecfdf5;
    --jms-sg-100: #d1fae5;
    --jms-sg-200: #a7f3d0;
    --jms-sg-400: #34d399;
    --jms-sg-500: #10b981;
    --jms-sg-600: #059669;
    --jms-sg-700: #047857;
    --jms-sg-800: #065f46;
    --jms-sg-glow: rgba(16, 185, 129, 0.2);
    --jms-sg-border: rgba(6, 95, 70, 0.12);
    --jms-sg-border-strong: rgba(6, 95, 70, 0.18);
    --jms-sg-text: #064e3b;
    --jms-sg-muted: #5b7a72;
    --jms-sg-radius: 16px;
    --jms-sg-shadow: 0 24px 56px rgba(6, 78, 59, 0.14), 0 0 0 1px rgba(16, 185, 129, 0.08);
    --jms-sg-head: linear-gradient(125deg, rgba(236, 253, 245, 0.98) 0%, rgba(209, 250, 229, 0.9) 55%, rgba(255, 255, 255, 0.99) 100%);
    --jms-sg-foot: linear-gradient(180deg, rgba(236, 253, 245, 0.72) 0%, rgba(209, 250, 229, 0.5) 100%);
}

/* ---- 遮罩：浅绿雾面，降低视觉压迫 ---- */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-assert.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-jdbc-post-proc-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-jdbc-post-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-mount-timer-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-if-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-step-user-params-edit.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-add-choice.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-add-choice.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-import.jms-modal-open,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"].jms-modal-open:not(#modal-tg-load):not(#modal-tg-http-mgr),
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"].jms-modal-open {
    background:
        radial-gradient(ellipse 70% 55% at 50% 40%, rgba(167, 243, 208, 0.18), transparent 68%),
        rgba(2, 44, 34, 0.32) !important;
    backdrop-filter: blur(10px) saturate(1.1) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.1) !important;
    align-items: center !important;
    padding: 0.85rem !important;
}

/* ---- 面板壳：flex 列 · 内容少时自动收缩 ---- */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-assert .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-jdbc-post-proc-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-jdbc-post-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-mount-timer-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-if-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-if-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-step-user-params-edit .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"]:not(#modal-tg-load):not(#modal-tg-http-mgr) .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"] .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"]:not(#modal-tg-load):not(#modal-tg-http-mgr) [class*="-drawer"],
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"] [class*="-drawer"] {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: min(40rem, 96vw) !important;
    max-height: min(90vh, var(--jms-sg-fit-max, 90vh)) !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: var(--jms-sg-radius) !important;
    border: 1px solid var(--jms-sg-border-strong) !important;
    background: linear-gradient(165deg, #fefffe 0%, #f3fbf7 52%, #edf8f2 100%) !important;
    box-shadow: var(--jms-sg-shadow) !important;
    color: var(--jms-sg-text) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab [id*="assert-edit"].jms-modal-open .jms-step-modal,
body.lth-studio-v2.lth-hub-jmeter-tab [id*="assert-edit"].jms-modal-open [class*="-drawer"] {
    max-width: min(52rem, 96vw) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit.jms-modal-open .jms-step-modal {
    max-width: min(44rem, 96vw) !important;
}

/* 内容少：由 auto-fit JS 写入 --jms-sg-fit-max，此处兜底不强制撑满 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal.jms-sg-fit-compact {
    max-height: none !important;
    overflow: visible !important;
}

/* ---- 标题区 ---- */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal > h3,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit-title,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] > h3,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__head"] h3 {
    flex-shrink: 0;
    margin: 0 !important;
    padding: 0.85rem 1rem 0.7rem !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em;
    color: var(--jms-sg-800) !important;
    -webkit-text-fill-color: var(--jms-sg-800) !important;
    border-bottom: 1px solid var(--jms-sg-border);
    background: var(--jms-sg-head);
    box-shadow: inset 0 2px 0 var(--jms-sg-400);
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modes {
    flex-shrink: 0;
    display: flex;
    gap: 0.35rem;
    padding: 0.55rem 1rem 0;
    margin: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-mode-btn {
    padding: 0.3rem 0.72rem;
    border-radius: 999px;
    border: 1px solid var(--jms-sg-border-strong);
    background: rgba(255, 255, 255, 0.85);
    color: var(--jms-sg-muted);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-mode-btn.is-active {
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 2px 8px var(--jms-sg-glow);
}

/* ---- 表单主体：仅溢出时滚动 ---- */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-step-form,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-edit-form,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal > .lth-step-field,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal > form,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__body"],
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] > :not(h3):not([class*="__foot"]):not([class*="__head"]) {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.75rem 1rem !important;
    margin-top: 0 !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal.jms-sg-fit-compact .jms-step-form,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal.jms-sg-fit-compact .lth-step-edit-form {
    overflow-y: visible !important;
}

/* 分区折叠：紧凑间距 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-sec {
    margin-bottom: 0.55rem;
    border: 1px solid var(--jms-sg-border);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.65);
    overflow: hidden;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-sec__title {
    padding: 0.45rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--jms-sg-700) !important;
    background: rgba(236, 253, 245, 0.55);
    cursor: pointer;
    list-style: none;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-sec__body {
    padding: 0.55rem 0.65rem 0.65rem;
}

/* 字段网格：两列自适应，少字段不撑高 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .lth-step-row {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row--2,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row--method-path {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row--name-encoding {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr);
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-field--grow {
    grid-column: span 1;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-field,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .lth-step-field,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-field {
    display: block;
    margin-bottom: 0.45rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--jms-sg-muted);
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-field:has(input[type="checkbox"]),
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .lth-step-field:has(input[type="checkbox"]) {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 500;
}

/* 输入控件 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal input[type="text"],
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal input[type="number"],
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal input[type="url"],
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal textarea,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal select,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] input[type="text"],
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] input[type="number"],
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] textarea,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] select {
    width: 100%;
    margin-top: 0.22rem;
    padding: 0.4rem 0.55rem;
    border: 1px solid var(--jms-sg-border-strong);
    border-radius: 8px;
    font-size: 0.8125rem;
    color: var(--jms-sg-text) !important;
    -webkit-text-fill-color: var(--jms-sg-text) !important;
    background: #fff !important;
    transition: border-color 0.12s, box-shadow 0.12s;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal textarea,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] textarea {
    min-height: 4.5rem;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-textarea {
    min-height: 4.5rem !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal input:focus,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal textarea:focus,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal select:focus,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] input:focus,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] textarea:focus,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] select:focus {
    outline: none;
    border-color: rgba(16, 185, 129, 0.42);
    box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.12);
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal input[type="checkbox"],
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] input[type="checkbox"] {
    accent-color: var(--jms-sg-600);
    width: 0.9rem;
    height: 0.9rem;
}

/* 子标题 / 提示 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-subhead,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-hint,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .jms-subhead {
    font-size: 0.72rem;
    color: var(--jms-sg-muted);
    margin: 0.25rem 0 0.4rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-add-chip {
    padding: 0.22rem 0.55rem;
    border-radius: 8px;
    border: 1px solid rgba(16, 185, 129, 0.26);
    background: var(--jms-sg-50);
    color: var(--jms-sg-700);
    font-size: 0.72rem;
    font-weight: 650;
}

/* ---- 底栏按钮统一 ---- */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-edit-foot,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-foot,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal > .mt-4,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__foot"],
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .jms-assert-foot {
    flex-shrink: 0;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin: 0 !important;
    padding: 0.65rem 1rem 0.75rem !important;
    border-top: 1px solid var(--jms-sg-border) !important;
    background: var(--jms-sg-foot) !important;
    box-shadow: none !important;
}

/* 主按钮：保存 / 应用 / 确认 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-edit-foot .bg-indigo-600,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal #btn-step-edit-save,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-btn-primary,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__foot"] .jms-btn-primary,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-"] .jms-btn-primary {
    border: none !important;
    border-radius: 8px !important;
    padding: 0.42rem 1.05rem !important;
    font-size: 0.8125rem !important;
    font-weight: 650 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500)) !important;
    box-shadow: 0 3px 10px var(--jms-sg-glow) !important;
    cursor: pointer;
    transition: filter 0.15s;
}

/* 次按钮：取消 / 关闭 */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-edit-foot .border-slate-200,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal #btn-step-edit-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-btn-ghost,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__foot"] .jms-btn-ghost,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"] .jms-btn-ghost,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"] .jms-btn-ghost {
    border: 1px solid var(--jms-sg-border-strong) !important;
    border-radius: 8px !important;
    padding: 0.42rem 0.95rem !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: var(--jms-sg-muted) !important;
    background: rgba(255, 255, 255, 0.88) !important;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-btn-primary:hover,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__foot"] .jms-btn-primary:hover {
    filter: brightness(1.04);
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-btn-ghost:hover,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer__foot"] .jms-btn-ghost:hover {
    background: var(--jms-sg-50) !important;
    color: var(--jms-sg-800) !important;
}

/* ---- 线程组 catalog 元件弹窗（非计划级）绿色化 ---- */
body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) {
    padding: 0.85rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-modal__backdrop {
    background: rgba(2, 44, 34, 0.32);
    backdrop-filter: blur(10px) saturate(1.1);
    -webkit-backdrop-filter: blur(10px) saturate(1.1);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-modal__panel {
    max-height: min(86vh, var(--jms-sg-fit-max, 44rem));
    border-radius: var(--jms-sg-radius);
    border: 1px solid var(--jms-sg-border-strong);
    background: linear-gradient(165deg, #fefffe 0%, #f3fbf7 52%, #edf8f2 100%);
    box-shadow: var(--jms-sg-shadow);
    color: var(--jms-sg-text);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-modal__head {
    padding: 0.85rem 1rem 0.7rem;
    border-bottom: 1px solid var(--jms-sg-border);
    background: var(--jms-sg-head);
    box-shadow: inset 0 2px 0 var(--jms-sg-400);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-modal__title {
    color: var(--jms-sg-800);
    font-weight: 700;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__alias {
    color: var(--jms-sg-muted);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-modal__close {
    width: 1.85rem;
    height: 1.85rem;
    border: 1px solid var(--jms-sg-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.75);
    color: var(--jms-sg-muted);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-modal__close:hover {
    background: rgba(16, 185, 129, 0.1);
    color: var(--jms-sg-700);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__sheet {
    gap: 0.55rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid var(--jms-sg-border);
    background: rgba(255, 255, 255, 0.72);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__row--meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    align-items: end;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-field label {
    color: var(--jms-sg-muted);
    font-size: 0.75rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-field input,
body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-field textarea,
body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-field select,
body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-catalog-kv-row input {
    border: 1px solid var(--jms-sg-border-strong);
    border-radius: 8px;
    color: var(--jms-sg-text) !important;
    background: #fff !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__chip--enabled {
    padding: 0.35rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--jms-sg-border-strong);
    background: #fff;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__chip--enabled:has(input:checked) {
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500));
    border-color: transparent;
    box-shadow: 0 2px 8px var(--jms-sg-glow);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__chip--enabled:has(input:checked) span {
    color: #fff;
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__foot {
    border-top: 1px solid var(--jms-sg-border);
    background: var(--jms-sg-foot);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__btn--primary {
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500));
    color: #fff;
    box-shadow: 0 3px 10px var(--jms-sg-glow);
}

body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__btn--ghost {
    border: 1px solid var(--jms-sg-border-strong);
    color: var(--jms-sg-muted);
    background: rgba(255, 255, 255, 0.88);
}

/* ---- 添加选择弹窗（线程组 / HTTP）---- */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-add-choice .jms-modal-card,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-add-choice .jms-modal-card,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-import .jms-modal-card {
    max-width: min(36rem, 96vw);
    padding: 0 !important;
    overflow: hidden;
    border-radius: var(--jms-sg-radius);
    border: 1px solid var(--jms-sg-border-strong);
    background: linear-gradient(165deg, #fefffe 0%, #f3fbf7 52%, #edf8f2 100%);
    box-shadow: var(--jms-sg-shadow);
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-add-choice .jms-tg-add-choice-title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-add-choice .jms-http-add-choice-title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-import h3 {
    margin: 0;
    padding: 0.85rem 1rem 0.55rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--jms-sg-800);
    background: var(--jms-sg-head);
    border-bottom: 1px solid var(--jms-sg-border);
    box-shadow: inset 0 2px 0 var(--jms-sg-400);
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-add-choice .jms-tg-add-choice-sub,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-add-choice .jms-http-add-choice-sub {
    padding: 0.55rem 1rem 0;
    font-size: 0.75rem;
    color: var(--jms-sg-muted);
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-tg-add-choice .jms-tg-add-choice-actions,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-http-add-choice .jms-http-add-choice-actions {
    padding: 0.65rem 1rem 0.85rem;
    gap: 0.45rem;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-tg-add-choice-btn,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-http-add-choice-btn {
    border: 1px solid var(--jms-sg-border-strong);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.82);
    transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-tg-add-choice-btn:hover,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-http-add-choice-btn:hover {
    border-color: rgba(16, 185, 129, 0.35);
    background: var(--jms-sg-50);
    box-shadow: 0 2px 10px var(--jms-sg-glow);
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-import textarea {
    margin: 0.65rem 1rem;
    width: calc(100% - 2rem);
    min-height: 8rem;
    border: 1px solid var(--jms-sg-border-strong);
    border-radius: 10px;
    background: #fff;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-import .mt-4 {
    margin: 0 !important;
    padding: 0.65rem 1rem 0.75rem;
    border-top: 1px solid var(--jms-sg-border);
    background: var(--jms-sg-foot);
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-import #btn-import-apply {
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500)) !important;
    color: #fff !important;
    border: none !important;
}

@media (max-width: 560px) {
    body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row--2,
    body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row--method-path,
    body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .lth-step-row--name-encoding {
        grid-template-columns: 1fr;
    }

    body.lth-studio-v2.lth-hub-jmeter-tab #jms-catalog-element-editor-modal:not([data-plan-level="1"]) .jms-pcat-editor__row--meta {
        grid-template-columns: 1fr;
    }
}

/* 断言 / 逻辑控制器底栏按钮（jms-assert-btn-* 别名） */
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-btn-save,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .jms-assert-btn-save,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-btn-apply,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .jms-assert-btn-apply {
    border: none !important;
    border-radius: 8px !important;
    padding: 0.42rem 1.05rem !important;
    font-size: 0.8125rem !important;
    font-weight: 650 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500)) !important;
    box-shadow: 0 3px 10px var(--jms-sg-glow) !important;
    cursor: pointer;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-btn-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab [class*="-drawer"] .jms-assert-btn-cancel {
    border: 1px solid var(--jms-sg-border-strong) !important;
    border-radius: 8px !important;
    padding: 0.42rem 0.95rem !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: var(--jms-sg-muted) !important;
    background: rgba(255, 255, 255, 0.88) !important;
    cursor: pointer;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-btn-save:hover,
body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-btn-apply:hover {
    filter: brightness(1.04);
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-assert-btn-cancel:hover {
    background: var(--jms-sg-50) !important;
    color: var(--jms-sg-800) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab .jms-step-modal .jms-step-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit .jms-step-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit .jms-step-modal__title,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit .jms-step-modal__title {
    color: var(--jms-sg-800) !important;
    -webkit-text-fill-color: var(--jms-sg-800) !important;
}

/* 高优先级覆盖 legacy if/beanshell/debug 底栏色 */
body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit .jms-assert-btn-save,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit .jms-assert-btn-save,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit .jms-assert-btn-save,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit #btn-step-edit-save,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"] .jms-assert-btn-save,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"] .jms-assert-btn-save {
    border: none !important;
    border-radius: 8px !important;
    padding: 0.42rem 1.05rem !important;
    font-size: 0.8125rem !important;
    font-weight: 650 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--jms-sg-600), var(--jms-sg-500)) !important;
    box-shadow: 0 3px 10px var(--jms-sg-glow) !important;
}

body.lth-studio-v2.lth-hub-jmeter-tab #modal-if-edit .jms-assert-btn-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-beanshell-edit .jms-assert-btn-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-debug-edit .jms-assert-btn-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab #modal-step-edit #btn-step-edit-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-tg-"] .jms-assert-btn-cancel,
body.lth-studio-v2.lth-hub-jmeter-tab [id^="modal-http-"] .jms-assert-btn-cancel {
    border: 1px solid var(--jms-sg-border-strong) !important;
    border-radius: 8px !important;
    padding: 0.42rem 0.95rem !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: var(--jms-sg-muted) !important;
    background: rgba(255, 255, 255, 0.88) !important;
}

/* ---- css/jms_debug_catalog_tree_row_fix_v1.css ---- */
/**
 * Debug Sampler catalog 树行 · 与 CON/SAM/catalog 头行对齐（隔离覆盖 v2）
 */
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-aux-card.jms-catalog-card {
    padding: 0 !important;
    margin: 0.15rem 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    align-items: stretch !important;
    align-self: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    border-radius: 10px !important;
    overflow: visible !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.28rem !important;
    width: 100% !important;
    min-height: 2.25rem !important;
    height: auto !important;
    padding: 0.45rem 0.55rem !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    border-bottom: none !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2.125rem !important;
    min-width: 2.125rem !important;
    max-width: 2.125rem !important;
    padding: 0.1rem 0.4rem !important;
    border-radius: 999px !important;
    font-size: 0.625rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    color: #64748b !important;
    background: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head .jms-http-name {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head .jms-catalog-card__meta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    margin-left: auto !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head .jms-card-head-actions {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    gap: 0.28rem !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head .jms-config-card-toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head .jms-step-enable-seg {
    display: inline-flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--debug:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-tree-node--debug:has(.lth-step-actions.is-hover),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card.jms-catalog-card--expandable:has(.lth-step-actions.is-open),
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tg-tree-steps .jms-aux-card.jms-catalog-card--expandable:has(.lth-step-actions.is-hover) {
    overflow: visible !important;
    z-index: 12 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-aux-card.jms-catalog-card--expandable {
    overflow: visible !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .lth-step-actions.is-open,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .lth-step-actions.is-hover,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .lth-step-actions.is-measuring {
    position: relative !important;
    z-index: 35 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .lth-step-actions.is-open .lth-step-menu,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .lth-step-actions.is-hover .lth-step-menu,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .lth-step-actions.is-measuring .lth-step-menu {
    z-index: 40 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-debug-catalog__head .jms-catalog-card__meta:empty {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-aux-card.jms-catalog-card .jms-config-card-toolbar,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-aux-card.jms-catalog-card .lth-step-actions,
body.lth-tg-view-tree.lth-hub-jmeter-tab .jms-tree-node--debug .jms-aux-card.jms-catalog-card .jms-config-card-toolbar .lth-step-actions {
    margin-right: 0 !important;
}body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--debug .jms-aux-card.jms-catalog-card .jms-config-card-toolbar,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--debug .jms-aux-card.jms-catalog-card .lth-step-actions,
body.lth-studio-v2.lth-hub-jmeter-tab.lth-tg-view-tree .jms-tg-tree-steps .jms-tree-node--debug .jms-aux-card.jms-catalog-card .jms-config-card-toolbar .lth-step-actions {
    margin-right: 0 !important;
}
