
/* StoryOS V2.0.17-110b：覆盖人物模块"从人物库导入"按钮样式
 * storyos-workspace.css 第 5685 行用了 `.storyos-sc-va.storyos-cc-va button.va-cc-import` 
 * (specificity 0,0,3,1) + !important，所以我的选择器必须严格更高。
 * 这里用 `.storyos-sc-va.storyos-cc-va button.va-cc-import.storyos-cc-focus-import` 
 * (specificity 0,0,4,1) + !important，必胜。
 */
.storyos-sc-va.storyos-cc-va button.va-cc-import.storyos-cc-focus-import,
.storyos-sc-va.storyos-cc-va .va-cc-import.storyos-cc-focus-import {
    background: transparent !important;
    border: 1px solid #d7dce5 !important;
    color: #6b7280 !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    padding: 6px 12px !important;
    height: auto !important;
    min-width: 0 !important;
    border-radius: 10px !important;
    gap: 6px !important;
    box-shadow: none !important;
}
.storyos-sc-va.storyos-cc-va button.va-cc-import.storyos-cc-focus-import:hover,
.storyos-sc-va.storyos-cc-va .va-cc-import.storyos-cc-focus-import:hover {
    background: #f4f5fb !important;
    border: 1px solid #9aa3af !important;
    color: #6b7280 !important;
    opacity: 1 !important;
}
.storyos-sc-va.storyos-cc-va button.va-cc-import.storyos-cc-focus-import svg,
.storyos-sc-va.storyos-cc-va .va-cc-import.storyos-cc-focus-import svg {
    width: 14px !important;
    height: 14px !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
}

/* StoryOS V2.0.17-111：彻底重置原版人物卡 .storyos-cc-person-card 的所有 !important，
 * 让 D 方案 .storyos-cc-card-vd 的内联样式生效。
 * 选择器 .storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd 优先级 0,0,3,1，
 * 比 storyos-workspace.css 里的 .storyos-cc-va .storyos-cc-person-card (0,0,2,1) 高一级，必胜。
 */

/* 1. 卡片容器：让下拉可溢出 */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd {
    overflow: visible !important;
    position: relative !important;
    background: #fff !important;
    border: 1px solid #e8ecf3 !important;
    border-radius: 12px !important;
    padding: 0 !important;
    margin-bottom: 10px !important;
    box-shadow: none !important;
    transition: border-color .15s !important;
}
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd:hover {
    border-color: #d7dce5 !important;
}

/* 2. 头部：去掉 88px 强制高度 + 大 padding；hover 不再加灰底（否则方角背景会盖卡片圆角） */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-head,
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd:not(.open) .storyos-cc-person-head:hover {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 0 !important;
    padding: 12px 16px !important;
    margin: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
    overflow: visible !important;
    justify-content: flex-start !important;
    border-radius: 12px !important;
}
/* 双保险：即使有别的 hover 规则进来，也用 inherit 抹掉背景 */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-head:hover {
    background: transparent !important;
}

/* 3. 编号 01：去掉 32px 圆形 */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-index {
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    color: #9aa3af !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    font-variant-numeric: tabular-nums !important;
    line-height: 1.2 !important;
    flex: 0 0 auto !important;
}

/* 4. 标题"未命名人物"：去掉 18px/700 字号 */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd [data-cc-card-title] {
    display: inline !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    color: #1a1a2e !important;
}

/* 5. 角色下拉菜单：必须能溢出，z-index 高 */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd [data-cc-role-wrap] {
    overflow: visible !important;
    position: relative !important;
    flex: 0 0 auto !important;
}
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd [data-cc-role-menu] {
    z-index: 2147483600 !important;
    position: absolute !important;
}
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd.has-role-menu-open {
    z-index: 2147483600 !important;
}

/* 6. 切勿继承 4263 行 toggle/relation 的 underline hover */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-toggle,
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-relation,
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-toggle:hover,
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-relation:hover {
    text-decoration: none !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
}

/* 7. 展开态 body：覆盖 padding/bg */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd .storyos-cc-person-body {
    padding: 16px 18px !important;
    border-top: 1px solid #eef0f3 !important;
    background: #fafbfc !important;
}

/* 8. 展开态 head 不再加底边线（body 已经自带 border-top） */
.storyos-cc-va .storyos-cc-person-card.storyos-cc-card-vd.open .storyos-cc-person-head {
    border-bottom: none !important;
}

/* 9. 统一 field-block 卡片之间的视觉节奏：
 * 诊断显示 character_config 比其他卡多了 margin-top: 30px（CSS 4082 行 !important）。
 * 现在用 0,0,3,1 优先级 + !important 把它清零，让 form 的 gap:24px 唯一决定缝隙。
 */
.workspace-main-card .saas-v29-field-block[data-inspector-type="story_config"],
.workspace-main-card .saas-v29-field-block[data-inspector-type="character_config"] {
    padding: 36px 40px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
/* va-adv-body 在折叠态（无 .open）时也要清空 margin-top */
.storyos-sc-va .va-adv-body:not(.open) {
    margin-top: 0 !important;
}

/* ===== StoryOS V2.0.17-112：结构卡 B2 方案样式 =====
 * 1. 覆盖原 storyos-workspace.css 里的旧"骨架分法"控制条样式
 * 2. 让"从白板导入"按钮按胶囊样式渲染（优先级要高过 4453 行的 !important）
 * 3. 节点之间的 + 按钮 + 底部比例尺的视觉
 */

/* 导入按钮（结构卡专属胶囊） */
.storyos-sc-va.storyos-st-va button.va-import.storyos-st-focus-import,
.storyos-sc-va.storyos-st-va .va-import.storyos-st-focus-import {
    background: transparent !important;
    border: 1px solid #d7dce5 !important;
    color: #6b7280 !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    padding: 6px 12px !important;
    height: auto !important;
    min-width: 0 !important;
    border-radius: 10px !important;
    gap: 6px !important;
    box-shadow: none !important;
}
.storyos-sc-va.storyos-st-va button.va-import.storyos-st-focus-import:hover,
.storyos-sc-va.storyos-st-va .va-import.storyos-st-focus-import:hover {
    background: #f4f5fb !important;
    border: 1px solid #9aa3af !important;
    color: #6b7280 !important;
    opacity: 1 !important;
}
.storyos-sc-va.storyos-st-va button.va-import.storyos-st-focus-import svg,
.storyos-sc-va.storyos-st-va .va-import.storyos-st-focus-import svg {
    width: 14px !important;
    height: 14px !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
}

/* 骨架控制条：清掉原版"骨架分法"色块和外圈样式 */
.storyos-st-va-b2 .storyos-st-skeleton-bar {
    box-shadow: none !important;
}
.storyos-st-va-b2 .storyos-st-skeleton-bar .storyos-st-section-row {
    display: none !important;
}
.storyos-st-va-b2 .storyos-st-skeleton-bar .storyos-st-template-picker {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    width: auto !important;
    height: auto !important;
}
.storyos-st-va-b2 .storyos-st-skeleton-bar .storyos-st-template-picker select {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.storyos-st-va-b2 .storyos-st-skeleton-bar [data-st-setting-toggle] {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #6b7280 !important;
    font-weight: 400 !important;
    padding: 4px 10px !important;
    height: auto !important;
    border-radius: 8px !important;
}
.storyos-st-va-b2 .storyos-st-skeleton-bar [data-st-setting-toggle][aria-expanded="true"] {
    background: #eef5fb !important;
    color: #4682b4 !important;
}
.storyos-st-va-b2 .storyos-st-skeleton-bar [data-st-setting-toggle][aria-expanded="true"] .storyos-st-adv-chevron {
    transform: rotate(180deg);
}

/* 主面板上方原版 divider 隐藏 */
.storyos-st-va-b2 .storyos-st-final-divider {
    display: none !important;
}

/* 编辑器卡的"细节设置"按钮 hover/active */
.storyos-st-va-b2 [data-st-detail-toggle]:hover {
    background: #f4f5fb !important;
}
.storyos-st-va-b2 [data-st-detail-toggle].on,
.storyos-st-va-b2 [data-st-detail-toggle][aria-expanded="true"] {
    background: #eef5fb !important;
    color: #4682b4 !important;
    border-radius: 8px !important;
}
.storyos-st-va-b2 [data-st-detail-toggle].on .storyos-st-detail-chevron,
.storyos-st-va-b2 [data-st-detail-toggle][aria-expanded="true"] .storyos-st-detail-chevron {
    transform: rotate(180deg);
}

/* ===== C5 方案：胶囊行 + 比例条（V113） =====
 * 原版 modules.js 仍在 .storyos-st-track 内渲染 seg/node/boundary，
 * 我们整体隐藏 track 的原生渲染，改用 JS 把数据同步到下面的胶囊行 + 比例条。
 * 拖动逻辑：借用原版 boundary 的 startDrag —— 把 boundary 用 CSS 重定位到比例条上。
 */

/* 故事线主面板浅灰底卡兜底 */
.workspace-main-card .storyos-st-va-b2 .storyos-st-main-panel,
.workspace-main-card .storyos-st-va-b2 .storyos-st-final-timeline-panel {
    background: #fafbfc !important;
    border: 1px solid #eef0f3 !important;
    border-radius: 12px !important;
    padding: 18px !important;
    margin-top: 12px !important;
    box-shadow: none !important;
}

/* 编辑器卡蓝边兜底 */
.workspace-main-card .storyos-st-va-b2 .storyos-st-edit-card,
.workspace-main-card .storyos-st-va-b2 .storyos-st-current-editor {
    background: #fff !important;
    border: 1.5px solid #4682b4 !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    margin-top: 22px !important;
    box-shadow: 0 0 0 3px rgba(70,130,180,.06) !important;
}

/* 原版 track 渲染整体隐藏（prog/timeline/seg/node 都不显示），
 * 但 track 本身保留在 DOM（modules.js 要往里写数据），且 boundary 我们要借用 */
.storyos-st-va-b2 [data-st-track] .storyos-st-final-prog,
.storyos-st-va-b2 [data-st-track] .storyos-st-final-labels,
.storyos-st-va-b2 [data-st-track] .storyos-st-final-bg,
.storyos-st-va-b2 [data-st-track] .storyos-st-final-seg,
.storyos-st-va-b2 [data-st-track] .storyos-st-final-node,
.storyos-st-va-b2 [data-st-track] .storyos-st-final-tip {
    /* 不能 display:none（boundary 在 nodes 里，隐藏 nodes 会连带隐藏 boundary）
     * 改为视觉清空：高度 0、透明 */
}
/* 直接隐藏原生 timeline 的可视部分，但 track 容器保留高度 0 */
.storyos-st-va-b2 [data-st-track].has-c5 .storyos-st-final-timeline {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.storyos-st-va-b2 [data-st-track].has-c5 .storyos-st-final-labels {
    display: none !important;
}
.storyos-st-va-b2 [data-st-track].has-c5 {
    min-height: 0 !important;
}
.storyos-st-va-b2 [data-st-track].has-c5 .storyos-st-track-empty {
    display: none !important;
}
.storyos-st-va-b2 .storyos-st-track-help {
    display: none !important;
}

/* ===== 胶囊行 ===== */
.storyos-st-va-b2 .storyos-st-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 22px;
}
.storyos-st-va-b2 .storyos-st-pill {
    background: #fff;
    border: 1.5px solid #d7dce5;
    color: #1a1a2e;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: inherit;
    transition: border-color .15s, background .15s, box-shadow .15s, color .15s;
    white-space: nowrap;
}
.storyos-st-va-b2 .storyos-st-pill:hover {
    border-color: #9aa3af;
}
.storyos-st-va-b2 .storyos-st-pill .storyos-st-pill-idx {
    color: #9aa3af;
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}
.storyos-st-va-b2 .storyos-st-pill .storyos-st-pill-eps {
    color: #9aa3af;
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}
.storyos-st-va-b2 .storyos-st-pill.active {
    background: #4682b4;
    border-color: #4682b4;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 0 0 3px rgba(70,130,180,.18);
}
.storyos-st-va-b2 .storyos-st-pill.active .storyos-st-pill-idx,
.storyos-st-va-b2 .storyos-st-pill.active .storyos-st-pill-eps {
    color: rgba(255,255,255,.7);
}
/* hover 联动比例条：通过 JS 加 .ratio-hl 类，这里只定义 + 加阶段胶囊 */
.storyos-st-va-b2 .storyos-st-pill-add {
    background: transparent;
    border: 1.5px dashed #c2c8d2;
    color: #9aa3af;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    cursor: pointer;
    font-family: inherit;
    transition: border-color .15s, color .15s, background .15s;
}
.storyos-st-va-b2 .storyos-st-pill-add:hover {
    border-color: #4682b4;
    color: #4682b4;
    background: #eef5fb;
}

/* ===== 比例条 ===== */
.storyos-st-va-b2 .storyos-st-ratio {
    background: #fff;
    border: 1px solid #eef0f3;
    border-radius: 8px;
    padding: 10px 12px;
}
.storyos-st-va-b2 .storyos-st-ratio-track {
    position: relative;
    height: 24px;
    background: #f1f3f7;
    border-radius: 999px;
}
.storyos-st-va-b2 .storyos-st-ratio-seg {
    position: absolute;
    top: 0;
    bottom: 0;
    background: #c2c8d2;
    transition: background .15s;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.storyos-st-va-b2 .storyos-st-ratio-pct {
    font-size: 10px;
    font-weight: 600;
    color: #4a4f5a;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
}
.storyos-st-va-b2 .storyos-st-ratio-seg.active .storyos-st-ratio-pct {
    color: #fff;
}
.storyos-st-va-b2 .storyos-st-ratio-seg.alt {
    background: #aab0bc;
}
.storyos-st-va-b2 .storyos-st-ratio-seg.first {
    border-radius: 999px 0 0 999px;
}
.storyos-st-va-b2 .storyos-st-ratio-seg.last {
    border-radius: 0 999px 999px 0;
}
.storyos-st-va-b2 .storyos-st-ratio-seg.active {
    background: #4682b4;
}
.storyos-st-va-b2 .storyos-st-ratio-seg.hl {
    background: #6fa0c8;
}
/* 比例条手柄：这是把原版 boundary 重定位过来的元素 */
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-final-boundary,
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-boundary {
    position: absolute !important;
    top: -3px !important;
    bottom: -3px !important;
    height: auto !important;
    width: 4px !important;
    background: #6b7280 !important;
    border: none !important;
    border-radius: 2px !important;
    transform: translateX(-50%) !important;
    cursor: ew-resize !important;
    box-shadow: 0 0 0 2px #fff !important;
    z-index: 10 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
}
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-final-boundary.hl,
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-final-boundary:hover {
    background: #4682b4 !important;
    box-shadow: 0 0 0 3px rgba(70,130,180,.2) !important;
}
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-final-boundary > span,
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-final-boundary::after,
.storyos-st-va-b2 .storyos-st-ratio-track .storyos-st-final-boundary::before {
    display: none !important;
}
.storyos-st-va-b2 .storyos-st-ratio-ticks {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: #9aa3af;
    margin-top: 6px;
}
.storyos-st-va-b2 .storyos-st-ratio-ticks .active {
    color: #4682b4;
    font-weight: 500;
}

/* 集数输入框 */
.storyos-st-va-b2 [data-st-episode-input]:focus {
    border-color: #4682b4 !important;
    background: #fff !important;
}

/* 拖动期间禁用过渡 */
.storyos-st-va-b2 [data-st-track].is-dragging ~ * *,
.storyos-st-va-b2 .storyos-st-ratio.is-dragging * {
    transition: none !important;
}

/* 隐藏多余的骨架控制条（功能已移到右上角"挑模板"按钮）
 * 原 CSS .storyos-st-final-a .storyos-st-compact-control-row 用了 display:flex!important，
 * 故用更高优先级选择器 + !important 强制隐藏。 */
.storyos-st-va-b2.storyos-st-final-a .storyos-st-compact-control-row.storyos-st-skeleton-bar,
.storyos-st-va-b2 .storyos-st-skeleton-bar {
    display: none !important;
}

/* 统一结构卡右上角三个按钮（自定义搭建/挑模板/从白板导入）高度与对齐 */
.storyos-st-va-b2 .va-top .storyos-st-custom-build-btn,
.storyos-st-va-b2 .va-top .storyos-st-template-trigger,
.storyos-st-va-b2 .va-top .va-import.storyos-st-focus-import {
    height: 32px !important;
    line-height: 1 !important;
    padding: 0 12px !important;
    box-sizing: border-box !important;
    align-items: center !important;
}
.storyos-st-va-b2 .va-top .storyos-st-custom-build-btn svg,
.storyos-st-va-b2 .va-top .storyos-st-template-trigger svg,
.storyos-st-va-b2 .va-top .va-import.storyos-st-focus-import svg {
    flex-shrink: 0 !important;
    display: block !important;
}

/* 挑模板浮层菜单项 */
.storyos-st-template-menu .storyos-st-tpl-item {
    display: block;
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 13px;
    color: #3a3d44;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    transition: background .12s, color .12s;
}
.storyos-st-template-menu .storyos-st-tpl-item:hover {
    background: #f4f5fb;
    color: #1a1a2e;
}
.storyos-st-template-menu .storyos-st-tpl-item.active {
    background: #eef5fb;
    color: #4682b4;
    font-weight: 600;
}
.storyos-st-template-menu .storyos-st-tpl-group {
    font-size: 10px;
    color: #9aa3af;
    font-weight: 600;
    padding: 8px 12px 4px;
    letter-spacing: .02em;
}

/* ============================================================
 * StoryOS V2.0.17-114c：全页配色方案 A（深底浅卡）— 无投影版
 *  - 背景更深 #dce0e6
 *  - 卡片：纯白 + 边框，不用投影（投影显脏）
 * ============================================================ */

/* 1. 页面背景：更深 */
body.saas-takeover-active,
html.saas-takeover-preload body,
#saas-fullscreen-app-wrapper,
.main-area {
    background: #dce0e6 !important;
}

/* 2. 主内容容器：保持透明 */
.workspace-main-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.workspace-main-card > form {
    gap: 18px !important;
}

/* 3. 每个内容模块卡 = 纯白 + 边框，无投影 */
.workspace-main-card .saas-v29-field-block,
.workspace-main-card .saas-v29-html-block-container {
    background: #fff !important;
    border: 1px solid #d9dde4 !important;
    border-radius: 16px !important;
    box-shadow: none !important;
}

/* 4. 右侧栏卡片：纯白 + 边框，无投影 */
.workspace-side .card,
.workspace-side .profile-card-compact,
.workspace-side .workspace-generate-card {
    background: #fff !important;
    border: 1px solid #d9dde4 !important;
    box-shadow: none !important;
    border-radius: 18px !important;
}
.workspace-side .card:hover,
.workspace-side .profile-card-compact:hover,
.workspace-side .workspace-generate-card:hover {
    border-color: #c4cad3 !important;
    box-shadow: none !important;
}

/* V114e：页头"X点/次"位置修正 + AI 星标 */
.storyos-page-head {
    align-items: center !important;
}
.storyos-page-meta {
    justify-content: center !important;
}
.storyos-page-meta-cost svg {
    width: 15px !important;
    height: 15px !important;
    color: #4682b4 !important;
    fill: #4682b4 !important;
}

/* ===== V115：内容导航（Inspector）速览样式 ===== */
#storyos-inspector-hook { padding: 20px 22px; }
.storyos-nav-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 16px;
}
.storyos-nav-title { font-size: 16px; font-weight: 600; color: #1a1a2e; }
.storyos-nav-tag {
    font-size: 11px; color: #9aa3af; background: #f1f3f7;
    padding: 3px 8px; border-radius: 6px;
}
.storyos-nav-item {
    border-left: 2px solid #e8ecf3;
    padding: 2px 0 2px 12px;
    margin-bottom: 16px;
    cursor: pointer;
    transition: border-color .15s;
}
.storyos-nav-item:last-child { margin-bottom: 0; }
.storyos-nav-item.filled { border-left-color: #4682b4; }
.storyos-nav-item:hover { border-left-color: #6fa0c8; }
.storyos-nav-item-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 5px;
}
.storyos-nav-name { font-size: 13px; font-weight: 600; color: #1a1a2e; }
.storyos-nav-item.empty .storyos-nav-name { color: #9aa3af; }
.storyos-nav-link { font-size: 11px; color: #4682b4; flex-shrink: 0; }
.storyos-nav-item.empty .storyos-nav-link { color: #c2c8d2; }
.storyos-nav-line { font-size: 12px; color: #3a3d44; line-height: 1.6; }
.storyos-nav-role { color: #9aa3af; }
.storyos-nav-sub { font-size: 11px; color: #9aa3af; margin-top: 2px; }
.storyos-nav-empty { font-size: 12px; color: #c2c8d2; line-height: 1.5; }

/* ===== V118 方案 2：字段穿透型扩展 ===== */
/* 故事设定 chip 串 */
.storyos-nav-chips {
    display: flex; flex-wrap: wrap; gap: 4px;
    margin-top: 8px;
}
.storyos-nav-chip {
    font-size: 10px; line-height: 1.4;
    padding: 2px 7px;
    border-radius: 4px;
    font-weight: 500;
    white-space: nowrap;
}
.storyos-nav-chip.on {
    color: #5fa896;
    background: #ecf5f1;
}
.storyos-nav-chip.off {
    color: #9aa3af;
    background: #f1f3f7;
}
/* 人物列表 */
.storyos-nav-person {
    font-size: 12px;
    color: #3a3d44;
    line-height: 1.7;
    display: flex;
    align-items: center;
    gap: 6px;
}
.storyos-nav-role-chip {
    font-size: 10px;
    color: #6b7280;
    background: #f1f3f7;
    padding: 1px 6px;
    border-radius: 4px;
    line-height: 1.4;
    font-weight: 500;
}
.storyos-nav-role-chip.lead {
    color: #a878a8;
    background: #f5edf5;
}
/* 结构阶段链 */
.storyos-nav-stages {
    font-size: 11px;
    color: #6b7280;
    line-height: 1.7;
    margin-top: 6px;
    word-break: break-word;
}
.storyos-nav-arrow {
    color: #c2c8d2;
    margin: 0 1px;
    font-size: 10px;
}

/* ===== V116：模块身份色 + 标题图标盒 =====
 * 给三个模块标题区前注入 32px 圆角图标盒，每个模块独立身份色。
 * 实现方式：让 .va-title-block 变 flex 容器，::before 做图标盒（SVG 用 data URI）。
 */
.workspace-main-card .saas-v29-field-block .va-title-block {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}
.workspace-main-card .saas-v29-field-block .va-title-block::before {
    content: '';
    display: inline-flex;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    flex-shrink: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}

/* 故事设定：暖蓝灰 #5b8ab8，书本图标 */
.workspace-main-card .saas-v29-field-block[data-inspector-type="story_config"] .va-title-block::before {
    background-color: #eef3f9;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b8ab8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5V4a2 2 0 0 1 2-2h14v20H6a2 2 0 0 1-2-2zM4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3C/svg%3E");
}

/* 人物设计：柔紫粉 #a878a8，人像图标 */
.workspace-main-card .saas-v29-field-block[data-inspector-type="character_config"] .va-title-block::before {
    background-color: #f5edf5;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a878a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
}

/* 结构设计：青绿 #5fa896，结构横条图标 */
.workspace-main-card .saas-v29-field-block[data-inspector-type="structure_config"] .va-title-block::before {
    background-color: #ecf5f1;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235fa896' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='4' rx='1'/%3E%3Crect x='3' y='14' width='11' height='4' rx='1'/%3E%3C/svg%3E");
}
