/* ============================================================
   memory-desk.css — v5 记忆架构精化 phase2 记忆工作台
   规则（计划 §5.1 / phase2 前端约束）：
   - 所有类名 memdesk- 前缀，不动 style.css
   - z-index 只用既有登记位：overlay = 15000（modal-on-top 同层）
   - 配套 memory-desk.js，DOM 由 JS 首次打开时注入
   主题适配（6/12 塔拉真机修）：
   - AZOTH 真实主题变量集是 --bg / --text / --card-bg / --accent；
     --text-primary/--text-secondary/--border 任何主题都没定义。
   - 主文字一律继承 body（主题必然正确），次级文字用 opacity 弱化不锁颜色，
     fallback 写错比不写更糟（v1 暗色 fallback 在墟构白底上糊成浅灰的教训）。
   ============================================================ */

/* ---- 弹层骨架 ---- */
.memdesk-overlay {
    position: fixed;
    inset: 0;
    z-index: 15000;
    background: rgba(0, 0, 0, 0.55);
    display: none;
    align-items: flex-end;
    justify-content: center;
}

.memdesk-overlay.memdesk-open {
    display: flex;
}

.memdesk-sheet {
    width: 100%;
    max-width: 680px;
    max-height: 88vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--bg, #16181d);
    border: 1px solid var(--border, #2a2d35);
    border-bottom: none;
    border-radius: 14px 14px 0 0;
    padding: 14px 16px calc(18px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
}

@media (min-width: 720px) {
    .memdesk-overlay {
        align-items: center;
    }

    .memdesk-sheet {
        border-radius: 14px;
        border-bottom: 1px solid var(--border, #2a2d35);
        max-height: 82vh;
    }
}

.memdesk-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.memdesk-title {
    font-size: 0.98rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.memdesk-close {
    background: none;
    border: none;
    color: inherit;
    opacity: 0.55;
    cursor: pointer;
    padding: 4px;
    line-height: 0;
    flex-shrink: 0;
}

.memdesk-close:hover {
    opacity: 1;
}

/* ---- 区块 ---- */
.memdesk-section {
    margin-bottom: 14px;
}

.memdesk-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.74rem;
    opacity: 0.65;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}

.memdesk-hint {
    font-size: 0.68rem;
    opacity: 0.55;
    line-height: 1.5;
    margin: -2px 0 8px;
}

.memdesk-textarea {
    width: 100%;
    min-height: 96px;
    box-sizing: border-box;
    background: var(--card-bg, #1d2026);
    color: var(--text, inherit);
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 0.9rem;
    line-height: 1.5;
    resize: vertical;
    font-family: inherit;
}

.memdesk-textarea:focus {
    outline: none;
    border-color: var(--accent, #4fc3f7);
}

/* ---- 滑杆 ---- */
.memdesk-slider-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.memdesk-slider-name {
    width: 64px;
    flex-shrink: 0;
    font-size: 0.8rem;
    opacity: 0.7;
}

.memdesk-slider {
    flex: 1;
    accent-color: var(--accent, #4fc3f7);
    min-width: 0;
}

.memdesk-slider-value {
    width: 44px;
    flex-shrink: 0;
    text-align: right;
    font-size: 0.8rem;
    font-family: monospace;
    color: var(--accent, #4fc3f7);
}

.memdesk-slider-row.memdesk-disabled .memdesk-slider-value {
    color: inherit;
    opacity: 0.4;
}

.memdesk-emotion-toggle {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    opacity: 0.7;
    cursor: pointer;
    user-select: none;
}

/* ---- 蒸馏元数据表单（phase2.5）---- */
.memdesk-field-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 8px;
}

.memdesk-field-name {
    width: 64px;
    flex-shrink: 0;
    font-size: 0.78rem;
    opacity: 0.7;
    padding-top: 8px;
}

.memdesk-input {
    flex: 1;
    min-width: 0;
    box-sizing: border-box;
    background: var(--card-bg, #1d2026);
    color: var(--text, inherit);
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 7px 10px;
    font-size: 0.82rem;
    font-family: inherit;
}

.memdesk-input:focus {
    outline: none;
    border-color: var(--accent, #4fc3f7);
}

.memdesk-field-row .memdesk-textarea {
    flex: 1;
}

/* ---- 状态按钮组 ---- */
.memdesk-state-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.memdesk-state-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--card-bg, #1d2026);
    color: inherit;
    opacity: 0.78;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 999px;
    padding: 6px 13px;
    font-size: 0.8rem;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, opacity 0.15s;
}

.memdesk-state-btn svg {
    flex-shrink: 0;
}

.memdesk-state-btn.memdesk-active {
    color: var(--accent, #4fc3f7);
    opacity: 1;
    border-color: var(--accent, #4fc3f7);
    background: rgba(79, 195, 247, 0.08);
}

.memdesk-state-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- 可见范围下拉 ---- */
.memdesk-select {
    width: 100%;
    box-sizing: border-box;
    background: var(--card-bg, #1d2026);
    color: var(--text, inherit);
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 7px 10px;
    font-size: 0.84rem;
}

/* ---- 范围多选 chip（scope域路由 刀1）---- */
.memdesk-scope-chips {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.memdesk-scope-chip {
    background: var(--card-bg, #1d2026);
    color: var(--text, inherit);
    border: 1px solid var(--border, #2a2d35);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.76rem;
    line-height: 1.2;
    cursor: pointer;
    opacity: 0.72;
    touch-action: manipulation;
}

.memdesk-scope-chip.memdesk-active {
    color: var(--accent, #4fc3f7);
    opacity: 1;
    border-color: var(--accent, #4fc3f7);
    background: rgba(79, 195, 247, 0.08);
}

/* ---- 重新生成标签（塔拉 7-10）---- */
.memdesk-regen-btn {
    background: none;
    color: var(--accent, #4fc3f7);
    border: 1px solid var(--accent, #4fc3f7);
    border-radius: 999px;
    padding: 2px 10px;
    font-size: 0.7rem;
    cursor: pointer;
    opacity: 0.85;
    touch-action: manipulation;
}

.memdesk-regen-btn:hover {
    opacity: 1;
}

.memdesk-regen-panel {
    border: 1px dashed var(--border, #2a2d35);
    border-radius: 8px;
    padding: 8px 10px;
    margin-bottom: 8px;
}

/* ---- 元信息 ---- */
.memdesk-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 12px;
    font-size: 0.76rem;
}

.memdesk-meta-item {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.memdesk-meta-key {
    opacity: 0.55;
    font-size: 0.68rem;
}

.memdesk-meta-value {
    word-break: break-all;
    font-family: monospace;
}

/* ---- 组原子只读列表 ---- */
.memdesk-atoms {
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 6px 10px;
    max-height: 150px;
    overflow-y: auto;
}

.memdesk-atom-row {
    padding: 5px 0;
    font-size: 0.8rem;
    line-height: 1.4;
    opacity: 0.78;
    border-bottom: 1px dashed var(--border, #2a2d35);
    word-break: break-word;
}

.memdesk-atom-row:last-child {
    border-bottom: none;
}

.memdesk-atoms-hint {
    font-size: 0.68rem;
    opacity: 0.55;
    margin-top: 4px;
}

/* ---- 链接区 ---- */
.memdesk-link-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px dashed var(--border, #2a2d35);
    font-size: 0.8rem;
}

.memdesk-link-row:last-child {
    border-bottom: none;
}

.memdesk-link-relation {
    display: inline-block;
    font-size: 0.66rem;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 4px;
    padding: 1px 5px;
    margin-right: 6px;
    color: var(--accent, #4fc3f7);
    vertical-align: middle;
}

.memdesk-link-peer {
    opacity: 0.75;
    word-break: break-all;
}

.memdesk-link-unlink {
    background: none;
    border: none;
    color: inherit;
    opacity: 0.55;
    cursor: pointer;
    font-size: 0.74rem;
    padding: 2px 4px;
    flex-shrink: 0;
}

.memdesk-link-unlink:hover {
    color: var(--danger, #ef5350);
    opacity: 1;
}

.memdesk-empty {
    font-size: 0.78rem;
    opacity: 0.6;
    padding: 8px 0;
}

/* ---- 概念双向关联 ---- */
.memdesk-concept-pill {
    appearance: none;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
    padding: 7px 10px;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 999px;
    background: var(--card-bg, #1d2026);
    color: inherit;
    cursor: pointer;
    text-align: left;
}

.memdesk-concept-pill b { flex: 0 1 auto; min-width: 0; font-size: 0.8rem; }
.memdesk-concept-pill span { margin-left: auto; min-width: 0; font-size: 0.68rem; opacity: 0.58; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.memdesk-concept-pill:hover { border-color: var(--accent, #4fc3f7); }

.memdesk-concept-form {
    margin-top: 8px;
    padding: 9px;
    border: 1px dashed var(--border, #2a2d35);
    border-radius: 9px;
}

.memdesk-concept-switch { display: flex; gap: 5px; margin-bottom: 9px; }
.memdesk-concept-switch-btn {
    appearance: none;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 999px;
    background: transparent;
    color: inherit;
    padding: 4px 10px;
    font-size: 0.72rem;
    cursor: pointer;
}
.memdesk-concept-switch-btn.memdesk-active { border-color: var(--accent, #4fc3f7); color: var(--accent, #4fc3f7); }
.memdesk-concept-short { min-height: 52px; margin-top: 7px; }
.memdesk-concept-create-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 7px 0; }
.memdesk-concept-sense-extra { margin: 7px 0; font-size: 0.76rem; }
.memdesk-concept-sense-extra summary { cursor: pointer; opacity: 0.72; margin-bottom: 7px; }
.memdesk-concept-sense-extra .memdesk-input { width: 100%; }

@media (max-width: 560px) {
    .memdesk-concept-create-grid { grid-template-columns: 1fr; }
    .memdesk-concept-pill { align-items: flex-start; flex-direction: column; gap: 2px; border-radius: 12px; }
    .memdesk-concept-pill span { margin-left: 0; width: 100%; }
}

/* ---- 底部操作 ---- */
.memdesk-footer {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}

.memdesk-btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 0.86rem;
    cursor: pointer;
    border: 1px solid var(--border, #2a2d35);
    background: var(--card-bg, #1d2026);
    color: inherit;
}

.memdesk-btn.memdesk-primary {
    background: var(--accent, #4fc3f7);
    border-color: var(--accent, #4fc3f7);
    /* 文字用主题底色：亮主题(蓝底白底色字) / 暗主题(亮accent底暗色字) 都对比足 */
    color: var(--bg, #10131a);
    font-weight: 600;
}

.memdesk-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.memdesk-btn.memdesk-small {
    flex: 0 1 auto;
    padding: 5px 11px;
    font-size: 0.74rem;
}

/* ---- 审核中心 Tab（phase8-b: 记忆候选 | 关系建议）---- */
.memdesk-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--border, #2a2d35);
}

.memdesk-tab {
    flex: 0 0 auto;
    padding: 7px 14px;
    font-size: 0.82rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: #9aa0aa; /* 刀1 顺路修：--text-secondary 全站零定义（§4.5 幽灵变量锁），var 恒落 fallback → 字面量，零视觉变化 */
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: -1px;
}

.memdesk-tab.memdesk-active {
    color: var(--accent, #6ea8fe);
    border-bottom-color: var(--accent, #6ea8fe);
    font-weight: 600;
}

/* ---- 关系建议卡片 ---- */
.memdesk-sug-card {
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 8px;
    background: var(--card-bg, #1d2026);
}

.memdesk-sug-pair {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.84rem;
    line-height: 1.45;
    word-break: break-word;
}

.memdesk-sug-side {
    flex: 1 1 0;
    padding: 7px 9px;
    border-radius: 7px;
    background: var(--bg, #15171c);
    border: 1px solid var(--border, #2a2d35);
}

.memdesk-sug-link {
    flex: 0 0 auto;
    color: var(--accent, #6ea8fe);
    font-size: 1.1rem;
}

.memdesk-sug-reason {
    margin-top: 7px;
    font-size: 0.78rem;
    color: #9aa0aa; /* 刀1 顺路修：--text-secondary 全站零定义（§4.5 幽灵变量锁），var 恒落 fallback → 字面量，零视觉变化 */
    line-height: 1.45;
}

.memdesk-sug-meta {
    margin-top: 4px;
    font-size: 0.72rem;
    color: #9aa0aa; /* 刀1 顺路修：--text-secondary 全站零定义（§4.5 幽灵变量锁），var 恒落 fallback → 字面量，零视觉变化 */
    opacity: 0.8;
}

.memdesk-sug-actions {
    display: flex;
    gap: 8px;
    margin-top: 9px;
}

/* ---- staging 审核箱 ---- */
.memdesk-staging-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 8px;
}

.memdesk-staging-card {
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 9px 11px;
    margin-bottom: 8px;
    background: var(--card-bg, #1d2026);
}

.memdesk-staging-content {
    font-size: 0.86rem;
    line-height: 1.5;
    word-break: break-word;
}

.memdesk-staging-meta {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    margin-top: 5px;
    font-size: 0.7rem;
    opacity: 0.62;
}

/* 审核箱来源徽章（remember 写入标 meta_json.source）：SVG 图标非 emoji */
.memdesk-staging-srcrow {
    margin-bottom: 6px;
}
.memdesk-src-badge {
    color: var(--accent, #4fc3f7);
    border-color: var(--accent, #4fc3f7);
    opacity: 0.95;
    display: inline-flex;
    align-items: center;
}

.memdesk-staging-reason {
    margin-top: 5px;
    font-size: 0.74rem;
    opacity: 0.68;
    border-left: 2px solid var(--border, #2a2d35);
    padding-left: 7px;
    line-height: 1.45;
}

.memdesk-staging-actions {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.memdesk-staging-actions .memdesk-btn {
    padding: 6px 10px;
    font-size: 0.78rem;
    flex: 0 1 auto;
}

.memdesk-staging-done {
    opacity: 0.55;
}

/* ---- 刀 G2（7-25）：挂接待重试行 ----
   带 attachRetry 的已处理卡片要能被看见——所以这一行反过来抬高不透明度，
   盖掉 .memdesk-staging-done 的 0.55（否则重试入口会跟着整张卡一起变灰）。
   用 JS 拼出来的 .memdesk-has-relink 类而不是 `:has()`：少依赖一个选择器特性，
   万一环境不支持 `:has()` 整条规则会被丢弃、卡片就留在半透明（对抗审 B P2-4）。 */
.memdesk-staging-done.memdesk-has-relink {
    opacity: 1;
}

.memdesk-staging-relink {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
    padding-top: 7px;
    border-top: 1px dashed var(--border, #2a2d35);
}

.memdesk-relink-what {
    font-size: 0.72rem;
    opacity: 0.7;
    flex: 1 1 auto;
    min-width: 0;
}

.memdesk-badge.memdesk-badge-warn {
    background: rgba(224, 150, 62, 0.16);
    color: #e0963e;
    border: 1px solid rgba(224, 150, 62, 0.42);
}

/* ---- 相似整理（phase4）---- */
.memdesk-sim-item {
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    padding: 7px 9px;
    margin-top: 7px;
    transition: border-color 0.15s, background 0.15s;
}

/* phase8-b v2: 每条按动作着色 —— 主留蓝 / 并入绿 / 单独留灰(默认) / 归档暗红 */
.memdesk-sim-item.memdesk-sim-act-keep {
    border-color: var(--accent, #4fc3f7);
    background: rgba(79, 195, 247, 0.08);
}
.memdesk-sim-item.memdesk-sim-act-absorb {
    border-color: #43a047;
    background: rgba(67, 160, 71, 0.08);
}
.memdesk-sim-item.memdesk-sim-act-archive {
    border-color: #b06b6b;
    background: rgba(176, 107, 107, 0.10);
    opacity: 0.75;
}

.memdesk-sim-actbar {
    display: flex;
    gap: 5px;
    margin-top: 7px;
}
.memdesk-sim-actbtn {
    flex: 1 1 0;
    padding: 4px 6px;
    font-size: 0.72rem;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 6px;
    background: var(--bg, #15171c);
    color: #9aa0aa; /* 刀1 顺路修：--text-secondary 全站零定义（§4.5 幽灵变量锁），var 恒落 fallback → 字面量，零视觉变化 */
    cursor: pointer;
}
.memdesk-sim-actbtn.memdesk-active {
    border-color: var(--accent, #4fc3f7);
    color: var(--accent, #4fc3f7);
    font-weight: 600;
    background: rgba(79, 195, 247, 0.10);
}

.memdesk-sim-oversized {
    border-color: #c62828;
}

.memdesk-sim-refs {
    margin-top: 6px;
    padding: 6px 8px;
    border-radius: 6px;
    background: var(--bg, #15171c);
    border: 1px dashed var(--border, #2a2d35);
}
.memdesk-sim-ref {
    font-size: 0.76rem;
    color: #9aa0aa; /* 刀1 顺路修：--text-secondary 全站零定义（§4.5 幽灵变量锁），var 恒落 fallback → 字面量，零视觉变化 */
    line-height: 1.4;
    margin-top: 3px;
    word-break: break-word;
}

.memdesk-badge {
    display: inline-block;
    font-size: 0.64rem;
    border-radius: 4px;
    padding: 1px 6px;
    border: 1px solid var(--border, #2a2d35);
    opacity: 0.8;
    vertical-align: middle;
}

.memdesk-badge.memdesk-badge-accent {
    color: var(--accent, #4fc3f7);
    border-color: var(--accent, #4fc3f7);
    opacity: 1;
}

/* ---- 注入模式（phase7A）：关联行下方展开的行内表单 ---- */
.memdesk-inject-form {
    margin: 4px 0 10px;
    padding: 8px;
    border: 1px dashed var(--border, #2a2d35);
    border-radius: 8px;
}

.memdesk-inject-form textarea.memdesk-input {
    width: 100%;
    box-sizing: border-box;
    resize: vertical;
    margin: 6px 0;
    font-size: 0.78rem;
    line-height: 1.45;
}

.memdesk-inject-snippet-tools {
    align-items: center;
    gap: 8px;
}

.memdesk-inject-count {
    font-size: 0.7rem;
    opacity: 0.62;
}

.memdesk-inject-count.memdesk-inject-over {
    color: #e57373;
    opacity: 1;
    font-weight: 600;
}

/* phase7C-B: 证据关联区三入口 + 类型徽章 + 只读预览（全 memdesk- 命名空间，真实主题变量） */
.memdesk-evidence-actions {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.memdesk-ev-badge {
    display: inline-block;
    font-size: 0.62rem;
    border-radius: 4px;
    padding: 1px 6px;
    margin-right: 6px;
    border: 1px solid var(--border, #2a2d35);
    vertical-align: middle;
    white-space: nowrap;
}

.memdesk-ev-source {
    color: var(--accent, #4fc3f7);
    border-color: var(--accent, #4fc3f7);
}

.memdesk-ev-upload {
    color: #b39ddb;
    border-color: #7e57c2;
}

.memdesk-ev-obsidian {
    color: #81c784;
    border-color: #4caf50;
}

/* phase7B-A: 片段（chunk）证据徽章 + 文档下钻片段列表 */
.memdesk-ev-chunk {
    color: #ffb74d;
    border-color: #f57c00;
}

/* Phase 3: 证据待验徽章——记忆正文已编辑、原证据可能失真（内嵌 SVG 警示图标，非 emoji）；「确认仍有效」按钮 */
.memdesk-ev-stale {
    color: #ffd54f;
    border-color: #f9a825;
    background: rgba(249, 168, 37, 0.12);
}
.memdesk-confirm-stale {
    color: #ffd54f;
    border-color: #f9a825;
}

/* Phase 3.5: +原文 对话浏览器（消息多选列表，不用幽灵变量） */
.memdesk-src-msglist {
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 6px;
    padding: 4px;
    margin: 6px 0;
}
.memdesk-src-msg {
    display: block;
    padding: 5px 6px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.72rem;
    border-bottom: 1px solid #23262e;
}
.memdesk-src-msg:hover { background: rgba(255, 255, 255, 0.04); }
.memdesk-src-msg input { margin-right: 6px; vertical-align: middle; }
.memdesk-src-who { color: var(--accent, #4fc3f7); font-weight: 600; }
.memdesk-src-when { color: #8a8f98; font-size: 0.66rem; margin-left: 4px; }
.memdesk-src-text { margin-top: 2px; color: #d4d7dd; white-space: pre-wrap; word-break: break-word; }

.memdesk-chunk-list {
    margin: 4px 0 0;
    padding-left: 6px;
}

.memdesk-chunk-item {
    padding: 5px 7px;
    margin: 3px 0;
    border: 1px solid var(--border, #2a2d35);
    border-left: 2px solid #f57c00;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.72rem;
}

.memdesk-chunk-item:hover {
    background: var(--hover, rgba(255, 255, 255, 0.05));
}

.memdesk-chunk-ord {
    color: #ffb74d;
    font-weight: 600;
    margin-right: 4px;
}

.memdesk-chunk-head {
    color: var(--text-dim, #9aa0a6);
    font-size: 0.66rem;
}

.memdesk-chunk-prev {
    color: var(--text, #c8ccd2);
    margin-top: 2px;
    line-height: 1.35;
    white-space: normal;
}

.memdesk-ev-preview {
    margin: 2px 0 10px;
    padding: 8px;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    background: var(--bg, #16181d);
}

.memdesk-ev-preview-head {
    font-size: 0.72rem;
    opacity: 0.7;
    margin-bottom: 6px;
}

.memdesk-ev-pre {
    margin: 0;
    max-height: 320px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--text, #e8e8e8);
}

/* phase8-a: 逐字证据句只读展示 */
.memdesk-evq {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.memdesk-evq-badge {
    font-size: 0.62rem;
    border-radius: 4px;
    padding: 1px 6px;
    border: 1px solid var(--border, #2a2d35);
    white-space: nowrap;
}

.memdesk-evq-verified .memdesk-evq-badge { color: #81c784; border-color: #4caf50; }
.memdesk-evq-unverified .memdesk-evq-badge { color: #e6a23c; border-color: #c98a2e; }
.memdesk-evq-absent .memdesk-evq-badge { opacity: 0.6; }

.memdesk-evq-text { font-size: 0.8rem; opacity: 0.85; word-break: break-word; }
.memdesk-evq-none { font-size: 0.78rem; opacity: 0.5; }

/* ============================================================
   信息分层 v2（2026-08-19 塔拉拍板）——工作台模块壳 + 模块级 ⓘ
   视觉语法：解释文字不得成为默认布局的主要占位元素。
   主平面只放「名字 + 当前值 / 状态」，说明一律收进模块右上角的 ⓘ；
   ⓘ 的粒度是语义模块，不是控件（控件级 ⓘ 会把入口本身铺满页面）。
   工作台不折叠（塔拉要每天直观看见），模块 body 常驻展开。
   颜色仍按本文件既定纪律：只用 --bg/--text/--card-bg/--accent，
   其余用 rgba 中性灰 + opacity，不锁明暗主题。
   ============================================================ */
.memdesk-module {
    border: 1px solid var(--border, #2a2d35);
    border-radius: 10px;
    padding: 11px 12px 12px;
    margin-bottom: 10px;
    background: rgba(127, 127, 127, 0.04);
}

.memdesk-module-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 9px;
}

.memdesk-module-title {
    margin: 0;
    font-size: 0.86rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    min-width: 0;
}

.memdesk-module-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.memdesk-info-btn {
    width: 20px;
    height: 20px;
    padding: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 50%;
    background: none;
    color: inherit;
    font-size: 0.72rem;
    line-height: 1;
    opacity: 0.45;
    cursor: pointer;
}

.memdesk-info-btn:hover {
    opacity: 0.9;
}

.memdesk-info-btn.memdesk-active {
    opacity: 1;
    color: var(--accent, #4fc3f7);
    border-color: var(--accent, #4fc3f7);
}

.memdesk-info-panel {
    display: none;
    margin: 0 0 10px;
    padding: 9px 10px;
    border: 1px solid var(--border, #2a2d35);
    border-radius: 8px;
    background: rgba(127, 127, 127, 0.09);
}

.memdesk-info-panel.memdesk-open {
    display: block;
}

.memdesk-info-row {
    display: flex;
    gap: 9px;
    font-size: 0.7rem;
    line-height: 1.6;
    margin-bottom: 5px;
}

.memdesk-info-row:last-child {
    margin-bottom: 0;
}

.memdesk-info-term {
    flex: 0 0 72px;
    opacity: 0.85;
    font-weight: 600;
}

.memdesk-info-desc {
    flex: 1;
    min-width: 0;
    opacity: 0.62;
}

/* 模块内的小节名：只写名字（右边最多一个动作），不承担说明职责 */
.memdesk-sub {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.72rem;
    opacity: 0.6;
    letter-spacing: 0.04em;
    margin: 13px 0 7px;
}

.memdesk-module-body > .memdesk-sub:first-child {
    margin-top: 0;
}

.memdesk-module-body > *:last-child {
    margin-bottom: 0;
}

/* 正文默认铺开到和记忆一样长（高度由 autoSizeContent 按内容算） */
.memdesk-content-area {
    min-height: 96px;
}

@media (max-width: 560px) {
    .memdesk-module {
        padding: 10px 10px 11px;
    }

    .memdesk-info-row {
        flex-direction: column;
        gap: 2px;
    }

    .memdesk-info-term {
        flex: none;
    }
}
