

.guide-table {
    /* 列数较多时（如自创技能词条详解 8 列）侧栏宽度不够展示，
       block + overflow-x 让超宽表格可以横向滚动，避免右侧列被裁到屏幕外。 */
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    margin: var(--space-6) 0;
    font-size: var(--font-label);
}

.guide-table th {
    background: var(--glass-white-1);
    color: var(--text-gold);
    padding: var(--space-6) var(--space-8);
    text-align: left;
    font-weight: 600;
    border-bottom: 1px solid var(--border-color);
    font-size: var(--font-caption);
    white-space: nowrap;
}

.guide-table td {
    padding: var(--space-4) var(--space-8);
    border-bottom: 1px solid var(--glass-white-2);
    color: var(--text-secondary);
    white-space: nowrap;
}

.guide-table tr:last-child td {
    border-bottom: none;
}

/* ===== 道友系统 =====
   混搭：标题/急讯 = C 台冠急讯 · 名录 = A 师徒同族
   扁平钮对齐 game-dialog modal-btn；无左轨/通栏顶装饰。 */

#friendPanel {
    --fr-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --fr-line-strong: color-mix(in srgb, var(--accent-jade) 36%, var(--border-color));
    --fr-surface: var(--bg-panel);
    --fr-raised: var(--bg-card);
    --fr-ease: cubic-bezier(.2, .8, .2, 1);
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

/* C · 标题工具位（黑名单入眉栏，对齐台冠；头部已迁 gc-panel-head，操作组走公共右上浮层） */
#friendPanel .panel-title-link {
    font-size: var(--font-caption);
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
    background: transparent;
    font-family: inherit;
    cursor: pointer;
}
#friendPanel .panel-title-link:hover {
    color: var(--text-secondary);
    border-color: var(--fr-line);
    background: color-mix(in srgb, var(--fr-raised) 50%, transparent);
}

.friend-shell {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: 0 0 var(--space-16);
    font-family: var(--font-serif);
}

/* 标题中段计数位（对齐 sect-workbench__balance）。
   #11018：计数改页签下一行块级展示——右上「黑名单/×」是绝对定位浮层，
   行内计数在窄面板下会钻进浮层底下与黑名单重叠。 */
#friendPanel .friend-title-count {
    display: block;
    margin-left: 0;
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}
#friendPanel .friend-title-count .online {
    color: var(--text-jade);
}

/* workbench 固定筛选区（对齐 inventory-workbench__chrome） */
.friend-chrome {
    flex: 0 0 auto;
    padding: 0 var(--space-16) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.friend-filter-tabs {
    display: flex;
    gap: var(--space-6);
    flex-wrap: wrap;
}
/* .friend-filter-tab 形态/选中/hover 由 game-themes.css 统一胶囊规则接管 */
.friend-filter-tab {
    font-family: var(--font-serif);
}
.friend-filter-tab .friend-tab-badge {
    font-family: var(--font-mono);
    font-size: var(--font-micro);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    margin-left: var(--space-4);
    padding: 0 var(--space-6);
    line-height: 16px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--accent-crimson) 14%, transparent);
    color: var(--text-red);
}
.friend-filter-tab.active .friend-tab-badge {
    background: color-mix(in srgb, var(--accent-jade) 18%, transparent);
    color: var(--text-jade);
}
.friend-group-tabs {
    margin-top: var(--space-4);
}
.friend-chip--group {
    color: var(--text-jade);
}
.friend-group-manage-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-8);
    padding: var(--space-6) 0;
    border-bottom: 1px solid var(--color-border-default);
    font-size: var(--font-body);
}

/* 工具栏：图标搜索框 + 排序下拉 */
.friend-toolbar {
    display: flex;
    gap: var(--space-6);
    align-items: center;
}
.friend-search-wrap {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: var(--space-6);
    min-width: 0;
    height: 30px;
    max-height: 30px;
    padding: 0 var(--space-10);
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-md);
    background: var(--bg-primary);
    transition: border-color .15s var(--fr-ease);
}
.friend-search-wrap:focus-within {
    border-color: color-mix(in srgb, var(--accent-jade) 42%, var(--border-color));
}
.friend-search-icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    pointer-events: none;
}
.friend-search-wrap:focus-within .friend-search-icon {
    color: var(--text-jade);
}
#friendPanel .friend-search-wrap input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    outline: none;
    font-family: inherit;
    font-size: var(--font-label);
    color: var(--text-primary);
    padding: 0;
}
#friendPanel .friend-search-wrap input::placeholder {
    color: var(--text-muted);
}
.friend-search-clear {
    flex: none;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-size: var(--font-body-lg);
    line-height: 1;
    cursor: pointer;
    padding: var(--space-2);
}
.friend-search-clear:hover {
    color: var(--text-secondary);
}
.friend-sort-select {
    flex: 0 0 auto;
    height: 30px;
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    color: var(--text-primary);
    background: var(--bg-card);
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-md);
    padding: 0 var(--space-10);
    cursor: pointer;
    outline: none;
    transition: border-color .15s var(--fr-ease);
}
.friend-sort-select:focus,
.friend-sort-select:hover {
    border-color: color-mix(in srgb, var(--accent-jade) 38%, var(--border-color));
}

/* 扁平按钮族（对齐 modal-btn：浅底 + 描边） */
.friend-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    min-height: 28px;
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid var(--fr-line);
    background: transparent;
    color: var(--text-secondary);
    font-family: inherit;
    font-size: var(--font-caption);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.4px;
    cursor: pointer;
    white-space: nowrap;
    -webkit-appearance: none;
    appearance: none;
    transition: background .12s, border-color .12s, color .12s, opacity .12s;
}
.friend-btn:hover {
    border-color: color-mix(in srgb, var(--accent-jade) 30%, var(--border-color));
    color: var(--text-primary);
}
.friend-btn:active { opacity: 0.88; }
.friend-btn--sm {
    min-height: 24px;
    height: 24px;
    padding: 0 var(--space-8);
    font-size: var(--font-micro);
    border-radius: var(--radius-sm);
}
.friend-btn--jade {
    color: var(--text-jade, var(--accent-jade));
    border-color: color-mix(in srgb, var(--accent-jade) 40%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 12%, transparent);
}
.friend-btn--jade:hover {
    background: color-mix(in srgb, var(--accent-jade) 18%, transparent);
    border-color: color-mix(in srgb, var(--accent-jade) 55%, transparent);
    color: var(--text-jade, var(--accent-jade));
}
.friend-btn--gold {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 40%, transparent);
    background: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 12%, transparent);
}
.friend-btn--gold:hover {
    background: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 18%, transparent);
}
.friend-btn--outline {
    background: transparent;
    border-color: var(--fr-line);
    color: var(--text-secondary);
}
.friend-btn--outline:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 35%, var(--border-color));
    color: var(--text-primary);
}
.friend-btn--ghost {
    background: transparent;
    color: var(--text-muted);
    border-color: transparent;
}
.friend-btn--ghost:hover {
    color: var(--text-secondary);
    border-color: var(--fr-line);
}
.friend-btn--danger {
    color: var(--accent-crimson);
    border-color: color-mix(in srgb, var(--accent-crimson) 36%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 10%, transparent);
}
.friend-btn--danger:hover {
    background: color-mix(in srgb, var(--accent-crimson) 16%, transparent);
}
.friend-btn.is-pinned,
.btn-friend-pin.is-pinned {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 42%, transparent);
    background: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 8%, transparent);
}

/* chip 元数据 */
.friend-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-sm);
    border: 1px solid var(--fr-line);
    background: color-mix(in srgb, var(--fr-surface) 55%, transparent);
    color: var(--text-muted);
    font-size: var(--font-micro);
    line-height: 1.45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.friend-chip--online {
    color: var(--success-color, var(--accent-jade));
    border-color: color-mix(in srgb, var(--success-color, var(--accent-jade)) 35%, transparent);
    background: color-mix(in srgb, var(--success-color, var(--accent-jade)) 10%, transparent);
}
.friend-chip--offline {
    opacity: 0.85;
}
.friend-chip--stale {
    color: color-mix(in srgb, var(--text-danger, #c45c5c) 78%, var(--text-muted));
    border-color: color-mix(in srgb, var(--text-danger, #c45c5c) 28%, transparent);
    background: color-mix(in srgb, var(--text-danger, #c45c5c) 8%, transparent);
    opacity: 1;
}
.friend-card--stale {
    opacity: 0.92;
}
.friend-chip--realm {
    color: var(--text-secondary);
}
.friend-chip--gold {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--craft-gold) 36%, transparent);
    background: color-mix(in srgb, var(--craft-gold) 8%, transparent);
}

/* 寻访结果 / 兼容 */
.friend-search-result {
    margin: 0 var(--space-16);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.friend-search-result:empty { display: none; }

/* C · 急讯横幅 */
.friend-urgent {
    margin: 0 var(--space-16);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 24%, var(--fr-line));
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--fr-raised));
}
.friend-urgent.hidden { display: none; }
.friend-urgent__head {
    display: flex;
    align-items: center;
    gap: var(--space-6);
}
.friend-urgent__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.friend-urgent__count {
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.friend-urgent__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-6);
    align-items: center;
    padding: var(--space-2) 0;
}
.friend-urgent__mid { min-width: 0; }
.friend-urgent__meta {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    line-height: 1.45;
    color: var(--text-muted);
}
.friend-urgent__acts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    justify-content: flex-end;
    flex-shrink: 0;
}

/* 寻访分区壳（搜索结果仍用 section） */
.friend-section {
    overflow: hidden;
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-md);
    background: var(--fr-raised);
    margin: 0;
}
.friend-section--jade {
    border-color: color-mix(in srgb, var(--accent-jade) 28%, var(--fr-line));
}
.friend-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-6) var(--space-8);
    flex-wrap: wrap;
    padding: var(--space-8) var(--space-10);
    border-bottom: 1px solid var(--fr-line);
    background: color-mix(in srgb, var(--fr-surface) 62%, transparent);
    min-width: 0;
}
.friend-section__title {
    color: var(--text-primary);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    white-space: nowrap;
}
.friend-section__count {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.friend-section__head .friend-search-close {
    margin-left: 0;
}
.friend-section__body {
    padding: var(--space-8) var(--space-10);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    min-width: 0;
}

/* 道友名录：无外框、无标题区、无独立计数（总数在顶部标题栏），横向 padding 与 chrome 对齐（均 16px） */
.friend-roster {
    padding: 0 var(--space-16);
}

.friend-roster__body {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

/* 道友卡片 */
.friend-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-10) var(--space-12);
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--fr-surface) 55%, var(--fr-raised));
    transition: border-color .15s var(--fr-ease), background .15s var(--fr-ease);
}
.friend-card:hover {
    border-color: var(--fr-line-strong);
    background: color-mix(in srgb, var(--accent-jade) 4%, var(--fr-raised));
}
.friend-card--pinned {
    border-color: color-mix(in srgb, var(--craft-gold) 34%, var(--fr-line));
    background: color-mix(in srgb, var(--craft-gold) 6%, var(--fr-raised));
}
.friend-card--unread {
    border-color: color-mix(in srgb, var(--accent-crimson) 28%, var(--fr-line));
}
.friend-card__top {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    min-width: 0;
}
.friend-card__who {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    min-width: 0;
}
/* 可见 32、命中 44，对齐传音头像几何 */
.friend-card__avatar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text-jade);
    font-family: var(--font-display);
    font-size: var(--font-body);
    font-weight: 500;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
}
.friend-card__avatar-face {
    width: 32px;
    height: 32px;
    border: 1px solid var(--accent-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 26%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-card);
    background: color-mix(in srgb, var(--bg-card) 94%, transparent);
    line-height: 30px;
    text-align: center;
    overflow: hidden;
}
.friend-card__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}
.friend-card__avatar:hover .friend-card__avatar-face {
    border-color: var(--accent-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 40%, transparent);
    color: var(--text-gold);
}
.friend-card__identity {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    min-width: 0;
    flex: 1 1 auto;
}
.friend-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    min-width: 0;
}
.friend-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    align-items: center;
}
/* 操作分组分隔：主/次操作与危险操作（解除）之间撑开，让危险操作靠右 */
.friend-card__actions .friend-act-sep {
    display: block;
    flex: 1 1 0%;
    min-width: 6px;
    height: 0;
}

.friend-name {
    font-size: var(--font-body);
    color: var(--text-primary);
    font-weight: 700;
    font-family: var(--font-serif);
    min-width: 0;
}
.friend-name a.ranking-name-link {
    color: inherit;
    text-decoration: none;
}
.friend-name a.ranking-name-link:hover {
    color: var(--text-gold);
    text-decoration: underline;
}
.friend-origin-name {
    font-size: var(--font-caption);
    color: var(--text-muted);
    font-weight: 400;
    margin-left: var(--space-2);
}
.friend-realm {
    font-size: var(--font-caption);
    color: var(--text-muted);
}

.friend-pin-badge {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-6);
    font-size: var(--font-micro);
    line-height: 16px;
    border-radius: var(--radius-xs);
    color: var(--text-gold);
    border: 1px solid color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 40%, transparent);
    background: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 8%, transparent);
    font-weight: 600;
    font-family: var(--font-serif);
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: background .15s var(--fr-ease);
}
.friend-pin-badge:hover {
    background: color-mix(in srgb, var(--craft-gold, var(--accent-gold)) 16%, transparent);
}

.friend-search-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-10) var(--space-10);
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--fr-surface) 50%, var(--fr-raised));
}
.friend-req__main {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    min-width: 0;
}
.friend-req__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}

.friend-relation-tag {
    display: inline-flex;
    align-items: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    padding: var(--space-4) var(--space-8);
    background: color-mix(in srgb, var(--fr-surface) 60%, transparent);
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-pill);
    white-space: nowrap;
}

.friend-searching {
    font-size: var(--font-label);
    color: var(--text-muted);
    text-align: center;
    padding: var(--space-14) var(--space-10);
}

.friend-search-more {
    width: 100%;
    margin-top: var(--space-2);
}

/* 空状态 */
.friend-empty {
    text-align: center;
    padding: var(--space-32) var(--space-14);
    color: var(--text-muted);
    font-size: var(--font-label);
}
.friend-empty__title {
    font-size: var(--font-body);
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 1px;
}
.friend-empty__hint {
    font-size: var(--font-caption);
    color: var(--text-muted);
    opacity: 0.85;
    margin-top: var(--space-6);
    line-height: 1.5;
}

/* ---- 私信视图 ---- */
.friend-chat-shell {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: 0 var(--space-16) var(--space-16);
}
.friend-chat-header {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-6) var(--space-2) var(--space-10);
    border-bottom: 1px solid var(--fr-line);
}
.friend-chat-name,
.friend-chat-header span {
    font-size: var(--font-action);
    font-weight: 600;
    color: var(--text-gold);
    font-family: var(--font-serif);
    letter-spacing: 1px;
    min-width: 0;
}
.btn-friend-back {
    flex: none;
}
.friend-chat-messages {
    flex: 1 1 auto;
    min-height: 120px;
    overflow-y: auto;
    padding: var(--space-10) var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    background: color-mix(in srgb, var(--fr-surface) 70%, transparent);
    border: 1px solid var(--fr-line);
    border-radius: var(--radius-md);
    margin-bottom: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.friend-chat-messages::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}
.friend-chat-input .friend-btn {
    flex: none;
}

/* 私聊：软键盘弹出时输入条吸底，避免被输入法挡住只能盲打 */
#friendPanel .friend-chat-input.chat-input-bar {
    flex: 0 0 auto;
    position: sticky;
    bottom: 0;
    z-index: 3;
    margin-top: auto;
    background: color-mix(in srgb, var(--fr-raised, var(--bg-card)) 92%, transparent);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    padding-top: var(--space-8);
    padding-bottom: max(var(--space-8), env(safe-area-inset-bottom, 0px));
}
#friendPanel .friend-chat-messages {
    scroll-padding-bottom: 88px;
}

@media (max-width: 768px) {
    body.chat-composer-focused #friendPanel .friend-chat-input.chat-input-bar {
        padding-bottom: calc(var(--space-10) + env(safe-area-inset-bottom, 0px));
    }
    body.chat-composer-focused #friendPanel .friend-chat-messages {
        scroll-padding-bottom: 96px;
        min-height: 80px;
    }
    body.chat-composer-focused #friendPanel .friend-chat-shell {
        min-height: 0;
        flex: 1 1 auto;
    }
}

.pm-history-load {
    display: flex;
    justify-content: center;
    padding: 0 0 var(--space-8);
    flex-shrink: 0;
}
.pm-history-load-btn {
    min-height: 28px;
    padding: var(--space-6) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 22%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
    color: var(--text-jade, var(--accent-jade));
    font-size: var(--font-label);
    line-height: 1.2;
    cursor: pointer;
}
.pm-history-load-btn:hover:not(:disabled) {
    background: color-mix(in srgb, var(--accent-jade) 14%, transparent);
}
.pm-history-load-btn:disabled {
    cursor: default;
    opacity: 0.72;
}

/* 私信气泡 */
.pm-msg {
    max-width: 78%;
    padding: var(--space-8) var(--space-12);
    border-radius: var(--radius-lg);
    font-size: var(--font-body);
    line-height: 1.6;
    position: relative;
}

.pm-msg-mine {
    align-self: flex-end;
    background: linear-gradient(135deg, color-mix(in srgb, var(--canghai-teal) 20%, transparent), color-mix(in srgb, var(--canghai-teal) 12%, transparent));
    border: 1px solid color-mix(in srgb, var(--canghai-teal) 25%, transparent);
    color: var(--text-primary);
    border-bottom-right-radius: 4px;
}

.pm-msg-other {
    align-self: flex-start;
    background: var(--glass-white-2);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    border-bottom-left-radius: 4px;
}

.pm-msg-pending {
    opacity: 0.72;
}

.pm-msg-recalled {
    max-width: 62%;
    background: var(--glass-white-2);
    border-style: dashed;
    color: var(--text-muted);
    font-style: italic;
}

.pm-msg-content {
    word-break: break-word;
}

.pm-date-divider {
    align-self: stretch;
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin: var(--space-4) 0;
    color: var(--text-muted);
    font-size: var(--font-caption);
    line-height: 1;
}

.pm-date-divider::before,
.pm-date-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--border-color);
    opacity: 0.65;
}

.pm-date-divider span {
    flex: 0 0 auto;
    padding: var(--space-4) var(--space-8);
    border: 1px solid color-mix(in srgb, var(--craft-gold-bright) 22%, transparent);
    border-radius: var(--radius-pill);
    background: var(--shadow-black-3);
    color: var(--text-secondary);
    white-space: nowrap;
}

.pm-msg-sender {
    margin-bottom: var(--space-2);
    color: var(--text-muted);
    font-size: var(--font-caption);
    line-height: 1.3;
}

.pm-msg-rel-title,
.pm-msg-apt-title {
    display: inline-block;
    margin-right: var(--space-4);
    padding: 0 var(--space-4);
    border-radius: var(--radius-xs);
    font-size: var(--font-micro);
    line-height: 1.4;
    vertical-align: baseline;
}

.pm-msg-rel-title {
    color: var(--accent-gold, #c9a227);
    border: 1px solid color-mix(in srgb, var(--accent-gold, #c9a227) 32%, transparent);
    background: color-mix(in srgb, var(--accent-gold, #c9a227) 10%, transparent);
    font-weight: 600;
}

.pm-msg-apt-title {
    color: var(--text-danger, var(--accent-crimson));
    border: 1px solid color-mix(in srgb, var(--accent-crimson) 24%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 6%, transparent);
}

.pm-msg-meta {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    margin-top: var(--space-4);
    flex-wrap: wrap;
}

.pm-msg-time {
    font-size: var(--font-micro);
    color: var(--text-muted);
    opacity: 0.85;
}

.pm-msg-mine .pm-msg-sender {
    text-align: right;
}

.pm-msg-other .pm-msg-sender {
    text-align: left;
    color: var(--text-gold);
}

.pm-msg-mine .pm-msg-meta {
    justify-content: flex-end;
}

.pm-msg-other .pm-msg-meta {
    justify-content: flex-start;
}

/* 道友私信撤回：加大点击区，避免与时间挤在一行看不清 */
.pm-msg-recall-btn {
    margin: 0;
    padding: var(--space-2) var(--space-8);
    min-height: 22px;
    border: 1px solid color-mix(in srgb, var(--jimo-crimson, #c45c5c) 40%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--jimo-crimson, #c45c5c) 12%, transparent);
    color: var(--text-danger, #c45c5c);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    line-height: 16px;
    cursor: pointer;
    opacity: 1;
    -webkit-tap-highlight-color: transparent;
}

.pm-msg-recall-btn:hover,
.pm-msg-recall-btn:active {
    background: color-mix(in srgb, var(--jimo-crimson, #c45c5c) 22%, transparent);
}

/* ---- 道友/师徒/灵兽按钮未读徽章 ----
   底栏 .fn-grid 为 overflow:hidden，红点不得用负 top/right，否则会被裁掉。
   定位与尺寸以 game-layout .friend-btn-badge / .fn-btn .friend-btn-badge 为准。 */
.friend-btn-badge {
    background: var(--accent-crimson, var(--danger-color));
    color: transparent;
    border-radius: 50%;
    font-size: 0;
    padding: 0;
    overflow: hidden;
    animation: court-badge-pulse 1.5s ease-in-out infinite;
}

#friendBtn,
#masterBtn,
#petBtn {
    position: relative;
    overflow: visible;
}

#friendRequestBadge {
    display: inline-block;
    min-width: 14px;
    height: 14px;
    background: var(--accent-gold);
    color: var(--text-on-gold);
    border-radius: var(--radius-sm);
    font-size: var(--font-micro);
    font-weight: 700;
    text-align: center;
    line-height: 14px;
    padding: 0 var(--space-4);
    margin-left: var(--space-4);
    vertical-align: middle;
}
/* ==========================================================================
   Sect (宗门) Styles
   ========================================================================== */

#sectUnjoinedView, #sectJoinedView {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    flex: 1;
    min-height: 0;
}

.sect-desc {
    font-size: var(--font-body);
    color: var(--text-secondary);
    line-height: 1.6;
    background: var(--bg-card);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
}

#sectUnjoinedView.sect-entry {
    gap: var(--space-14);
}

.sect-entry-card {
    margin: 0;
    padding: var(--space-12) var(--space-14);
    background: var(--bg-glass);
}

.sect-entry-card--compact {
    padding: var(--space-10) var(--space-12);
}

.sect-rules-summary {
    list-style: none;
    padding: var(--space-10) var(--space-12);
    margin: 0;
    font-size: var(--font-body);
    color: var(--text-primary);
    background: var(--bg-card);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
}

.sect-rules-summary li {
    padding: var(--space-6) 0;
    display: flex;
    align-items: center;
    gap: var(--space-6);
    border-bottom: 1px solid var(--border-color);
}
.sect-rules-summary li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sect-action-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding-top: var(--space-14);
    border-top: 1px dashed var(--border-color);
}

.sect-action-group--ranking {
    padding-top: var(--space-12);
}

.sect-action-btn {
    width: 100%;
    min-height: 42px;
    border-radius: var(--radius-md);
    letter-spacing: 0;
}

body.game-page #sectUnjoinedView .sect-action-btn--primary {
    border-color: var(--border-jade);
    background: var(--bg-glass-jade);
    color: var(--text-jade);
}

body.game-page #sectUnjoinedView .sect-action-btn--create {
    background: var(--gradient-gold) !important;
    border-color: transparent;
    color: var(--text-gold) !important;
    font-weight: 700;
}

body.game-page #sectUnjoinedView .sect-action-btn--rank {
    background: transparent;
    border-color: var(--border-gold);
    color: var(--text-gold);
}

body.game-page #sectUnjoinedView .sect-action-btn--immortal::after {
    content: "仙界";
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    padding: 0 var(--space-6);
    border-radius: var(--radius-sm);
    background: var(--glass-white-1);
    color: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
}

/* 宗门分柜：横滑 chip（条目多时不挤成 6 等分小钮） */
.sect-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.sect-tabs::-webkit-scrollbar {
    display: none;
}

.sect-tab {
    flex: 0 0 auto;
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    padding: 0 var(--space-12);
    font-size: var(--font-label);
    font-family: inherit;
    font-weight: 600;
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--border-color) 82%, transparent);
    color: var(--text-secondary);
    border-radius: var(--radius-pill);
    cursor: pointer;
    transition:
        color 0.14s ease,
        border-color 0.14s ease,
        background 0.14s ease;
    white-space: nowrap;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
}

.sect-tab:hover {
    background: transparent;
    color: var(--accent-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 35%, var(--border-color));
}

.sect-tab.active {
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent);
    color: var(--text-gold);
    font-weight: 600;
}

.sect-tab-content {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    flex: 1;
    min-height: 0;
}

.sect-level-badge {
    background: var(--gradient-gold);
    color: var(--text-gold);
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-sm);
    font-size: var(--font-label);
    font-weight: 700;
}

/* ==========================================================================
   竞技场 · B 决战台 + B1 化身名片（翠主色）
   ========================================================================== */
#arenaContent {
    --ar-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --ar-primary-soft: color-mix(in srgb, var(--accent-jade) 9%, transparent);
    --ar-primary-line: color-mix(in srgb, var(--accent-jade) 28%, transparent);
    
    flex: none;
    min-height: 0;
    overflow: visible;
}
#arenaContent .ar-b-me__snap {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--space-4);
    padding: var(--space-10) var(--space-10) 0;
}
#arenaContent .ar-b-me__snap i {
    font-style: normal;
    text-align: center;
    padding: var(--space-6) var(--space-2);
    border-radius: var(--radius-sm);
    border: 1px solid var(--ar-line);
    background: color-mix(in srgb, var(--bg-panel) 80%, transparent);
}
#arenaContent .ar-b-me__snap em {
    display: block;
    font-style: normal;
    font-size: var(--font-micro);
    color: var(--text-muted);
    margin-bottom: var(--space-2);
}
#arenaContent .ar-b-me__snap strong {
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-primary);
}
#arenaContent .ar-b-me__snap i.is-empty strong {
    color: var(--text-muted);
    font-weight: 500;
}
#arenaContent .ar-b-combat-line {
    margin-top: var(--space-6);
}
#arenaContent .ar-b-pcard {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--space-10);
    align-items: center;
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--ar-line);
    background: var(--bg-card);
    transition: border-color .12s ease, background .12s ease;
}
#arenaContent .ar-b-pcard:hover {
    border-color: var(--ar-primary-line);
    background: var(--ar-primary-soft);
}
#arenaContent .ar-b-pcard--sim:hover,
#arenaContent .ar-b-pcard.arena-player-card--sim:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 36%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--bg-card));
}
#arenaContent .ar-b-pcard__main { min-width: 0; display: flex; flex-direction: column; gap: var(--space-6); }
#arenaContent .ar-b-pcard__head {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    min-width: 0;
}
#arenaContent .ar-b-pcard__name {
    min-width: 0;
    flex: 1;
    font-size: var(--font-body-lg);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
#arenaContent .ar-b-rank-badge,
#arenaContent .ar-b-pcard__rank {
    flex: none;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    border: 1px solid var(--ar-primary-line);
    background: var(--ar-primary-soft);
    color: var(--text-jade, var(--accent-jade));
    font-size: var(--font-micro);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
#arenaContent .ar-b-pcard--sim .ar-b-pcard__rank,
#arenaContent .ar-b-pcard.arena-player-card--sim .ar-b-rank-badge {
    border-color: color-mix(in srgb, var(--accent-gold) 34%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
    color: var(--text-gold);
}
#arenaContent .ar-b-pcard__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 0;
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.4;
}
#arenaContent .ar-b-pcard__meta > span:not(:last-child)::after {
    content: "·";
    margin: 0 var(--space-6);
    color: color-mix(in srgb, var(--text-muted) 70%, transparent);
    font-weight: 400;
}
#arenaContent .ar-b-points,
#arenaContent .ar-b-pcard__pts {
    color: var(--text-gold);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
#arenaContent .ar-b-pcard__wl {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
#arenaContent .ar-b-pcard__snap,
#arenaContent .ar-b-combat-line {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-top: 0;
}
#arenaContent .ar-b-pcard__stat {
    font-size: var(--font-micro);
    padding: var(--space-2) var(--space-6);
    border-radius: var(--radius-xs);
    border: 1px solid color-mix(in srgb, var(--border-color) 85%, transparent);
    background: color-mix(in srgb, var(--text-primary) 2.5%, transparent);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
}
#arenaContent .ar-b-pcard__stat b {
    color: var(--text-primary);
    font-weight: 700;
    margin-left: var(--space-2);
}
#arenaContent .ar-b-pcard__stat.is-core {
    border-color: color-mix(in srgb, var(--accent-jade) 28%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 6%, transparent);
}
#arenaContent .ar-b-pcard__stat.is-core b { color: var(--text-jade); }
#arenaContent .ar-b-pcard__act { align-self: center; }
#arenaContent .ar-b-pcard__act .btn {
    min-width: 56px;
    height: 32px;
    min-height: 32px;
    padding: 0 var(--space-12);
    font-size: var(--font-label);
    font-weight: 700;
    letter-spacing: 0.06em;
}

#arenaContent:not(.hidden) {
    display: flex;
    flex: 1;
    min-height: 0;
    flex-direction: column;
}

.arena-card {
    margin-bottom: 0;
}

.arena-card-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    text-align: left;
}

.arena-card-header-row > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.arena-card-hint {
    margin: 0;
    padding: var(--space-2) 0 var(--space-4);
}

.arena-card-hint--top {
    text-align: left;
    margin-bottom: var(--space-8);
}

.arena-player-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-12);
    background: var(--glass-white-3);
    border: 1px solid var(--glass-white-1);
    border-radius: var(--radius-sm);
    transition: border-color 0.2s, background 0.2s;
}

.arena-player-card:hover {
    background: color-mix(in srgb, var(--craft-gold) 4%, transparent);
    border-color: color-mix(in srgb, var(--craft-gold) 25%, transparent);
}

.arena-player-card--sim:hover {
    background: color-mix(in srgb, var(--canghai-teal) 5%, transparent);
    border-color: color-mix(in srgb, var(--canghai-teal) 28%, transparent);
}

.arena-player-main {
    min-width: 0;
}

.arena-player-head {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    min-width: 0;
}

.arena-player-name {
    min-width: 0;
    overflow: hidden;
    color: var(--text-primary);
    font-size: var(--font-body-lg);
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.arena-player-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-10);
    margin-top: var(--space-6);
    color: var(--text-secondary);
    font-size: var(--font-label);
    line-height: 1.5;
}

.arena-combat-stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-8);
    margin-top: var(--space-6);
    min-width: 0;
    color: var(--text-muted);
    font-size: var(--font-caption);
    line-height: 1.5;
}

.arena-combat-stats b {
    color: var(--text-secondary);
    font-weight: 700;
}

.arena-player-action {
    display: flex;
    justify-content: flex-end;
}

.arena-card-btn {
    min-width: 62px;
    min-height: 34px;
    padding: var(--space-6) var(--space-12);
}

.arena-card-btn--sim {
    background: color-mix(in srgb, var(--canghai-teal) 12%, transparent);
    border-color: color-mix(in srgb, var(--canghai-teal) 35%, transparent);
    color: var(--accent-jade);
}

.arena-battle-overview {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-12);
    align-items: center;
    justify-content: space-between;
    padding: var(--space-12);
    background: var(--glass-white-2);
    border: 1px solid var(--glass-white-1);
    border-left: 3px solid color-mix(in srgb, var(--craft-gold) 70%, transparent);
    border-radius: var(--radius-sm);
}

.arena-battle-overview--win {
    background: color-mix(in srgb, var(--canghai-teal) 7%, transparent);
    border-left-color: color-mix(in srgb, var(--canghai-teal) 95%, transparent);
}

.arena-battle-overview--lose {
    background: color-mix(in srgb, var(--jimo-crimson) 6%, transparent);
    border-left-color: color-mix(in srgb, var(--jimo-crimson) 90%, transparent);
}

.arena-battle-outcome {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--space-4);
    flex: 0 0 auto;
}

.arena-battle-outcome span,
.arena-battle-participants b,
.arena-battle-log-title small {
    color: var(--text-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.arena-battle-outcome strong {
    color: var(--text-gold);
    font-size: var(--font-page-title);
    font-weight: 800;
    line-height: 1.2;
}

.arena-battle-participants {
    display: flex;
    min-width: 0;
    flex: 1 1 280px;
    flex-wrap: wrap;
    gap: var(--space-8);
}

.arena-battle-participants span {
    display: inline-flex;
    max-width: 100%;
    min-width: 0;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-4) var(--space-8);
    background: var(--shadow-black-3);
    border: 1px solid var(--glass-white-1);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-size: var(--font-label);
    font-weight: 700;
    overflow-wrap: anywhere;
    white-space: normal;
}

.arena-battle-delta {
    flex: 0 0 auto;
    padding: var(--space-6) var(--space-10);
    background: color-mix(in srgb, var(--craft-gold) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--craft-gold) 22%, transparent);
    border-radius: var(--radius-sm);
    color: var(--text-gold);
    font-size: var(--font-label);
    font-weight: 800;
    white-space: nowrap;
}

.arena-battle-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: var(--space-10);
    margin-top: var(--space-12);
    min-width: 0;
}

.arena-battle-summary-block {
    min-width: 0;
    max-width: 100%;
    padding: var(--space-10);
    background: var(--glass-white-3);
    border: 1px solid var(--glass-white-1);
    border-radius: var(--radius-sm);
}

.arena-battle-summary-block--wide {
    grid-column: 1 / -1;
}

.arena-battle-summary-title {
    margin-bottom: var(--space-8);
    color: var(--text-gold);
    font-size: var(--font-label);
    font-weight: 700;
}

.arena-battle-loadout {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-6) 0;
    border-top: 1px solid var(--glass-white-2);
}

.arena-battle-loadout:first-of-type {
    border-top: none;
    padding-top: 0;
}

.arena-battle-loadout-name {
    min-width: 0;
    color: var(--text-primary);
    font-size: var(--font-label);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.arena-battle-loadout-skills {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: var(--space-6);
    align-items: center;
}

.arena-skill-chip {
    display: inline-flex;
    max-width: 100%;
    min-width: 0;
    align-items: center;
    padding: var(--space-2) var(--space-6);
    background: var(--glass-white-2);
    border: 1px solid var(--glass-white-1);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-size: var(--font-label);
    line-height: 1.45;
    overflow-wrap: anywhere;
    white-space: normal;
}

.arena-skill-chip--used {
    background: color-mix(in srgb, var(--craft-gold) 10%, transparent);
    border-color: color-mix(in srgb, var(--craft-gold) 24%, transparent);
    color: var(--text-primary);
}

.arena-skill-chip b {
    flex: none;
    margin-left: var(--space-6);
    color: var(--text-gold);
    font-size: var(--font-caption);
}

.arena-battle-empty {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-label);
    line-height: 1.5;
}

.arena-battle-log {
    margin-top: var(--space-10);
    max-height: min(58vh, 620px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: var(--space-2);
    font-size: var(--font-body);
    line-height: 1.65;
    text-align: left;
}

.arena-battle-log-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    margin-top: var(--space-12);
    padding: 0 var(--space-2);
}

.arena-battle-log-title span {
    color: var(--text-gold);
    font-size: var(--font-label);
    font-weight: 800;
}

.arena-battle-log-row {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: var(--space-6);
    align-items: start;
    padding: var(--space-8) var(--space-10);
    background: var(--glass-white-3);
    border-left: 2px solid var(--glass-white-1);
    border-bottom: 1px solid var(--glass-white-2);
}

.arena-battle-log-row:first-child {
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

.arena-battle-log-row:last-child {
    border-bottom: none;
    border-bottom-right-radius: 6px;
    border-bottom-left-radius: 6px;
}

.arena-battle-log-row--skill {
    background: color-mix(in srgb, var(--craft-gold) 6%, transparent);
    border-left-color: color-mix(in srgb, var(--craft-gold) 75%, transparent);
}

.arena-battle-log-row--effect {
    background: color-mix(in srgb, var(--canghai-teal) 6%, transparent);
    border-left-color: color-mix(in srgb, var(--canghai-teal) 70%, transparent);
}

.arena-battle-log-row--result {
    background: var(--glass-white-2);
    border-left-color: color-mix(in srgb, var(--craft-gold-bright) 65%, transparent);
}

.arena-battle-log-row--skip {
    justify-items: center;
    color: var(--text-muted);
    font-style: italic;
}

.arena-battle-round {
    display: inline-flex;
    justify-content: center;
    min-width: 0;
    padding: var(--space-2) var(--space-6);
    background: var(--shadow-black-3);
    border: 1px solid var(--glass-white-1);
    border-radius: var(--radius-xs);
    color: var(--text-gold);
    font-size: var(--font-caption);
    font-weight: 700;
    white-space: nowrap;
}

.arena-battle-round--meta {
    color: var(--text-muted);
}

/* #10137：无回合前缀子行继承的回合号——暗淡显示，可辨归属但不与主行抢眼 */
.arena-battle-round--inherited {
    color: var(--text-muted);
    opacity: .55;
    font-weight: 500;
}

.arena-battle-main {
    min-width: 0;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
    word-break: break-word;
}

.arena-log-keyword,
.arena-log-skill-tag,
.arena-log-effect-tag,
.arena-log-number {
    font-weight: 700;
}

.arena-log-keyword {
    color: var(--text-gold);
}

.arena-log-skill-tag {
    display: inline-block;
    margin-left: var(--space-4);
    padding: 0 var(--space-6);
    background: color-mix(in srgb, var(--craft-gold) 13%, transparent);
    border-radius: var(--radius-xs);
    color: var(--text-gold);
}

.arena-log-effect-tag {
    color: var(--accent-jade);
}

.arena-log-number {
    color: var(--text-primary);
}

.arena-result-panel {
    min-width: 0;
}

/* 宗门杯战报壳：宽高由 .gc-dialog 几何契约提供（tm-dialog--battle 已登记 medium）。 */
.arena-battle-modal {
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

.arena-battle-modal-body {
    flex: 1;
    min-height: 0;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.arena-battle-modal .arena-battle-log {
    max-height: none;
    overflow-x: hidden;
}

.arena-battle-modal .arena-result-panel,
.arena-battle-modal .arena-battle-summary,
.arena-battle-modal .arena-battle-log {
    max-width: 100%;
}

@media (max-width: 900px) {
    .arena-battle-summary {
        grid-template-columns: 1fr;
    }

    .arena-battle-overview {
        align-items: stretch;
    }

    .arena-battle-participants,
    .arena-battle-delta {
        flex-basis: 100%;
    }

    .arena-battle-delta {
        align-self: flex-start;
        white-space: normal;
    }

    .arena-battle-log {
        max-height: none;
    }
}

@media (max-width: 520px) {
    #arenaContent:not(.hidden) {
        flex: 0 0 auto;
        min-height: auto;
    }

    .arena-battle-log {
        flex: 0 0 auto;
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .arena-card--mine {
        padding: var(--space-12);
    }

    .arena-card-header-row {
        margin-bottom: var(--space-10);
    }

    .arena-card--collapsed .arena-card-header-row {
        margin-bottom: var(--space-8);
    }

    .arena-player-card {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .arena-player-action,
    .arena-card-btn {
        width: 100%;
    }

    .arena-battle-loadout,
    .arena-battle-log-row {
        grid-template-columns: 1fr;
    }

    .arena-battle-round {
        justify-content: flex-start;
        width: fit-content;
    }
}

/* 自建宗门首页按气血/灵力弹窗视觉体系收束 */
.psect-home {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
}

.psect-home .court-card {
    margin-bottom: 0;
    padding: var(--space-14);
    border-radius: var(--radius-md);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

.psect-home-tab {
    position: relative;
    flex: 1 0 0;
    min-width: 82px;
    height: 34px;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-muted);
    font-family: inherit;
    font-size: var(--font-body);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

/* 设施/管理 Tab 待办红点（仓库兑换审批、入宗申请等） */
.psect-home-tab .friend-btn-badge {
    top: 2px;
    right: 6px;
}

.psect-home-tab:hover {
    color: var(--text-secondary);
    border-color: color-mix(in srgb, var(--craft-gold) 28%, transparent);
}

.psect-home-tab--active {
    color: var(--text-gold);
    background: color-mix(in srgb, var(--craft-gold) 12%, transparent);
    border-color: color-mix(in srgb, var(--craft-gold) 48%, transparent);
}

.psect-home-panels {
    min-width: 0;
}

.psect-home-panel {
    display: none;
    flex-direction: column;
    gap: var(--space-12);
}

.psect-home-panel--active {
    display: flex;
}

.psect-home .court-card-header {
    margin: calc(-1 * var(--space-2)) 0 var(--space-12);
    padding-bottom: var(--space-10);
    border-bottom: 1px solid color-mix(in srgb, var(--craft-gold) 18%, transparent);
    color: var(--text-gold);
    font-size: var(--font-label);
    letter-spacing: 2px;
    text-align: center;
}

.psect-home .psect-facility-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
}

.psect-home .btn-action {
    min-height: 44px;
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: transparent !important;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-6);
    font-family: inherit;
    font-size: var(--font-body);
    transition: all 0.2s;
}

.psect-home .btn-action:hover {
    border-color: var(--border-gold);
    color: var(--text-primary);
}

.psect-home .psect-facility-btn {
    flex-direction: row;
    min-width: 0;
}

.psect-home #psectExpandCount {
    flex: 1 1 auto;
    min-width: 72px;
    width: auto;
}

.psect-home .psect-expand-slots-btn {
    flex: none;
    width: auto;
    min-width: 72px;
    margin-top: 0;
    border-color: color-mix(in srgb, var(--ghost-purple) 30%, transparent);
    color: var(--text-purple, var(--ghost-purple-deep));
    background: color-mix(in srgb, var(--ghost-purple) 10%, transparent) !important;
}

.psect-home .btn-danger {
    border-color: color-mix(in srgb, var(--jimo-crimson) 36%, transparent);
    color: var(--text-danger);
    background: color-mix(in srgb, var(--jimo-crimson) 8%, transparent) !important;
}

.psect-home .app-input,
.psect-home .app-select {
    min-height: 40px;
}

@media (max-width: 520px) {
    .psect-home .psect-facility-grid {
        grid-template-columns: 1fr;
    }

    .psect-home-tab {
        flex-basis: auto;
        min-width: 74px;
    }
}

/* --- 自建宗门设施按钮 --- */
.psect-facility-grid {
    display: flex;
    gap: var(--space-6);
    flex-wrap: wrap;
}

.psect-facility-btn {
    flex: 1;
    min-width: 80px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: var(--space-10) var(--space-8);
    font-size: var(--font-body);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
}

/* --- 自建宗门日志容器 --- */
.psect-logs-box {
    max-height: 160px;
    overflow-y: auto;
    padding: var(--space-6) var(--space-8);
    border-radius: var(--radius-sm);
    background: var(--shadow-black-3);
}

/* --- 自建宗门表单标签 --- */
.psect-field-label {
    display: block;
    font-size: var(--font-label);
    color: var(--text-muted);
    margin-bottom: var(--space-6);
}

/* --- 自建宗门复选框标签 --- */
.psect-checkbox-label {
    font-size: var(--font-label);
    display: flex;
    align-items: center;
    gap: var(--space-4);
    cursor: pointer;
    color: var(--text-gray);
    padding: var(--space-4) var(--space-6);
    border-radius: var(--radius-xs);
    border: 1px solid transparent;
    transition: all 0.2s;
}

.psect-checkbox-label.psect-checkbox-checked {
    color: var(--text-warning);
    background: color-mix(in srgb, var(--craft-gold-bright) 6%, transparent);
    border-color: color-mix(in srgb, var(--craft-gold-bright) 15%, transparent);
}

/* --- 宗门灵田网格 --- */
.psect-farm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(126px, 1fr));
    gap: var(--space-6);
    margin-top: var(--space-4);
}

.psect-farm-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin: var(--space-10) 0;
}

.psect-farm-pager--single {
    color: var(--text-muted);
    font-size: var(--font-label);
}

.psect-farm-pager .pager-info {
    min-width: 132px;
    text-align: center;
}

.psect-farm-plot {
    min-height: 130px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: var(--space-10) var(--space-8);
    text-align: center;
    display: flex;
    flex-direction: column;
    transition: border-color 0.2s;
}

.psect-farm-plot__title {
    font-size: var(--font-label);
    color: var(--text-gold);
    margin-bottom: var(--space-2);
}

.psect-farm-plot__status {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-bottom: var(--space-2);
}

.psect-farm-plot__content {
    font-size: var(--font-caption);
    color: var(--accent-jade);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.psect-farm-plot--idle {
    border-style: dashed;
    opacity: 0.85;
}

.psect-farm-plot--planted {
    border-color: color-mix(in srgb, var(--canghai-teal) 40%, transparent);
    background: linear-gradient(180deg, color-mix(in srgb, var(--canghai-teal) 4%, transparent), color-mix(in srgb, var(--canghai-teal) 2%, transparent));
}

.psect-farm-plot--mature {
    border-color: var(--accent-jade);
    box-shadow: 0 0 6px color-mix(in srgb, var(--canghai-teal) 35%, transparent);
    background: linear-gradient(180deg, color-mix(in srgb, var(--canghai-teal) 12%, transparent), color-mix(in srgb, var(--canghai-teal) 5%, transparent));
}

.psect-farm-plot__time {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-top: var(--space-4);
}

.psect-farm-plot__btn {
    width: 100%;
    margin-top: var(--space-6);
    font-size: var(--font-label);
}

.psect-farm-plot__actions {
    display: flex;
    gap: var(--space-4);
    margin-top: auto;
    padding-top: var(--space-8);
}

.psect-farm-plot__actions .psect-farm-plot__btn {
    margin-top: 0;
    flex: 1;
}

.psect-farm-plot__btn--release {
    background: color-mix(in srgb, var(--jimo-crimson) 15%, transparent);
    color: var(--craft-gold);
    border: 1px solid color-mix(in srgb, var(--jimo-crimson) 40%, transparent);
}

.psect-farm-plot__btn--release:hover {
    background: color-mix(in srgb, var(--jimo-crimson) 25%, transparent);
    color: var(--craft-gold-bright);
}

.psect-farm-placeholder {
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-label);
    padding: var(--space-12);
}

.psect-farm-batch-progress {
    margin-top: var(--space-12);
    padding: var(--space-10);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--accent-cyan) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-cyan) 22%, transparent);
}

.psect-farm-batch-progress__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    min-height: 18px;
    margin-bottom: var(--space-8);
    color: var(--text-secondary);
    font-size: var(--font-label);
    line-height: 1.35;
}

.psect-farm-batch-progress__head span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.psect-farm-batch-progress__head b {
    flex: 0 0 auto;
    color: var(--text-gold);
    font-size: var(--font-label);
    line-height: 1.2;
}

.psect-farm-batch-progress__track {
    height: 8px;
    border-radius: var(--radius-pill);
    background: var(--glass-white-1);
    overflow: hidden;
}

.psect-farm-batch-progress__bar {
    height: 100%;
    min-width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--accent-jade), var(--text-gold));
    transition: width 0.2s ease;
}

.psect-farm-batch-progress--done .psect-farm-batch-progress__bar {
    background: linear-gradient(90deg, var(--accent-jade), var(--ghost-purple-soft));
}

.psect-farm-batch-progress--error {
    background: color-mix(in srgb, var(--jimo-crimson) 8%, transparent);
    border-color: color-mix(in srgb, var(--jimo-crimson) 28%, transparent);
}

.psect-farm-batch-progress--error .psect-farm-batch-progress__bar {
    background: linear-gradient(90deg, var(--accent-crimson), var(--craft-gold));
}

.psect-farm-invasion-card {
    margin-top: 0;
    border-color: color-mix(in srgb, var(--craft-gold) 24%, transparent);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--craft-gold) 7%, transparent), var(--glass-white-3)),
        var(--bg-card);
}

.psect-farm-invasion-card--active {
    border-color: color-mix(in srgb, var(--jimo-crimson) 34%, transparent);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--jimo-crimson) 8%, transparent), color-mix(in srgb, var(--craft-gold) 4%, transparent)),
        var(--bg-card);
}

.psect-farm-invasion-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-10);
}

.psect-farm-invasion-head p {
    margin: var(--space-4) 0 0;
    color: var(--text-muted);
    font-size: var(--font-label);
    line-height: 1.45;
}

.psect-farm-invasion-badge {
    flex: 0 0 auto;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-pill);
    color: var(--text-gold);
    background: color-mix(in srgb, var(--craft-gold) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--craft-gold) 28%, transparent);
    font-size: var(--font-label);
    font-weight: 700;
}

.psect-farm-invasion-badge--active {
    color: var(--text-danger);
    background: color-mix(in srgb, var(--jimo-crimson) 10%, transparent);
    border-color: color-mix(in srgb, var(--jimo-crimson) 30%, transparent);
}

.psect-farm-invasion-meter,
.psect-farm-invasion-hp {
    position: relative;
    height: 9px;
    margin-top: var(--space-12);
    border-radius: var(--radius-pill);
    background: var(--glass-white-1);
    overflow: hidden;
}

.psect-farm-invasion-meter > div,
.psect-farm-invasion-hp__bar {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--text-gold), var(--text-danger));
}

.psect-farm-invasion-hp {
    height: 18px;
}

.psect-farm-invasion-hp span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-primary);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1;
    text-shadow: 0 1px 2px var(--shadow-black-1);
}

.psect-farm-invasion-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: var(--space-10);
}

.psect-farm-invasion-meta span {
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-pill);
    color: var(--text-secondary);
    background: var(--glass-white-2);
    border: 1px solid var(--glass-white-1);
    font-size: var(--font-label);
}

.psect-farm-invasion-actions {
    margin-top: var(--space-12);
}

.psect-farm-invasion-actions .modal-action-btn {
    width: 100%;
}

.sect-notice-text {
    margin: 0;
    font-size: var(--font-body);
    color: var(--text-secondary);
    line-height: 1.6;
    white-space: pre-wrap;
}

/* #10283：公告高亮卡——金竖条 + 淡金底 + 加重字色，让新人第一眼看到 */
.sect-notice-hl {
    margin: var(--space-4) 0 var(--space-8);
    padding: var(--space-8) var(--space-10);
    border-left: 3px solid var(--accent-gold, var(--craft-gold));
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--accent-gold, var(--craft-gold)) 7%, transparent);
}

.sect-notice-hl .sect-notice-text,
p.sect-notice-hl {
    color: var(--text-primary);
    font-weight: 600;
}

/* --- 事务 (Tasks) --- */
.sect-task-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    flex: 1;
    overflow-y: auto;
}

.sect-task-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: var(--space-10) var(--space-12);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sect-task-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    flex: 1;
    padding-right: var(--space-10);
}

.sect-task-name {
    color: var(--text-primary);
    font-size: var(--font-body);
    font-weight: 600;
}

.sect-task-desc {
    color: var(--text-muted);
    font-size: var(--font-caption);
    line-height: 1.4;
}

.sect-task-action {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-6);
    min-width: 60px;
}

.sect-task-progress {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.sect-task-reward {
    color: var(--text-jade);
    font-size: var(--font-caption);
    font-weight: 500;
}

/* --- 底蕴 (Storage/Donate) --- */
.sect-donate-toolbar {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin: var(--space-8) 0 var(--space-6);
}

.sect-donate-link {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    padding: var(--space-6) var(--space-10);
    font-size: var(--font-label);
    border-radius: var(--radius-sm);
    cursor: pointer;
    white-space: nowrap;
}
.sect-donate-link:hover {
    border-color: var(--accent-gold);
    color: var(--text-gold);
}

.sect-donate-list {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--shadow-black-3);
    padding: var(--space-4);
}

.sect-donate-empty {
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-label);
    padding: var(--space-24) var(--space-12);
}

.sect-donate-group {
    margin-bottom: var(--space-8);
}
.sect-donate-group:last-child { margin-bottom: 0; }

.sect-donate-group__title {
    font-size: var(--font-caption);
    color: var(--text-muted);
    letter-spacing: 0.05em;
    padding: var(--space-4) var(--space-8);
    border-bottom: 1px dashed var(--glass-white-1);
    margin-bottom: var(--space-4);
}
.sect-donate-group__count {
    color: var(--text-dim);
    font-size: var(--font-micro);
    margin-left: var(--space-4);
}

.sect-donate-row {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-6) var(--space-8);
    border-radius: var(--radius-xs);
    cursor: pointer;
    transition: background 0.15s;
}
.sect-donate-row:hover {
    background: color-mix(in srgb, var(--craft-gold-bright) 6%, transparent);
}
.sect-donate-row.is-active {
    background: color-mix(in srgb, var(--craft-gold-bright) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--craft-gold-bright) 25%, transparent);
    padding: var(--space-6) var(--space-8);
}

.sect-donate-check {
    flex: none;
    width: 14px;
    height: 14px;
    accent-color: var(--accent-gold);
    cursor: pointer;
}

.sect-donate-row__name {
    flex: 1;
    min-width: 0;
    font-size: var(--font-body);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sect-donate-row__meta {
    flex: none;
    font-size: var(--font-caption);
    color: var(--text-muted);
    white-space: nowrap;
}
/* 铭文行：不设 color/font-size，让 .stat-inscription 全局样式（与储物一致）自行渲染 */
.sect-donate-row__insc {
    flex-basis: 100%;
    margin-top: var(--space-2);
}

.sect-donate-qty {
    flex: none;
    width: 80px;
    min-width: 64px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: var(--space-4) var(--space-6);
    border-radius: var(--radius-sm);
    text-align: center;
    font-size: var(--font-label);
    outline: none;
    font-variant-numeric: tabular-nums;
}
.sect-donate-qty:focus { border-color: var(--accent-gold); }
.sect-donate-qty:disabled { opacity: 0.45; cursor: not-allowed; }

.sect-donate-preview {
    text-align: center;
    color: var(--text-secondary);
    font-size: var(--font-body);
    margin: var(--space-8) 0 var(--space-4);
    min-height: 20px;
}

/* --- 珍宝阁筛选下拉 --- */
.sect-shop-select {
    display: inline-flex;
    align-items: center;
    padding: var(--space-4) var(--space-32) var(--space-4) var(--space-8);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0c060' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 6px center;
    background-size: 12px;
}
.sect-shop-select:hover {
    background-color: var(--bg-card-hover);
    border-color: var(--accent-gold);
}

.sect-btn-buy {
    background: linear-gradient(135deg, color-mix(in srgb, var(--craft-gold-bright) 15%, transparent), color-mix(in srgb, var(--craft-gold-bright) 30%, transparent));
    color: var(--accent-gold);
    border: 1px solid color-mix(in srgb, var(--craft-gold-bright) 50%, transparent);
    padding: var(--space-4) var(--space-12);
    font-size: var(--font-label);
    border-radius: var(--radius-xs);
    cursor: pointer;
    transition: all 0.2s;
}
.sect-btn-buy:hover {
    background: linear-gradient(135deg, color-mix(in srgb, var(--craft-gold-bright) 30%, transparent), color-mix(in srgb, var(--craft-gold-bright) 50%, transparent));
    border-color: var(--accent-gold);
    box-shadow: 0 0 8px color-mix(in srgb, var(--craft-gold-bright) 20%, transparent);
}

.sect-shop-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    flex: 1;
    overflow-y: auto;
}

.sect-shop-item {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: var(--space-10) var(--space-12);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-10);
}

.sect-shop-item-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    flex: 1;
    min-width: 0;
}

.sect-shop-item-name {
    font-size: var(--font-body);
    font-weight: 600;
}

.sect-shop-item-desc {
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.3;
}

.sect-shop-item-price {
    font-size: var(--font-label);
    color: var(--text-gold);
    font-weight: 600;
}

.sect-shop-item-actions {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-shrink: 0;
}

.sect-shop-qty {
    width: 48px;
    height: 30px;
    text-align: center;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xs);
    color: var(--text-primary);
    font-size: var(--font-body);
    outline: none;
}

.sect-shop-qty:focus {
    border-color: var(--border-gold);
}

.psect-warehouse-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(176px, 1fr));
    gap: var(--space-10);
}

.psect-warehouse-card {
    min-width: 0;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    padding: var(--space-8) var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.psect-warehouse-card__top {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
}

.psect-warehouse-card__name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--font-label);
    font-weight: 700;
}

.psect-warehouse-card__qty {
    flex: none;
    font-size: var(--font-caption);
    color: var(--text-muted);
}

.psect-warehouse-card__meta {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    font-size: var(--font-micro);
    color: var(--text-muted);
}

.psect-warehouse-card__meta span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.psect-warehouse-card__desc {
    width: 100%;
    min-width: 0;
    min-height: 0;
    max-height: none;
    font-size: var(--font-caption);
    line-height: 1.45;
    color: var(--text-secondary);
    overflow: visible;
    display: block;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.psect-warehouse-card__stats {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    font-size: var(--font-micro);
    line-height: 1.35;
}
.psect-warehouse-card__stats .stat-atk { color: var(--text-red); }
.psect-warehouse-card__stats .stat-def { color: var(--text-info); }
.psect-warehouse-card__stats .stat-hp { color: var(--text-jade); }
.psect-warehouse-card__stats .stat-spirit { color: var(--ghost-purple-deep); }
.psect-warehouse-card__stats .stat-wear { color: var(--accent-orange); }
.psect-warehouse-card__inscriptions .stat-inscription {
    color: color-mix(in srgb, var(--ghost-purple) 70%, white);
    font-size: var(--font-micro);
}

.psect-warehouse-card__tags {
    min-height: 17px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.psect-warehouse-card__tag,
.psect-warehouse-card__hint {
    display: inline-flex;
    align-items: center;
    min-height: 16px;
    padding: 0 var(--space-6);
    border-radius: var(--radius-pill);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    font-size: var(--font-micro);
    line-height: 1;
    background: var(--glass-white-2);
}

/* #5905：仓库/藏宝阁先天词条标签，与捐赠 chip--affix 同色系 */
.psect-warehouse-card__tag--pin {
    color: var(--text-gold, var(--accent-gold));
    border-color: color-mix(in srgb, var(--accent-gold) 45%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
}

/* #8029：已领悟 / 同种已有，沿用翡翠成功色 */
.psect-warehouse-card__tag--owned {
    color: var(--accent-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 40%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 12%, transparent);
}

.psect-warehouse-card__tag--affix {
    color: var(--text-purple);
    border-color: color-mix(in srgb, var(--accent-purple) 28%, transparent);
}

.psect-warehouse-card__hint--gold {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--craft-gold) 35%, transparent);
}

.psect-warehouse-card__actions {
    margin-top: auto;
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.psect-warehouse-card__btn {
    min-height: 22px;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-xs);
    border: 1px solid var(--border-color);
    background: var(--bg-card-hover);
    color: var(--text-secondary);
    font-size: var(--font-micro);
    cursor: pointer;
}

.psect-warehouse-card__btn:hover {
    background: var(--bg-panel);
    color: var(--text-primary);
}

.psect-warehouse-card__btn--active {
    background: var(--color-gold, var(--craft-gold-bright));
    color: #000;
    border-color: var(--color-gold, var(--craft-gold-bright));
}

.psect-warehouse-card__btn--inscription {
    color: color-mix(in srgb, var(--ghost-purple) 70%, white);
    border-color: color-mix(in srgb, var(--ghost-purple) 45%, transparent);
    background: color-mix(in srgb, var(--ghost-purple) 10%, transparent);
}

.psect-warehouse-card__check {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    min-height: 22px;
    padding: var(--space-2) var(--space-6);
    border: 1px solid color-mix(in srgb, var(--craft-gold) 35%, transparent);
    border-radius: var(--radius-xs);
    color: var(--text-gold);
    font-size: var(--font-micro);
    cursor: pointer;
}

@media (max-width: 520px) {
    .psect-warehouse-grid {
        grid-template-columns: repeat(auto-fill, minmax(154px, 1fr));
        gap: var(--space-6);
    }
    .psect-warehouse-card {
        padding: var(--space-6);
    }
}

/* --- 名册 (Members) --- */
.sect-members-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: var(--space-8);
    border-bottom: 1px solid var(--border-color);
    margin-bottom: var(--space-8);
    color: var(--text-primary);
    font-size: var(--font-body);
}

.sect-member-search-bar {
    margin-bottom: var(--space-8);
}

.sect-member-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    flex: 1;
    overflow-y: auto;
}

.sect-member-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-card);
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    font-size: var(--font-body);
}

.sect-member-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.sect-member-name {
    color: var(--text-primary);
}

.sect-member-realm {
    color: var(--text-muted);
    font-size: var(--font-caption);
}

.sect-member-stats {
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.sect-member-role {
    color: var(--accent-purple);
    font-weight: 600;
    font-size: var(--font-label);
}

.sect-member-contrib {
    color: var(--text-gold);
    font-size: var(--font-caption);
    font-variant-numeric: tabular-nums;
}

.psect-member-search-bar {
    margin-bottom: var(--space-8);
}

.psect-member-search {
    width: 100%;
    min-width: 0;
    margin-bottom: 0 !important;
}

.psect-member-empty {
    text-align: center;
    color: var(--text-muted);
    padding: var(--space-14) var(--space-8);
    font-size: var(--font-body);
}

/* 传音频道 / 群聊工具栏样式以 game-layout + game-themes（chat-horn-b）为准。
   此处不再写 .chat-tabs / .chat-tab，避免覆盖市井胶囊与「建群」行间距。 */
.chat-msg-role {
    font-size: var(--font-micro);
    padding: 0 var(--space-6);
    height: 16px;
    line-height: 14px;
    border-radius: var(--radius-sm, var(--radius-xs));
    margin-right: 0;
    border: 1px solid color-mix(in srgb, var(--accent-gold) 40%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
    color: var(--text-gold);
    font-weight: 500;
}
.chat-msg-time {
    font-size: var(--font-micro);
    color: var(--text-muted);
    margin-right: 0;
    opacity: 0.75;
    font-variant-numeric: tabular-nums;
}

.chat-tab.has-unread::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--accent-crimson, var(--danger-color));
    border-radius: 50%;
    margin-left: var(--space-4);
    vertical-align: middle;
    animation: court-badge-pulse 1.5s ease-in-out infinite;
}

.trial-tower-card-header {
    text-align: center;
    font-size: var(--font-body-lg);
    color: var(--text-gold);
    font-family: var(--font-serif);
    letter-spacing: 2px;
    margin-bottom: var(--space-10);
}

.trial-tower-hint {
    font-size: var(--font-label);
    color: var(--text-muted);
    text-align: center;
    padding: var(--space-8) 0;
}

.trial-tower-boss-name {
    font-size: var(--font-body-lg);
    color: var(--accent-crimson);
    font-weight: 600;
    font-family: var(--font-serif);
    margin-bottom: var(--space-4);
}

.sim-row {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin: var(--space-6) 0;
    flex-wrap: wrap;
}
.sim-row--stack {
    align-items: stretch;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-8) 0;
    border-top: 1px dashed var(--glass-white-1);
}
.sim-row-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
}
.sim-label {
    font-size: var(--font-label);
    color: var(--text-muted);
    min-width: 64px;
    flex-shrink: 0;
}
.sim-value {
    font-size: var(--font-label);
    color: var(--text-gold);
    flex: 1;
}
.sim-select {
    flex: 1;
    min-width: 120px;
    padding: var(--space-6) var(--space-10);
    background: var(--shadow-black-2);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-size: var(--font-label);
    cursor: pointer;
}
.sim-select:hover {
    border-color: var(--accent-orange);
}

/* 妖兽选择弹窗 */
.sim-picker-body {
    max-height: 60vh;
    overflow-y: auto;
}
.sim-picker-group {
    margin-bottom: var(--space-10);
}
.sim-picker-group-title {
    font-size: var(--font-label);
    color: var(--accent-gold, var(--craft-gold));
    margin: var(--space-6) 0 var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid color-mix(in srgb, var(--craft-gold) 20%, transparent);
}
.sim-picker-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
}
.sim-pick-item {
    padding: var(--space-6) var(--space-8);
    background: var(--glass-white-2);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    cursor: pointer;
    text-align: left;
}
.sim-pick-item:hover {
    border-color: var(--accent-orange);
}
.sim-pick-active {
    background: color-mix(in srgb, var(--accent-orange) 12%, transparent);
    border-color: var(--accent-orange);
}
.sim-pick-name {
    font-size: var(--font-label);
    font-weight: 600;
}
.sim-pick-realm {
    font-size: var(--font-micro);
    color: var(--text-muted);
    margin-top: var(--space-2);
}
.sim-result-victory {
    background: color-mix(in srgb, var(--accent-jade) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 30%, transparent);
    color: var(--canghai-teal);
}
.sim-result-defeat {
    background: color-mix(in srgb, var(--jimo-crimson) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--jimo-crimson) 30%, transparent);
    color: var(--craft-gold-soft);
}

/* 技能切换弹窗 */
.sim-skill-body {
    max-height: 60vh;
    overflow-y: auto;
}
.sim-skill-section-title {
    font-size: var(--font-label);
    color: var(--accent-gold, var(--craft-gold));
    margin: var(--space-8) 0 var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid color-mix(in srgb, var(--craft-gold) 20%, transparent);
}
.sim-skill-section-title:first-child {
    margin-top: 0;
}
.sim-skill-row {
    display: flex;
    align-items: flex-start;
    gap: var(--space-6);
    padding: var(--space-8) 0;
    border-bottom: 1px solid var(--glass-white-1);
}
.sim-skill-row:last-child {
    border-bottom: none;
}
.sim-skill-info {
    flex: 1;
    min-width: 0;
}
.sim-skill-name {
    font-size: var(--font-body);
    color: var(--text-primary);
}
.sim-skill-grade {
    font-size: var(--font-micro);
    color: var(--accent-gold);
}
.sim-skill-desc {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-top: var(--space-2);
    line-height: 1.5;
}
.sim-skill-meta {
    font-size: var(--font-micro);
    color: var(--text-cyan, color-mix(in srgb, var(--accent-cyan) 70%, white));
    margin-top: var(--space-2);
}
.sim-builder-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px;
    gap: var(--space-6);
    margin: var(--space-6) 0;
}
.sim-builder-value {
    width: 100%;
    min-width: 0;
    padding: var(--space-6) var(--space-8);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--shadow-black-2);
    color: var(--text-primary);
    font-size: var(--font-label);
}
.sim-skill-btn-equip,
.sim-skill-btn-unequip {
    padding: var(--space-6) var(--space-12);
    border-radius: var(--radius-sm);
    font-size: var(--font-label);
    cursor: pointer;
    flex-shrink: 0;
    min-width: 56px;
}
.sim-skill-btn-equip {
    background: color-mix(in srgb, var(--accent-jade) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 30%, transparent);
    color: var(--canghai-teal);
}
.sim-skill-btn-unequip {
    background: color-mix(in srgb, var(--jimo-crimson) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--jimo-crimson) 30%, transparent);
    color: var(--craft-gold-soft);
}

@media (max-width: 520px) {
    .sim-builder-row {
        grid-template-columns: 1fr;
    }
}

.btn-trial-fight {
    flex: 1;
}

.btn-trial-giveup {
    flex-shrink: 0;
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-muted);
}

.btn-trial-giveup:hover {
    border-color: var(--accent-crimson);
    color: var(--accent-crimson);
}

/* 战后「继续」：全宽主操作，手机触控区加大（勿再用裸 btn-action） */
#trialTowerContent .tt-continue-wrap,
.tt-continue-wrap {
    margin-top: var(--space-10);
    padding: var(--space-2) 0 var(--space-4);
}
#trialTowerContent .btn-trial-continue,
.btn-trial-continue {
    width: 100%;
    min-height: 44px;
    height: auto;
    padding: var(--space-10) var(--space-16);
    font-size: var(--font-action);
    font-weight: 700;
    letter-spacing: 4px;
}
@media (max-width: 480px) {
    #trialTowerContent .btn-trial-continue,
    .btn-trial-continue {
        min-height: 48px;
        font-size: var(--font-title);
        letter-spacing: 6px;
    }
}


.trial-log-line {
    margin: 0;
    padding: var(--space-2) 0;
    color: var(--text-secondary);
    animation: trial-log-fadein 0.15s ease;
}

@keyframes trial-log-fadein {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

.trial-log-crit {
    color: var(--accent-crimson);
    font-weight: 600;
}

.trial-log-crit .arena-battle-main {
    color: var(--accent-crimson);
}

.trial-log-victory {
    color: var(--accent-jade);
    font-weight: 600;
}

.trial-log-victory .arena-battle-main {
    color: var(--accent-jade);
}

.trial-log-defeat {
    color: var(--text-muted);
    font-style: italic;
}

.trial-log-defeat .arena-battle-main {
    color: var(--text-muted);
}

.trial-log-buff {
    color: var(--accent-gold);
    font-weight: 600;
}

.trial-log-buff .arena-battle-main {
    color: var(--accent-gold);
}

/* -- 聊天身份徽章: 主称号 +N，与设置描边金钮同系 -- */
.chat-msg-badge-strip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
    max-width: 128px;
    vertical-align: middle;
}

.chat-msg-badge-strip.is-expanded {
    max-width: 100%;
    flex-wrap: wrap;
}

.chat-msg-badge-extra {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
}

.chat-msg-badge-strip:not(.is-expanded) .chat-msg-badge-extra {
    display: none;
}

.chat-msg-badge-strip.is-expanded .chat-msg-badge-extra {
    display: inline-flex;
    flex-wrap: wrap;
}

.chat-msg-badge,
.chat-msg-trial-title,
.chat-msg-equipped-title,
.chat-msg-divine-title,
.chat-msg-apprentice-title,
.chat-msg-relative-title,
.chat-msg-lineage {
    display: inline-flex;
    align-items: center;
    max-width: 96px;
    min-width: 0;
    height: 16px;
    padding: 0 var(--space-6);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 32%, transparent);
    border-radius: var(--radius-sm, var(--radius-xs));
    background: color-mix(in srgb, var(--accent-gold) 9%, transparent);
    color: var(--text-gold);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.chat-msg-equipped-title {
    background: color-mix(in srgb, var(--accent-gold) 9%, transparent);
}

/* ── 月卡 · 流金月箓（金箔流光，无粉紫虹彩） ──
   功耗保护（玩家反馈：开传音整机功耗 6-7W）：聊天/排行榜等列表内一律静态金箔，
   无限循环动画只允许出现在单实例表面（道友画卷卡头 .pf-card-head__name-text--vip）。
   background-position / box-shadow 这类动画每帧都强制重绘，列表几十条消息同时跑会烧 GPU。 */
@keyframes chat-vip-foil {
    0% { background-position: 0% 50%; }
    100% { background-position: 220% 50%; }
}

/* 月箓名字：纯金箔流光（无粉紫）；#6366 扩展至排行榜/道友画卷 */
.chat-msg--vip .chat-msg-name .chat-player-link,
.chat-player-link--vip,
.chat-msg-name--vip,
.chat-msg-name--vip .chat-player-link,
.ranking-name-link--vip,
.pf-card-head__name-text--vip {
    font-weight: 700 !important;
    letter-spacing: 0.04em;
    background-image: linear-gradient(
        105deg,
        color-mix(in srgb, var(--accent-gold) 82%, #5c3a08) 0%,
        var(--text-gold) 18%,
        color-mix(in srgb, var(--accent-gold) 45%, #fff8d6) 36%,
        color-mix(in srgb, var(--accent-gold) 88%, #fff1a8) 48%,
        var(--text-gold) 64%,
        color-mix(in srgb, var(--accent-gold) 70%, #8a5a12) 82%,
        color-mix(in srgb, var(--accent-gold) 82%, #5c3a08) 100%
    );
    background-size: 240% 100%;
    background-position: 36% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 5px color-mix(in srgb, var(--accent-gold) 38%, transparent));
}
/* 流光仅道友画卷卡头（单实例）保留；列表（聊天/排行榜）静态省电 */
.pf-card-head__name-text--vip {
    animation: chat-vip-foil 2.8s linear infinite;
}
html.theme-dark .chat-msg--vip .chat-msg-name .chat-player-link,
html.theme-dark .chat-player-link--vip,
html.theme-dark .chat-msg-name--vip,
html.theme-dark .chat-msg-name--vip .chat-player-link,
html.theme-dark .ranking-name-link--vip,
html.theme-dark .pf-card-head__name-text--vip {
    background-image: linear-gradient(
        105deg,
        color-mix(in srgb, var(--accent-gold) 90%, #8a5a12) 0%,
        color-mix(in srgb, var(--accent-gold) 70%, #fff0c0) 22%,
        #fff8d6 40%,
        color-mix(in srgb, var(--accent-gold) 85%, #ffe9a8) 55%,
        var(--text-gold) 72%,
        color-mix(in srgb, var(--accent-gold) 75%, #fff1a8) 88%,
        color-mix(in srgb, var(--accent-gold) 90%, #8a5a12) 100%
    );
    background-size: 240% 100%;
    filter: drop-shadow(0 0 8px color-mix(in srgb, var(--accent-gold) 48%, transparent));
}

/* 月箓头像：金环呼吸 + 右下「月」印 */
.chat-msg-avatar--vip {
    position: relative;
    overflow: visible !important;
    border-color: color-mix(in srgb, var(--accent-gold) 62%, transparent) !important;
    color: var(--text-gold) !important;
    background:
        linear-gradient(
            145deg,
            color-mix(in srgb, var(--accent-gold) 22%, var(--bg-card, var(--bg-card))),
            color-mix(in srgb, var(--accent-gold) 6%, var(--bg-card, var(--bg-card)))
        ) !important;
    /* 呼吸动画改静态金环：box-shadow 动画逐帧重绘，整列头像一起跑功耗过高 */
    box-shadow:
        0 0 0 1px color-mix(in srgb, var(--accent-gold) 42%, transparent),
        0 0 10px color-mix(in srgb, var(--accent-gold) 28%, transparent),
        inset 0 0 0 1px color-mix(in srgb, var(--accent-gold) 14%, transparent);
}
.chat-msg-avatar--vip::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: var(--radius-lg);
    border: 1px solid transparent;
    background:
        linear-gradient(var(--bg-card, var(--bg-card)), var(--bg-card, var(--bg-card))) padding-box,
        conic-gradient(
            from 0deg,
            color-mix(in srgb, var(--accent-gold) 15%, transparent),
            color-mix(in srgb, var(--accent-gold) 75%, transparent),
            color-mix(in srgb, var(--accent-gold) 20%, transparent),
            color-mix(in srgb, var(--accent-gold) 80%, transparent),
            color-mix(in srgb, var(--accent-gold) 15%, transparent)
        ) border-box;
    pointer-events: none;
    z-index: -1;
    opacity: 0.9;
}
.chat-msg-avatar--vip::after {
    content: '月';
    position: absolute;
    right: -4px;
    bottom: -4px;
    width: 13px;
    height: 13px;
    border-radius: var(--radius-xs);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 55%, transparent);
    background:
        linear-gradient(
            160deg,
            color-mix(in srgb, var(--accent-gold) 28%, var(--bg-card, var(--bg-card))),
            color-mix(in srgb, var(--accent-gold) 12%, var(--bg-card, var(--bg-card)))
        );
    color: var(--text-gold);
    font-family: var(--font-display, KaiTi, serif);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 11px;
    text-align: center;
    letter-spacing: 0;
    box-shadow:
        0 0 6px color-mix(in srgb, var(--accent-gold) 35%, transparent),
        0 1px 2px color-mix(in srgb, var(--text-primary) 10%, transparent);
    pointer-events: none;
    z-index: 2;
}
html.theme-dark .chat-msg-avatar--vip {
    color: var(--text-gold) !important;
    border-color: color-mix(in srgb, var(--accent-gold) 58%, transparent) !important;
    background:
        linear-gradient(
            145deg,
            color-mix(in srgb, var(--accent-gold) 26%, var(--bg-card, #1c1c20)),
            color-mix(in srgb, var(--accent-gold) 8%, var(--bg-card, #1c1c20))
        ) !important;
}
html.theme-dark .chat-msg-avatar--vip::before {
    background:
        linear-gradient(var(--bg-card, #1c1c20), var(--bg-card, #1c1c20)) padding-box,
        conic-gradient(
            from 0deg,
            color-mix(in srgb, var(--accent-gold) 20%, transparent),
            color-mix(in srgb, var(--accent-gold) 85%, transparent),
            color-mix(in srgb, var(--accent-gold) 25%, transparent),
            color-mix(in srgb, var(--accent-gold) 90%, transparent),
            color-mix(in srgb, var(--accent-gold) 20%, transparent)
        ) border-box;
}

/* 月箓气泡：淡金描边，不用左轨；实色兜底给旧 WebView */
.chat-msg-bubble--vip {
    border-color: var(--accent-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 28%, var(--border-color, transparent));
    background: var(--bg-card);
    background: color-mix(in srgb, var(--accent-gold) 7%, var(--bg-card, transparent));
    box-shadow: 0 0 0 1px rgba(183, 120, 31, 0.08);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
html.theme-dark .chat-msg-bubble--vip {
    border-color: var(--accent-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 24%, var(--border-color, transparent));
    background: var(--bg-card);
    background: color-mix(in srgb, var(--accent-gold) 9%, var(--bg-card, transparent));
}

@media (prefers-reduced-motion: reduce) {
    .chat-msg-avatar--vip,
.chat-msg-avatar--vip::before,
.chat-msg--vip .chat-msg-name .chat-player-link,
.chat-player-link--vip,
.chat-msg-name--vip,
.chat-msg-name--vip .chat-player-link,
.ranking-name-link--vip,
.pf-card-head__name-text--vip {
        animation: none !important;
    }
    .chat-msg--vip .chat-msg-name .chat-player-link,
    .chat-player-link--vip,
    .chat-msg-name--vip,
    .chat-msg-name--vip .chat-player-link,
    .ranking-name-link--vip,
    .pf-card-head__name-text--vip {
        background-image: none;
        -webkit-text-fill-color: var(--text-gold);
        color: var(--text-gold) !important;
        filter: none;
    }
    .chat-msg-avatar--vip {
        box-shadow:
            0 0 0 1px color-mix(in srgb, var(--accent-gold) 42%, transparent),
            0 0 10px color-mix(in srgb, var(--accent-gold) 28%, transparent);
    }
}

.chat-msg-trial-title {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 34%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}

.chat-msg-divine-title {
    color: var(--text-danger, var(--accent-crimson));
    border-color: color-mix(in srgb, var(--accent-crimson) 28%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 7%, transparent);
    text-shadow: none;
}

.chat-msg-apprentice-title {
    color: var(--text-danger, var(--accent-crimson));
    border-color: color-mix(in srgb, var(--accent-crimson) 24%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 6%, transparent);
}

/* 师门相对称谓：师父/师叔伯/同门…（FB#5696） */
.chat-msg-relative-title {
    color: var(--accent-gold, #c9a227);
    border-color: color-mix(in srgb, var(--accent-gold, #c9a227) 32%, transparent);
    background: color-mix(in srgb, var(--accent-gold, #c9a227) 10%, transparent);
    font-weight: 600;
}

.chat-msg-lineage {
    color: var(--text-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 28%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
}

.chat-msg-badge-overflow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    height: 16px;
    min-width: 22px;
    padding: 0 var(--space-6);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 28%, transparent);
    border-radius: var(--radius-sm, var(--radius-xs));
    background: color-mix(in srgb, var(--accent-gold) 7%, transparent);
    color: var(--text-gold);
    font-family: inherit;
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 14px;
    cursor: pointer;
}

.chat-msg-badge-overflow:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
}
.ranking-divine-title {
    display: inline-block;
    background: linear-gradient(90deg, color-mix(in srgb, var(--craft-gold) 18%, transparent), color-mix(in srgb, var(--craft-gold-bright) 18%, transparent));
    color: var(--craft-gold-bright);
    font-size: var(--font-micro);
    padding: 0 var(--space-6);
    border-radius: var(--radius-sm);
    margin-right: var(--space-4);
    font-weight: 700;
    vertical-align: middle;
    border: 1px solid color-mix(in srgb, var(--craft-gold-bright) 60%, transparent);
    letter-spacing: 0.3px;
}

/* 秘境 UI 浅色主题适配 */
html.theme-light .dungeon-control-deck {
    background: transparent;
    border: none;
    box-shadow: none;
}

html.theme-light .dungeon-actions-wrapper {
    background: transparent;
    border-top: none;
}

html.theme-light .dungeon-chat-section {
    background: color-mix(in srgb, var(--bg-card) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--jimo-crimson) 15%, transparent);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--text-primary) 4%, transparent);
}

html.theme-light .btn-dungeon-start {
    background: linear-gradient(135deg, color-mix(in srgb, var(--jimo-crimson) 12%, transparent), color-mix(in srgb, var(--jimo-crimson) 4%, transparent)) !important;
    color: var(--accent-crimson) !important;
    border: 1px solid color-mix(in srgb, var(--jimo-crimson) 30%, transparent) !important;
    font-weight: 800;
}

html.theme-light .btn-dungeon-start:hover:not(:disabled) {
    background: linear-gradient(135deg, color-mix(in srgb, var(--jimo-crimson) 20%, transparent), color-mix(in srgb, var(--jimo-crimson) 8%, transparent)) !important;
    text-shadow: none;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--jimo-crimson) 15%, transparent);
}

html.theme-light .dungeon-section-title {
    color: var(--accent-crimson); /* 与现有红色标头统一 */
}

html.theme-light .dungeon-room-actions-top .btn-action {
    background: color-mix(in srgb, var(--canghai-teal) 6%, transparent) !important;
    color: var(--success-color) !important;
    border-color: color-mix(in srgb, var(--canghai-teal) 15%, transparent) !important;
}

html.theme-light .dungeon-prep-actions .btn-action {
    background: color-mix(in srgb, var(--bg-card) 70%, transparent);
    border: 1px solid color-mix(in srgb, var(--text-primary) 15%, transparent);
    color: var(--text-primary);
}
.feedback-card-admin .feedback-id {
    color: var(--fb-muted, var(--text-muted, #8a8478));
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.3px;
    user-select: all;
}
.feedback-card-admin .feedback-client-platform {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 700;
    letter-spacing: 0.3px;
    border: 1px solid transparent;
    white-space: nowrap;
}
.feedback-card-admin .feedback-client-platform--app {
    background: rgba(64, 120, 192, 0.16);
    color: #1f5f9e;
    border-color: rgba(64, 120, 192, 0.4);
}
.feedback-card-admin .feedback-client-platform--web {
    background: rgba(90, 140, 90, 0.16);
    color: #2f6a37;
    border-color: rgba(90, 140, 90, 0.4);
}
.feedback-card-admin .feedback-client-platform--unknown {
    background: rgba(140, 130, 110, 0.12);
    color: #7a7264;
    border-color: rgba(140, 130, 110, 0.35);
}

/* 当前页图片预览（反馈附图 · 不新开标签） */
body.lv-img-preview-open {
    overflow: hidden;
}
.lv-img-preview-backdrop {
    --lv-img-preview-viewport-top: 0px;
    --lv-img-preview-viewport-left: 0px;
    --lv-img-preview-viewport-width: 100vw;
    --lv-img-preview-viewport-height: 100dvh;
    position: fixed;
    inset: auto;
    top: var(--lv-img-preview-viewport-top);
    left: var(--lv-img-preview-viewport-left);
    width: var(--lv-img-preview-viewport-width);
    height: var(--lv-img-preview-viewport-height);
    box-sizing: border-box;
    z-index: var(--z-toast, 130000);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(var(--space-20), env(safe-area-inset-top, 0px)) max(var(--space-20), env(safe-area-inset-right, 0px)) max(var(--space-20), env(safe-area-inset-bottom, 0px)) max(var(--space-20), env(safe-area-inset-left, 0px));
    overflow: hidden;
    background: color-mix(in srgb, var(--bg-primary, #12161a) 78%, transparent);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.lv-img-preview-dialog {
    position: relative;
    width: min(100%, 1180px);
    max-height: 100%;
    min-height: 0;
    box-sizing: border-box;
    margin: 0;
    padding: var(--space-12);
    border-radius: var(--radius-lg);
    border: 1px solid color-mix(in srgb, var(--border-color, #444) 70%, transparent);
    background: color-mix(in srgb, var(--bg-card, var(--bg-card)) 92%, transparent);
    box-shadow: var(--shadow-md, 0 20px 48px rgba(0, 0, 0, 0.35));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-6);
    overflow: hidden;
}
.lv-img-preview-img {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: var(--radius-sm);
}
.lv-img-preview-close,
.lv-img-preview-nav {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid color-mix(in srgb, var(--border-color, #555) 80%, transparent);
    background: color-mix(in srgb, var(--bg-primary, #111) 72%, transparent);
    color: var(--text-secondary, #ccc);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    font-family: inherit;
}
.lv-img-preview-close {
    top: 10px;
    right: 10px;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    font-size: var(--font-heading);
    line-height: 1;
    z-index: 2;
}
.lv-img-preview-nav {
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 58px;
    border-radius: var(--radius-md);
    font-size: var(--font-page-title);
    z-index: 2;
}
.lv-img-preview-prev { left: 12px; }
.lv-img-preview-next { right: 12px; }
.lv-img-preview-close:hover,
.lv-img-preview-nav:hover {
    border-color: color-mix(in srgb, var(--accent-gold, var(--accent-gold)) 50%, transparent);
    color: var(--text-gold, var(--accent-gold));
}
.lv-img-preview-caption {
    flex: none;
    font-size: var(--font-label);
    line-height: 1.4;
    color: var(--text-muted, #888);
    text-align: center;
}
@media (max-width: 640px) {
    .lv-img-preview-backdrop {
        padding: max(var(--space-10), env(safe-area-inset-top, 0px)) max(var(--space-10), env(safe-area-inset-right, 0px)) max(var(--space-10), env(safe-area-inset-bottom, 0px)) max(var(--space-10), env(safe-area-inset-left, 0px));
    }
    .lv-img-preview-dialog {
        width: 100%;
        max-height: 100%;
        padding: var(--space-8);
    }
    .lv-img-preview-img { max-height: 100%; }
    .lv-img-preview-nav { width: 44px; height: 48px; font-size: var(--font-page-title); }
    .lv-img-preview-prev { left: 8px; }
    .lv-img-preview-next { right: 8px; }
}

/* 道友画卷谏帖卡内附图（pfeed 与 slip 共用 renderFeedbackImages） */
.pfeed-card .fb-slip-images {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin: var(--space-8) 0 var(--space-4);
    padding: 0;
}
.pfeed-card .fb-slip-image-btn {
    width: 72px;
    height: 72px;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--border-color) 86%, transparent);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--bg-card);
    cursor: pointer;
}
.pfeed-card .fb-slip-image-btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pfeed-card .fb-slip-image-btn:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 45%, var(--border-color));
}

/* ===== 谏帖调阅 · 方案 A 鉴档笺（gc-dialog gold，无顶条/左轨/底栏关闭钮）===== */
body.game-page .pfeed-modal-overlay .modal-content.modal--decorated.gc-dialog.pfeed-modal,
.pfeed-modal-overlay .modal-content.modal--decorated.gc-dialog.pfeed-modal,
.pfeed-modal-overlay .modal-content.pfeed-modal.gc-dialog {
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pfeed-head.gc-head {
    flex: none;
}
/* × 位置走 game-dialog 统一规则 */

.pfeed-mid.gc-mid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-14) var(--space-8);
    overflow: hidden;
}
.pfeed-meta.gc-sub,
.pfeed-meta {
    flex: none;
    font-size: var(--font-label);
    line-height: 1.5;
    color: var(--text-muted);
}
.pfeed-meta strong {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}

.pfeed-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0 0 var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.pfeed-empty {
    padding: var(--space-48) var(--space-16);
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-label);
    line-height: 1.7;
}
.pfeed-empty__mark {
    display: block;
    font-family: var(--font-display);
    font-size: var(--font-page-title);
    color: color-mix(in srgb, var(--accent-gold) 45%, var(--text-muted));
    letter-spacing: 4px;
    margin-bottom: var(--space-10);
}
.pfeed-empty--error {
    color: var(--accent-crimson);
}

.pfeed-card {
    background: var(--bg-panel, var(--bg-card));
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: var(--space-12) var(--space-12);
    transition: border-color 0.15s, background 0.15s;
}
.pfeed-card:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 30%, var(--border-color));
}
.pfeed-card__top {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    margin-bottom: var(--space-8);
}
.pfeed-cat {
    font-size: var(--font-micro);
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-weight: 600;
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 22%, transparent);
}
.pfeed-status {
    font-size: var(--font-micro);
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-weight: 600;
}
.pfeed-status--pending {
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 28%, transparent);
}
.pfeed-status--processing {
    background: color-mix(in srgb, var(--accent-blue, #526f80) 10%, transparent);
    color: var(--accent-blue, #526f80);
    border: 1px solid color-mix(in srgb, var(--accent-blue, #526f80) 28%, transparent);
}
.pfeed-status--approved {
    background: color-mix(in srgb, var(--accent-jade) 10%, transparent);
    color: var(--accent-jade);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 28%, transparent);
}
.pfeed-status--rejected {
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent);
    color: var(--accent-crimson);
    border: 1px solid color-mix(in srgb, var(--accent-crimson) 22%, transparent);
}
.pfeed-time {
    margin-left: auto;
    font-size: var(--font-micro);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
.pfeed-card__body {
    font-size: var(--font-body);
    line-height: 1.65;
    color: var(--text-secondary);
    white-space: pre-wrap;
    word-break: break-word;
}
.pfeed-card__foot {
    margin-top: var(--space-10);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    flex-wrap: wrap;
}

/* 投票：保留 .feedback-votes-{id}
.pfeed-card .feedback-votes-static {
    display: flex;
    gap: var(--space-10);
    margin-top: 0;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.pfeed-card .vote-static-up { color: var(--accent-jade); }
.pfeed-card .vote-static-down { color: var(--accent-crimson); }

.pfeed-thread {
    margin-top: var(--space-10);
    padding-top: var(--space-8);
    border-top: 1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.pfeed-thread__label {
    font-size: var(--font-micro);
    letter-spacing: 2px;
    color: var(--text-muted);
    opacity: 0.8;
    margin-bottom: var(--space-2);
    font-family: var(--font-serif);
    font-weight: 700;
}
/* 往复气泡：全边框 + 软底，不用左轨色条 */
.pfeed-msg {
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md);
    font-size: var(--font-label);
    border: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--bg-secondary) 88%, transparent);
}
.pfeed-msg--admin {
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
    border-color: color-mix(in srgb, var(--accent-gold) 28%, var(--border-color));
}
.pfeed-msg--user {
    background: color-mix(in srgb, var(--bg-secondary) 92%, transparent);
}
.pfeed-msg__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-bottom: var(--space-4);
}
.pfeed-msg__sender {
    font-size: var(--font-caption);
    font-weight: 600;
    color: var(--text-primary);
}
.pfeed-msg--admin .pfeed-msg__sender {
    color: var(--text-gold);
    letter-spacing: 0.5px;
}
.pfeed-msg__tag {
    font-size: var(--font-micro);
    font-weight: 700;
    padding: 0 var(--space-6);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 30%, var(--border-color));
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    line-height: 1.5;
}
.pfeed-msg__tag--op {
    border-color: color-mix(in srgb, var(--text-muted) 35%, var(--border-color));
    color: var(--text-muted);
    background: transparent;
    font-weight: 500;
}
.pfeed-msg__time {
    font-size: var(--font-micro);
    color: var(--text-muted);
    margin-left: auto;
}
.pfeed-msg__body {
    font-size: var(--font-label);
    line-height: 1.55;
    color: var(--text-secondary);
    white-space: pre-wrap;
    word-break: break-word;
}

/* 脚注：走 gc-note，无底栏按钮 */
.pfeed-modal .gc-note.pfeed-note,
.pfeed-note {
    flex: none;
    padding: var(--space-10) var(--space-16) var(--space-14);
    font-size: var(--font-caption);
    line-height: 1.55;
    color: var(--text-muted);
    background: transparent;
    border-top: 1px solid var(--border-color);
    font-family: var(--font-serif);
    text-align: left;
    line-height: 1.5;
    text-align: center;
    opacity: 0.85;
}

/* ===== 五行试炼塔 · B 五行决战台 ===== */
#elementalTowerContent {
    --et-el-gold: #b8962e;
    --et-el-wood: #3d8f5a;
    --et-el-water: #3a7eb0;
    --et-el-fire: #c45a3a;
    --et-el-earth: #8a6a4a;
    
    
    
    
}
html.theme-dark #elementalTowerContent {
    --et-el-gold: #c4a85a;
    --et-el-wood: #6fad82;
    --et-el-water: #6a9fc4;
    --et-el-fire: #d08068;
    --et-el-earth: #b09272;
}
#elementalTowerContent .et-b-matchup {
    text-align: left;
    margin-bottom: var(--space-4);
}
#elementalTowerContent .et-round-dmg-out { color: var(--accent-jade); }
#elementalTowerContent .et-round-dmg-in { color: var(--accent-crimson); }
#elementalTowerContent .et-round-events { font-size: var(--font-caption); }

.et-progress {
    text-align: center;
    padding: var(--space-32) 0;
}
@keyframes et-spin {
    to { transform: rotate(360deg); }
}

.et-floor-detail-toggle {
    text-align: center;
    font-size: var(--font-label);
    color: var(--text-muted);
    cursor: pointer;
    padding: var(--space-8);
    margin-top: var(--space-8);
    border-top: 1px solid var(--glass-white-1);
    transition: color 0.2s;
}
.et-floor-detail-toggle::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: var(--space-6);
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 4px solid currentColor;
    vertical-align: middle;
    opacity: 0.6;
    transition: transform 0.2s ease;
}
.et-floor-detail-toggle.is-open::after {
    transform: rotate(180deg);
}
.et-floor-detail-toggle:hover {
    color: var(--text-primary);
}
.et-floor-detail {
    max-height: 400px;
    overflow-y: auto;
    margin-top: var(--space-4);
}
.et-round-logs {
    width: 100%;
    margin: var(--space-2) 0 var(--space-4);
}
.et-round-table {
    width: 100%;
    font-size: var(--font-caption);
    border-collapse: collapse;
}
.et-round-table th {
    background: var(--glass-white-1);
    padding: var(--space-4) var(--space-4);
    font-size: var(--font-micro);
    color: var(--text-muted);
    text-align: center;
}
.et-round-table td {
    padding: var(--space-2) var(--space-4);
    text-align: center;
    border-bottom: 1px solid var(--glass-white-2);
}


/* ===== 师徒系统 · A 护道同构（对齐护道 B + 今日弹窗配色）===== */
/* hero 师门玉牌 + pill 筛选 + flat card（无左轨）+ modal-btn 扁平语义钮 */
#masterPanelBody {
    --mt-line: var(--border-color);
    --mt-line-strong: var(--border-gold, color-mix(in srgb, var(--accent-gold) 42%, var(--border-color)));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
    --gc-radius-btn: var(--radius-md);
    padding: 0;
    font-family: var(--font-serif);
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
}

/* 师门玉牌 hero */
#masterPanelBody .m-hero {
    padding: var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-gold, color-mix(in srgb, var(--accent-gold) 35%, var(--border-color)));
    background:
        linear-gradient(135deg, var(--gradient-gold, rgba(183, 120, 31, 0.08)), transparent 62%),
        var(--mt-raised);
}
#masterPanelBody .m-hero__rule {
    width: 36px;
    height: 3px;
    border-radius: var(--radius-pill);
    background: var(--accent-gold);
    margin-bottom: var(--space-10);
}
#masterPanelBody .m-hero__k {
    font-size: var(--font-micro);
    letter-spacing: 2px;
    color: var(--text-muted);
    font-weight: 700;
}
#masterPanelBody .m-hero__row {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    margin-top: var(--space-6);
}
#masterPanelBody .m-hero__title {
    font-size: var(--font-action);
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--text-primary);
}
#masterPanelBody .m-hero__metrics { margin-top: var(--space-8); }
#masterPanelBody .m-hero__acts { margin-top: var(--space-10); }
#masterPanelBody .m-hero__note {
    margin: var(--space-8) 0 0;
    font-size: var(--font-caption);
    line-height: 1.55;
    color: var(--text-muted);
}

/* 筛选 pill */
#masterPanelBody .m-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}
#masterPanelBody .m-pill {
    height: 28px;
    padding: 0 var(--space-10);
    border-radius: var(--radius-pill);
    border: 1px solid var(--mt-line);
    background: transparent;
    color: var(--text-muted);
    font-size: var(--font-caption);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    transition: background .12s, border-color .12s, color .12s;
}
#masterPanelBody .m-pill.is-on {
    color: var(--text-gold);
    border-color: var(--border-gold, color-mix(in srgb, var(--accent-gold) 40%, transparent));
    background: var(--gradient-gold, rgba(183, 120, 31, 0.08));
}
#masterPanelBody .m-pill__n {
    font-family: var(--font-mono);
    font-size: var(--font-micro);
    font-weight: 700;
    color: var(--text-gold);
}
#masterPanelBody .m-block.is-hidden-filter,
#masterPanelBody .m-block[hidden] {
    display: none !important;
}

/* 急讯横幅 */
#masterPanelBody .m-urgent {
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid rgba(183, 58, 49, 0.28);
    background: rgba(183, 58, 49, 0.06);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
#masterPanelBody .m-urgent__head {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
}
#masterPanelBody .m-urgent__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
#masterPanelBody .m-urgent__count {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
html.theme-excel #masterPanelBody {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}

/* 急讯外层 div / 异步占位：不额外占间距 */
#masterPanelBody > #masterProtectAlertSection,
#masterPanelBody > #historyMastersPlaceholder,
#masterPanelBody > #contributionsPlaceholder {
    display: contents;
}

/* ---- section 卡片 ---- */
#masterPanelBody .m-section {
    overflow: hidden;
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    margin: 0;
    flex: none;
}
#masterPanelBody .m-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-6) var(--space-8);
    row-gap: var(--space-6);
    padding: var(--space-8) var(--space-10);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    flex-wrap: wrap;
    min-width: 0;
}
#masterPanelBody .m-section__title {
    color: var(--text-primary);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    white-space: nowrap;
    flex: none;
}
#masterPanelBody .m-section__head > .m-chip {
    flex: none;
}
#masterPanelBody .m-section__note {
    margin-left: 0;
    color: var(--text-muted);
    font-size: var(--font-micro);
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    min-width: 0;
    flex: 1 1 auto;
}
#masterPanelBody .m-section__count {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    flex: none;
    white-space: nowrap;
}
#masterPanelBody .m-section__head-actions {
    display: inline-flex;
    gap: var(--space-6);
    flex-wrap: wrap;
    margin-left: auto;
    flex: none;
    max-width: 100%;
    justify-content: flex-end;
}
/* 标题行已有 count 时，按钮紧跟其后，不再抢 auto */
#masterPanelBody .m-section__head .m-section__count + .m-section__head-actions {
    margin-left: 0;
}
/* 窄屏：操作按钮单独占满一行，避免挤在标题旁 */
@media (max-width: 420px) {
    #masterPanelBody .m-section__head-actions {
        flex: 1 1 100%;
        margin-left: 0;
    }
}
#masterPanelBody .m-section__body {
    padding: var(--space-8) var(--space-10);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    min-width: 0;
}
#masterPanelBody .m-hint {
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.55;
    padding: 0;
    margin: 0;
}

/* ---- 关系卡片 · 无左轨 flat ---- */
#masterPanelBody .m-card {
    display: block;
    overflow: hidden;
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    margin: 0;
    transition: border-color .15s var(--mt-ease), background .15s var(--mt-ease);
    flex: none;
}
#masterPanelBody .m-card:hover {
    border-color: var(--mt-line-strong);
}
#masterPanelBody .m-card--tone-gold {
    border-color: var(--border-gold, color-mix(in srgb, var(--accent-gold) 35%, transparent));
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--mt-raised));
}
#masterPanelBody .m-card--tone-ok {
    border-color: rgba(22, 128, 106, 0.28);
    background: color-mix(in srgb, var(--accent-jade) 5%, var(--mt-raised));
}
#masterPanelBody .m-card--unread {
    border-color: rgba(183, 58, 49, 0.32);
    background: color-mix(in srgb, var(--accent-crimson) 5%, var(--mt-raised));
}
#masterPanelBody .m-card__body {
    padding: var(--space-10) var(--space-12);
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
#masterPanelBody .m-card__top {
    display: flex;
    align-items: center;
    gap: var(--space-4) var(--space-6);
    row-gap: var(--space-4);
    flex-wrap: wrap;
    min-width: 0;
}
#masterPanelBody .m-card__name {
    color: var(--text-primary);
    font-size: var(--font-body);
    font-weight: 700;
    min-width: 0;
}
/* 收徒邀约/拜师帖等：道号可点开画卷，视觉上要明显可点 */
#masterPanelBody .m-card__name a.ranking-name-link,
#masterPanelBody .m-card__name a.m-name-link {
    color: var(--text-jade, var(--accent-jade));
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    -webkit-tap-highlight-color: color-mix(in srgb, var(--accent-jade) 25%, transparent);
}
#masterPanelBody .m-card__name a.ranking-name-link:hover,
#masterPanelBody .m-card__name a.m-name-link:hover {
    color: var(--text-gold);
}
#masterPanelBody .m-name-hint {
    margin-left: 0 !important;
    color: var(--text-muted);
    font-size: var(--font-micro);
    opacity: 0.85;
}
#masterPanelBody .m-card__realm {
    color: var(--text-muted);
    font-size: var(--font-micro);
}
#masterPanelBody .m-card__act {
    margin-left: auto;
    font-size: var(--font-micro);
    color: var(--text-muted);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    flex: none;
}
#masterPanelBody .m-card__note {
    margin: 0;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}

/* ---- 数值行 ---- */
#masterPanelBody .m-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-14);
    margin: 0;
    row-gap: var(--space-2);
}
/* 卡片内 metrics 紧贴姓名行；独立放在 body 时也由 body gap 控制 */
#masterPanelBody .m-metric {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-4);
}
#masterPanelBody .m-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
#masterPanelBody .m-metric__value {
    font-family: var(--font-mono);
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
#masterPanelBody .m-metric__value--jade { color: var(--accent-jade); }

#masterPanelBody .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
#masterPanelBody .m-chip--lineage {
    border-color: color-mix(in srgb, var(--accent-gold) 38%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
#masterPanelBody .m-chip--title {
    border-color: color-mix(in srgb, var(--accent-orange) 38%, transparent);
    background: color-mix(in srgb, var(--accent-orange) 10%, transparent);
    color: var(--text-gold);
}
#masterPanelBody .m-chip--unread {
    border-color: color-mix(in srgb, var(--accent-crimson) 38%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 12%, transparent);
    color: var(--accent-crimson);
}
#masterPanelBody .m-chip--hudao {
    border-color: color-mix(in srgb, var(--accent-orange) 35%, transparent);
    background: color-mix(in srgb, var(--accent-orange) 8%, transparent);
    color: var(--accent-orange);
}
#masterPanelBody .m-chip--ok {
    border-color: color-mix(in srgb, var(--accent-jade) 38%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
    color: var(--accent-jade);
}
#masterPanelBody .m-chip--warn {
    border-color: color-mix(in srgb, var(--accent-crimson) 35%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 7%, transparent);
    color: var(--accent-crimson);
}

/* ---- 按钮四语义 ---- */
#masterPanelBody .m-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-8);
    margin: 0;
    /* 卡片/区块内部 gap 已负责上下间距，避免再叠 margin-top */
}
/* 离门操作（出师/辞别）单独一行，与私信等日常钮隔开，降低误触 */
#masterPanelBody .m-actions--parting {
    margin-top: var(--space-8);
    padding-top: var(--space-8);
    border-top: 1px dashed var(--mt-line, rgba(255, 255, 255, 0.08));
    width: 100%;
    align-items: center;
}
#masterPanelBody .m-actions__parting-hint {
    flex: 1 0 100%;
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 0.3px;
    margin-bottom: var(--space-2);
}
/* 扁平钮 · 对齐 modal-btn（无实心白字主钮） */
#masterPanelBody .m-btn,
#masterPanelBody .m-actions .btn-action,
#masterPanelBody .m-section__head .btn-action {
    min-height: 34px;
    height: auto;
    padding: var(--space-6) var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--gc-radius-btn, var(--radius-md));
    background: transparent;
    color: var(--text-secondary);
    font-family: inherit;
    font-size: var(--font-caption);
    font-weight: 600;
    letter-spacing: 0.4px;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .12s, color .12s, background .12s, opacity .12s;
    margin: 0;
    flex: 0 0 auto;
    line-height: 1;
    box-shadow: none;
    filter: none;
    text-shadow: none;
    -webkit-appearance: none;
    appearance: none;
}
#masterPanelBody .m-section__head .m-btn,
#masterPanelBody .m-section__head .btn-action {
    height: 24px;
    padding: 0 var(--space-8);
    font-size: var(--font-micro);
}
#masterPanelBody .m-btn:hover,
#masterPanelBody .m-actions .btn-action:hover,
#masterPanelBody .m-section__head .btn-action:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-primary);
    background: var(--bg-input, rgba(42, 42, 38, 0.04));
}
#masterPanelBody .m-btn:active { opacity: 0.88; }
#masterPanelBody .m-btn:disabled,
#masterPanelBody .m-btn.is-disabled {
    opacity: .5;
    cursor: not-allowed;
}
#masterPanelBody .m-btn--ghost {
    border-color: transparent;
    color: var(--text-muted);
    background: transparent;
}
#masterPanelBody .m-btn--ghost:hover {
    border-color: var(--mt-line);
    color: var(--text-secondary);
}
#masterPanelBody .m-btn--primary,
#masterPanelBody .m-actions .btn-action.is-primary,
#masterPanelBody .m-actions .btn-action.btn-primary {
    border: 1px solid rgba(22, 128, 106, 0.40);
    background: rgba(22, 128, 106, 0.12);
    color: var(--text-jade, var(--accent-jade));
    font-weight: 600;
    box-shadow: none;
}
#masterPanelBody .m-btn--primary:hover,
#masterPanelBody .m-actions .btn-action.is-primary:hover,
#masterPanelBody .m-actions .btn-action.btn-primary:hover {
    border-color: rgba(22, 128, 106, 0.55);
    background: rgba(22, 128, 106, 0.18);
    color: var(--text-jade, var(--accent-jade));
    filter: none;
    box-shadow: none;
}
#masterPanelBody .m-btn--danger,
#masterPanelBody .m-actions .btn-action.btn-danger,
#masterPanelBody .m-actions .btn-danger {
    border: 1px solid rgba(183, 58, 49, 0.36);
    background: rgba(183, 58, 49, 0.10);
    color: var(--text-danger, var(--accent-crimson));
}
#masterPanelBody .m-btn--danger:hover,
#masterPanelBody .m-actions .btn-action.btn-danger:hover,
#masterPanelBody .m-actions .btn-danger:hover {
    background: rgba(183, 58, 49, 0.16);
    border-color: rgba(183, 58, 49, 0.48);
    color: var(--text-danger, var(--accent-crimson));
}
#masterPanelBody .m-btn--gold,
#masterPanelBody .m-actions .btn-action.is-gold {
    border: 1px solid rgba(183, 120, 31, 0.40);
    background: rgba(183, 120, 31, 0.12);
    color: var(--text-gold);
    font-weight: 600;
}
#masterPanelBody .m-btn--gold:hover,
#masterPanelBody .m-actions .btn-action.is-gold:hover {
    background: rgba(183, 120, 31, 0.18);
    border-color: rgba(183, 120, 31, 0.55);
    filter: none;
}

/* ---- 折叠 details ---- */
#masterPanelBody .m-details {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-surface);
    padding: var(--space-8) var(--space-10);
    margin: 0;
    flex: none;
}
/* section 内嵌套的 details 不再额外吃 margin */
#masterPanelBody .m-section__body > .m-details {
    margin: 0;
}
#masterPanelBody .m-summary {
    cursor: pointer;
    font-size: var(--font-caption);
    color: var(--text-secondary);
    list-style: none;
    user-select: none;
    display: flex;
    align-items: center;
    gap: var(--space-6);
    min-width: 0;
}
#masterPanelBody .m-summary::-webkit-details-marker { display: none; }
#masterPanelBody .m-summary::before {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 4px solid var(--text-muted);
    vertical-align: middle;
    transform: rotate(-90deg);
    transition: transform .2s var(--mt-ease);
    opacity: .7;
    flex: none;
}
#masterPanelBody details[open] > .m-summary::before { transform: rotate(0deg); }
#masterPanelBody .m-details__body {
    margin-top: var(--space-6);
    border-top: 1px solid var(--mt-line);
    padding-top: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

/* ---- 空状态 / 开关 / 排行 ---- */
#masterPanelBody .m-empty {
    font-size: var(--font-label);
    color: var(--text-muted);
    text-align: center;
    padding: var(--space-10) var(--space-4);
    line-height: 1.65;
    margin: 0;
}
#masterPanelBody .m-rank {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-4) var(--space-2);
    border-bottom: 1px solid color-mix(in srgb, var(--mt-line) 50%, transparent);
}
#masterPanelBody .m-rank:last-child { border-bottom: 0; padding-bottom: 0; }
#masterPanelBody .m-rank:first-child { padding-top: 0; }
#masterPanelBody .m-rank__no {
    min-width: 20px;
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-gold);
    font-size: var(--font-label);
    text-align: center;
    flex: none;
}
#masterPanelBody .m-rank__name {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    color: var(--text-primary);
    font-size: var(--font-label);
}
#masterPanelBody .m-rank__val {
    font-family: var(--font-mono);
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    flex: none;
}
#masterPanelBody .m-rank__meta {
    font-size: var(--font-micro);
    color: var(--text-muted);
    white-space: nowrap;
    flex: none;
}
#masterPanelBody .m-toggle {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-2) 0;
    font-size: var(--font-caption);
    color: var(--text-secondary);
    cursor: pointer;
    line-height: 1.4;
}
#masterPanelBody .m-toggle input {
    accent-color: var(--accent-gold);
    width: 14px;
    height: 14px;
    flex: none;
    margin: 0;
}
#masterPanelBody .m-select {
    width: 100%;
    height: 30px;
    margin: 0;
    padding: var(--space-4) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
}

/* ═══════════════════════════════════════════════════════════════
   道韵传道司 · 入口卡 + 弹窗 dt-dialog
   1:1 对齐 design-demos/dao-treasury-redesign
   全局：gc-dialog · 扁平 modal-btn · 无左轨 / 无通栏顶条
   ═══════════════════════════════════════════════════════════════ */

/* ---- 入口卡（师徒设置区，设计图 m-entry 同构） ---- */
#masterPanelBody .dt-entry {
    border: 1px solid var(--mt-line, var(--border-color));
    border-radius: var(--radius-lg);
    background: var(--mt-surface, var(--bg-panel));
    overflow: hidden;
    margin: 0;
    flex: none;
}
#masterPanelBody .dt-entry__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    flex-wrap: wrap;
    padding: var(--space-10) var(--space-12) var(--space-8);
    border-bottom: 1px solid color-mix(in srgb, var(--mt-line, var(--border-color)) 80%, transparent);
}
#masterPanelBody .dt-entry__title {
    font-size: var(--font-body);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--text-primary);
}
#masterPanelBody .dt-entry__chip {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    letter-spacing: 0.04em;
    border: 1px solid color-mix(in srgb, var(--accent-jade) 40%, transparent);
    color: var(--text-jade);
    background: color-mix(in srgb, var(--accent-jade) 10%, transparent);
}
#masterPanelBody .dt-entry__chip.is-muted {
    border-color: var(--mt-line, var(--border-color));
    color: var(--text-muted);
    background: transparent;
}
#masterPanelBody .dt-entry__body {
    padding: var(--space-10) var(--space-12) var(--space-12);
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
}
#masterPanelBody .dt-entry__hint {
    margin: 0;
    font-size: var(--font-caption);
    line-height: 1.55;
    color: var(--text-muted);
}
#masterPanelBody .dt-entry__metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
}
#masterPanelBody .dt-entry__metrics--single {
    grid-template-columns: 1fr;
}
#daoTreasuryOverlay .dt-metrics--single {
    grid-template-columns: 1fr;
}
#masterPanelBody .dt-entry__metric {
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid var(--mt-line, var(--border-color));
    background: var(--mt-raised, var(--bg-card));
}
#masterPanelBody .dt-entry__metric-lab {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 0.06em;
}
#masterPanelBody .dt-entry__metric-val {
    margin-top: var(--space-2);
    font-size: var(--font-action);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-gold);
    line-height: 1.25;
}
#masterPanelBody .dt-entry__metric-val small {
    font-size: var(--font-caption);
    font-weight: 500;
    color: var(--text-muted);
    margin-left: var(--space-2);
}
#masterPanelBody .dt-entry__cta.modal-btn,
#masterPanelBody .dt-entry .modal-btn.dt-entry__cta {
    width: 100%;
    min-height: 36px;
    height: 36px;
    margin: 0;
    border-radius: var(--radius-md);
}

/* ---- 弹窗壳 ---- */
body.game-page #daoTreasuryOverlay .gc-dialog.dt-dialog,
#daoTreasuryOverlay .gc-dialog.dt-dialog,
.gc-dialog.dt-dialog {
    --gc-radius: var(--radius-lg);
    --gc-radius-inner: var(--radius-md);
    --gc-radius-btn: var(--radius-md);
    padding: 0;
    border-radius: var(--radius-lg);
}
#daoTreasuryOverlay .dt-head {
    position: relative;
    padding: var(--space-20) var(--space-48) 0 var(--space-20);
    text-align: left;
    flex-shrink: 0;
}
#daoTreasuryOverlay .dt-head .gc-title {
    color: var(--text-primary);
}
#daoTreasuryOverlay .gc-mid.dt-mid,
#daoTreasuryOverlay .dt-mid {
    display: flex !important;
    flex-direction: column;
    gap: var(--space-10);
    flex: 1 1 auto;
    min-height: 0;
    padding: var(--space-12) var(--space-16) var(--space-8) !important;
    max-height: min(62vh, 540px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    text-align: left !important;
    white-space: normal;
}
#daoTreasuryOverlay .gc-foot.dt-foot,
#daoTreasuryOverlay .dt-foot {
    flex-shrink: 0;
    display: flex;
    gap: var(--space-8);
    margin: 0 !important;
    padding: var(--space-10) var(--space-16) max(var(--space-12), env(safe-area-inset-bottom, 0px)) !important;
    border-top: 1px solid var(--border-color);
}
#daoTreasuryOverlay .dt-foot .modal-btn {
    flex: 1;
    min-height: 40px;
    border-radius: var(--gc-radius-btn, var(--radius-md));
}

/* 粘性度量 */
#daoTreasuryOverlay .dt-metrics {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: var(--space-6);
    flex-shrink: 0;
}
#daoTreasuryOverlay .dt-metric {
    padding: var(--space-10) var(--space-10);
    border-radius: var(--gc-radius-inner, var(--radius-md));
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    box-sizing: border-box;
}
#daoTreasuryOverlay .dt-metric--dao {
    border-color: color-mix(in srgb, var(--accent-gold) 32%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 7%, var(--bg-panel, var(--bg-card)));
}
#daoTreasuryOverlay .dt-metric__lab {
    font-size: var(--font-micro);
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
#daoTreasuryOverlay .dt-metric__val {
    margin-top: var(--space-2);
    font-size: var(--font-title);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    color: var(--text-primary);
}
#daoTreasuryOverlay .dt-metric--dao .dt-metric__val { color: var(--text-gold); }
#daoTreasuryOverlay .dt-metric__val small {
    font-size: var(--font-caption);
    font-weight: 500;
    color: var(--text-muted);
    margin-left: var(--space-2);
}

/* 分段 Tab */
#daoTreasuryOverlay .dt-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    padding: var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--bg-input, rgba(42, 42, 38, 0.04));
    flex-shrink: 0;
    box-sizing: border-box;
}
#daoTreasuryOverlay .dt-tab {
    height: 32px;
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-muted);
    font: inherit;
    font-size: var(--font-label);
    font-weight: 600;
    letter-spacing: 0.06em;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
#daoTreasuryOverlay .dt-tab.is-on {
    background: var(--bg-card);
    color: var(--text-jade);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 28%, var(--border-color));
}
html.theme-dark #daoTreasuryOverlay .dt-tab.is-on {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}


/* 转化池切换（本源 / 灵渊） */
#daoTreasuryOverlay .dt-pool-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    flex-shrink: 0;
}
#daoTreasuryOverlay .dt-pool-tab {
    height: 30px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    color: var(--text-muted);
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 600;
    letter-spacing: 0.06em;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
#daoTreasuryOverlay .dt-pool-tab.is-on {
    color: var(--text-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 42%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 10%, var(--bg-card));
}
#daoTreasuryOverlay .dt-crystal__dot--nail { background: #8a8f98; }
#daoTreasuryOverlay .dt-crystal__dot--stele { background: #b49a6a; }
#daoTreasuryOverlay .dt-crystal__dot--rift { background: #7b6ea8; }
#daoTreasuryOverlay .dt-crystal__dot--rune { background: #c17a4a; }
#daoTreasuryOverlay .modal-btn:disabled,
#daoTreasuryOverlay .modal-btn[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
}

#daoTreasuryOverlay .dt-note {
    margin: 0;
    font-size: var(--font-caption);
    line-height: 1.5;
    color: var(--text-muted);
}
#daoTreasuryOverlay .dt-pane {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    min-width: 0;
}

/* 公式条 */
#daoTreasuryOverlay .dt-formula {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6) var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--gc-radius-inner, var(--radius-md));
    border: 1px solid color-mix(in srgb, var(--accent-jade) 28%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 6%, transparent);
    box-sizing: border-box;
}
#daoTreasuryOverlay .dt-formula__k {
    font-size: var(--font-micro);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--text-jade);
}
#daoTreasuryOverlay .dt-formula__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}
#daoTreasuryOverlay .dt-pill {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-caption);
    font-weight: 600;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    background: var(--bg-card);
    font-variant-numeric: tabular-nums;
    box-sizing: border-box;
}
#daoTreasuryOverlay .dt-pill--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 40%, transparent);
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 9%, transparent);
}

/* 分区小标题行：勿用 .dt-sec（与神号 dt-sec 卡片壳冲突） */
#daoTreasuryOverlay .dt-hd {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-8);
    margin: 0;
    padding: var(--space-2) var(--space-2) 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: visible;
    box-shadow: none;
}
#daoTreasuryOverlay .dt-hd__t {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--text-secondary);
}
#daoTreasuryOverlay .dt-hd__n {
    font-size: var(--font-caption);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
/* 兜底：若残留旧 class，也拆掉神号卡片皮 */
#daoTreasuryOverlay .dt-sec {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-8);
    margin: 0 !important;
    padding: var(--space-2) var(--space-2) 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    box-shadow: none !important;
}

/* 结晶卡 */
#daoTreasuryOverlay .dt-crystal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
}
#daoTreasuryOverlay .dt-crystal {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-10) var(--space-10) var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    line-height: 1.3;
    margin: 0;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .12s, background .12s;
}
#daoTreasuryOverlay .dt-crystal:hover {
    border-color: color-mix(in srgb, var(--accent-jade) 35%, var(--border-color));
}
#daoTreasuryOverlay .dt-crystal.is-on {
    border-color: color-mix(in srgb, var(--accent-jade) 50%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 9%, var(--bg-card));
}
#daoTreasuryOverlay .dt-crystal.is-target.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 9%, var(--bg-card));
}
#daoTreasuryOverlay .dt-crystal__name {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: var(--space-6);
}
#daoTreasuryOverlay .dt-crystal__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
}
#daoTreasuryOverlay .dt-crystal__dot--wood { background: #3d9a6a; }
#daoTreasuryOverlay .dt-crystal__dot--metal { background: #c4a35a; }
#daoTreasuryOverlay .dt-crystal__dot--earth { background: #8b7355; }
#daoTreasuryOverlay .dt-crystal__dot--water { background: #4a8fbf; }
#daoTreasuryOverlay .dt-crystal__qty {
    font-size: var(--font-caption);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
#daoTreasuryOverlay .dt-crystal.is-on .dt-crystal__qty { color: var(--text-secondary); }

#daoTreasuryOverlay .dt-swap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    padding: var(--space-2) 0;
    color: var(--text-muted);
    font-size: var(--font-caption);
    letter-spacing: 0.08em;
}
#daoTreasuryOverlay .dt-swap__arrow {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-card);
    color: var(--text-gold);
    font-size: var(--font-body-lg);
    box-sizing: border-box;
}

/* 结算条 */
#daoTreasuryOverlay .dt-settle {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-10);
    align-items: end;
    padding: var(--space-10) var(--space-12);
    border-radius: var(--gc-radius-inner, var(--radius-md));
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    box-sizing: border-box;
}
#daoTreasuryOverlay .dt-settle__lab {
    font-size: var(--font-micro);
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: var(--space-6);
}
#daoTreasuryOverlay .dt-stepper {
    display: inline-flex;
    align-items: center;
    height: 32px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    overflow: hidden;
    background: var(--bg-card);
}
#daoTreasuryOverlay .dt-stepper button {
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-title);
    cursor: pointer;
    font: inherit;
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
    padding: 0;
}
#daoTreasuryOverlay .dt-stepper button:hover {
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
}
#daoTreasuryOverlay .dt-stepper span {
    min-width: 28px;
    text-align: center;
    font-size: var(--font-body);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
}
/* #10602：件数可直接输入（免 +1 连点），外观对齐原 span */
#daoTreasuryOverlay .dt-stepper input {
    width: 52px;
    height: 32px;
    border: 0;
    background: transparent;
    text-align: center;
    font: inherit;
    font-size: var(--font-body);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
    padding: 0 2px;
    -moz-appearance: textfield;
    appearance: textfield;
}
#daoTreasuryOverlay .dt-stepper input::-webkit-outer-spin-button,
#daoTreasuryOverlay .dt-stepper input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
#daoTreasuryOverlay .dt-settle__cost { text-align: right; }
#daoTreasuryOverlay .dt-settle__cost b {
    display: block;
    font-size: var(--font-action);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
#daoTreasuryOverlay .dt-settle__cost em {
    font-style: normal;
    font-size: var(--font-caption);
    color: var(--text-muted);
}

/* 商店货架 */
#daoTreasuryOverlay .dt-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}
#daoTreasuryOverlay .dt-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-10);
    align-items: center;
    padding: var(--space-12) var(--space-12);
    border-radius: var(--gc-radius-inner, var(--radius-md));
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    box-sizing: border-box;
}
#daoTreasuryOverlay .dt-item.is-sold { opacity: 0.55; }
#daoTreasuryOverlay .dt-item__main { min-width: 0; }
#daoTreasuryOverlay .dt-item__name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6) var(--space-6);
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}
#daoTreasuryOverlay .dt-item__chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-6);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 9%, transparent);
    color: var(--text-gold);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.4;
}
#daoTreasuryOverlay .dt-item__chip.is-limit {
    border-color: color-mix(in srgb, var(--accent-jade) 35%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
    color: var(--text-jade);
}
#daoTreasuryOverlay .dt-item__chip.is-out {
    border-color: color-mix(in srgb, var(--accent-crimson) 30%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent);
    color: var(--accent-crimson);
}
#daoTreasuryOverlay .dt-item__desc {
    margin-top: var(--space-4);
    font-size: var(--font-caption);
    line-height: 1.45;
    color: var(--text-muted);
}
#daoTreasuryOverlay .dt-item__actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-6);
    flex-shrink: 0;
}
#daoTreasuryOverlay .dt-item .modal-btn {
    min-width: 76px;
    min-height: 34px;
    height: auto;
    padding: 0 var(--space-12);
    font-variant-numeric: tabular-nums;
    border-radius: var(--radius-md);
    font-size: var(--font-label);
}
#daoTreasuryOverlay .dt-item .modal-btn b { font-weight: 700; }
#daoTreasuryOverlay .dt-qty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    height: 26px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    background: var(--bg-card);
    overflow: hidden;
}
#daoTreasuryOverlay .dt-qty button {
    width: 24px;
    height: 26px;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-size: var(--font-body);
    cursor: pointer;
    font: inherit;
    line-height: 1;
    padding: 0;
    -webkit-appearance: none;
    appearance: none;
}
#daoTreasuryOverlay .dt-qty span {
    min-width: 18px;
    text-align: center;
    font-size: var(--font-caption);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* 搜索条：输入 + 搜索钮同高、横排铺满（不再依赖已删除的 friend-search-bar） */
#masterPanelBody .m-search-bar {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    margin: 0;
    min-width: 0;
}
#masterPanelBody .m-search-input,
#masterPanelBody .m-search-bar input {
    flex: 1 1 auto;
    min-width: 0;
    height: 30px;
    margin: 0;
    padding: 0 var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm, var(--radius-sm));
    background: var(--mt-raised, var(--bg-card));
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    outline: none;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
#masterPanelBody .m-search-input::placeholder,
#masterPanelBody .m-search-bar input::placeholder {
    color: var(--text-muted);
}
#masterPanelBody .m-search-input:focus,
#masterPanelBody .m-search-bar input:focus {
    border-color: color-mix(in srgb, var(--accent-jade) 42%, var(--border-color));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-jade) 12%, transparent);
}
#masterPanelBody .m-search-bar > .m-btn {
    height: 30px;
    padding: 0 var(--space-12);
    flex: 0 0 auto;
}
#masterPanelBody .m-search-result {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
#masterPanelBody .m-search-result .m-card {
    margin: 0;
}


/* 师门谱系弹窗 A 版：血脉中轴；卡片无左侧色条 */
.master-pedigree-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-pedigree-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-pedigree-modal .mp-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-6) var(--space-8);
    margin: 0 0 var(--space-10);
    padding: var(--space-2) var(--space-2) var(--space-8);
    border-bottom: 1px solid var(--mt-line);
}
.master-pedigree-modal .mp-meta__text {
    font-size: var(--font-caption);
    color: var(--text-muted);
    letter-spacing: 0.5px;
}

/* 卡片：无左竖条，单列铺满 */
.master-pedigree-modal .m-card,
.master-pedigree-modal .m-card--flat {
    display: block;
    overflow: hidden;
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    margin-bottom: var(--space-6);
    transition: border-color .15s var(--mt-ease), box-shadow .15s var(--mt-ease);
}
.master-pedigree-modal .m-card:last-child { margin-bottom: 0; }
.master-pedigree-modal .m-card--self {
    border-color: color-mix(in srgb, var(--accent-jade) 45%, transparent);
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--accent-jade) 8%, transparent), transparent 55%),
        var(--mt-raised);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-jade) 12%, transparent);
}
.master-pedigree-modal .m-card__body { padding: var(--space-8) var(--space-12); min-width: 0; }
.master-pedigree-modal .m-card__top {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
}
.master-pedigree-modal .m-card__name {
    color: var(--text-primary);
    font-size: var(--font-body);
    font-weight: 700;
}
/* 谱系人名可点开画卷：与师门侧栏同款可点样式，避免「像普通字点不动」 */
.master-pedigree-modal .m-card__name a.ranking-name-link,
.master-pedigree-modal .m-card__name a.m-name-link {
    color: var(--text-jade, var(--accent-jade));
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    -webkit-tap-highlight-color: color-mix(in srgb, var(--accent-jade) 25%, transparent);
}
.master-pedigree-modal .m-card__name a.ranking-name-link:hover,
.master-pedigree-modal .m-card__name a.m-name-link:hover {
    color: var(--text-gold);
}
.master-pedigree-modal .m-card__realm { color: var(--text-muted); font-size: var(--font-micro); }
.master-pedigree-modal .m-card__act {
    margin-left: auto;
    font-size: var(--font-micro);
    color: var(--text-muted);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.master-pedigree-modal .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
.master-pedigree-modal .m-chip--lineage {
    border-color: color-mix(in srgb, var(--accent-gold) 38%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
.master-pedigree-modal .m-chip--warn {
    border-color: color-mix(in srgb, var(--accent-crimson) 35%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 7%, transparent);
    color: var(--accent-crimson);
}
.master-pedigree-modal .m-chip--you {
    border-color: color-mix(in srgb, var(--accent-jade) 50%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 14%, transparent);
    color: var(--text-jade);
    font-weight: 700;
}
.master-pedigree-modal .m-hint {
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.65;
    padding: var(--space-2) var(--space-2) var(--space-6);
}

/* 血脉中轴 */
.master-pedigree-modal .mp-spine {
    position: relative;
    padding: var(--space-2) 0 var(--space-2) var(--space-20);
}
.master-pedigree-modal .mp-spine::before {
    content: '';
    position: absolute;
    left: 5px;
    top: 14px;
    bottom: 14px;
    width: 2px;
    border-radius: var(--radius-xs);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--accent-gold) 55%, transparent),
        color-mix(in srgb, var(--accent-jade) 55%, transparent)
    );
}
.master-pedigree-modal .mp-spine-node {
    position: relative;
    margin-bottom: var(--space-10);
}
.master-pedigree-modal .mp-spine-node:last-child { margin-bottom: 0; }
.master-pedigree-modal .mp-spine-node::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 16px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bg-card);
    border: 2px solid var(--accent-gold);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-gold) 12%, transparent);
    z-index: 1;
}
.master-pedigree-modal .mp-spine-node.is-self::before {
    border-color: var(--accent-jade);
    background: var(--accent-jade);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-jade) 18%, transparent);
}
.master-pedigree-modal .mp-spine-node.is-down::before {
    border-color: var(--accent-jade);
}
.master-pedigree-modal .mp-spine-label {
    font-size: var(--font-micro);
    letter-spacing: 2px;
    color: var(--text-muted);
    margin-bottom: var(--space-6);
    padding-left: var(--space-2);
}
.master-pedigree-modal .mp-branch {
    margin: var(--space-6) 0 var(--space-8) 0;
    padding: 0;
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--mt-surface) 55%, transparent);
    overflow: hidden;
}
.master-pedigree-modal .mp-branch__summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-8) var(--space-10);
    font-size: var(--font-micro);
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--text-muted);
    background: color-mix(in srgb, var(--mt-surface) 70%, transparent);
}
.master-pedigree-modal .mp-branch__summary::-webkit-details-marker { display: none; }
.master-pedigree-modal .mp-branch__summary::before {
    content: '';
    width: 0;
    height: 0;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 4.5px solid var(--text-muted);
    transform: rotate(-90deg);
    transition: transform .18s var(--mt-ease);
    opacity: .7;
    flex-shrink: 0;
}
.master-pedigree-modal .mp-branch[open] > .mp-branch__summary::before { transform: rotate(0); }
.master-pedigree-modal .mp-branch__title {
    flex: 1;
    min-width: 0;
    font-size: var(--font-micro);
    letter-spacing: 1px;
    color: var(--text-muted);
    margin: 0;
}
.master-pedigree-modal .mp-branch__body,
.master-pedigree-modal .mp-branch > .mp-tree {
    padding: var(--space-6) var(--space-8) var(--space-8);
}
.master-pedigree-modal .mp-spine-fold {
    margin: 0;
}
.master-pedigree-modal .mp-tree {
    margin-left: var(--space-8);
    padding-left: var(--space-10);
    border-left: 1px dashed color-mix(in srgb, var(--accent-jade) 35%, transparent);
}
.master-pedigree-modal .mp-tree-item { margin-bottom: var(--space-6); }
.master-pedigree-modal .mp-tree-item:last-child { margin-bottom: 0; }
.master-pedigree-modal .mp-tree-item > .m-card { margin-bottom: var(--space-6); }
.master-pedigree-modal .mp-tree-item > .m-card:last-child { margin-bottom: 0; }

/* 侧枝折叠：历任 / 同门 / 出师 */
.master-pedigree-modal .mp-sides {
    display: grid;
    gap: var(--space-6);
    margin-top: var(--space-10);
}
.master-pedigree-modal .mp-side {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: hidden;
}
.master-pedigree-modal .mp-side > summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
}
.master-pedigree-modal .mp-side > summary::-webkit-details-marker { display: none; }
.master-pedigree-modal .mp-side > summary::before {
    content: '';
    width: 0;
    height: 0;
    border-left: 3.5px solid transparent;
    border-right: 3.5px solid transparent;
    border-top: 5px solid var(--text-muted);
    transform: rotate(-90deg);
    transition: transform .18s var(--mt-ease);
    opacity: .7;
    flex-shrink: 0;
}
.master-pedigree-modal .mp-side[open] > summary::before { transform: rotate(0); }
.master-pedigree-modal .mp-side__title { flex: 1; min-width: 0; }
.master-pedigree-modal .mp-side__count {
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}
.master-pedigree-modal .mp-side__body {
    padding: var(--space-8) var(--space-10);
    border-top: 1px solid var(--mt-line);
}

/* 一键授业 C 版 · 传功结算台（弹窗不在 #masterPanelBody 内） */
.master-trial-all-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-trial-all-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-trial-all-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-trial-all-modal .gc-mid {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    padding-bottom: calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
}
.master-trial-all-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-trial-all-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-trial-all-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-trial-all-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-action);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-trial-all-modal .mt-metric__value.is-ok { color: var(--accent-jade); }
.master-trial-all-modal .mt-metric__value.is-bad { color: var(--accent-crimson); }
.master-trial-all-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-trial-all-modal .mt-intro {
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 32%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-jade) 7%, var(--mt-raised));
}
.master-trial-all-modal .mt-intro__title {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    letter-spacing: 1px;
    margin-bottom: var(--space-4);
}
.master-trial-all-modal .mt-intro__text {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.65;
}
.master-trial-all-modal .mt-intro__text b {
    color: var(--text-gold);
    font-weight: 700;
}
.master-trial-all-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: hidden;
}
.master-trial-all-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
}
.master-trial-all-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-trial-all-modal .mt-section__tools {
    margin-left: auto;
    display: flex;
    gap: var(--space-6);
}
.master-trial-all-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-trial-all-modal .mt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}
.master-trial-all-modal .mt-pickchip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    height: 30px;
    padding: 0 var(--space-10) 0 var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: var(--mt-raised);
    cursor: pointer;
    font-size: var(--font-label);
    color: var(--text-secondary);
    transition: border-color .14s var(--mt-ease), background .14s var(--mt-ease), color .14s var(--mt-ease);
    user-select: none;
}
.master-trial-all-modal .mt-pickchip:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-trial-all-modal .mt-pickchip.is-on {
    border-color: color-mix(in srgb, var(--accent-jade) 45%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 10%, transparent);
    color: var(--text-jade);
    font-weight: 700;
}
.master-trial-all-modal .mt-pickchip.is-skip { opacity: .65; }
.master-trial-all-modal .mt-pickchip input { display: none; }
.master-trial-all-modal .mt-pickchip__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--text-muted) 50%, transparent);
    background: transparent;
    flex-shrink: 0;
}
.master-trial-all-modal .mt-pickchip.is-on .mt-pickchip__dot {
    border-color: var(--accent-jade);
    background: var(--accent-jade);
}
.master-trial-all-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-trial-all-modal .m-btn:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-trial-all-modal .m-btn--sm {
    height: 24px;
    padding: 0 var(--space-10);
    font-size: var(--font-micro);
}
.master-trial-all-modal .m-btn--ghost {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-trial-all-modal .m-btn--primary {
    border: 0;
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
}
.master-trial-all-modal .m-btn--primary:hover { filter: brightness(1.08); }
.master-trial-all-modal .m-btn--primary:disabled,
.master-trial-all-modal .m-btn--primary.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}
.master-trial-all-modal .mt-foot { margin-top: var(--space-2); }
.master-trial-all-modal .mt-foot .m-btn--primary {
    width: 100%;
    height: 40px;
    font-size: var(--font-body);
    letter-spacing: 2px;
    border-radius: var(--radius-md);
}
.master-trial-all-modal .mt-foot-note {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}
/* 结算台弹窗 body：子块不压缩，避免门下弟子胶囊被 overflow 裁切 */
.master-trial-all-modal .gc-mid,
.master-gift-stones-all-modal .gc-mid,
.master-gift-stones-modal .gc-mid {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    align-items: stretch;
    padding-bottom: calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
}
.master-trial-all-modal .gc-mid > *,
.master-gift-stones-all-modal .gc-mid > *,
.master-gift-stones-modal .gc-mid > * {
    flex: 0 0 auto;
    min-width: 0;
}

/* 单人赠灵石 · 结算台（与一键赠灵石同族 token） */
.master-gift-stones-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-gift-stones-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-gift-stones-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-gift-stones-modal .mt-sticky {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 38%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--bg-card) 92%, var(--accent-gold) 8%);
    backdrop-filter: blur(8px);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.master-gift-stones-modal .mt-sticky__info { flex: 1; min-width: 0; }
.master-gift-stones-modal .mt-sticky__label { font-size: var(--font-micro); color: var(--text-muted); }
.master-gift-stones-modal .mt-sticky__value {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.45;
}
.master-gift-stones-modal .mt-sticky__value b {
    font-family: var(--font-mono);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-stones-modal .mt-sticky__value .ok { color: var(--accent-jade); }
.master-gift-stones-modal .mt-sticky__value .bad { color: var(--accent-crimson); font-weight: 600; }
.master-gift-stones-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-gift-stones-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-gift-stones-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-gift-stones-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    word-break: break-all;
}
.master-gift-stones-modal .mt-metric__value.is-ok { color: var(--accent-jade); }
.master-gift-stones-modal .mt-metric__value.is-bad { color: var(--accent-crimson); }
.master-gift-stones-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-stones-modal .mt-intro {
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 30%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 7%, var(--mt-raised));
}
.master-gift-stones-modal .mt-intro__title {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    letter-spacing: 1px;
    margin-bottom: var(--space-4);
}
.master-gift-stones-modal .mt-intro__text {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.65;
}
.master-gift-stones-modal .mt-intro__text b {
    color: var(--text-gold);
    font-weight: 700;
}
.master-gift-stones-modal .mt-banner {
    padding: var(--space-8) var(--space-12);
    border-radius: var(--radius-md);
    font-size: var(--font-caption);
    text-align: center;
    line-height: 1.55;
}
.master-gift-stones-modal .mt-banner--ok {
    border: 1px solid color-mix(in srgb, var(--accent-jade) 35%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
    color: var(--accent-jade);
}
.master-gift-stones-modal .mt-banner--warn {
    border: 1px solid color-mix(in srgb, var(--accent-crimson) 35%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent);
    color: var(--accent-crimson);
}
.master-gift-stones-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: visible;
}
.master-gift-stones-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.master-gift-stones-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-gift-stones-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-gift-stones-modal .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
.master-gift-stones-modal .m-chip--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 38%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
.master-gift-stones-modal .mt-input {
    width: 100%;
    height: 36px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    outline: none;
}
.master-gift-stones-modal .mt-input:focus {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, transparent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-gold) 12%, transparent);
}
.master-gift-stones-modal .mt-input:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.master-gift-stones-modal .mt-input::placeholder {
    font-family: var(--font-serif);
    font-weight: 500;
    font-size: var(--font-label);
    color: var(--text-muted);
}
.master-gift-stones-modal .mt-presets {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: var(--space-8);
}
.master-gift-stones-modal .mt-preset {
    height: 24px;
    padding: 0 var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-micro);
    font-weight: 600;
    cursor: pointer;
}
.master-gift-stones-modal .mt-preset:hover,
.master-gift-stones-modal .mt-preset.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 45%, transparent);
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.master-gift-stones-modal .mt-settle {
    padding: var(--space-10) var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 35%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--mt-surface));
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.7;
}
.master-gift-stones-modal .mt-settle b {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-stones-modal .mt-settle .bad { color: var(--accent-crimson); }
.master-gift-stones-modal .mt-settle .ok { color: var(--accent-jade); }
.master-gift-stones-modal .mt-settle.is-error {
    border-color: color-mix(in srgb, var(--accent-crimson) 40%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 6%, var(--mt-surface));
    color: var(--accent-crimson);
}
.master-gift-stones-modal .mt-textarea {
    width: 100%;
    min-height: 56px;
    resize: vertical;
    padding: var(--space-8) var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    line-height: 1.55;
    outline: none;
}
.master-gift-stones-modal .mt-textarea:focus {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, transparent);
}
.master-gift-stones-modal .mt-field-hint {
    margin-top: var(--space-6);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-stones-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-gift-stones-modal .m-btn--primary {
    border: 0;
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
    flex-shrink: 0;
}
.master-gift-stones-modal .m-btn--primary:hover {
    filter: brightness(1.08);
    color: #fff;
    background: var(--accent-jade);
}
.master-gift-stones-modal .m-btn--primary:disabled,
.master-gift-stones-modal .m-btn--primary.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}
.master-gift-stones-modal .mt-foot-note {
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}

/* 一键赠灵石 A 版 · 灵石结算台 */
.master-gift-stones-all-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-gift-stones-all-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-gift-stones-all-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-gift-stones-all-modal .mt-sticky {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 38%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--bg-card) 92%, var(--accent-gold) 8%);
    backdrop-filter: blur(8px);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.master-gift-stones-all-modal .mt-sticky__info { flex: 1; min-width: 0; }
.master-gift-stones-all-modal .mt-sticky__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-stones-all-modal .mt-sticky__value {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.45;
}
.master-gift-stones-all-modal .mt-sticky__value b {
    font-family: var(--font-mono);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-stones-all-modal .mt-sticky__value .ok { color: var(--accent-jade); }
.master-gift-stones-all-modal .mt-sticky__value .bad { color: var(--accent-crimson); font-weight: 600; }
.master-gift-stones-all-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-gift-stones-all-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-gift-stones-all-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-gift-stones-all-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    word-break: break-all;
}
.master-gift-stones-all-modal .mt-metric__value.is-ok { color: var(--accent-jade); }
.master-gift-stones-all-modal .mt-metric__value.is-bad { color: var(--accent-crimson); }
.master-gift-stones-all-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-stones-all-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: visible;
}
.master-gift-stones-all-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.master-gift-stones-all-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-gift-stones-all-modal .mt-section__tools {
    margin-left: auto;
    display: flex;
    gap: var(--space-6);
    flex-shrink: 0;
}
.master-gift-stones-all-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-gift-stones-all-modal .mt-pick-hint {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-bottom: var(--space-6);
}
.master-gift-stones-all-modal .mt-pick-hint b {
    font-family: var(--font-mono);
    color: var(--text-gold);
}
.master-gift-stones-all-modal .mt-pick-hint b.ok { color: var(--accent-jade); }
.master-gift-stones-all-modal .mt-pick-hint .danger { color: var(--accent-crimson); }
.master-gift-stones-all-modal .mt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    align-items: center;
    width: 100%;
}
.master-gift-stones-all-modal .mt-pickchip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    height: 30px;
    padding: 0 var(--space-10) 0 var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: var(--mt-raised);
    cursor: pointer;
    font-size: var(--font-label);
    color: var(--text-secondary);
    transition: border-color .14s var(--mt-ease), background .14s var(--mt-ease), color .14s var(--mt-ease);
    user-select: none;
    flex: 0 0 auto;
    max-width: 100%;
}
.master-gift-stones-all-modal .mt-pickchip:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-stones-all-modal .mt-pickchip.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 45%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
    font-weight: 700;
}
.master-gift-stones-all-modal .mt-pickchip.is-skip { opacity: .65; }
.master-gift-stones-all-modal .mt-pickchip input { display: none; }
.master-gift-stones-all-modal .mt-pickchip__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--text-muted) 50%, transparent);
    background: transparent;
    flex-shrink: 0;
}
.master-gift-stones-all-modal .mt-pickchip.is-on .mt-pickchip__dot {
    border-color: var(--accent-gold);
    background: var(--accent-gold);
}
.master-gift-stones-all-modal .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
.master-gift-stones-all-modal .m-chip--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 38%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
.master-gift-stones-all-modal .mt-input {
    width: 100%;
    height: 36px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    outline: none;
}
.master-gift-stones-all-modal .mt-input:focus {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, transparent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-gold) 12%, transparent);
}
.master-gift-stones-all-modal .mt-input::placeholder {
    font-family: var(--font-serif);
    font-weight: 500;
    font-size: var(--font-label);
    color: var(--text-muted);
}
.master-gift-stones-all-modal .mt-presets {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: var(--space-8);
}
.master-gift-stones-all-modal .mt-preset {
    height: 24px;
    padding: 0 var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-micro);
    font-weight: 600;
    cursor: pointer;
}
.master-gift-stones-all-modal .mt-preset:hover,
.master-gift-stones-all-modal .mt-preset.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 45%, transparent);
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.master-gift-stones-all-modal .mt-settle {
    padding: var(--space-10) var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 35%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--mt-surface));
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.7;
}
.master-gift-stones-all-modal .mt-settle b {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-stones-all-modal .mt-settle .bad { color: var(--accent-crimson); }
.master-gift-stones-all-modal .mt-settle .ok { color: var(--accent-jade); }
.master-gift-stones-all-modal .mt-settle.is-error {
    border-color: color-mix(in srgb, var(--accent-crimson) 40%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 6%, var(--mt-surface));
    color: var(--accent-crimson);
}
.master-gift-stones-all-modal .mt-textarea {
    width: 100%;
    min-height: 56px;
    resize: vertical;
    padding: var(--space-8) var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    line-height: 1.55;
    outline: none;
}
.master-gift-stones-all-modal .mt-textarea:focus {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, transparent);
}
.master-gift-stones-all-modal .mt-field-hint {
    margin-top: var(--space-6);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-stones-all-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-gift-stones-all-modal .m-btn:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-stones-all-modal .m-btn--sm {
    height: 24px;
    padding: 0 var(--space-10);
    font-size: var(--font-micro);
}
.master-gift-stones-all-modal .m-btn--ghost {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-stones-all-modal .m-btn--primary {
    border: 0;
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
    flex-shrink: 0;
}
.master-gift-stones-all-modal .m-btn--primary:hover {
    filter: brightness(1.08);
    color: #fff;
    background: var(--accent-jade);
}
.master-gift-stones-all-modal .m-btn--primary:disabled,
.master-gift-stones-all-modal .m-btn--primary.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}
.master-gift-stones-all-modal .mt-foot-note {
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}

/* 一键赠物 A 版 · 赠物结算台（与一键赠灵石同族） */
.master-gift-item-all-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-gift-item-all-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-gift-item-all-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-gift-item-all-modal .gc-mid {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    align-items: stretch;
    padding-bottom: calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
}
.master-gift-item-all-modal .gc-mid > * {
    flex: 0 0 auto;
    min-width: 0;
}
.master-gift-item-all-modal .mt-sticky {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 38%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--bg-card) 92%, var(--accent-gold) 8%);
    backdrop-filter: blur(8px);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.master-gift-item-all-modal .mt-sticky__info { flex: 1; min-width: 0; }
.master-gift-item-all-modal .mt-sticky__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-all-modal .mt-sticky__value {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.45;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-8);
    align-items: baseline;
}
.master-gift-item-all-modal .mt-sticky__value b {
    font-family: var(--font-mono);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-all-modal .mt-sticky__value .ok { color: var(--accent-jade); }
.master-gift-item-all-modal .mt-sticky__value .bad { color: var(--accent-crimson); font-weight: 600; }
.master-gift-item-all-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-gift-item-all-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-gift-item-all-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-gift-item-all-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    word-break: break-all;
}
.master-gift-item-all-modal .mt-metric__value.is-ok { color: var(--accent-jade); }
.master-gift-item-all-modal .mt-metric__value.is-bad { color: var(--accent-crimson); }
.master-gift-item-all-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-all-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: visible;
}
.master-gift-item-all-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.master-gift-item-all-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-gift-item-all-modal .mt-section__tools {
    margin-left: auto;
    display: flex;
    gap: var(--space-6);
    flex-shrink: 0;
}
.master-gift-item-all-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-gift-item-all-modal .mt-pick-hint {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-bottom: var(--space-6);
}
.master-gift-item-all-modal .mt-pick-hint b {
    font-family: var(--font-mono);
    color: var(--text-gold);
}
.master-gift-item-all-modal .mt-pick-hint .danger { color: var(--accent-crimson); }
.master-gift-item-all-modal .mt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    align-items: center;
    width: 100%;
}
.master-gift-item-all-modal .mt-pickchip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    height: 30px;
    padding: 0 var(--space-10) 0 var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: var(--mt-raised);
    cursor: pointer;
    font-size: var(--font-label);
    color: var(--text-secondary);
    transition: border-color .14s var(--mt-ease), background .14s var(--mt-ease), color .14s var(--mt-ease);
    user-select: none;
    flex: 0 0 auto;
    max-width: 100%;
}
.master-gift-item-all-modal .mt-pickchip:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-item-all-modal .mt-pickchip.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 45%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
    font-weight: 700;
}
.master-gift-item-all-modal .mt-pickchip input { display: none; }
.master-gift-item-all-modal .mt-pickchip__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--text-muted) 50%, transparent);
    background: transparent;
    flex-shrink: 0;
}
.master-gift-item-all-modal .mt-pickchip.is-on .mt-pickchip__dot {
    border-color: var(--accent-gold);
    background: var(--accent-gold);
}
.master-gift-item-all-modal .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
.master-gift-item-all-modal .m-chip--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 38%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
.master-gift-item-all-modal .mt-item-card {
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 40%, transparent);
    border-radius: var(--radius-md);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--accent-gold) 6%, transparent),
            color-mix(in srgb, var(--accent-jade) 4%, transparent) 60%,
            transparent),
        var(--mt-raised);
    cursor: pointer;
    transition: border-color .14s var(--mt-ease), box-shadow .14s var(--mt-ease);
}
.master-gift-item-all-modal .mt-item-card:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 60%, transparent);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-gold) 12%, transparent);
}
.master-gift-item-all-modal .mt-item-card.is-filled {
    border-style: solid;
    border-color: color-mix(in srgb, var(--accent-jade) 42%, transparent);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--accent-jade) 8%, transparent),
            transparent 70%),
        var(--mt-raised);
}
.master-gift-item-all-modal .mt-item-card__icon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: var(--font-body-lg);
    color: var(--text-gold);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.master-gift-item-all-modal .mt-item-card.is-filled .mt-item-card__icon {
    color: var(--accent-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 40%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 12%, transparent);
}
.master-gift-item-all-modal .mt-item-card__text { flex: 1; min-width: 0; }
.master-gift-item-all-modal .mt-item-card__label {
    font-size: var(--font-micro);
    letter-spacing: 3px;
    color: var(--text-muted);
    margin-bottom: var(--space-2);
}
.master-gift-item-all-modal .mt-item-card__value {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-8);
    align-items: baseline;
}
.master-gift-item-all-modal .mt-item-card__placeholder {
    color: var(--text-muted);
    font-weight: 500;
}
.master-gift-item-all-modal .mt-item-card__qty {
    font-family: var(--font-mono);
    font-size: var(--font-label);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-all-modal .mt-item-card__meta {
    margin-top: var(--space-4);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-all-modal .mt-item-card__action {
    flex-shrink: 0;
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
.master-gift-item-all-modal .mt-qty {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin-top: var(--space-8);
}
.master-gift-item-all-modal .mt-qty__label {
    font-size: var(--font-caption);
    color: var(--text-muted);
    white-space: nowrap;
}
.master-gift-item-all-modal .mt-qty__step {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--mt-surface);
}
.master-gift-item-all-modal .mt-qty__btn {
    width: 30px;
    height: 30px;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-body-lg);
    cursor: pointer;
}
.master-gift-item-all-modal .mt-qty__btn:hover {
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
.master-gift-item-all-modal .mt-qty__input {
    width: 48px;
    height: 30px;
    border: 0;
    border-left: 1px solid var(--mt-line);
    border-right: 1px solid var(--mt-line);
    background: transparent;
    text-align: center;
    font-family: var(--font-mono);
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-gold);
    outline: none;
}
.master-gift-item-all-modal .mt-qty__hint {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-all-modal .mt-settle {
    padding: var(--space-10) var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 35%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--mt-surface));
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.7;
}
.master-gift-item-all-modal .mt-settle b {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-all-modal .mt-settle .bad { color: var(--accent-crimson); }
.master-gift-item-all-modal .mt-settle .ok { color: var(--accent-jade); }
.master-gift-item-all-modal .mt-settle.is-error {
    border-color: color-mix(in srgb, var(--accent-crimson) 40%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 6%, var(--mt-surface));
    color: var(--accent-crimson);
}
.master-gift-item-all-modal .mt-settle.is-warn {
    border-color: color-mix(in srgb, var(--accent-orange) 45%, transparent);
    background: color-mix(in srgb, var(--accent-orange) 7%, var(--mt-surface));
}
.master-gift-item-all-modal .mt-textarea {
    width: 100%;
    min-height: 56px;
    resize: vertical;
    padding: var(--space-8) var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    line-height: 1.55;
    outline: none;
}
.master-gift-item-all-modal .mt-textarea:focus {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, transparent);
}
.master-gift-item-all-modal .mt-field-hint {
    margin-top: var(--space-6);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-all-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-gift-item-all-modal .m-btn:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-item-all-modal .m-btn--sm {
    height: 24px;
    padding: 0 var(--space-10);
    font-size: var(--font-micro);
}
.master-gift-item-all-modal .m-btn--ghost {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-item-all-modal .m-btn--primary {
    border: 0;
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
    flex-shrink: 0;
}
.master-gift-item-all-modal .m-btn--primary:hover {
    filter: brightness(1.08);
    color: #fff;
    background: var(--accent-jade);
}
.master-gift-item-all-modal .m-btn--primary:disabled,
.master-gift-item-all-modal .m-btn--primary.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}
.master-gift-item-all-modal .mt-foot-note {
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}

/* 单人赠物 A 版 · 单人结算台（与一键赠物 / 赠予灵石同族） */
.master-gift-item-modal , .dao-gift-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-gift-item-modal ,
html.theme-excel .dao-gift-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-gift-item-modal .modal-content , .dao-gift-modal .modal-content { max-width: 440px; }
.master-gift-item-modal .mt-modal-meta , .dao-gift-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-gift-item-modal .gc-mid , .dao-gift-modal .gc-mid {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    align-items: stretch;
    padding-bottom: calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
    /* 结算台内容高于视口时必须能滑（粘顶确认条在 mid 内 sticky） */
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    min-height: 0;
    flex: 1 1 auto;
}
.master-gift-item-modal .gc-mid > * , .dao-gift-modal .gc-mid > * {
    flex: 0 0 auto;
    min-width: 0;
}
/* 壳体封顶，避免内容把整窗顶破后无处滚动 */
.master-gift-item-modal .modal-content,
.dao-gift-modal .modal-content {
    max-height: min(88dvh, 720px, calc(100dvh - var(--mobile-popup-safe-top, 0px) - var(--mobile-popup-safe-bottom, 0px)));
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.master-gift-item-modal .mt-sticky , .dao-gift-modal .mt-sticky {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 38%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--bg-card) 92%, var(--accent-gold) 8%);
    backdrop-filter: blur(8px);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.master-gift-item-modal .mt-sticky__info , .dao-gift-modal .mt-sticky__info { flex: 1; min-width: 0; }
.master-gift-item-modal .mt-sticky__label , .dao-gift-modal .mt-sticky__label { font-size: var(--font-micro); color: var(--text-muted); }
.master-gift-item-modal .mt-sticky__value , .dao-gift-modal .mt-sticky__value {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.45;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-8);
    align-items: baseline;
}
.master-gift-item-modal .mt-sticky__value b , .dao-gift-modal .mt-sticky__value b {
    font-family: var(--font-mono);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-modal .mt-sticky__value .ok , .dao-gift-modal .mt-sticky__value .ok { color: var(--accent-jade); }
.master-gift-item-modal .mt-sticky__value .bad , .dao-gift-modal .mt-sticky__value .bad { color: var(--accent-crimson); font-weight: 600; }
.master-gift-item-modal .mt-recipient , .dao-gift-modal .mt-recipient {
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--accent-jade) 7%, transparent),
            transparent 70%),
        var(--mt-raised);
}
.master-gift-item-modal .mt-recipient__avatar , .dao-gift-modal .mt-recipient__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--font-display);
    font-size: var(--font-action);
    color: var(--accent-jade);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 35%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 10%, transparent);
}
.master-gift-item-modal .mt-recipient__main , .dao-gift-modal .mt-recipient__main { flex: 1; min-width: 0; }
.master-gift-item-modal .mt-recipient__name , .dao-gift-modal .mt-recipient__name {
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-8);
    align-items: baseline;
}
.master-gift-item-modal .mt-recipient__title , .dao-gift-modal .mt-recipient__title {
    font-size: var(--font-caption);
    font-weight: 600;
    color: var(--text-gold);
}
.master-gift-item-modal .mt-recipient__sub , .dao-gift-modal .mt-recipient__sub {
    margin-top: var(--space-2);
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-gift-item-modal .mt-recipient__quota , .dao-gift-modal .mt-recipient__quota {
    flex-shrink: 0;
    text-align: right;
}
.master-gift-item-modal .mt-recipient__quota-num , .dao-gift-modal .mt-recipient__quota-num {
    font-family: var(--font-mono);
    font-size: var(--font-title);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-modal .mt-recipient__quota-label , .dao-gift-modal .mt-recipient__quota-label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-gift-item-modal .mt-metrics , .dao-gift-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-gift-item-modal .mt-metric , .dao-gift-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-gift-item-modal .mt-metric__label , .dao-gift-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-gift-item-modal .mt-metric__value , .dao-gift-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    word-break: break-all;
}
.master-gift-item-modal .mt-metric__value.is-ok , .dao-gift-modal .mt-metric__value.is-ok { color: var(--accent-jade); }
.master-gift-item-modal .mt-metric__value.is-bad , .dao-gift-modal .mt-metric__value.is-bad { color: var(--accent-crimson); }
.master-gift-item-modal .mt-metric__value.is-name , .dao-gift-modal .mt-metric__value.is-name {
    font-family: var(--font-serif);
    font-size: var(--font-body);
    color: var(--text-primary);
}
.master-gift-item-modal .mt-metric__hint , .dao-gift-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-modal .mt-section , .dao-gift-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: visible;
}
.master-gift-item-modal .mt-section__head , .dao-gift-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.master-gift-item-modal .mt-section__title , .dao-gift-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-gift-item-modal .mt-section__body , .dao-gift-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-gift-item-modal .m-chip , .dao-gift-modal .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
.master-gift-item-modal .m-chip--gold , .dao-gift-modal .m-chip--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 38%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
.master-gift-item-modal .mt-item-card , .dao-gift-modal .mt-item-card {
    display: flex;
    align-items: center;
    gap: var(--space-10);
    padding: var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 40%, transparent);
    border-radius: var(--radius-md);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--accent-gold) 6%, transparent),
            color-mix(in srgb, var(--accent-jade) 4%, transparent) 60%,
            transparent),
        var(--mt-raised);
    cursor: pointer;
    transition: border-color .14s var(--mt-ease), box-shadow .14s var(--mt-ease);
}
.master-gift-item-modal .mt-item-card:hover , .dao-gift-modal .mt-item-card:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 60%, transparent);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-gold) 12%, transparent);
}
.master-gift-item-modal .mt-item-card.is-filled , .dao-gift-modal .mt-item-card.is-filled {
    border-style: solid;
    border-color: color-mix(in srgb, var(--accent-jade) 42%, transparent);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--accent-jade) 8%, transparent),
            transparent 70%),
        var(--mt-raised);
}
.master-gift-item-modal .mt-item-card__icon , .dao-gift-modal .mt-item-card__icon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: var(--font-body-lg);
    color: var(--text-gold);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.master-gift-item-modal .mt-item-card.is-filled .mt-item-card__icon , .dao-gift-modal .mt-item-card.is-filled .mt-item-card__icon {
    color: var(--accent-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 40%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 12%, transparent);
}
.master-gift-item-modal .mt-item-card__text , .dao-gift-modal .mt-item-card__text { flex: 1; min-width: 0; }
.master-gift-item-modal .mt-item-card__label , .dao-gift-modal .mt-item-card__label {
    font-size: var(--font-micro);
    letter-spacing: 3px;
    color: var(--text-muted);
    margin-bottom: var(--space-2);
}
.master-gift-item-modal .mt-item-card__value , .dao-gift-modal .mt-item-card__value {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-8);
    align-items: baseline;
}
.master-gift-item-modal .mt-item-card__placeholder , .dao-gift-modal .mt-item-card__placeholder {
    color: var(--text-muted);
    font-weight: 500;
}
.master-gift-item-modal .mt-item-card__qty , .dao-gift-modal .mt-item-card__qty {
    font-family: var(--font-mono);
    font-size: var(--font-label);
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-modal .mt-item-card__meta , .dao-gift-modal .mt-item-card__meta {
    margin-top: var(--space-4);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-modal .mt-item-card__action , .dao-gift-modal .mt-item-card__action {
    flex-shrink: 0;
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
/* 单人赠物：多选清单（师徒最多 3 种；道侣最多 10 种） */
.master-gift-item-modal .mt-imprint-pick-list , .dao-gift-modal .mt-imprint-pick-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    margin-top: var(--space-8);
}
.master-gift-item-modal .mt-imprint-pick , .dao-gift-modal .mt-imprint-pick {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md, var(--radius-md));
    /* #4647：主题 token 底色，勿回退纯白导致夜间白底（对齐 wm-shop-row） */
    border: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
    background: color-mix(in srgb, var(--bg-card) 88%, transparent);
}
.master-gift-item-modal .mt-imprint-pick__main , .dao-gift-modal .mt-imprint-pick__main {
    flex: 1;
    min-width: 0;
}
.master-gift-item-modal .mt-imprint-pick__name , .dao-gift-modal .mt-imprint-pick__name {
    font-size: var(--font-body);
    font-weight: 650;
    line-height: 1.35;
}
.master-gift-item-modal .mt-imprint-pick__refine , .dao-gift-modal .mt-imprint-pick__refine {
    color: #c47a22;
    font-weight: 700;
}
.master-gift-item-modal .mt-imprint-pick__affix , .dao-gift-modal .mt-imprint-pick__affix {
    color: #7a5cad;
    font-size: var(--font-caption);
    font-weight: 600;
}
.master-gift-item-modal .mt-imprint-pick__qty , .dao-gift-modal .mt-imprint-pick__qty {
    font-weight: 700;
    color: var(--text-muted);
}
.master-gift-item-modal .mt-imprint-pick__meta , .dao-gift-modal .mt-imprint-pick__meta {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-modal .mt-imprint-pick__rm , .dao-gift-modal .mt-imprint-pick__rm {
    flex-shrink: 0;
    border: 1px solid color-mix(in srgb, var(--text-muted) 35%, transparent);
    background: transparent;
    color: var(--text-muted);
    font-size: var(--font-caption);
    font-weight: 600;
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-pill);
    cursor: pointer;
}
.master-gift-item-modal .mt-imprint-pick__rm:hover , .dao-gift-modal .mt-imprint-pick__rm:hover {
    color: var(--danger, #b54a4a);
    border-color: color-mix(in srgb, var(--danger, #b54a4a) 40%, transparent);
}
.master-gift-item-modal .mt-qty , .dao-gift-modal .mt-qty {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin-top: var(--space-8);
}
.master-gift-item-modal .mt-qty__label , .dao-gift-modal .mt-qty__label {
    font-size: var(--font-caption);
    color: var(--text-muted);
    white-space: nowrap;
}
.master-gift-item-modal .mt-qty__step , .dao-gift-modal .mt-qty__step {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--mt-surface);
}
.master-gift-item-modal .mt-qty__btn , .dao-gift-modal .mt-qty__btn {
    width: 30px;
    height: 30px;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-body-lg);
    cursor: pointer;
}
.master-gift-item-modal .mt-qty__btn:hover , .dao-gift-modal .mt-qty__btn:hover {
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
.master-gift-item-modal .mt-qty__input , .dao-gift-modal .mt-qty__input {
    width: 48px;
    height: 30px;
    border: 0;
    border-left: 1px solid var(--mt-line);
    border-right: 1px solid var(--mt-line);
    background: transparent;
    text-align: center;
    font-family: var(--font-mono);
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-gold);
    outline: none;
}
.master-gift-item-modal .mt-qty__hint , .dao-gift-modal .mt-qty__hint {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-modal .mt-settle , .dao-gift-modal .mt-settle {
    padding: var(--space-10) var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 35%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--mt-surface));
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.7;
}
.master-gift-item-modal .mt-settle b , .dao-gift-modal .mt-settle b {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-gift-item-modal .mt-settle .bad , .dao-gift-modal .mt-settle .bad { color: var(--accent-crimson); }
.master-gift-item-modal .mt-settle .ok , .dao-gift-modal .mt-settle .ok { color: var(--accent-jade); }
.master-gift-item-modal .mt-settle.is-error , .dao-gift-modal .mt-settle.is-error {
    border-color: color-mix(in srgb, var(--accent-crimson) 40%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 6%, var(--mt-surface));
    color: var(--accent-crimson);
}
.master-gift-item-modal .mt-textarea , .dao-gift-modal .mt-textarea {
    width: 100%;
    min-height: 56px;
    resize: vertical;
    padding: var(--space-8) var(--space-10);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    line-height: 1.55;
    outline: none;
}
.master-gift-item-modal .mt-textarea:focus , .dao-gift-modal .mt-textarea:focus {
    border-color: color-mix(in srgb, var(--accent-gold) 50%, transparent);
}
.master-gift-item-modal .mt-field-hint , .dao-gift-modal .mt-field-hint {
    margin-top: var(--space-6);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-gift-item-modal .m-btn , .dao-gift-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-gift-item-modal .m-btn:hover , .dao-gift-modal .m-btn:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-gift-item-modal .m-btn--primary , .dao-gift-modal .m-btn--primary {
    border: 0;
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
    flex-shrink: 0;
}
.master-gift-item-modal .m-btn--primary:hover , .dao-gift-modal .m-btn--primary:hover {
    filter: brightness(1.08);
    color: #fff;
    background: var(--accent-jade);
}
.master-gift-item-modal .m-btn--primary:disabled, .dao-gift-modal .m-btn--primary:disabled,
.master-gift-item-modal .m-btn--primary.is-disabled , .dao-gift-modal .m-btn--primary.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}
.master-gift-item-modal .mt-foot-note , .dao-gift-modal .mt-foot-note {
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}

/* 道侣赠物：顶栏偏翠；须知条 */
.dao-gift-modal .mt-banner {
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md);
    font-size: var(--font-caption);
    line-height: 1.55;
    border: 1px solid var(--mt-line);
    text-align: center;
    color: var(--text-secondary);
}
.dao-gift-modal .mt-banner b {
    color: var(--text-gold);
    font-weight: 600;
}
.dao-gift-modal .mt-settle.is-ok {
    border-color: color-mix(in srgb, var(--accent-jade) 40%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 6%, var(--mt-surface));
    color: var(--text-secondary);
}
.dao-gift-modal .mt-metric__value.is-warn {
    color: var(--accent-crimson);
}

/* 请求赠送 / 上供 · gc-dialog 精简表单（对齐上架·求购） */
.master-gc-form .ip-select-card {
    width: 100%;
    margin-bottom: 0;
    box-sizing: border-box;
    text-align: left;
    color: inherit;
    font: inherit;
    border-style: dashed;
    border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
}
.master-gc-form .ip-select-card:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 55%, var(--border-color));
}
.master-gc-form .ip-select-card.is-filled {
    border-style: solid;
    border-color: color-mix(in srgb, var(--accent-jade) 50%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 8%, var(--bg-card));
}
.master-gc-form .ip-select-card.is-filled .ip-select-card__icon {
    background: color-mix(in srgb, var(--accent-jade) 18%, transparent);
    color: var(--accent-jade);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 40%, transparent);
}
.master-gc-form .ip-select-card.is-disabled {
    opacity: 0.72;
    cursor: not-allowed;
    pointer-events: none;
}
.master-gc-form .ip-select-card__action {
    border-radius: var(--radius-pill);
    font-weight: 700;
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
.master-gc-form .ip-select-card__icon {
    background: var(--bg-panel);
    color: var(--text-gold);
    border: 1px solid var(--border-color);
    background-image: none;
}
.master-gc-form .master-gc-warn {
    color: var(--accent-crimson);
    margin-top: 0;
    margin-bottom: var(--space-10);
}
.master-gc-form .master-gc-stock {
    font-weight: 500;
    letter-spacing: 0;
    color: var(--text-muted);
}
.master-gc-form .gc-note {
    margin-top: var(--space-12);
}

/* 传艺于徒 C 版 · 可传优先（单层 Tab，无第二排状态筛选） */
.master-teach-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-teach-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-teach-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.master-teach-modal .gc-mid {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    align-items: stretch;
    padding-bottom: calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
}
.master-teach-modal .gc-mid > * {
    flex: 0 0 auto;
    min-width: 0;
}
.master-teach-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-teach-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-teach-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-teach-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    word-break: break-all;
}
.master-teach-modal .mt-metric__value.is-ok { color: var(--accent-jade); }
.master-teach-modal .mt-metric__value.is-bad { color: var(--accent-crimson); }
.master-teach-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-teach-modal .mt-intro {
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-purple) 30%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-purple) 7%, var(--mt-raised));
}
.master-teach-modal .mt-intro__title {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    letter-spacing: 1px;
    margin-bottom: var(--space-4);
}
.master-teach-modal .mt-intro__text {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.65;
}
.master-teach-modal .mt-intro__text b {
    color: var(--text-gold);
    font-weight: 700;
}
.master-teach-modal .mt-banner {
    padding: var(--space-8) var(--space-12);
    border-radius: var(--radius-md);
    font-size: var(--font-caption);
    text-align: center;
    line-height: 1.55;
}
.master-teach-modal .mt-banner--warn {
    border: 1px solid color-mix(in srgb, var(--accent-crimson) 35%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent);
    color: var(--accent-crimson);
}
.master-teach-modal .mt-banner--ok {
    border: 1px solid color-mix(in srgb, var(--accent-jade) 35%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
    color: var(--accent-jade);
}
.master-teach-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: visible;
}
.master-teach-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.master-teach-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-teach-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-teach-modal .mt-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
}
.master-teach-modal .mt-tab {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
}
.master-teach-modal .mt-tab:hover {
    color: var(--text-gold);
    border-color: var(--mt-line-strong);
}
.master-teach-modal .mt-tab.is-on {
    border-color: color-mix(in srgb, var(--accent-purple) 45%, transparent);
    background: color-mix(in srgb, var(--accent-purple) 12%, transparent);
    color: var(--accent-purple);
}
.master-teach-modal .mt-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.master-teach-modal .mt-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-8) var(--space-10);
    align-items: start;
    padding: var(--space-10) var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--mt-surface) 45%, var(--mt-raised));
    transition: border-color .14s var(--mt-ease);
}
.master-teach-modal .mt-row:hover { border-color: var(--mt-line-strong); }
.master-teach-modal .mt-row.is-disabled { opacity: .72; }
.master-teach-modal .mt-row__main { min-width: 0; }
.master-teach-modal .mt-row__name {
    font-size: var(--font-body);
    font-weight: 700;
    min-width: 0;
    word-break: break-word;
}
.master-teach-modal .mt-row__meta {
    margin-top: var(--space-4);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-6);
    align-items: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-teach-modal .mt-row__desc {
    margin-top: var(--space-4);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.master-teach-modal .mt-row__act {
    flex: none;
    align-self: start;
}
.master-teach-modal .mt-empty {
    text-align: center;
    padding: var(--space-16) var(--space-8);
    font-size: var(--font-label);
    color: var(--text-muted);
    line-height: 1.6;
}
.master-teach-modal .mt-empty--error { color: var(--accent-crimson); }
.master-teach-modal .m-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);
    background: transparent;
    color: var(--text-muted);
}
.master-teach-modal .m-chip--ok {
    border-color: color-mix(in srgb, var(--accent-jade) 38%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 8%, transparent);
    color: var(--accent-jade);
}
.master-teach-modal .m-chip--warn {
    border-color: color-mix(in srgb, var(--accent-crimson) 35%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 7%, transparent);
    color: var(--accent-crimson);
}
.master-teach-modal .m-chip--muted {
    border-color: color-mix(in srgb, var(--text-muted) 25%, transparent);
    background: color-mix(in srgb, var(--text-muted) 6%, transparent);
}
.master-teach-modal .m-chip--purple {
    border-color: color-mix(in srgb, var(--accent-purple) 38%, transparent);
    background: color-mix(in srgb, var(--accent-purple) 10%, transparent);
    color: var(--accent-purple);
}
.master-teach-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-teach-modal .m-btn:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-teach-modal .m-btn--sm {
    height: 24px;
    padding: 0 var(--space-10);
    font-size: var(--font-micro);
}
.master-teach-modal .m-btn--primary {
    border: 0;
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
}
.master-teach-modal .m-btn--primary:hover {
    filter: brightness(1.08);
    color: #fff;
    background: var(--accent-jade);
}
.master-teach-modal .mt-foot-note {
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}

/* 师门册封 B 版 · 胶囊直选 */
.master-assign-title-modal {
    --mt-line: color-mix(in srgb, var(--border-color) 86%, transparent);
    --mt-line-strong: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    --mt-surface: var(--bg-panel);
    --mt-raised: var(--bg-card);
    --mt-ease: cubic-bezier(.2, .8, .2, 1);
}
html.theme-excel .master-assign-title-modal {
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
}
.master-assign-title-modal .mt-modal-meta {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-caption);
    color: var(--text-muted);
}
/* master-* 弹窗迁 gc-dialog 后，副文案 mt-modal-meta 插在 gc-head 内 gc-title 之后。
   旧 text-align:center 是给 deco 居中头用的；gc-head 左对齐，这里覆盖为 left 对齐。 */
.gc-head .mt-modal-meta {
    text-align: left;
}
.master-assign-title-modal .gc-mid {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    align-items: stretch;
    padding-bottom: calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
}
.master-assign-title-modal .gc-mid > * {
    flex: 0 0 auto;
    min-width: 0;
}
.master-assign-title-modal .mt-intro {
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 30%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 7%, var(--mt-raised));
}
.master-assign-title-modal .mt-intro__title {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    letter-spacing: 1px;
    margin-bottom: var(--space-4);
}
.master-assign-title-modal .mt-intro__text {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.65;
}
.master-assign-title-modal .mt-intro__text b {
    color: var(--text-gold);
    font-weight: 700;
}
.master-assign-title-modal .mt-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
}
.master-assign-title-modal .mt-metric {
    padding: var(--space-8) var(--space-6) var(--space-8);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-surface);
    text-align: center;
}
.master-assign-title-modal .mt-metric__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.master-assign-title-modal .mt-metric__value {
    margin-top: var(--space-2);
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-gold);
    word-break: break-all;
}
.master-assign-title-modal .mt-metric__value.is-muted {
    color: var(--text-muted);
    font-weight: 600;
}
.master-assign-title-modal .mt-metric__hint {
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-assign-title-modal .mt-section {
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-md);
    background: var(--mt-raised);
    overflow: visible;
}
.master-assign-title-modal .mt-section__head {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-10) var(--space-12);
    border-bottom: 1px solid var(--mt-line);
    background: color-mix(in srgb, var(--mt-surface) 60%, transparent);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.master-assign-title-modal .mt-section__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--text-primary);
}
.master-assign-title-modal .mt-section__note {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.master-assign-title-modal .mt-section__count {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.master-assign-title-modal .mt-section__body { padding: var(--space-8) var(--space-10); }
.master-assign-title-modal .mt-chip-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}
.master-assign-title-modal .mt-title-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    min-height: 32px;
    padding: var(--space-4) var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-pill);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-label);
    font-weight: 600;
    cursor: pointer;
    transition: border-color .14s var(--mt-ease), background .14s var(--mt-ease), color .14s var(--mt-ease);
    max-width: 100%;
}
.master-assign-title-modal .mt-title-chip:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-assign-title-modal .mt-title-chip.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 48%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
    color: var(--text-gold);
    font-weight: 700;
}
.master-assign-title-modal .mt-title-chip.is-current:not(.is-on) {
    border-color: color-mix(in srgb, var(--accent-jade) 40%, transparent);
    color: var(--accent-jade);
}
/* 独占称号被其他徒弟占用 */
.master-assign-title-modal .mt-title-chip.is-held:not(.is-on) {
    border-color: color-mix(in srgb, var(--accent-orange) 38%, transparent);
}
.master-assign-title-modal .mt-title-chip__name {
    white-space: nowrap;
}
.master-assign-title-modal .mt-title-chip__holder {
    font-size: var(--font-micro);
    font-weight: 600;
    color: var(--accent-orange);
    max-width: 6.5em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.master-assign-title-modal .mt-title-chip.is-on .mt-title-chip__holder {
    color: var(--text-gold);
}
.master-assign-title-modal .mt-title-chip__tag {
    font-size: var(--font-micro);
    font-weight: 600;
    color: var(--accent-jade);
}
.master-assign-title-modal .mt-title-chip.is-on .mt-title-chip__tag {
    color: var(--text-gold);
}
.master-assign-title-modal .mt-confirm {
    padding: var(--space-10) var(--space-12);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 35%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 5%, var(--mt-surface));
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.65;
}
.master-assign-title-modal .mt-confirm b {
    color: var(--text-gold);
    font-weight: 700;
}
.master-assign-title-modal .mt-foot {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.master-assign-title-modal .m-btn {
    height: 28px;
    padding: 0 var(--space-12);
    border: 1px solid var(--mt-line);
    border-radius: var(--radius-sm);
    background: var(--mt-raised);
    color: var(--text-secondary);
    font-family: var(--font-serif);
    font-size: var(--font-caption);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.master-assign-title-modal .m-btn:hover {
    border-color: var(--mt-line-strong);
    color: var(--text-gold);
}
.master-assign-title-modal .m-btn--primary {
    border: 0;
    width: 100%;
    height: 40px;
    font-size: var(--font-body);
    letter-spacing: 1px;
    border-radius: var(--radius-md);
    background: var(--accent-jade);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
}
.master-assign-title-modal .m-btn--primary:hover {
    filter: brightness(1.08);
    color: #fff;
    background: var(--accent-jade);
}
.master-assign-title-modal .m-btn--primary:disabled,
.master-assign-title-modal .m-btn--primary.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: none;
    box-shadow: none;
}
.master-assign-title-modal .m-btn--danger {
    width: 100%;
    height: 40px;
    font-size: var(--font-body);
    letter-spacing: 1px;
    border-radius: var(--radius-md);
    border-color: color-mix(in srgb, var(--accent-crimson) 38%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent);
    color: var(--accent-crimson);
}
.master-assign-title-modal .m-btn--danger:hover {
    background: var(--accent-crimson);
    color: #fff;
}
.master-assign-title-modal .mt-foot-note {
    text-align: center;
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
}
/* master-gift 弹窗已被 ItemPicker(.ip-*)取代,仅保留被 _renderGiftItemDetails /
   甲架·化身 renderExtra 复用的 tag 样式 + zhuzeng 复用的 qty 样式 */
.master-gift-item-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-top: var(--space-4);
}
.master-gift-detail-tag {
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    padding: var(--space-2) var(--space-6);
    border: 1px solid color-mix(in srgb, var(--border-color) 82%, var(--text-muted) 18%);
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: var(--font-caption);
    line-height: 1.2;
    background: color-mix(in srgb, var(--bg-card) 72%, transparent);
}
.master-gift-detail-tag--realm {
    border-color: color-mix(in srgb, var(--accent-jade) 40%, transparent);
    color: var(--text-jade);
}
.master-gift-detail-tag--inscription {
    border-color: color-mix(in srgb, color-mix(in srgb, var(--ghost-purple) 70%, white) 42%, transparent);
    color: var(--ghost-purple);
}
.master-gift-detail-tag--affix {
    border-color: rgba(122, 92, 173, 0.4);
    color: #7a5cad;
}
.master-gift-item-inscriptions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-6);
    margin-top: var(--space-6);
    font-size: var(--font-caption);
    line-height: 1.45;
}
.master-gift-item-inscriptions .stat-inscription {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}
.master-gift-qty-row {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    padding: var(--space-8) var(--space-10);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 26%, transparent);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--bg-card) 78%, var(--accent-jade) 8%);
}
.master-gift-qty-label,
.master-gift-qty-max {
    color: var(--text-muted);
    font-size: var(--font-label);
}
.master-gift-qty-input {
    width: 92px;
    min-height: 36px;
    padding: var(--space-4) var(--space-8);
    text-align: center;
}
.master-gift-fill-btn {
    min-height: 32px;
    padding: var(--space-4) var(--space-12);
    font-size: var(--font-label);
}
.zhuzeng-candidate-list {
    max-height: 55vh;
    overflow-y: auto;
    padding: var(--space-4) var(--space-2);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.zhuzeng-candidate-row {
    display: flex;
    flex-shrink: 0; /* 滚动列表 .zhuzeng-candidate-list 子项不应被压扁, 防内部多行内容溢出叠加 */
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-10);
    padding: var(--space-10) var(--space-10);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--glass-white-2);
}
.zhuzeng-candidate-main {
    flex: 1 1 auto;
    min-width: 0;
}
.zhuzeng-candidate-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--font-body);
    font-weight: 600;
}
.zhuzeng-pick-btn {
    flex: 0 0 auto;
}
.legacy-archive-row {
    display: grid;
    grid-template-columns: minmax(64px, 1.3fr) minmax(80px, 1.4fr) auto auto;
    align-items: center;
    gap: var(--space-6);
    font-size: var(--font-label);
    line-height: 1.5;
    padding: var(--space-4) var(--space-4);
    border-bottom: 1px dotted color-mix(in srgb, var(--border-color) 60%, transparent);
}
.legacy-archive-row:last-child { border-bottom: none; }
.legacy-archive-name {
    color: var(--craft-gold-soft);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.legacy-archive-flow {
    color: var(--text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.legacy-archive-status {
    font-size: var(--font-caption);
    padding: 0 var(--space-6);
    border-radius: var(--radius-xs);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    white-space: nowrap;
}
.legacy-archive-status--inherited { border-color: #4a8; color: #8ac; }
.legacy-archive-status--returned { border-color: #a84; color: #ca8; }
.legacy-archive-status--voided { border-color: #555; color: #777; }
.legacy-archive-time {
    font-size: var(--font-caption);
    color: var(--text-muted);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
@media (max-width: 520px) {
    .legacy-archive-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "name time"
            "flow status";
    }
    .legacy-archive-name { grid-area: name; }
    .legacy-archive-flow { grid-area: flow; }
    .legacy-archive-status { grid-area: status; justify-self: end; }
    .legacy-archive-time { grid-area: time; }
}

/* --- 自建宗门 · 捐献物资弹窗 --- */
.psect-donate-modal-overlay .gc-mid,
.psect-donate-modal-overlay .modal-info-card {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: hidden;
}

/* ===== 宗门捐献 · 验看台（严格对照 design-demos/sect-donate-redesign-v2.html）===== */

/* 外壳：抵消 .modal--decorated 全局 padding / 表单污染；保留实色卡面（遮罩上不能透底） */
.psect-donate-modal-overlay .modal-content.modal--decorated,
/* 抵消 .modal--decorated label 全局（display:block / muted 色 / margin）对行布局的污染 */
.psect-donate-modal-overlay .modal--decorated label.donate-row {
    display: grid;
    margin-bottom: 0;
    color: inherit;
    font-size: inherit;
    letter-spacing: normal;
}
.psect-donate-modal-overlay .modal--decorated input.donate-qty {
    width: 60px;
    margin-bottom: 0;
    padding: 0 var(--space-4);
    height: 24px;
    border-radius: var(--radius-sm);
    font-size: var(--font-caption);
}

.psect-donate-modal-overlay .donate-overlay {
    /* 设计稿用 glass 叠浅色页；游戏弹窗叠暗遮罩，改用不透明面板色避免透底 */
    background: var(--bg-panel);
    border: none;
    border-radius: inherit;
    box-shadow: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: min(85dvh, 720px);
}

/* --- 头部 --- */
.psect-donate-modal-overlay .donate-header {
    flex: none;
    position: relative;
    padding: var(--space-12) var(--space-48) var(--space-10) var(--space-14); /* 右侧留给统一关闭 × */
    border-bottom: 1px solid var(--border-color);
    background: linear-gradient(180deg, color-mix(in srgb, var(--accent-gold) 3%, transparent), transparent);
}
.psect-donate-modal-overlay .donate-header .modal-header-close {
    top: 10px;
    right: 10px;
}
.psect-donate-modal-overlay .donate-header__top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: var(--space-4);
}
.psect-donate-modal-overlay .donate-header__title {
    font-family: var(--font-display);
    font-size: var(--font-action);
    letter-spacing: 2px;
}
.psect-donate-modal-overlay .donate-header__contrib {
    display: flex;
    align-items: baseline;
    gap: var(--space-4);
}
.psect-donate-modal-overlay .donate-header__contrib-num {
    font-family: var(--font-mono);
    font-size: var(--font-title);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.psect-donate-modal-overlay .donate-header__contrib-label {
    font-size: var(--font-micro);
    color: var(--text-muted);
}
.psect-donate-modal-overlay .donate-header__tip {
    font-size: var(--font-micro);
    line-height: 1.5;
    color: var(--text-muted);
}
.psect-donate-modal-overlay .donate-link {
    flex: none;
    height: 28px;
    padding: 0 var(--space-10);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    font-family: var(--font-serif);
    font-size: var(--font-micro);
    color: var(--text-gold);
    cursor: pointer;
}

/* --- 分类 tab --- */
.psect-donate-modal-overlay .donate-tabs {
    flex: none;
    display: flex;
    gap: var(--space-4);
    padding: var(--space-6) var(--space-12) var(--space-4);
    overflow-x: auto;
    scrollbar-width: none;
    background: var(--bg-panel);
}
.psect-donate-modal-overlay .donate-tabs::-webkit-scrollbar { display: none; }
.psect-donate-modal-overlay .donate-tab {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    height: 24px;
    padding: 0 var(--space-8);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    font-family: var(--font-serif);
    font-size: var(--font-micro);
    color: var(--text-muted);
    cursor: pointer;
    white-space: nowrap;
}
.psect-donate-modal-overlay .donate-tab:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
}
.psect-donate-modal-overlay .donate-tab.is-active {
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    border-color: color-mix(in srgb, var(--accent-gold) 55%, transparent);
    font-weight: 600;
}
.psect-donate-modal-overlay .donate-tab__badge {
    display: inline-block;
    min-width: 13px;
    height: 13px;
    padding: 0 var(--space-2);
    border-radius: var(--radius-pill);
    background: var(--shadow-black-3);
    font-size: var(--font-micro);
    line-height: 13px;
    text-align: center;
    font-family: var(--font-mono);
}
.psect-donate-modal-overlay .donate-tab.is-active .donate-tab__badge {
    background: color-mix(in srgb, var(--accent-gold) 22%, transparent);
    color: var(--text-gold);
}
.psect-donate-modal-overlay .donate-tab--alert::before {
    content: '';
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--accent-crimson);
    flex: none;
}

/* --- 物品列表 --- */
.psect-donate-modal-overlay .donate-list {
    max-height: 56vh;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: var(--space-6) var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.psect-donate-modal-overlay .donate-empty {
    padding: var(--space-32) var(--space-12);
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-label);
}

/* --- 物品行（基础/装备行）--- */
.psect-donate-modal-overlay .donate-row {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) 60px;
    align-items: start;
    gap: var(--space-6);
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    border: 1px solid transparent;
    transition: background .15s, border-color .15s;
    cursor: pointer;
}
.psect-donate-modal-overlay .donate-row:hover {
    background: var(--bg-card-hover);
}
.psect-donate-modal-overlay .donate-row.is-selected {
    background: color-mix(in srgb, var(--accent-gold) 9%, transparent);
    border-color: color-mix(in srgb, var(--accent-gold) 45%, transparent);
}
/* 特殊装备行：左侧成色色条 */
.psect-donate-modal-overlay .donate-row--special {
    border-left: 3px solid var(--rarity-4);
    padding-left: var(--space-8);
}
.psect-donate-modal-overlay .donate-row--special.r-5 { border-left-color: var(--rarity-5); }
.psect-donate-modal-overlay .donate-row--special.r-3 { border-left-color: var(--rarity-3); }

.psect-donate-modal-overlay .donate-check {
    width: 15px;
    height: 15px;
    margin-top: var(--space-2);
    accent-color: var(--accent-gold);
    cursor: pointer;
    flex: none;
}
.psect-donate-modal-overlay .donate-row__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.psect-donate-modal-overlay .donate-row__line1 {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
    flex-wrap: wrap;
}
.psect-donate-modal-overlay .donate-row__name {
    font-size: var(--font-label);
    font-weight: 600;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.psect-donate-modal-overlay .donate-row__name.r-5 { color: var(--rarity-5); }
.psect-donate-modal-overlay .donate-row__name.r-4 { color: var(--rarity-4); }
.psect-donate-modal-overlay .donate-row__name.r-3 { color: var(--rarity-3); }
.psect-donate-modal-overlay .donate-row__name.r-2 { color: var(--rarity-2); }
.psect-donate-modal-overlay .donate-row__name.r-1 { color: var(--rarity-1); }

/* 成色徽章 — v2：与名称同一行（line1 内 inline-flex），不再单独占行 */
.psect-donate-modal-overlay .badge {
    display: inline-flex;
    align-items: center;
    height: 15px;
    padding: 0 var(--space-4);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    letter-spacing: .2px;
    flex: none;
}
.psect-donate-modal-overlay .badge--refine {
    background: color-mix(in srgb, var(--accent-gold) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    color: var(--accent-gold);
}
.psect-donate-modal-overlay .badge--refine strong {
    font-family: var(--font-mono);
    font-size: var(--font-micro);
}
.psect-donate-modal-overlay .badge--natal {
    background: color-mix(in srgb, var(--accent-crimson) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-crimson) 32%, transparent);
    color: var(--accent-crimson);
}
.psect-donate-modal-overlay .badge--affix {
    background: color-mix(in srgb, var(--accent-jade) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-jade) 30%, transparent);
    color: var(--accent-jade);
}
.psect-donate-modal-overlay .badge--insc {
    background: color-mix(in srgb, var(--accent-purple) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-purple) 32%, transparent);
    color: var(--accent-purple);
}

/* 符文属性展开行 */
.psect-donate-modal-overlay .donate-row__inscs {
    font-size: var(--font-micro);
    color: var(--accent-purple);
    line-height: 1.35;
    letter-spacing: .1px;
}
.psect-donate-modal-overlay .donate-row__inscs .sep {
    opacity: .4;
    margin: 0 var(--space-4);
}
.psect-donate-modal-overlay .donate-row__inscs .stat-inscription {
    font-size: var(--font-micro);
}

/* meta 行 */
.psect-donate-modal-overlay .donate-row__meta {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.3;
}
.psect-donate-modal-overlay .donate-row__meta .sep { opacity: .4; }
.psect-donate-modal-overlay .donate-row__meta .contrib {
    color: var(--text-gold);
    font-weight: 600;
    font-family: var(--font-mono);
}

/* 数量输入框 */
.psect-donate-modal-overlay .donate-qty {
    justify-self: end;
    align-self: start;
    width: 60px;
    height: 24px;
    margin-top: var(--space-2);
    padding: 0 var(--space-4);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-secondary);
    font-family: var(--font-mono);
    font-size: var(--font-caption);
    color: var(--text-primary);
    text-align: center;
    outline: none;
}
.psect-donate-modal-overlay .donate-qty:disabled { opacity: .4; }
.psect-donate-modal-overlay .donate-qty:not(:disabled):focus {
    border-color: var(--accent-gold);
    box-shadow: 0 0 0 2px rgba(183, 120, 31, 0.12);
}

/* 材料紧凑行 */
.psect-donate-modal-overlay .donate-row--compact { padding: var(--space-6) var(--space-10); }
.psect-donate-modal-overlay .donate-row--compact .donate-row__body { gap: var(--space-2); }
.psect-donate-modal-overlay .donate-row--compact .donate-row__line1 { flex-wrap: nowrap; }
.psect-donate-modal-overlay .donate-row--compact .donate-row__name {
    font-weight: 500;
    font-size: var(--font-label);
}
.psect-donate-modal-overlay .donate-row--compact .donate-row__qty {
    flex: none;
    font-family: var(--font-mono);
    font-size: var(--font-micro);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    margin-left: auto;
    padding-right: var(--space-4);
}

/* 已装备过滤说明注 */
.psect-donate-modal-overlay .donate-note {
    flex: none;
    padding: var(--space-6) var(--space-12);
    font-size: var(--font-micro);
    color: var(--text-muted);
    line-height: 1.5;
    background: var(--bg-panel);
    opacity: .7;
    border-top: 1px solid var(--border-color);
}

/* --- 底部预览 + 提交 --- */
.psect-donate-modal-overlay .donate-footer {
    flex: none;
    border-top: 1px solid var(--border-color);
    background: var(--bg-panel);
    padding: var(--space-8) var(--space-12) var(--space-12);
}
.psect-donate-modal-overlay .donate-summary {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: var(--space-8);
    font-size: var(--font-micro);
    color: var(--text-muted);
    min-height: 16px;
}
.psect-donate-modal-overlay .donate-summary__total {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
}
.psect-donate-modal-overlay .donate-summary__total-num {
    font-family: var(--font-mono);
    font-size: var(--font-title);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.psect-donate-modal-overlay .donate-submit {
    width: 100%;
    height: 38px;
    border: none;
    border-radius: var(--radius-md);
    background: var(--accent-jade);
    color: #fff;
    font-family: var(--font-serif);
    font-size: var(--font-body);
    font-weight: 700;
    letter-spacing: 2px;
    cursor: pointer;
    transition: filter .15s;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--accent-jade) 30%, transparent);
}
.psect-donate-modal-overlay .donate-submit:hover { filter: brightness(1.08); }
.psect-donate-modal-overlay .donate-submit:disabled {
    opacity: .6;
    cursor: not-allowed;
}

/* ===== 符箓使用弹窗（复用捐献壳 + 单种批量卡）===== */
.talisman-use-modal-overlay .talisman-single-card {
    margin: var(--space-8);
    padding: var(--space-12);
    border-radius: var(--radius-md);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}
.talisman-use-modal-overlay .talisman-single-card__name {
    font-size: var(--font-action);
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-4);
}
.talisman-use-modal-overlay .talisman-single-card__desc {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.55;
    margin-bottom: var(--space-10);
}
.talisman-use-modal-overlay .talisman-single-card__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
}
.talisman-use-modal-overlay .talisman-single-stat {
    padding: var(--space-8);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    border: 1px solid var(--border-color);
}
.talisman-use-modal-overlay .talisman-single-stat__label {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 1px;
}
.talisman-use-modal-overlay .talisman-single-stat__value {
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    margin-top: var(--space-2);
}
.talisman-use-modal-overlay .talisman-single-stat__value--text {
    font-family: var(--font-serif);
    font-size: var(--font-label);
    color: var(--text-primary);
}
.talisman-use-modal-overlay .talisman-single-qty-row {
    display: flex;
    align-items: center;
    gap: var(--space-6);
}
.talisman-use-modal-overlay .talisman-single-qty-row label {
    font-size: var(--font-caption);
    color: var(--text-secondary);
    flex: none;
}
.talisman-use-modal-overlay .talisman-single-qty-input {
    flex: 1;
    height: 34px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-secondary);
    font-family: var(--font-mono);
    font-size: var(--font-body-lg);
    text-align: center;
    outline: none;
    color: var(--text-primary);
    margin-bottom: 0;
    width: auto;
}
.talisman-use-modal-overlay .talisman-single-qty-input:focus {
    border-color: var(--accent-gold);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-gold) 20%, transparent);
}
.talisman-use-modal-overlay .talisman-quick-qty {
    display: flex;
    gap: var(--space-4);
    margin-top: var(--space-8);
}
.talisman-use-modal-overlay .talisman-quick-btn {
    flex: 1;
    height: 26px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    font-family: var(--font-serif);
    font-size: var(--font-micro);
    color: var(--text-secondary);
    cursor: pointer;
}
.talisman-use-modal-overlay .talisman-quick-btn:hover {
    border-color: var(--accent-gold);
    color: var(--text-gold);
}
/* 遭遇选符：footer 双按钮时主按钮占宽 */
.talisman-use-modal-overlay .donate-footer .donate-submit {
    width: auto;
}

/* ===== 二次确认弹层（含特殊装备时触发）===== */
#psectDonateConfirmLayer {
    position: fixed;
    inset: 0;
    z-index: 130000;
    display: none;
}

.mailbox-btn {
    background: var(--bg-card);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-sm);
    font-size: var(--font-label);
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s;
}

.mailbox-btn:hover {
    border-color: color-mix(in srgb, var(--craft-gold) 50%, transparent);
    color: var(--text-gold);
}

.mailbox-btn--gold {
    background: linear-gradient(135deg, color-mix(in srgb, var(--craft-gold) 18%, transparent), color-mix(in srgb, var(--craft-gold) 6%, transparent));
    border-color: color-mix(in srgb, var(--craft-gold) 55%, transparent);
    color: var(--text-gold);
    font-weight: bold;
}

.mailbox-btn--ghost {
    background: transparent;
    color: var(--text-muted);
}

.mailbox-tab {
    background: transparent;
    color: var(--text-gray);
    border: none;
    font-size: var(--font-body);
    cursor: pointer;
    font-family: inherit;
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-sm);
    transition: all 0.2s;
}

.mailbox-tab.active {
    color: var(--text-gold);
    font-weight: bold;
}

.mailbox-tab:hover {
    color: var(--text-primary);
}

.mailbox-item--unread {
    border-left: 3px solid var(--accent-gold);
}

.mailbox-item--claimable {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--craft-gold) 25%, transparent);
}

.mailbox-item-head {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}

.mailbox-item-actions {
    display: flex;
    gap: var(--space-6);
    justify-content: flex-end;
}

.admin-tab {
    background: transparent;
    color: var(--text-gray);
    border: none;
    font-size: var(--font-body);
    cursor: pointer;
    font-family: inherit;
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-sm);
    transition: all 0.2s;
}

.admin-tab.active {
    color: var(--text-danger);
    font-weight: bold;
}

.admin-tab:hover { color: var(--text-primary); }

.admin-section {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: var(--space-10) var(--space-12);
    margin-bottom: var(--space-12);
}

.admin-section-title {
    font-size: var(--font-body);
    color: var(--text-gold);
    margin-bottom: var(--space-8);
    padding-bottom: var(--space-4);
    border-bottom: 1px dashed color-mix(in srgb, var(--craft-gold) 25%, transparent);
}

.admin-section-hint {
    font-size: var(--font-caption);
    color: var(--text-muted);
    font-weight: normal;
    margin-left: var(--space-6);
}

.admin-recipient-modes {
    display: flex;
    gap: var(--space-12);
    flex-wrap: wrap;
    margin-bottom: var(--space-8);
}

.admin-radio {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    cursor: pointer;
    font-size: var(--font-body);
    color: var(--text-secondary);
}

.admin-radio input[type="radio"] {
    accent-color: var(--accent-gold);
}

.admin-recip-search {
    position: relative;
    margin-bottom: var(--space-8);
}

.admin-player-result {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 10;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    max-height: 220px;
    overflow-y: auto;
    margin-top: var(--space-2);
}

.admin-player-row {
    padding: var(--space-6) var(--space-10);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: var(--space-6);
    border-bottom: 1px solid var(--glass-white-2);
    font-size: var(--font-label);
}

.admin-player-row:hover {
    background: color-mix(in srgb, var(--craft-gold) 8%, transparent);
}

.admin-player-name {
    color: var(--text-primary);
    font-weight: bold;
}

.admin-player-meta {
    color: var(--text-muted);
    font-size: var(--font-caption);
    margin-left: auto;
}

.admin-player-empty {
    padding: var(--space-10);
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-label);
}

.online-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--canghai-teal);
    box-shadow: 0 0 4px color-mix(in srgb, var(--changsheng-green) 60%, transparent);
    flex-shrink: 0;
}

.admin-recip-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: center;
    min-height: 28px;
    padding: var(--space-6);
    background: var(--shadow-black-3);
    border-radius: var(--radius-sm);
}

.admin-recip-empty,
.admin-recip-count {
    font-size: var(--font-label);
    color: var(--text-muted);
}

.admin-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    background: color-mix(in srgb, var(--craft-gold) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--craft-gold) 30%, transparent);
    color: var(--text-primary);
    padding: var(--space-2) var(--space-6) var(--space-2) var(--space-8);
    border-radius: var(--radius-lg);
    font-size: var(--font-label);
}

.admin-chip-id {
    font-size: var(--font-micro);
    color: var(--text-muted);
}

.admin-chip-x {
    background: transparent;
    border: none;
    color: var(--text-danger);
    font-size: var(--font-body-lg);
    cursor: pointer;
    padding: 0 var(--space-2);
    line-height: 1;
}

.admin-chip-clear {
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--danger-color) 30%, transparent);
    color: var(--text-danger);
    font-size: var(--font-caption);
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-md);
    cursor: pointer;
    margin-left: var(--space-4);
}

.admin-chip--more {
    background: transparent;
    border-color: transparent;
    color: var(--text-muted);
}

.admin-broadcast-hint {
    background: color-mix(in srgb, var(--danger-color) 8%, transparent);
    border: 1px dashed color-mix(in srgb, var(--danger-color) 35%, transparent);
    border-radius: var(--radius-sm);
    padding: var(--space-8) var(--space-10);
    color: var(--text-secondary);
    font-size: var(--font-label);
    margin-top: var(--space-6);
}

.admin-form-row {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
}

.admin-form-row label {
    font-size: var(--font-label);
    color: var(--text-muted);
}

.admin-form-row .app-input,
.admin-form-row select,
.admin-form-row textarea {
    width: 100%;
    box-sizing: border-box;
    background: var(--shadow-black-2);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: var(--space-6) var(--space-10);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: var(--font-body);
}

.admin-form-row textarea {
    resize: vertical;
    line-height: 1.5;
}

.admin-attach-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
    padding: var(--space-6);
    background: var(--shadow-black-3);
    border-radius: var(--radius-sm);
    position: relative;
}

.admin-attach-kind {
    font-size: var(--font-caption);
    padding: var(--space-2) var(--space-8);
    background: color-mix(in srgb, var(--craft-gold) 15%, transparent);
    color: var(--text-gold);
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.admin-attach-search,
.admin-attach-stone,
.admin-attach-points {
    flex: 1;
    min-width: 120px;
    background: var(--shadow-black-2);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-sm);
    font-size: var(--font-label);
}

.admin-attach-qty {
    width: 70px;
    background: var(--shadow-black-2);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-sm);
    font-size: var(--font-label);
}

.admin-attach-pick {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 10;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    max-height: 220px;
    overflow-y: auto;
    margin-top: var(--space-2);
}

.admin-attach-picked {
    font-size: var(--font-label);
    color: var(--text-primary);
}

.admin-muted {
    color: var(--text-muted);
}

.admin-attach-add {
    display: flex;
    gap: var(--space-6);
    flex-wrap: wrap;
    margin-top: var(--space-4);
}

.admin-actions {
    display: flex;
    gap: var(--space-6);
    justify-content: flex-end;
    padding-top: var(--space-8);
    border-top: 1px solid var(--border-color);
}

.admin-online-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    max-height: 240px;
    overflow-y: auto;
    margin-bottom: var(--space-8);
}

.admin-online-row {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-6) var(--space-8);
    background: var(--shadow-black-3);
    border-radius: var(--radius-sm);
    font-size: var(--font-label);
}

.admin-only.hidden { display: none !important; }

/* ==========================================================================
   宗门 workbench（对齐储物/坊市/拍卖壳）
   ========================================================================== */
#sectPanel.sect-workbench {
    --sect-line: color-mix(in srgb, var(--border-color) 82%, transparent);
    --sect-line-strong: color-mix(in srgb, var(--accent-gold) 38%, var(--border-color));
    --sect-raised: var(--bg-card);
    --sect-surface: var(--bg-panel);
    --sect-accent: var(--accent-gold);
    --sect-radius: var(--radius-md);
    --sect-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    padding: 0 !important;
    margin: 0;
    background-color: var(--sect-surface) !important;
    background-image: none !important;
    overflow: hidden !important;
}

#sectPanel.sect-workbench .sect-workbench__header {
    flex: none;
    background: var(--sect-surface);
}

.sect-workbench__balance {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-4);
    padding: var(--space-2) var(--space-8);
    border: 1px solid color-mix(in srgb, var(--sect-accent, var(--accent-gold)) 28%, var(--border-color));
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--sect-accent, var(--accent-gold)) 7%, transparent);
    color: var(--sect-accent, var(--accent-gold));
    font-size: var(--font-caption);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    font-family: var(--font-mono, ui-monospace, monospace);
    /* 可收缩 + 上限宽度，避免超大数字占满标题行 */
    flex: 1 1 auto;
    min-width: 0;
    max-width: min(46vw, 11.5em);
    align-self: center;
    overflow: hidden;
    animation: sectBalBreath 3.6s var(--sect-ease, ease) infinite;
}

.sect-workbench__balance.hidden {
    display: none;
}

.sect-workbench__balance-label {
    flex: 0 0 auto;
    font-style: normal;
    font-weight: 500;
    font-family: var(--font-serif);
    opacity: 0.75;
    margin-right: var(--space-2);
}

.sect-workbench__balance-value {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 700;
    font-style: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@keyframes sectBalBreath {
    0%, 100% { box-shadow: 0 0 0 0 transparent; }
    50% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-gold) 10%, transparent); }
}

.sect-workbench__header-actions {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    flex: 0 0 auto;
    margin-left: auto;
}

#sectPanel.sect-workbench .sect-tool-btn,
#sectPanel.sect-workbench .btn-panel-close {
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    border: 1px solid var(--sect-line);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-caption);
    font-weight: 600;
    font-family: var(--font-serif);
    cursor: pointer;
    transition: border-color 140ms var(--sect-ease), color 140ms var(--sect-ease), background 140ms var(--sect-ease), transform 120ms var(--sect-ease);
}

#sectPanel.sect-workbench .sect-tool-btn {
    padding: 0 var(--space-10);
}

#sectPanel.sect-workbench .btn-panel-close {
    width: 30px;
    min-width: 30px;
    padding: 0;
    margin-left: 0;
    font-size: var(--font-action);
    font-weight: 400;
}

#sectPanel.sect-workbench .sect-tool-btn:hover,
#sectPanel.sect-workbench .btn-panel-close:hover {
    border-color: var(--sect-line-strong);
    color: var(--sect-accent);
}

#sectPanel.sect-workbench .sect-tool-btn:active,
#sectPanel.sect-workbench .btn-panel-close:active {
    transform: translateY(1px);
}

.sect-workbench__chrome {
    flex: none;
    background: var(--sect-surface);
    border-bottom: 1px solid color-mix(in srgb, var(--sect-line) 70%, transparent);
}

#sectPanel.sect-workbench .sect-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-6);
    margin: 0;
    padding: 0 var(--space-12) var(--space-8);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

#sectPanel.sect-workbench .sect-tabs::-webkit-scrollbar {
    display: none;
}

#sectPanel.sect-workbench .sect-tab {
    position: relative;
    flex: 0 0 auto;
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    padding: 0 var(--space-12);
    font-size: var(--font-label);
    font-family: inherit;
    font-weight: 600;
    background: transparent;
    border: 1px solid var(--sect-line);
    color: var(--text-secondary);
    border-radius: var(--radius-pill);
    cursor: pointer;
    transition: color 0.14s var(--sect-ease), border-color 0.14s var(--sect-ease), background 0.14s var(--sect-ease);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
}

#sectPanel.sect-workbench .sect-tab:hover {
    color: var(--sect-accent);
    border-color: color-mix(in srgb, var(--sect-accent) 35%, var(--border-color));
    background: transparent;
}

#sectPanel.sect-workbench .sect-tab.active {
    background: color-mix(in srgb, var(--sect-accent) 10%, transparent);
    border-color: color-mix(in srgb, var(--sect-accent) 42%, transparent);
    color: var(--text-gold, var(--sect-accent));
    font-weight: 600;
}

#sectPanel.sect-workbench .sect-tab .friend-btn-badge,
#sectPanel.sect-workbench .sect-tab .sect-tab-dot {
    position: static;
    transform: none;
    margin: 0;
}

#sectPanel.sect-workbench .sect-tab-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent-jade);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-jade) 18%, transparent);
}

#sectPanel.sect-workbench .sect-tab-dot.hidden {
    display: none;
}

.sect-workbench__joined {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.sect-workbench__body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
    padding: var(--space-10) var(--space-12) calc(var(--space-16) + env(safe-area-inset-bottom, 0px));
    -webkit-overflow-scrolling: touch;
}

#sectPanel.sect-workbench #sectUnjoinedView.sect-workbench__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
}

#sectPanel.sect-workbench .sect-tab-content {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    min-height: 0;
}

#sectPanel.sect-workbench .sect-tab-content.hidden {
    display: none;
}

#sectPanel.sect-workbench .sect-tab-content--flush {
    padding-bottom: 0;
}

/* #6387 底蕴捐献：列表内滚、提交脚钉在可视区底部，避开手机地址栏/home indicator */
#sectPanel.sect-workbench #sectTabStorage.sect-tab-content {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

#sectPanel.sect-workbench #sectTabStorage .sect-inline-hint,
#sectPanel.sect-workbench #sectTabStorage .sect-donate-toolbar {
    flex: none;
}

#sectPanel.sect-workbench #sectTabStorage .sect-donate-list {
    flex: 1 1 auto;
    min-height: 140px;
    max-height: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* 入口未入宗 */
#sectPanel.sect-workbench .sect-entry-card {
    margin: 0;
    padding: var(--space-12) var(--space-14);
    border-radius: var(--sect-radius);
    border: 1px solid var(--sect-line);
    background: var(--sect-raised);
    font-size: var(--font-body);
    line-height: 1.7;
    color: var(--text-secondary);
}

#sectPanel.sect-workbench .sect-entry-card strong {
    color: var(--text-primary);
    font-weight: 600;
}

#sectPanel.sect-workbench .sect-rules-summary {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--sect-line);
    border-radius: var(--sect-radius);
    background: var(--sect-raised);
    overflow: hidden;
}

#sectPanel.sect-workbench .sect-rules-summary li {
    display: flex;
    gap: var(--space-6);
    align-items: flex-start;
    padding: var(--space-10) var(--space-12);
    font-size: var(--font-label);
    line-height: 1.55;
    color: var(--text-primary);
    border-bottom: 1px solid color-mix(in srgb, var(--sect-line) 80%, transparent);
}

#sectPanel.sect-workbench .sect-rules-summary li:last-child {
    border-bottom: none;
}

#sectPanel.sect-workbench .sect-action-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding-top: var(--space-12);
    border-top: 1px dashed var(--sect-line);
}

#sectPanel.sect-workbench .sect-action-btn {
    width: 100%;
    min-height: 42px;
    border-radius: var(--sect-radius);
}

/* 大殿 hero / glance */
#sectPanel.sect-workbench .sect-hero {
    padding: var(--space-12);
    border-radius: var(--sect-radius);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 22%, var(--sect-line));
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--craft-gold) 9%, transparent), transparent 60%),
        var(--sect-raised);
}

#sectPanel.sect-workbench .sect-hero__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
}

#sectPanel.sect-workbench .sect-hero__name {
    margin: 0;
    font-family: var(--font-display, var(--font-serif));
    font-size: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--text-primary);
}

#sectPanel.sect-workbench .sect-level-badge {
    flex: none;
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--accent-gold) 16%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    color: var(--text-gold);
    font-size: var(--font-caption);
    font-weight: 700;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
}

#sectPanel.sect-workbench .sect-hero__sub {
    margin-top: var(--space-6);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.5;
}

#sectPanel.sect-workbench .sect-glance {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    margin-top: var(--space-12);
}

#sectPanel.sect-workbench .sect-glance__cell {
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--sect-line) 90%, transparent);
    background: color-mix(in srgb, var(--bg-panel) 55%, var(--sect-raised));
}

#sectPanel.sect-workbench .sect-glance__l {
    display: block;
    font-size: var(--font-micro);
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

#sectPanel.sect-workbench .sect-glance__v {
    display: block;
    margin-top: var(--space-4);
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.35;
}

#sectPanel.sect-workbench .sect-glance__v.gold {
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    font-family: var(--font-mono, ui-monospace, monospace);
}

#sectPanel.sect-workbench .sect-glance__v.jade {
    color: var(--text-jade);
}

#sectPanel.sect-workbench .sect-block {
    padding: var(--space-12);
    border: 1px solid var(--sect-line);
    border-radius: var(--sect-radius);
    background: var(--sect-raised);
}

#sectPanel.sect-workbench .sect-block__h {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    letter-spacing: 0.08em;
}

#sectPanel.sect-workbench .sect-notice-text {
    margin: 0;
    font-size: var(--font-body);
    line-height: 1.7;
    color: var(--text-secondary);
    min-height: 2.6em;
}

#sectPanel.sect-workbench .sect-notice-edit {
    margin-top: var(--space-10);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

#sectPanel.sect-workbench .sect-notice-input {
    width: 100%;
    min-height: 64px;
    resize: vertical;
    border: 1px solid var(--sect-line);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    padding: var(--space-8) var(--space-10);
    font-size: var(--font-label);
    line-height: 1.55;
    color: var(--text-primary);
    font-family: inherit;
    outline: none;
}

#sectPanel.sect-workbench .sect-notice-input:focus {
    border-color: color-mix(in srgb, var(--sect-accent) 42%, var(--border-color));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sect-accent) 10%, transparent);
}

#sectPanel.sect-workbench .sect-stack-btns {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

#sectPanel.sect-workbench .sect-btn-line,
#sectPanel.sect-workbench .sect-btn-block {
    width: 100%;
    min-height: 38px;
    border-radius: var(--radius-md);
    border: 1px solid var(--sect-line);
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-secondary);
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    transition: border-color 0.14s var(--sect-ease), color 0.14s var(--sect-ease), background 0.14s var(--sect-ease);
}

#sectPanel.sect-workbench .sect-btn-line:hover {
    border-color: var(--sect-line-strong);
    color: var(--sect-accent);
}

#sectPanel.sect-workbench .sect-btn-line--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}

#sectPanel.sect-workbench .sect-btn-line--danger {
    border-color: color-mix(in srgb, var(--accent-crimson) 28%, var(--border-color));
    color: var(--text-danger);
    margin-top: var(--space-4);
}

#sectPanel.sect-workbench .sect-btn-line--danger:hover {
    border-color: color-mix(in srgb, var(--accent-crimson) 45%, transparent);
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent);
    color: var(--text-danger);
}

#sectPanel.sect-workbench .sect-btn-block--primary,
body.game-page #sectUnjoinedView .sect-action-btn--primary {
    border-color: color-mix(in srgb, var(--accent-jade) 40%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 9%, transparent);
    color: var(--text-jade);
}

#sectPanel.sect-workbench .sect-btn-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    padding: 0 var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid var(--sect-line);
    font-size: var(--font-caption);
    font-weight: 600;
    color: var(--text-secondary);
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}

#sectPanel.sect-workbench .sect-btn-sm:hover {
    border-color: var(--sect-line-strong);
    color: var(--sect-accent);
}

#sectPanel.sect-workbench .sect-btn-sm--jade {
    border-color: color-mix(in srgb, var(--accent-jade) 38%, var(--border-color));
    color: var(--text-jade);
    background: color-mix(in srgb, var(--accent-jade) 9%, transparent);
}

#sectPanel.sect-workbench .sect-btn-sm--gold {
    border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}

#sectPanel.sect-workbench .sect-task-head {
    display: flex;
    align-items: center;
    gap: var(--space-6);
}

#sectPanel.sect-workbench .sect-task-head__hint,
#sectPanel.sect-workbench .sect-inline-hint {
    flex: 1;
    margin: 0;
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.5;
}

#sectPanel.sect-workbench .sect-task-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

#sectPanel.sect-workbench .sect-task-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-8) var(--space-10);
    align-items: center;
    padding: var(--space-10) var(--space-12);
    border: 1px solid var(--sect-line);
    border-radius: var(--radius-md);
    background: var(--sect-raised);
}

#sectPanel.sect-workbench .sect-task-card.is-claimable {
    border-color: color-mix(in srgb, var(--accent-jade) 32%, var(--sect-line));
    background: color-mix(in srgb, var(--accent-jade) 5%, var(--sect-raised));
}

#sectPanel.sect-workbench .sect-task-card.is-claimed {
    opacity: 0.72;
}

#sectPanel.sect-workbench .sect-task-name {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
}

#sectPanel.sect-workbench .sect-task-desc {
    display: block;
    margin-top: var(--space-4);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.45;
}

#sectPanel.sect-workbench .sect-task-action {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-6);
}

#sectPanel.sect-workbench .sect-task-progress {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-caption);
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
    font-weight: 600;
}

#sectPanel.sect-workbench .sect-task-progress.is-done {
    color: var(--text-jade);
}

#sectPanel.sect-workbench .sect-task-reward {
    font-size: var(--font-micro);
    color: var(--text-muted);
}

/* 底蕴搜索条 */
#sectPanel.sect-workbench .sect-donate-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(72px, 88px) auto;
    gap: var(--space-6);
    align-items: center;
}

#sectPanel.sect-workbench .sect-search-wrap {
    display: flex;
    align-items: center;
    min-width: 0;
    height: 32px;
    padding: 0 var(--space-10);
    border: 1px solid var(--sect-line);
    border-radius: var(--radius-md);
    background: var(--sect-raised);
}

#sectPanel.sect-workbench .sect-search-wrap:focus-within {
    border-color: color-mix(in srgb, var(--sect-accent) 42%, var(--border-color));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sect-accent) 10%, transparent);
}

#sectPanel.sect-workbench .sect-search-icon {
    color: var(--text-muted);
    margin-right: var(--space-6);
    flex: none;
    display: inline-flex;
}

#sectPanel.sect-workbench .sect-search-input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    height: 28px;
    font-size: var(--font-label);
    outline: none;
    color: var(--text-primary);
    font-family: inherit;
    width: 100%;
    padding: 0;
}

#sectPanel.sect-workbench .sect-shop-select {
    height: 32px;
    border: 1px solid var(--sect-line);
    border-radius: var(--radius-md);
    background: var(--sect-raised);
    font-size: var(--font-caption);
    color: var(--text-secondary);
    padding: 0 var(--space-8);
    font-family: inherit;
}

#sectPanel.sect-workbench .sect-donate-link {
    height: 32px;
    border: 1px solid var(--sect-line);
    border-radius: var(--radius-md);
    background: transparent;
    font-size: var(--font-caption);
    font-weight: 600;
    color: var(--text-secondary);
    padding: 0 var(--space-8);
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}

#sectPanel.sect-workbench .sect-donate-link:hover {
    border-color: var(--sect-line-strong);
    color: var(--sect-accent);
}

#sectPanel.sect-workbench .sect-donate-foot {
    /* 钉在底蕴 Tab 底部（配合 #sectTabStorage flex），不再贴整页滚动底边 */
    position: relative;
    flex: none;
    z-index: 2;
    margin: var(--space-8) calc(-1 * var(--space-12)) 0;
    padding: var(--space-10) var(--space-12) calc(var(--space-14) + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid color-mix(in srgb, var(--sect-line) 80%, transparent);
    background: color-mix(in srgb, var(--sect-surface) 92%, transparent);
    backdrop-filter: blur(8px);
}

/* 手机浏览器底栏/地址栏常不计入 safe-area，保底再抬一档 */
@media (max-width: 768px) {
    #sectPanel.sect-workbench .sect-workbench__body {
        padding-bottom: calc(var(--space-20) + env(safe-area-inset-bottom, 0px));
    }

    #sectPanel.sect-workbench .sect-donate-foot {
        padding-bottom: calc(var(--space-24) + env(safe-area-inset-bottom, 0px));
    }

    #sectPanel.sect-workbench #sectTabStorage.sect-tab-content {
        /* flush 时 body 已含安全区，Tab 自身不再重复垫高 */
        padding-bottom: 0;
    }
}

#sectPanel.sect-workbench .sect-donate-preview {
    font-size: var(--font-label);
    color: var(--text-muted);
    margin-bottom: var(--space-8);
    font-variant-numeric: tabular-nums;
}

#sectPanel.sect-workbench .sect-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    align-items: center;
}

#sectPanel.sect-workbench .sect-shop-toolbar .sect-inline-hint {
    flex: 1 1 100%;
}

#sectPanel.sect-workbench .garden-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: var(--space-12);
    margin-top: var(--space-4);
}

#sectPanel.sect-workbench .sect-members-header {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    font-size: var(--font-label);
    color: var(--text-secondary);
}

#sectPanel.sect-workbench .sect-members-header b {
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

#sectPanel.sect-workbench .sect-member-search-bar {
    margin: 0;
}

/* 自建：收束 psect-home 到 workbench 壳内 */
#sectPanel.sect-workbench .psect-home {
    gap: var(--space-10);
}

#sectPanel.sect-workbench .psect-home .court-card {
    margin: 0;
    padding: var(--space-12);
    border-radius: var(--sect-radius);
    background: var(--sect-raised);
    border: 1px solid var(--sect-line);
}

#sectPanel.sect-workbench .psect-home .court-card-header {
    margin: 0 0 var(--space-10);
    padding: 0 0 var(--space-8);
    border-bottom: 1px solid color-mix(in srgb, var(--craft-gold) 18%, transparent);
    color: var(--text-gold);
    font-size: var(--font-label);
    letter-spacing: 0.08em;
    text-align: left;
}

#sectPanel.sect-workbench .psect-facility-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
}

#sectPanel.sect-workbench .psect-home .btn-action.psect-facility-btn {
    min-height: 56px;
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--sect-line);
    background: var(--sect-raised) !important;
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: var(--space-4);
    font-size: var(--font-body);
    font-weight: 600;
    text-align: left;
    position: relative;
}

#sectPanel.sect-workbench .psect-home .btn-action.psect-facility-btn:hover {
    border-color: color-mix(in srgb, var(--sect-accent) 35%, var(--border-color));
    color: var(--sect-accent);
}

#sectPanel.sect-workbench .psect-home .btn-danger {
    width: 100%;
    min-height: 38px;
    margin-top: var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-crimson) 28%, var(--border-color));
    color: var(--text-danger);
    background: color-mix(in srgb, var(--accent-crimson) 8%, transparent) !important;
}

#sectPanel.sect-workbench .psect-home-panel {
    display: none;
    flex-direction: column;
    gap: var(--space-10);
}

#sectPanel.sect-workbench .psect-home-panel--active {
    display: flex;
}

/* ── 管理 Tab · M1 子导航（复用 sgb-fchip，与藏宝阁分区一致）── */
.psect-manage {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    min-width: 0;
}
.psect-manage-subnav.sgb-filters {
    margin-bottom: 0;
    position: sticky;
    top: 0;
    z-index: 2;
    padding: var(--space-2) 0 var(--space-4);
    background: color-mix(in srgb, var(--bg-panel, var(--bg-card)) 92%, transparent);
}
.psect-manage-subnav .sgb-fchip {
    position: relative;
    padding-right: var(--space-14);
}
.psect-manage-subnav .sgb-fchip .friend-btn-badge {
    position: absolute;
    top: -4px;
    right: -2px;
    min-width: 14px;
    height: 14px;
    padding: 0 var(--space-4);
    font-size: var(--font-micro);
    line-height: 14px;
}
.psect-manage-panels {
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    min-width: 0;
}
.psect-manage-panel {
    display: none;
    flex-direction: column;
    gap: var(--space-10);
    min-width: 0;
}
.psect-manage-panel--active {
    display: flex;
}
.psect-manage-hint {
    margin: 0 0 var(--space-10);
    font-size: var(--font-label);
    line-height: 1.55;
    color: var(--text-muted);
}
/* #8067：招人推荐区段头按钮成组，筛选项单独一行 */
.psect-recruit-head {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    margin: 0 0 var(--space-8);
    min-width: 0;
}
.psect-recruit-head__row {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    min-width: 0;
}
.psect-recruit-head__row > span {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--font-body);
    color: var(--text-gold);
}
.psect-recruit-head__acts {
    flex: none;
    display: flex;
    gap: var(--space-6);
}
.psect-recruit-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-8);
}
.psect-recruit-stage {
    width: auto;
    min-width: 7.5em;
    flex: none;
}
.psect-manage-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
    margin-bottom: var(--space-12);
}
.psect-manage-metric {
    padding: var(--space-8) var(--space-6);
    border-radius: var(--radius-md);
    border: 1px solid var(--sect-line, var(--border-color));
    background: color-mix(in srgb, var(--bg-panel, var(--bg-card)) 88%, transparent);
    text-align: center;
}
.psect-manage-metric__lab {
    font-size: var(--font-micro);
    color: var(--text-muted);
    letter-spacing: 0.04em;
}
.psect-manage-metric__val {
    margin-top: var(--space-4);
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    word-break: break-all;
}
@media (max-width: 380px) {
    .psect-manage-metrics {
        grid-template-columns: 1fr 1fr;
    }
}

#sectPanel.sect-workbench .psect-home-panels {
    min-width: 0;
}

/* 自建 chrome 红点 */
#sectPlayerChrome .sect-tab .friend-btn-badge {
    top: auto;
    right: auto;
}


/* ==========================================================================
   宗门引路 · 一览 / 创建（design/sect-guide-browse · gc-dialog 宽版）
   ========================================================================== */
body.game-page .modal-content.modal--decorated.gc-dialog.sgb-dialog,
.modal-content.modal--decorated.gc-dialog.sgb-dialog,
.gc-dialog.sgb-dialog {
    max-width: min(92vw, 520px);
    width: 92%;
    max-height: min(88vh, 720px);
    display: flex;
    flex-direction: column;
}

.gc-dialog.sgb-dialog .gc-mid.sgb-mid,
.gc-mid.sgb-mid {
    text-align: left;
    padding: var(--space-8) var(--space-16) var(--space-16);
    max-height: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

/* #9808：仓库分页钉底栏，列表随中区一条滚动 */
.gc-dialog.sgb-dialog--warehouse > .gc-foot > .psect-farm-pager {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
}
.gc-dialog.sgb-dialog--warehouse > .gc-foot .psect-farm-pager {
    margin: 0;
}
.gc-dialog.sgb-dialog--warehouse > .gc-foot .pager-btn {
    min-height: var(--pattern-control-height-compact);
    min-width: var(--pattern-touch-target);
    box-sizing: border-box;
}

.gc-dialog.sgb-dialog .gc-mid.sgb-mid::-webkit-scrollbar,
.gc-mid.sgb-mid::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.sgb-filters {
    display: flex;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
    overflow-x: auto;
    scrollbar-width: none;
}
.sgb-filters::-webkit-scrollbar { display: none; }

.sgb-fchip {
    flex: 0 0 auto;
    height: 28px;
    padding: 0 var(--space-12);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    background: color-mix(in srgb, var(--text-primary) 4%, transparent);
    color: var(--text-secondary);
    font-size: var(--font-caption);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.14s, color 0.14s, background 0.14s;
}
.sgb-fchip.is-on {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}

.sgb-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.sgb-empty {
    padding: var(--space-32) var(--space-12);
    text-align: center;
    font-size: var(--font-body);
    color: var(--text-muted);
}

.sgb-card {
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    padding: var(--space-12) var(--space-12) var(--space-10);
    background: color-mix(in srgb, var(--bg-panel, var(--bg-card)) 88%, transparent);
}
.sgb-card.is-system {
    border-color: color-mix(in srgb, var(--accent-gold) 32%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-panel, var(--bg-card)));
}

.sgb-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-6);
}
.sgb-card__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
    min-width: 0;
}
.sgb-card__name {
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
    letter-spacing: 0.04em;
    line-height: 1.3;
}
.sgb-card__lv {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-caption);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
.sgb-kind {
    display: inline-flex;
    align-items: center;
    height: 18px;
    padding: 0 var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 700;
    letter-spacing: 0.06em;
    border: 1px solid;
}
.sgb-kind--sys {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 40%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.sgb-kind--pl {
    color: var(--text-jade);
    border-color: color-mix(in srgb, var(--accent-jade) 38%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 9%, transparent);
}
.sgb-card__region {
    flex: none;
    font-size: var(--font-caption);
    color: var(--text-muted);
    white-space: nowrap;
}
.sgb-card__meta {
    margin-top: var(--space-6);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-12);
    font-size: var(--font-caption);
    color: var(--text-secondary);
    line-height: 1.45;
}
.sgb-card__meta b {
    color: var(--text-primary);
    font-weight: 600;
}
/* 宗门一览卡片公告：默认两行省略；点击在条目内展开/收起。空公告不渲染（JS 控制）。 */
.sgb-card__notice {
    margin-top: var(--space-6);
    padding: var(--space-6) var(--space-8);
    width: 100%;
    box-sizing: border-box;
    border: none;
    font: inherit;
    text-align: left;
    font-size: var(--font-caption);
    line-height: 1.5;
    color: var(--text-secondary);
    background: color-mix(in srgb, var(--accent-gold, #c8a04a) 6%, transparent);
    border-radius: var(--radius-xs);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-6);
    align-items: end;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.sgb-card__notice:active {
    background: color-mix(in srgb, var(--accent-gold, #c8a04a) 12%, transparent);
}
.sgb-card__notice.is-expanded {
    align-items: start;
    background: color-mix(in srgb, var(--accent-gold, #c8a04a) 10%, transparent);
}
.sgb-card__notice-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    min-width: 0;
    word-break: break-word;
}
.sgb-card__notice.is-expanded .sgb-card__notice-text {
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    overflow: visible;
}
.sgb-card__notice-more {
    flex-shrink: 0;
    font-size: var(--font-micro);
    line-height: 1.4;
    letter-spacing: 0.5px;
    color: var(--accent-gold, #c8a04a);
    font-weight: 600;
    white-space: nowrap;
    padding-bottom: var(--space-2);
}
.sgb-card__notice.is-expanded .sgb-card__notice-more {
    padding-top: var(--space-2);
    padding-bottom: 0;
}
.sgb-card__actions {
    margin-top: var(--space-10);
    display: flex;
    gap: var(--space-6);
}
.sgb-card__actions .modal-btn {
    flex: 1;
    height: 32px;
    min-height: 32px;
    font-size: var(--font-label);
    border-radius: var(--radius-md);
}

/* create form */
.sgb-cost {
    margin-bottom: var(--space-12);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 28%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 7%, transparent);
    font-size: var(--font-label);
    line-height: 1.65;
    color: var(--text-secondary);
}
.sgb-cost b { color: var(--text-gold); font-weight: 700; }
.sgb-warn {
    margin-bottom: var(--space-12);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--text-orange, #9a6b3d) 30%, var(--border-color));
    background: color-mix(in srgb, var(--text-orange, #9a6b3d) 8%, transparent);
    font-size: var(--font-label);
    line-height: 1.6;
    color: var(--text-orange, #9a6b3d);
}
.sgb-field { margin-bottom: var(--space-12); }
.sgb-field:last-child { margin-bottom: 0; }
.sgb-field label {
    display: block;
    margin-bottom: var(--space-6);
    font-size: var(--font-label);
    color: var(--text-secondary);
}
.sgb-field .sgb-input,
.sgb-field .app-input,
.sgb-field .app-select {
    width: 100%;
    height: 38px;
    min-height: 38px;
    box-sizing: border-box;
}

.gc-dialog.sgb-dialog .gc-foot {
    flex: none;
}


/* ==========================================================================
   宗门设施弹窗全量壳（design/sect-facility-modals · 扁平 modal-btn）
   ========================================================================== */
body.game-page .modal-content.modal--decorated.gc-dialog.sgb-dialog,
.modal-content.modal--decorated.gc-dialog.sgb-dialog,
.gc-dialog.sgb-dialog {
    max-width: min(92vw, 520px);
    width: 92%;
    max-height: min(88vh, 720px);
    display: flex;
    flex-direction: column;
}
body.game-page .modal-content.modal--decorated.gc-dialog.sgb-dialog.sgb-dialog--form,
.gc-dialog.sgb-dialog.sgb-dialog--form,
.gc-dialog.sgb-dialog--create,
.gc-dialog.sgb-dialog--mat-price {
    max-width: min(92vw, 400px);
}
body.game-page .modal-content.modal--decorated.gc-dialog.sgb-dialog.sgb-dialog--donate,
.gc-dialog.sgb-dialog.sgb-dialog--donate {
    max-width: min(94vw, 520px);
}

.gc-dialog.sgb-dialog .gc-mid.sgb-mid,
.gc-mid.sgb-mid {
    text-align: left;
    padding: var(--space-6) var(--space-14) var(--space-14);
    max-height: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.gc-dialog.sgb-dialog .gc-mid.sgb-mid::-webkit-scrollbar,
.gc-mid.sgb-mid::-webkit-scrollbar { display: none; width: 0; height: 0; }

/* 旧 deco / padded 嵌在新壳时降噪（防御性：sgb-dialog 已用 gc-mid，但兜底隐藏残留旧元素） */
.gc-dialog.sgb-dialog .modal-header-deco {
    display: none !important;
}
.gc-dialog.sgb-dialog .modal-body-padded {
    padding: 0 !important;
}
.gc-dialog.sgb-dialog .modal-info-card {
    margin: 0 0 var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
}
.gc-dialog.sgb-dialog .modal-info-card__title {
    font-size: var(--font-label);
    letter-spacing: 0.06em;
    margin-bottom: var(--space-6);
}

.sgb-body-pad { min-width: 0; }
.sgb-body-inner { min-width: 0; }
.sgb-meta-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
    font-size: var(--font-label);
    color: var(--text-muted);
}
.sgb-meta-line b { color: var(--text-gold); font-weight: 600; }
.sgb-meta-tip { color: var(--text-muted); font-size: var(--font-caption); }
.sgb-meta-bal b {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-action);
    font-weight: 700;
    color: var(--text-gold);
    margin-right: var(--space-2);
}

.sgb-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto auto;
    gap: var(--space-6);
    align-items: center;
    margin-bottom: var(--space-8);
}
.sgb-toolbar.t2 { grid-template-columns: minmax(0, 1fr) auto; }
/* #9225：仓库搜索独占一行，筛选/操作整组靠右，避免挤成窄条 */
.sgb-toolbar--stack-search {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-6);
}
.sgb-toolbar--stack-search .sgb-search-wrap { width: 100%; }
.sgb-toolbar--stack-search .sgb-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: var(--space-6);
    flex: none;
}
.sgb-search-wrap {
    display: flex;
    align-items: center;
    min-width: 0;
    height: 34px;
    padding: 0 var(--space-10);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
}
.sgb-search-wrap:focus-within {
    border-color: color-mix(in srgb, var(--accent-gold) 42%, var(--border-color));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.sgb-search {
    flex: 1;
    min-width: 0;
    border: 0 !important;
    background: transparent !important;
    height: 28px;
    padding: 0 !important;
    margin: 0 !important;
    font-size: var(--font-label);
    outline: none;
    width: 100%;
    box-shadow: none !important;
}
.sgb-select {
    height: 34px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
    font-size: var(--font-caption);
    padding: 0 var(--space-8);
    color: var(--text-secondary);
    font-family: inherit;
}

/* 境界筛选：fixed 菜单，避免 .gc-dialog overflow:hidden 裁成半截（#4629） */
.sgb-stage-select {
    position: relative;
    display: inline-flex;
    min-width: 0;
    flex: 0 0 auto;
}
.sgb-stage-select__btn.sgb-select {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    min-width: 72px;
    max-width: 110px;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1;
}
.sgb-stage-select__btn.sgb-select::after {
    content: '';
    flex: 0 0 auto;
    width: 0;
    height: 0;
    border-left: 3.5px solid transparent;
    border-right: 3.5px solid transparent;
    border-top: 4.5px solid currentColor;
    opacity: 0.55;
    transition: transform 0.15s ease;
}
.sgb-stage-select.is-open .sgb-stage-select__btn.sgb-select {
    border-color: color-mix(in srgb, var(--accent-gold) 48%, var(--border-color));
    color: var(--text-gold);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-gold) 14%, transparent);
}
.sgb-stage-select.is-open .sgb-stage-select__btn.sgb-select::after {
    transform: rotate(180deg);
}
.sgb-stage-select__label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sgb-stage-select__menu {
    box-sizing: border-box;
    margin: 0;
    padding: var(--space-4);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 28%, var(--border-color));
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
    box-shadow: 0 10px 28px color-mix(in srgb, #000 42%, transparent);
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}
.sgb-stage-select__menu[hidden] {
    display: none !important;
}
.sgb-stage-select__opt {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: var(--space-8) var(--space-10);
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-primary);
    font: inherit;
    font-size: var(--font-label);
    text-align: left;
    cursor: pointer;
    white-space: nowrap;
}
.sgb-stage-select__opt:hover,
.sgb-stage-select__opt:focus-visible {
    outline: none;
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
    color: var(--text-gold);
}
.sgb-stage-select__opt.is-on {
    color: var(--text-gold);
    background: color-mix(in srgb, var(--accent-gold) 14%, transparent);
    font-weight: 600;
}

.sgb-tool-btn {
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 var(--space-10) !important;
    font-size: var(--font-caption) !important;
    white-space: nowrap;
}

.sgb-filters {
    display: flex;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
    overflow-x: auto;
    scrollbar-width: none;
}
.sgb-filters::-webkit-scrollbar { display: none; }
.sgb-fchip {
    flex: 0 0 auto;
    height: 28px;
    padding: 0 var(--space-12);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-caption);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.12s, color 0.12s, background 0.12s;
}
.sgb-fchip:hover,
.sgb-fchip.is-on,
.sgb-fchip.is-active {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}

.sgb-list { display: flex; flex-direction: column; gap: var(--space-8); min-width: 0; }
.sgb-empty {
    padding: var(--space-32) var(--space-12);
    text-align: center;
    font-size: var(--font-body);
    color: var(--text-muted);
}
.sgb-batch-bar {
    margin-bottom: var(--space-8);
    padding: var(--space-8) var(--space-10);
    border: 1px dashed color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-gold) 7%, transparent);
}

.sgb-cost {
    margin-bottom: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 28%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 7%, transparent);
    font-size: var(--font-label);
    line-height: 1.6;
    color: var(--text-secondary);
}
.sgb-cost b { color: var(--text-gold); font-weight: 700; }
.sgb-warn {
    margin-bottom: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--text-orange, #9a6b3d) 30%, var(--border-color));
    background: color-mix(in srgb, var(--text-orange, #9a6b3d) 8%, transparent);
    font-size: var(--font-label);
    line-height: 1.6;
    color: var(--text-orange, #9a6b3d);
}
.sgb-field { margin-bottom: var(--space-12); }
.sgb-field label {
    display: block;
    margin-bottom: var(--space-6);
    font-size: var(--font-label);
    color: var(--text-secondary);
}
.sgb-field .sgb-input,
.sgb-input {
    width: 100%;
    min-height: 38px;
    box-sizing: border-box;
}

/* 材料价行 */
.sgb-mp-rows { display: flex; flex-direction: column; gap: var(--space-8); margin-top: var(--space-4); }
.sgb-mp-row,
.psect-material-price-row.sgb-mp-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 88px 34px !important;
    gap: var(--space-6) !important;
    align-items: center;
    padding: var(--space-8) var(--space-10);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
}
.sgb-mp-name { font-weight: 600; }

/* 捐物资新壳 */
.gc-dialog.sgb-dialog--donate .sgb-foot-sticky,
.sgb-foot-sticky {
    position: sticky;
    bottom: 0;
    margin: var(--space-10) calc(-1 * var(--space-14)) calc(-1 * var(--space-14));
    padding: var(--space-10) var(--space-14) var(--space-12);
    border-top: 1px solid color-mix(in srgb, var(--border-color) 85%, transparent);
    background: color-mix(in srgb, var(--bg-card) 94%, transparent);
    backdrop-filter: blur(8px);
}
.sgb-preview, .gc-dialog.sgb-dialog--donate .donate-summary {
    font-size: var(--font-label);
    color: var(--text-muted);
    margin-bottom: var(--space-8);
}
.sgb-preview b, .gc-dialog.sgb-dialog--donate .donate-summary b {
    color: var(--text-gold);
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-body-lg);
}
.sgb-donate-mgr {
    margin-top: var(--space-10);
    padding-top: var(--space-10);
    border-top: 1px dashed color-mix(in srgb, var(--border-color) 85%, transparent);
}
.sgb-donate-mgr label {
    display: block;
    font-size: var(--font-caption);
    color: var(--text-secondary);
    margin-bottom: var(--space-6);
}
.sgb-donate-mgr em {
    font-style: normal;
    color: var(--text-muted);
    font-size: var(--font-micro);
    margin-left: var(--space-4);
}
/* 捐物资：在新壳内复用旧列表 class 时扁平化主钮 */
.gc-dialog.sgb-dialog--donate .donate-submit {
    height: 40px;
    border-radius: var(--radius-md);
    font-weight: 600;
    box-shadow: none !important;
    filter: none !important;
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent) !important;
    border: 1px solid var(--border-gold, rgba(183,120,31,.40)) !important;
    color: var(--text-gold) !important;
}
.gc-dialog.sgb-dialog--donate .donate-tab {
    /* 若仍渲染旧 donate-tab，跟 sgb-fchip 对齐 */
}
.sgb-insc-total {
    margin-bottom: var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    background: var(--bg-panel, var(--bg-card));
}
.sgb-insc-total__l {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-bottom: var(--space-4);
}

/* 名册搜索在新壳 */
.gc-dialog.sgb-dialog .psect-member-search-bar { margin-bottom: var(--space-8); }
.gc-dialog.sgb-dialog .psect-member-search {
    width: 100%;
    height: 34px;
    border-radius: var(--radius-md);
}

/* 卡片按钮扁平（仓库） */
.gc-dialog.sgb-dialog .psect-warehouse-card__btn {
    box-shadow: none;
    filter: none;
}


/* ==========================================================================
   灵田 / 九霄 播种子弹（design/sect-plant-modals）
   圆角：内卡 10 · 钮/输入 8（壳走 gc 14）
   ========================================================================== */
body.game-page .modal-content.modal--decorated.gc-dialog.sgb-dialog.sgb-dialog--plant-form,
.gc-dialog.sgb-dialog.sgb-dialog--plant-form {
    max-width: min(400px, 92vw);
    width: 92%;
}
body.game-page .modal-content.modal--decorated.gc-dialog.sgb-dialog.sgb-dialog--plant-list,
.gc-dialog.sgb-dialog.sgb-dialog--plant-list {
    max-width: min(520px, 94vw);
    width: 94%;
}
.sgb-plant {
    text-align: left;
    min-width: 0;
}
.sgb-plant__plot {
    margin: 0;
    font-size: var(--font-action);
    text-align: left;
    letter-spacing: 0.5px;
}
.sgb-plant__em {
    font-style: normal;
    color: var(--text-gold, var(--accent-gold));
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.sgb-plant-chip {
    display: inline-flex;
    align-items: center;
    margin-top: var(--space-6);
    padding: var(--space-2) var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-caption);
    font-weight: 700;
    border: 1px solid var(--border-jade, rgba(22, 128, 106, 0.40));
    color: var(--text-jade, var(--accent-jade));
    background: rgba(22, 128, 106, 0.08);
}
.sgb-plant__sub {
    margin-top: var(--space-8);
    text-align: left;
}
.sgb-plant-card {
    margin-top: var(--space-12);
    padding: var(--space-12);
    border-radius: var(--gc-radius-inner, var(--radius-md));
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
}
.sgb-plant-card__h {
    margin: 0 0 var(--space-8);
    font-size: var(--font-label);
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--text-gold, var(--accent-gold));
}
.sgb-plant-card .app-input,
.sgb-plant-card select.app-input {
    width: 100%;
    border-radius: var(--gc-radius-btn, var(--radius-md));
}
/* 灵种 FixedSelect：撑满卡片；菜单由 ui.js portal 到 body 且 z-index ≥ overlay-top+1 */
.sgb-plant-card .sgb-plant-seed.fx-select,
.sgb-plant-card .fx-select.sgb-plant-seed {
    width: 100%;
    display: flex;
    flex: 1 1 auto;
}
.sgb-plant-card .sgb-plant-seed__btn.fx-select__btn,
.sgb-plant-card .sgb-plant-seed .fx-select__btn {
    width: 100%;
    max-width: none;
    border-radius: var(--gc-radius-btn, var(--radius-md));
    text-align: left;
    white-space: normal;
    line-height: 1.35;
    min-height: 40px;
}
.sgb-plant-card .sgb-plant-seed .fx-select__label {
    white-space: normal;
}
.sgb-plant-qty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    margin-top: var(--space-10);
}
.sgb-plant-qty__lab {
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-muted);
    flex-shrink: 0;
}
.sgb-plant-qty__input {
    width: 92px;
    text-align: center;
    border-radius: var(--gc-radius-btn, var(--radius-md));
}
.sgb-plant-progress,
.sgb-plant-card .psect-farm-batch-progress {
    margin-top: var(--space-12);
}
.gc-dialog.sgb-dialog--plant-form .gc-foot > .modal-btn {
    border-radius: var(--gc-radius-btn, var(--radius-md));
}

/* 九霄药田种子行 */
.sgb-seed-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    margin-top: var(--space-4);
}
.sgb-seed-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-10);
    align-items: center;
    padding: var(--space-10);
    border-radius: var(--gc-radius-inner, var(--radius-md));
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    text-align: left;
}
.sgb-seed-row__n {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}
.sgb-seed-row__n em {
    font-style: normal;
    font-size: var(--font-caption);
    font-weight: 700;
    color: var(--text-jade, var(--accent-jade));
    margin-left: var(--space-4);
}
.sgb-seed-row__d {
    margin-top: var(--space-2);
    font-size: var(--font-caption);
    line-height: 1.4;
    color: var(--text-muted);
}
body.game-page .gc-dialog.sgb-dialog .modal-btn.sgb-seed-row__btn,
.gc-dialog.sgb-dialog .modal-btn.sgb-seed-row__btn,
.sgb-seed-row__btn {
    flex: 0 0 auto;
    width: auto;
    min-width: 56px;
    height: 32px;
    min-height: 32px;
    max-height: 32px;
    padding: 0 var(--space-12);
    font-size: var(--font-label);
    line-height: 1;
    letter-spacing: 0;
    border-radius: var(--gc-radius-btn, var(--radius-md));
    box-sizing: border-box;
}

/* ==========================================================================
   灵田 / 灵脉 内容区扁平（design/sect-farm-vein）
   ========================================================================== */
.gc-dialog.sgb-dialog--farm .gc-mid.sgb-mid,
.gc-dialog.sgb-dialog--vein .gc-mid.sgb-mid {
    padding: var(--space-6) var(--space-14) var(--space-16);
}

.sfv-hero {
    padding: var(--space-12);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-10);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 22%, var(--border-color));
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--accent-gold) 7%, transparent), transparent 60%),
        var(--bg-panel, var(--bg-card));
}
.sfv-hero__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-6);
}
.sfv-hero__name {
    font-size: var(--font-action);
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--text-primary);
}
.sfv-lv {
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-sm);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
    color: var(--text-gold);
    font-size: var(--font-caption);
    font-weight: 700;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
}
.sfv-prog {
    margin-top: var(--space-10);
    height: 6px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--border-color) 85%, transparent);
    overflow: hidden;
}
.sfv-prog > i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: color-mix(in srgb, var(--accent-jade) 70%, var(--craft-gold, var(--accent-gold)));
}
.sfv-glance {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-6);
    margin-top: var(--space-10);
}
.sfv-glance--2 { grid-template-columns: 1fr 1fr; }
.sfv-g {
    padding: var(--space-8) var(--space-6);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    background: color-mix(in srgb, var(--bg-card) 70%, transparent);
    text-align: center;
    min-width: 0;
}
.sfv-gl { display: block; font-size: var(--font-micro); color: var(--text-muted); }
.sfv-gv {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--font-body);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sfv-gv.gold { color: var(--text-gold); font-family: var(--font-mono, ui-monospace, monospace); }
.sfv-gv.jade { color: var(--text-jade); }

.sfv-substats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6) var(--space-10);
    margin: calc(-1 * var(--space-2)) 0 var(--space-10);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.4;
}
.sfv-rule {
    margin: 0 0 var(--space-12);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.55;
}
.sfv-sec { margin-top: var(--space-12); }
.sfv-sec__h {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
}
.sfv-sec__t {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-secondary);
    letter-spacing: 0.06em;
}
.sfv-chips { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.sfv-chip {
    height: 20px;
    padding: 0 var(--space-8);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    font-size: var(--font-micro);
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
}

.sfv-ops {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
}
.sfv-op {
    height: auto !important;
    min-height: 42px;
    flex-direction: column !important;
    gap: var(--space-2) !important;
    padding: var(--space-6) var(--space-8) !important;
    line-height: 1.2;
}
.sfv-op small {
    font-size: var(--font-micro);
    font-weight: 500;
    opacity: 0.8;
}
.sfv-claim {
    display: flex;
    gap: var(--space-6);
    align-items: center;
    margin-top: var(--space-8);
}
.sfv-claim input {
    width: 72px;
    height: 34px;
    text-align: center;
    border-radius: var(--radius-md);
    font-size: var(--font-label);
}
.sfv-claim__btn { flex: 1; height: 34px !important; min-height: 34px !important; }
.sfv-claim__max { height: 34px !important; min-height: 34px !important; padding: 0 var(--space-10) !important; }

/* 地块扁平 */
.gc-dialog.sgb-dialog--farm .psect-farm-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-8);
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot {
    min-height: 108px;
    border-radius: var(--radius-md);
    padding: var(--space-10);
    text-align: left;
    background: var(--bg-panel, var(--bg-card));
    box-shadow: none !important;
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__title {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-gold);
    margin-bottom: var(--space-2);
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__status {
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__content {
    font-size: var(--font-label);
    color: var(--text-jade);
    font-weight: 600;
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__time {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-top: var(--space-2);
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot--idle {
    border-style: dashed;
    opacity: 0.95;
    background: transparent;
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot--planted {
    border-color: color-mix(in srgb, var(--accent-jade) 30%, var(--border-color));
    background: color-mix(in srgb, var(--accent-jade) 5%, var(--bg-panel, var(--bg-card)));
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot--mature {
    border-color: color-mix(in srgb, var(--accent-gold) 36%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-panel, var(--bg-card)));
    box-shadow: none !important;
}
.psect-farm-plot__bar {
    height: 5px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--border-color) 85%, transparent);
    overflow: hidden;
    margin-top: auto;
}
.psect-farm-plot__bar > i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: color-mix(in srgb, var(--accent-jade) 65%, var(--craft-gold, var(--accent-gold)));
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__actions {
    display: flex;
    gap: var(--space-4);
    margin-top: var(--space-6);
    padding-top: 0;
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__btn {
    flex: 1;
    width: auto;
    height: 28px !important;
    min-height: 28px !important;
    margin-top: 0;
    padding: 0 var(--space-8) !important;
    font-size: var(--font-caption) !important;
    border-radius: var(--radius-md);
}
.gc-dialog.sgb-dialog--farm .psect-farm-plot__btn--release {
    background: transparent !important;
    color: var(--text-secondary) !important;
    border: 1px solid var(--border-color) !important;
}

.sfv-seed-list { display: flex; flex-direction: column; gap: var(--space-6); }
.sfv-seed {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-6);
    padding: var(--space-10) var(--space-10);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
}
.sfv-seed__main { min-width: 0; }
.sfv-seed__main b { display: block; font-size: var(--font-body); }
.sfv-seed__main span { display: block; margin-top: var(--space-2); font-size: var(--font-caption); color: var(--text-muted); line-height: 1.4; }
.sfv-seed__p {
    flex: none;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-gold);
}
.sfv-seed__p.off { color: var(--text-muted); font-weight: 600; font-size: var(--font-caption); }

.sfv-mgr { display: flex; flex-direction: column; gap: var(--space-6); }
.sfv-mgr-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    background: var(--bg-panel, var(--bg-card));
}
.sfv-mgr-row label {
    font-size: var(--font-label);
    color: var(--text-secondary);
    min-width: 0;
}
.sfv-mgr-row label small {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--font-micro);
    color: var(--text-muted);
    font-weight: 400;
}
.sfv-mgr-ctrls { display: flex; align-items: center; gap: var(--space-6); flex: none; }
.sfv-mgr-ctrls input {
    width: 72px;
    height: 30px;
    text-align: center;
    font-size: var(--font-label);
    border-radius: var(--radius-sm);
}
.sfv-mgr-ctrls .modal-btn {
    height: 30px !important;
    min-height: 30px !important;
    padding: 0 var(--space-10) !important;
    font-size: var(--font-caption) !important;
}
.sfv-mgr-row--stack {
    flex-direction: column;
    align-items: stretch;
}
.sfv-mgr-ctrls--wide {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: var(--space-6);
}
.sfv-stepper {
    display: flex;
    align-items: center;
    flex: none;
    gap: var(--space-4);
}
.sfv-stepper__btn {
    width: 40px;
    min-width: 44px;
    height: 40px;
    min-height: 44px;
    padding: 0;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-panel, var(--bg-card));
    color: var(--text-primary);
    font-size: var(--font-action);
    line-height: 1;
    cursor: pointer;
}
.sfv-stepper__btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.sfv-stepper input {
    width: 64px;
    /* 与两侧步进按钮同高 44，命中区达标 */
    min-height: 44px;
    text-align: center;
    font-size: var(--font-action);
    font-variant-numeric: tabular-nums;
    -moz-appearance: textfield;
    appearance: textfield;
}
.sfv-stepper input::-webkit-outer-spin-button,
.sfv-stepper input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.sfv-mgr-ctrls--wide .modal-btn {
    height: 40px !important;
    min-height: 44px !important;
}

.sfv-mat {
    display: flex;
    justify-content: space-between;
    font-size: var(--font-label);
    color: var(--text-secondary);
    padding: var(--space-6) 0;
}
.sfv-mat b.ok { color: var(--text-jade); }
.sfv-mat b.no { color: var(--text-danger); }
.sfv-lock {
    margin-top: var(--space-8);
    font-size: var(--font-caption);
    color: var(--text-danger);
    line-height: 1.5;
}

/* 兽潮卡：压掉旧 info-card 厚重感 */
.gc-dialog.sgb-dialog--farm .psect-farm-invasion-card {
    margin: 0 0 var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--text-danger, var(--accent-crimson)) 22%, var(--border-color));
    background: color-mix(in srgb, var(--text-danger, var(--accent-crimson)) 5%, var(--bg-panel, var(--bg-card)));
}
.sfv-inv-t {
    font-size: var(--font-label);
    font-weight: 700;
    color: var(--text-danger);
    margin-bottom: var(--space-2);
}
.gc-dialog.sgb-dialog--farm .psect-farm-invasion-actions .modal-action-btn {
    box-shadow: none;
}
.gc-dialog.sgb-dialog--farm .psect-farm-pager .pager-btn {
    height: 28px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-caption);
    padding: 0 var(--space-10);
}
.gc-dialog.sgb-dialog--farm .psect-farm-pager .pager-btn:disabled { opacity: 0.45; }

@media (max-width: 420px) {
    .sfv-glance { grid-template-columns: 1fr 1fr; }
    .sfv-ops { grid-template-columns: 1fr; }
}


/* 捐献物资 · ItemPicker / 降级列表在 sgb 壳内的样式修复 */
.gc-dialog.sgb-dialog--donate-picker,
.ip-modal.sgb-dialog--donate-picker,
.modal-content.gc-dialog.sgb-dialog--donate-picker {
    max-width: min(94vw, 520px) !important;
}
/* ItemPicker gc 壳下分类改 999 胶囊观感（不破坏结构） */
.gc-dialog.sgb-dialog--donate-picker .ip-filter-tabs,
.sgb-dialog--donate-picker .ip-filter-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-6);
    overflow-x: auto;
    scrollbar-width: none;
    margin-bottom: var(--space-8);
}
.gc-dialog.sgb-dialog--donate-picker .ip-filter-tabs::-webkit-scrollbar { display: none; }
.gc-dialog.sgb-dialog--donate-picker .inv-filter-tab {
    flex: 0 0 auto;
    height: 28px;
    padding: 0 var(--space-12);
    border-radius: var(--radius-pill) !important;
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent) !important;
    background: transparent !important;
    color: var(--text-secondary) !important;
    font-size: var(--font-caption) !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}
.gc-dialog.sgb-dialog--donate-picker .inv-filter-tab.active,
.gc-dialog.sgb-dialog--donate-picker .inv-filter-tab:hover {
    color: var(--text-gold) !important;
    border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent) !important;
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent) !important;
}
.gc-dialog.sgb-dialog--donate-picker .gc-foot .modal-btn--gold,
.sgb-dialog--donate-picker .gc-foot .modal-btn--gold {
    box-shadow: none !important;
    filter: none !important;
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent) !important;
    border: 1px solid var(--border-gold, rgba(183,120,31,.4)) !important;
    color: var(--text-gold) !important;
}

/* 降级列表：把旧 donate-row 样式从 overlay 限定扩到 sgb-dialog--donate */
.gc-dialog.sgb-dialog--donate .donate-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    min-width: 0;
}
.gc-dialog.sgb-dialog--donate .donate-empty {
    padding: var(--space-24) var(--space-12);
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-body);
}
.gc-dialog.sgb-dialog--donate .donate-row {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) 64px;
    gap: var(--space-6);
    align-items: center;
    padding: var(--space-10) var(--space-10);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
    margin: 0;
    cursor: pointer;
    color: inherit;
    font-size: inherit;
}
.gc-dialog.sgb-dialog--donate .donate-row.is-selected {
    border-color: color-mix(in srgb, var(--accent-gold) 36%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-panel, var(--bg-card)));
}
.gc-dialog.sgb-dialog--donate .donate-row--special {
    border-left: 2px solid color-mix(in srgb, var(--accent-gold) 50%, var(--border-color));
}
.gc-dialog.sgb-dialog--donate .donate-check {
    width: 16px;
    height: 16px;
    accent-color: var(--accent-gold);
}
.gc-dialog.sgb-dialog--donate .donate-row__body { min-width: 0; }
.gc-dialog.sgb-dialog--donate .donate-row__line1 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
}
.gc-dialog.sgb-dialog--donate .donate-row__name {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
}
.gc-dialog.sgb-dialog--donate .donate-row__meta {
    margin-top: var(--space-2);
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.gc-dialog.sgb-dialog--donate .donate-qty {
    width: 100%;
    height: 28px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    text-align: center;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-label);
}
.gc-dialog.sgb-dialog--donate .donate-qty:disabled { opacity: 0.4; }
.gc-dialog.sgb-dialog--donate .donate-load-more { margin-top: var(--space-6); }
.gc-dialog.sgb-dialog--donate .donate-link {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-label);
    font-weight: 600;
    cursor: pointer;
}
.gc-dialog.sgb-dialog--donate .donate-link:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
    color: var(--text-gold);
}
.gc-dialog.sgb-dialog--donate .sgb-toolbar {
    grid-template-columns: minmax(0, 1fr) auto auto;
}


/* 捐献物资 · 统一 sgb 居中壳内列表（与一览/仓库同族） */
.gc-dialog.sgb-dialog--donate-picker {
    max-width: min(94vw, 520px) !important;
    width: 92% !important;
    max-height: min(88vh, 720px);
    /* 弹窗成为 flex 列容器：gc-head/gc-foot 固定，gc-mid(列表)独立滚动。
       否则 gc-mid(max-height:none) 会随物品无限增高，把确认钮顶出弹窗外，
       手机端要一路滚到列表最底才能点到「上缴所选」。 */
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.gc-dialog.sgb-dialog--donate-picker .gc-mid.sgb-mid {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.sgb-donate-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    margin: 0 0 var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 24%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 7%, var(--bg-panel, var(--bg-card)));
}
.sgb-donate-intro__tip { font-size: var(--font-caption); color: var(--text-muted); line-height: 1.45; min-width: 0; }
.sgb-donate-intro__bal { flex: none; text-align: right; line-height: 1.1; }
.sgb-donate-intro__bal b {
    display: block;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-title);
    font-weight: 700;
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
}
.sgb-donate-intro__bal span { font-size: var(--font-micro); color: var(--text-muted); }
/* #6657：搜索 + 境界 + 品质 + 全选本页 共四格；三列会把「全选本页」挤到下行 1fr 盖住分类 Tab */
.sgb-donate-toolbar {
    grid-template-columns: minmax(0, 1fr) auto auto auto !important;
    align-items: center;
}
.sgb-donate-toolbar .fx-select,
.sgb-donate-toolbar .sgb-donate-stage,
.sgb-donate-toolbar .sgb-donate-rarity {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 72px;
    max-width: 110px;
}
.sgb-donate-stage {
    height: 34px;
    font-size: var(--font-label);
}
.sgb-donate-toolbar .sgb-tool-btn {
    justify-self: end;
    width: auto;
}
@media (max-width: 420px) {
    .sgb-donate-toolbar {
        grid-template-columns: minmax(0, 1fr) auto auto !important;
    }
    .sgb-donate-toolbar .sgb-tool-btn {
        grid-column: 1 / -1;
        justify-self: start;
    }
}
.sgb-donate-count {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 var(--space-6);
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.sgb-donate-count b { color: var(--text-secondary); font-weight: 600; font-variant-numeric: tabular-nums; }
.sgb-donate-list {
    display: flex;
    flex-direction: column;
    /* auto-height gc 壳中保留固有列表高度，同时 min-height:0 允许矮屏继续收缩。 */
    flex: 1 1 clamp(120px, 36vh, 320px);
    gap: var(--space-6);
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: var(--space-2);
}
@supports (height: 1dvh) {
    .sgb-donate-list {
        flex: 1 1 clamp(120px, 36dvh, 320px);
    }
}
.sgb-donate-row {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-panel, var(--bg-card));
    margin: 0;
    cursor: pointer;
}
.sgb-donate-row.is-on {
    border-color: color-mix(in srgb, var(--accent-gold) 36%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-panel, var(--bg-card)));
}
.sgb-donate-row__top {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: var(--space-10);
    align-items: flex-start;
}
.sgb-donate-check {
    width: 16px;
    height: 16px;
    margin-top: var(--space-2);
    accent-color: var(--accent-gold);
}
.sgb-donate-row__body { min-width: 0; }
.sgb-donate-row__name {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
    line-height: 1.3;
}
.sgb-donate-row__name.r5 { color: var(--rarity-5, var(--text-danger)); }
.sgb-donate-row__name.r4 { color: var(--rarity-4, var(--accent-purple)); }
.sgb-donate-row__name.r3 { color: var(--text-gold); }
.sgb-donate-row__name.r2 { color: var(--text-jade); }
.sgb-donate-badge {
    display: inline-flex;
    height: 16px;
    padding: 0 var(--space-6);
    border-radius: var(--radius-pill);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    color: var(--text-gold);
    font-size: var(--font-micro);
    font-weight: 700;
    align-items: center;
}
.sgb-donate-row__meta {
    margin-top: var(--space-4);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-8) var(--space-12);
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.sgb-donate-row__meta b { color: var(--text-secondary); font-weight: 600; }
.sgb-donate-row__meta b.gold,
.sgb-donate-summary b.gold { color: var(--text-gold); }
/* 装备详情行：境界/属性/先天/铭文 chip，避免误捐 */
.sgb-donate-row__equip {
    margin-top: var(--space-4);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-6);
}
.sgb-donate-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-6);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    font-size: var(--font-micro);
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}
.sgb-donate-chip--realm { color: var(--text-orange); border-color: color-mix(in srgb, var(--accent-orange) 28%, transparent); }
.sgb-donate-chip--stat { color: var(--text-secondary); }
.sgb-donate-chip--affix { color: var(--text-purple); border-color: color-mix(in srgb, var(--accent-purple) 28%, transparent); }
.sgb-donate-chip--insc { color: var(--text-cyan); border-color: color-mix(in srgb, var(--accent-cyan) 28%, transparent); }
.sgb-donate-row__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    padding-top: var(--space-8);
    border-top: 1px dashed color-mix(in srgb, var(--border-color) 85%, transparent);
}
.sgb-donate-row__foot.is-disabled {
    opacity: 0.45;
}
.sgb-donate-row__foot-lab {
    font-size: var(--font-caption);
    color: var(--text-muted);
    flex: none;
}
.sgb-qty-stepper {
    display: inline-flex;
    align-items: center;
    height: 32px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--bg-card);
    flex: none;
}
.sgb-qty-btn {
    width: 32px;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-action);
    font-weight: 600;
    cursor: pointer;
    line-height: 1;
}
.sgb-qty-btn:hover:not(:disabled) {
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
    color: var(--text-gold);
}
.sgb-qty-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.sgb-qty-btn--max {
    width: 30px;
    font-size: var(--font-caption);
    letter-spacing: 0.5px;
    border-left: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
}
.sgb-donate-qty {
    /* 可容纳较大堆叠数，避免「持有 99999」在窄框里看起来像错数 */
    width: 72px;
    min-width: 56px;
    height: 100%;
    border: 0;
    border-left: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-right: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: 0;
    background: transparent;
    text-align: center;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-primary);
    outline: none;
    -moz-appearance: textfield;
}
@media (max-width: 480px) {
    .sgb-donate-qty { width: 80px; min-width: 64px; font-size: var(--font-body); }
    .sgb-qty-btn { width: 36px; }
}
.sgb-donate-qty::-webkit-outer-spin-button,
.sgb-donate-qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.sgb-donate-qty:disabled { opacity: 0.5; }
.sgb-donate-more { margin-top: var(--space-8); }
.sgb-donate-summary {
    margin-top: var(--space-10);
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 22%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-panel, var(--bg-card)));
    font-size: var(--font-label);
    color: var(--text-secondary);
}
.sgb-donate-summary b {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.gc-dialog.sgb-dialog--donate-picker .gc-foot .modal-btn--gold {
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent) !important;
    border: 1px solid var(--border-gold, rgba(183,120,31,.4)) !important;
    color: var(--text-gold) !important;
    box-shadow: none !important;
    filter: none !important;
}
.sa-artname { display: flex; align-items: center; justify-content: space-between; }
.sa-artname__n { font-size: var(--font-body); color: var(--text-gold); }
.sa-artname__c { font-size: var(--font-caption); color: var(--text-muted); }
.sa-artname__desc { font-size: var(--font-label); color: var(--text-muted); margin-top: var(--space-4); line-height: 1.5; }

.sa-slot { border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: var(--space-10) var(--space-10); margin-bottom: var(--space-8); background: var(--bg-glass); }
.sa-slot--pending { border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color)); }
.sa-slot__row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--space-8); }
.sa-slot__idx { font-size: var(--font-label); color: var(--text-gold); font-weight: 700; min-width: 36px; flex-shrink: 0; }
/* #6893：词条占满首行并允许换行，品质/移位/洗炼落到下一行，避免手机一行挤成省略号 */
.sa-slot__affix { flex: 1 1 calc(100% - 3rem); min-width: 0; font-size: var(--font-label); color: var(--text-jade); line-height: 1.5; white-space: normal; }
.sa-slot__affix--empty { color: var(--text-muted); }
.sa-slot__cap { font-size: var(--font-caption); color: var(--text-muted); }
.sa-slot__tier { font-size: var(--font-micro); color: var(--text-muted); border: 1px solid var(--border-color); padding: var(--space-2) var(--space-6); border-radius: var(--radius-pill); flex-shrink: 0; }
.sa-slot__tier.rarity-1, .sa-pending__tier.rarity-1 { color: var(--rarity-1); border-color: var(--rarity-1); }
.sa-slot__tier.rarity-2, .sa-pending__tier.rarity-2 { color: var(--rarity-2); border-color: var(--rarity-2); }
.sa-slot__tier.rarity-3, .sa-pending__tier.rarity-3 { color: var(--rarity-3); border-color: var(--rarity-3); }
.sa-slot__tier.rarity-4, .sa-pending__tier.rarity-4 { color: var(--rarity-4); border-color: var(--rarity-4); }
.sa-slot__tier.rarity-5, .sa-pending__tier.rarity-5 { color: var(--rarity-5); border-color: var(--rarity-5); }
.sa-wash { display: inline-flex; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-12); border-radius: var(--radius-sm); border: 1px solid color-mix(in srgb, var(--accent-jade) 30%, transparent); background: color-mix(in srgb, var(--accent-jade) 10%, transparent); color: var(--text-jade); font-size: var(--font-caption); cursor: pointer; font-family: inherit; white-space: nowrap; flex-shrink: 0; transition: opacity .12s; }
.sa-slot:has(> .sa-tier-menu.open) .sa-wash .ui-disclosure-caret { transform: rotate(180deg); }
.sa-wash:active { opacity: .82; }
.sa-wash:disabled { opacity: .4; cursor: not-allowed; }

.sa-tier-menu { display: none; margin-top: var(--space-8); flex-wrap: wrap; gap: var(--space-6); padding-left: var(--space-48); }
.sa-tier-menu.open { display: flex; }
.sa-tier-menu button { padding: var(--space-4) var(--space-10); border-radius: var(--radius-sm); border: 1px solid var(--border-color); background: transparent; color: var(--text-secondary); font-size: var(--font-caption); cursor: pointer; font-family: inherit; transition: all .12s; }
.sa-tier-menu button:hover { border-color: var(--accent-gold); color: var(--text-gold); background: var(--bg-active); }
.sa-tier-menu button:disabled { opacity: .4; cursor: not-allowed; }

.sa-pending { margin-top: var(--space-8); padding: var(--space-8) var(--space-10); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--accent-gold) 12%, transparent); border: 1px solid color-mix(in srgb, var(--accent-gold) 34%, transparent); }
.sa-pending__label { font-size: var(--font-micro); color: var(--text-gold); letter-spacing: 1px; }
.sa-pending__affix { font-size: var(--font-body); color: var(--text-gold); margin: var(--space-4) 0 var(--space-8); font-weight: 600; }
.sa-pending__tier { font-size: var(--font-caption); color: var(--text-muted); }
.sa-pending__acts { display: flex; gap: var(--space-8); }
.sa-pending__acts .modal-btn { flex: 1; }
.sa-pending__acts--rewash { margin-top: var(--space-6); }
.sa-pending__acts--rewash .modal-btn {
    flex: 1 1 100%;
    font-size: var(--font-caption);
    line-height: 1.35;
    white-space: normal;
    min-height: 34px;
    padding: var(--space-6) var(--space-8);
}

.sa-fold { margin-top: var(--space-8); }
.sa-fold__btns { display: flex; gap: var(--space-8); }
.sa-fold__btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-6); flex: 1; padding: var(--space-10); border-radius: var(--radius-sm); border: 1px solid var(--border-color); background: var(--bg-glass); color: var(--text-secondary); font-size: var(--font-label); cursor: pointer; font-family: inherit; transition: all .15s; }
.sa-fold__btn.is-on { color: var(--text-gold); border-color: var(--accent-gold); }
.sa-fold__btn.is-on .ui-disclosure-caret { transform: none; }
.sa-fold__body { display: none; }
.sa-fold__body.open { display: block; }

/* ===== 藏宝阁 st-*（宗门设施 sgb 壳内） ===== */
.gc-dialog.sgb-dialog--treasure .gc-mid.sgb-mid {
    padding-top: var(--space-4);
}
.st-shell { min-width: 0; }
.st-rule {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 85%, transparent);
    background: color-mix(in srgb, var(--bg-panel, var(--bg-card)) 92%, transparent);
}
.st-rule__chip {
    flex: 0 0 auto;
    height: 22px;
    line-height: 22px;
    padding: 0 var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--text-gold);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 35%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 10%, transparent);
}
.st-rule__text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.4;
}
.st-tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    margin-left: var(--space-4);
    padding: 0 var(--space-4);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 700;
    color: var(--text-on-accent, #fff);
    background: color-mix(in srgb, var(--accent-crimson, #c45c4a) 88%, transparent);
}
.st-list { gap: var(--space-8); }
.st-card {
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 88%, transparent);
    background: color-mix(in srgb, var(--bg-panel, var(--bg-card)) 94%, transparent);
    min-width: 0;
}
.st-card--pending {
    border-color: color-mix(in srgb, var(--accent-gold) 36%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 6%, var(--bg-panel, var(--bg-card)));
}
/* #10359：阁中卡片可点击查看详情（借单卡不在此列） */
.st-card--detail {
    cursor: pointer;
}
.st-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-8);
    margin-bottom: var(--space-6);
}
.st-card__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
    min-width: 0;
}
.st-card__name {
    font-size: var(--font-body-lg);
    font-weight: 700;
    font-family: var(--font-serif);
    line-height: 1.3;
    word-break: break-word;
}
.st-card__qty {
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-secondary);
}
.st-chip {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 var(--space-8);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    font-weight: 700;
    letter-spacing: 0.3px;
}
.st-chip--ret {
    color: var(--text-jade, var(--accent-jade));
    border: 1px solid color-mix(in srgb, var(--accent-jade) 40%, transparent);
    background: color-mix(in srgb, var(--accent-jade) 10%, transparent);
}
.st-chip--cons {
    color: var(--text-purple, var(--accent-purple, #8b6bb5));
    border: 1px solid color-mix(in srgb, var(--accent-purple, #8b6bb5) 36%, transparent);
    background: color-mix(in srgb, var(--accent-purple, #8b6bb5) 10%, transparent);
}
/* #5668：藏宝阁模板需求境界标签 */
.st-chip--stage {
    color: var(--text-secondary, #9aa4b2);
    border: 1px solid color-mix(in srgb, var(--border-color, #4a5568) 55%, transparent);
    background: color-mix(in srgb, var(--bg-card, #1a1f2b) 80%, transparent);
    font-weight: 600;
}
.st-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-6) var(--space-10);
    margin-bottom: var(--space-4);
}
.st-card__price-main {
    font-size: var(--font-body);
    color: var(--text-secondary);
}
.st-card__price-main b,
.st-gold {
    color: var(--text-gold);
    font-weight: 700;
}
.st-card__price-sub {
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.st-card__stats {
    margin: var(--space-4) 0;
    font-size: var(--font-caption);
    line-height: 1.5;
}
.st-card__note {
    margin-top: var(--space-2);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.4;
}
.st-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6) var(--space-12);
    font-size: var(--font-label);
    color: var(--text-secondary);
    margin-bottom: var(--space-4);
}
.st-card__meta b { color: var(--text-primary); font-weight: 600; }
.st-card__due {
    font-size: var(--font-caption);
    color: var(--text-muted);
    margin-bottom: var(--space-4);
}
.st-card__acts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: var(--space-8);
}
.st-btn {
    height: 30px !important;
    min-height: 30px !important;
    padding: 0 var(--space-12) !important;
    font-size: var(--font-label) !important;
}
.st-due {
    flex: 0 0 auto;
    font-size: var(--font-caption);
    font-weight: 600;
    color: var(--text-jade, var(--accent-jade));
    white-space: nowrap;
}
.st-due.is-soon { color: var(--text-gold); }
.st-due.is-over { color: var(--text-danger, var(--accent-crimson, #c45c4a)); }
.st-status {
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-muted);
    padding: var(--space-4) 0;
}
.st-status--wait { color: var(--text-gold); }
.st-empty-hint {
    margin-top: var(--space-8);
    font-size: var(--font-label);
    color: var(--text-muted);
    line-height: 1.5;
}

/* 申请 / 供奉表单 */
.st-apply { min-width: 0; }
.st-apply__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-8);
    margin-bottom: var(--space-12);
}
.st-apply__name {
    font-size: var(--font-action);
    font-weight: 700;
    font-family: var(--font-serif);
}
.st-apply__cost {
    margin: var(--space-4) 0 var(--space-10);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 30%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
    font-size: var(--font-body);
    color: var(--text-secondary);
    line-height: 1.5;
}
.st-apply__formula {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.st-apply__tip {
    margin: 0;
    font-size: var(--font-caption);
    line-height: 1.55;
    color: var(--text-muted);
}
.st-dur-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}
.st-dur {
    height: 36px;
    min-width: 56px;
    padding: 0 var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-label);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.12s, color 0.12s, background 0.12s;
}
.st-dur:hover,
.st-dur.is-on {
    color: var(--text-gold);
    border-color: color-mix(in srgb, var(--accent-gold) 45%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
}

.gc-dialog.sgb-dialog--treasure-form .gc-mid.sgb-mid {
    padding-bottom: var(--space-4);
}

/* 藏宝阁 · 仓库划拨选品 */
.st-pick-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    max-height: min(48vh, 360px);
    overflow-y: auto;
    min-width: 0;
}

/* #9752：手机套滚吃掉手势，入阁选品后面点不到；窄屏改由弹窗中栏统滚 */
@media (max-width: 640px) {
    .st-pick-list {
        max-height: none;
        overflow-y: visible;
    }
}
.st-pick-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    width: 100%;
    text-align: left;
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--border-color) 88%, transparent);
    background: color-mix(in srgb, var(--bg-panel, var(--bg-card)) 94%, transparent);
    color: var(--text-primary);
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}
.st-pick-row--check {
    align-items: flex-start;
}
.st-pick-row__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.st-pick-row__detail,
.st-apply__detail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-6);
    font-size: var(--font-caption);
    line-height: 1.4;
    color: var(--text-secondary);
}
.st-pick-row__tag {
    flex: 0 0 auto;
    color: var(--text-muted);
}
.st-apply__detail {
    margin: 0 0 var(--space-10);
}
.st-pick-row:hover {
    border-color: color-mix(in srgb, var(--accent-gold) 40%, var(--border-color));
    background: color-mix(in srgb, var(--accent-gold) 8%, var(--bg-panel, var(--bg-card)));
}
.st-pick-row__name {
    font-size: var(--font-body);
    font-weight: 700;
    font-family: var(--font-serif);
    min-width: 0;
    word-break: break-word;
}
.st-pick-row__meta {
    flex: 0 0 auto;
    font-size: var(--font-caption);
    color: var(--text-muted);
    white-space: nowrap;
}

/* 塔壁石刻 · 章节卡 + 名牌 chips（无左竖条） */
#ghostTowerContent .gt-wall {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}
#ghostTowerContent .gt-wall__head,
#ghostTowerContent .gt-wall > .gt-wall__head {
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-card);
}
#ghostTowerContent .gt-wall-title,
#ghostTowerContent .gt-wall__title {
    font-size: var(--font-action);
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--text-primary);
    margin-bottom: 0;
}
#ghostTowerContent .gt-wall-sub,
#ghostTowerContent .gt-wall__sub {
    margin-top: var(--space-4);
    font-size: var(--font-caption);
    line-height: 1.55;
    color: var(--text-muted);
    font-style: italic;
    letter-spacing: 0;
}
#ghostTowerContent .gt-wall-section,
#ghostTowerContent .gt-wall-sec {
    padding: var(--space-10) var(--space-12);
    border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-left: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
    border-radius: var(--radius-md);
    background: var(--bg-card);
    margin-bottom: 0;
}
#ghostTowerContent .gt-wall-section-head,
#ghostTowerContent .gt-wall-sec__h {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
}
#ghostTowerContent .gt-wall-stats,
#ghostTowerContent .gt-wall-sec__st {
    margin-top: var(--space-4);
    margin-bottom: var(--space-8);
    font-size: var(--font-caption);
    color: var(--text-muted);
}
#ghostTowerContent .gt-wall-stats b {
    color: var(--text-secondary);
    font-weight: 700;
}
#ghostTowerContent .gt-wall-names {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
}
#ghostTowerContent .gt-wall-name {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-6);
    padding: var(--space-4) var(--space-10);
    border-radius: var(--radius-xs);
    border: 1px solid color-mix(in srgb, var(--border-color) 88%, transparent);
    background: color-mix(in srgb, var(--text-primary) 3%, var(--bg-card));
    font-size: var(--font-caption);
    line-height: 1.3;
}
#ghostTowerContent .gt-wall-pname,
#ghostTowerContent .gt-wall-name .nm {
    color: var(--text-primary);
    font-weight: 600;
}
#ghostTowerContent .gt-wall-pdate,
#ghostTowerContent .gt-wall-name .dt {
    color: var(--text-muted);
    font-size: var(--font-micro);
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
#ghostTowerContent .gt-wall-name-perfect,
#ghostTowerContent .gt-wall-name.is-perfect {
    border-color: color-mix(in srgb, var(--accent-gold) 42%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, var(--bg-card));
}
#ghostTowerContent .gt-wall-name-perfect .gt-wall-pname,
#ghostTowerContent .gt-wall-name.is-perfect .nm {
    color: var(--text-gold);
    font-weight: 700;
}
#ghostTowerContent .gt-wall-empty {
    font-size: var(--font-caption);
    color: var(--text-muted);
    font-style: italic;
}

/* 战报 br 壳（竞技场 / 公平 / 全局 BattleReport 容器） */
.br-modal {
    --br-radius: var(--radius-lg);
    width: min(420px, calc(100vw - 24px)) !important;
    max-width: min(420px, calc(100vw - 24px)) !important;
    max-height: min(90vh, 780px) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding: 0 !important;
    border-radius: var(--br-radius) !important;
    background: var(--bg-card, var(--bg-panel)) !important;
    border-color: color-mix(in srgb, var(--accent-gold) 28%, var(--border-color)) !important;
}
.br-modal .gc-head {
    flex: none;
    padding: var(--space-16) var(--space-48) var(--space-10) var(--space-16);
    border-bottom: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
    background: var(--bg-card, var(--bg-panel));
}
.br-modal .gc-title {
    font-size: var(--font-action);
    letter-spacing: 0.12em;
}
.br-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: var(--space-12) var(--space-14) var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
    text-align: left;
}
.br-modal .gc-foot {
    flex: none;
    margin: 0;
    padding: var(--space-10) var(--space-14) var(--space-14);
    border-top: 1px solid color-mix(in srgb, var(--border-color) 70%, transparent);
    background: var(--bg-card, var(--bg-panel));
}
/* br 壳内复用 BattleReportRenderer 时压掉旧左轨 */
.br-body .arena-battle-overview,
.br-modal .arena-battle-overview {
    border-left: 1px solid color-mix(in srgb, var(--border-color) 88%, transparent) !important;
    border-radius: var(--radius-md);
    padding: var(--space-12) var(--space-10);
}
.br-body .arena-battle-overview--win,
.br-modal .arena-battle-overview--win {
    border-color: color-mix(in srgb, var(--accent-jade) 28%, var(--border-color)) !important;
    background: color-mix(in srgb, var(--accent-jade) 5%, var(--bg-card));
}
.br-body .arena-battle-overview--lose,
.br-modal .arena-battle-overview--lose {
    border-color: color-mix(in srgb, var(--accent-crimson) 26%, var(--border-color)) !important;
    background: color-mix(in srgb, var(--accent-crimson) 5%, var(--bg-card));
}
.br-body .arena-battle-log-row,
.br-modal .arena-battle-log-row {
    border-left-width: 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--border-color) 65%, transparent);
    grid-template-columns: 52px minmax(0, 1fr);
}
.br-body .arena-battle-log,
.br-modal .arena-battle-log {
    max-height: none;
    border: 1px solid color-mix(in srgb, var(--border-color) 88%, transparent);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.br-body .arena-battle-outcome strong {
    font-size: var(--font-heading);
}
@media (min-width: 520px) {
    .br-modal {
        width: min(460px, calc(100vw - 32px)) !important;
        max-width: min(460px, calc(100vw - 32px)) !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   宗门 mid 清扫原语 · design/sect-mid-cleanup
   sgb-note / sgb-sec / sgb-row / sgb-tab · 去 ✦ / 去 modal-action
   ═══════════════════════════════════════════════════════════════ */
.gc-dialog.sgb-dialog .sgb-meta,
.sgb-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-8);
    margin: 0 0 var(--space-10);
    font-size: var(--font-label);
    color: var(--text-secondary);
}
.gc-dialog.sgb-dialog .sgb-meta b,
.sgb-meta b {
    color: var(--text-gold);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.gc-dialog.sgb-dialog .sgb-note,
.sgb-note {
    margin: 0 0 var(--space-12);
    padding: var(--space-10) var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    font-size: var(--font-label);
    line-height: 1.65;
    color: var(--text-secondary);
}
.gc-dialog.sgb-dialog .sgb-note b,
.sgb-note b { color: var(--text-gold); font-weight: 600; }
.gc-dialog.sgb-dialog .sgb-note--warn,
.sgb-note--warn {
    border-color: color-mix(in srgb, var(--text-danger, var(--accent-crimson)) 28%, var(--border-color));
    background: color-mix(in srgb, var(--text-danger, var(--accent-crimson)) 5%, var(--bg-panel, var(--bg-card)));
}
.gc-dialog.sgb-dialog .sgb-note--warn b,
.sgb-note--warn b { color: var(--text-danger); }
.gc-dialog.sgb-dialog .sgb-sec,
.sgb-sec {
    margin: var(--space-14) 0 var(--space-8);
}
.gc-dialog.sgb-dialog .sgb-sec:first-child,
.sgb-sec:first-child { margin-top: 0; }
.gc-dialog.sgb-dialog .sgb-sec__t,
.sgb-sec__t {
    display: block;
    font-size: var(--font-label);
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}
.gc-dialog.sgb-dialog .sgb-row,
.sgb-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-10);
    align-items: center;
    padding: var(--space-10);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    margin-bottom: var(--space-8);
    min-width: 0;
}
.gc-dialog.sgb-dialog .sgb-row:last-child,
.sgb-row:last-child { margin-bottom: 0; }
.gc-dialog.sgb-dialog .sgb-row__n,
.sgb-row__n {
    font-size: var(--font-body);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.35;
    word-break: break-word;
}
.gc-dialog.sgb-dialog .sgb-row__d,
.sgb-row__d {
    margin-top: var(--space-2);
    font-size: var(--font-caption);
    color: var(--text-muted);
    line-height: 1.45;
    word-break: break-word;
}
.gc-dialog.sgb-dialog .sgb-row__acts,
.sgb-row__acts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    justify-content: flex-end;
    align-items: center;
}
.gc-dialog.sgb-dialog .sgb-tabs,
.sgb-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin: 0 0 var(--space-10);
}
.gc-dialog.sgb-dialog .sgb-tab,
.sgb-tab {
    height: 30px;
    padding: 0 var(--space-12);
    border-radius: var(--radius-pill);
    border: 1px solid var(--border-color);
    font-size: var(--font-label);
    font-weight: 600;
    color: var(--text-secondary);
    background: transparent;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
}
.gc-dialog.sgb-dialog .sgb-tab:hover,
.sgb-tab:hover {
    border-color: color-mix(in srgb, var(--border-gold) 70%, var(--border-color));
    color: var(--text-primary);
}
.gc-dialog.sgb-dialog .sgb-tab.is-on,
.gc-dialog.sgb-dialog .sgb-tab.on,
.sgb-tab.is-on,
.sgb-tab.on {
    color: var(--text-gold);
    border-color: var(--border-gold);
    background: color-mix(in srgb, var(--accent-gold) 12%, transparent);
}
.gc-dialog.sgb-dialog .sgb-bar,
.sgb-bar {
    margin-top: var(--space-8);
    height: 4px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--border-color) 80%, transparent);
    overflow: hidden;
}
.gc-dialog.sgb-dialog .sgb-bar > i,
.sgb-bar > i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--accent-jade);
}
.gc-dialog.sgb-dialog .sgb-bar > i.is-partial,
.sgb-bar > i.is-partial {
    background: var(--text-info, var(--accent-jade));
}
.gc-dialog.sgb-dialog .sgb-search-row,
.sgb-search-row {
    display: flex;
    gap: var(--space-8);
    margin: 0 0 var(--space-10);
    align-items: center;
}
.gc-dialog.sgb-dialog .sgb-search-row .app-input,
.sgb-search-row .app-input {
    flex: 1;
    min-width: 0;
}
/* 宗门一览：加载更多 */
.gc-dialog.sgb-dialog .sgb-browse-more,
.sgb-browse-more {
    display: flex;
    justify-content: center;
    margin: var(--space-10) 0 var(--space-4);
    min-height: 28px;
}
.gc-dialog.sgb-dialog .sgb-load-more,
.sgb-load-more {
    min-width: 140px;
    min-height: 36px;
}
.gc-dialog.sgb-dialog .sgb-load-end,
.sgb-load-end {
    font-size: var(--font-caption);
    color: var(--text-muted);
    letter-spacing: 0.06em;
    padding: var(--space-6) 0;
}
.gc-dialog.sgb-dialog .sgb-table-wrap,
.sgb-table-wrap {
    overflow: auto;
    margin: 0 0 var(--space-12);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--bg-panel, var(--bg-card));
    padding: var(--space-8) var(--space-10);
}
.gc-dialog.sgb-dialog .sgb-table,
.sgb-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-label);
    color: var(--text-muted);
}
.gc-dialog.sgb-dialog .sgb-table th,
.sgb-table th {
    text-align: left;
    color: var(--text-secondary);
    font-weight: 600;
    padding: var(--space-4) var(--space-6) var(--space-4) 0;
}
.gc-dialog.sgb-dialog .sgb-table td,
.sgb-table td {
    padding: var(--space-4) var(--space-6) var(--space-4) 0;
    vertical-align: top;
}
.gc-dialog.sgb-dialog .sgb-choice-grid,
.sgb-choice-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
    margin-top: var(--space-4);
}
.gc-dialog.sgb-dialog .sgb-choice-grid .modal-btn,
.sgb-choice-grid .modal-btn {
    height: auto;
    min-height: 48px;
    flex-direction: column;
    gap: var(--space-2);
    white-space: normal;
    line-height: 1.4;
    padding: var(--space-10) var(--space-8);
}
.gc-dialog.sgb-dialog .sgb-choice-grid .modal-btn small,
.sgb-choice-grid .modal-btn small {
    font-size: var(--font-micro);
    font-weight: 500;
    opacity: 0.9;
}
.gc-dialog.sgb-dialog .modal-btn.sm,
.gc-dialog.sgb-dialog .modal-btn--sm,
.sgb-row .modal-btn.sm,
.sgb-row .modal-btn--sm {
    height: 32px;
    min-height: 32px;
    padding: 0 var(--space-12);
    font-size: var(--font-label);
    letter-spacing: 0;
    width: auto;
    min-width: 56px;
    flex: none;
}
/* 兽潮主操作：扁平 danger 钮 + 副文案 */
.gc-dialog.sgb-dialog .psect-farm-invasion-actions .modal-btn,
.psect-farm-invasion-actions .modal-btn {
    width: 100%;
    height: auto;
    min-height: 44px;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-10) var(--space-12);
    white-space: normal;
    line-height: 1.35;
}
.gc-dialog.sgb-dialog .psect-farm-invasion-actions .modal-btn small,
.psect-farm-invasion-actions .modal-btn small {
    font-size: var(--font-caption);
    font-weight: 500;
    opacity: 0.88;
}
.gc-dialog.sgb-dialog .sa-artname {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-6) var(--space-10);
}
.gc-dialog.sgb-dialog .sa-artname__n {
    font-size: var(--font-body-lg);
    font-weight: 700;
    color: var(--text-gold);
}
.gc-dialog.sgb-dialog .sa-artname__c {
    font-size: var(--font-caption);
    color: var(--text-muted);
}
.gc-dialog.sgb-dialog .sa-artname__desc {
    margin: var(--space-6) 0 0;
    font-size: var(--font-label);
    line-height: 1.55;
    color: var(--text-secondary);
}

/* ===== 代宗主推举 ===== */
.sect-succession-block { margin-top: var(--space-10); }
.sect-succession-cands { display: flex; flex-direction: column; gap: var(--space-6); margin-top: var(--space-6); }
.sect-succession-cand {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-8);
    padding: var(--space-8) var(--space-10); border: 1px solid var(--border-color); border-radius: var(--radius-md);
    background: var(--bg-card);
}
.sect-succession-cand.is-mine { border-color: var(--accent-jade); }
.sect-succession-cand__name { font-size: var(--font-body); color: var(--text-primary); font-weight: 600; }
.sect-succession-cand .sect-btn-sm.is-on {
    color: var(--text-jade); border-color: var(--accent-jade);
}

/* #10476：私聊界别角标（immortal=仙界），口径同公屏「仙」角标 #9784 */
.pm-msg-continent-badge {
    display: inline-block;
    margin-right: var(--space-4);
    padding: 0 var(--space-4);
    border-radius: var(--radius-pill);
    font-size: var(--font-micro);
    line-height: 1.4;
    vertical-align: baseline;
    font-weight: 600;
    color: var(--accent-gold);
    border: 1px solid color-mix(in srgb, var(--accent-gold) 45%, transparent);
    background: color-mix(in srgb, var(--accent-gold) 8%, transparent);
}
