/* /Components/Components/ContactUserCardModal.razor.rz.scp.css */
.contact-user-card[b-rr7qz84s8u] {
    min-width: min(25rem, calc(100vw - 2rem));
    max-width: min(30rem, calc(100vw - 2rem));
    display: flex;
    flex-direction: column;
    background: #f7f8fa;
}

.contact-user-card--state[b-rr7qz84s8u] {
    padding: 1.15rem 1.2rem;
}

.contact-user-card__hint[b-rr7qz84s8u] {
    margin: 0;
    color: #64748b;
    font-size: 0.86rem;
}

.contact-user-card__hint--error[b-rr7qz84s8u] {
    color: #b91c1c;
}

.contact-user-card__head[b-rr7qz84s8u] {
    display: flex;
    align-items: flex-start;
    gap: 0.72rem;
    padding: 1rem 1.1rem;
    background: #ffffff;
    border-bottom: 1px solid #e6eaf0;
}

.contact-user-card__avatar-wrap[b-rr7qz84s8u] {
    width: 3.45rem;
    height: 3.45rem;
    border-radius: 0.55rem;
    overflow: hidden;
    background: #e2e8f0;
    flex-shrink: 0;
    border: 1px solid #e2e8f0;
}

.contact-user-card__avatar[b-rr7qz84s8u] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact-user-card__head-main[b-rr7qz84s8u] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.26rem;
}

.contact-user-card__name[b-rr7qz84s8u] {
    font-size: 1.1rem;
    line-height: 1.2;
    color: #0f172a;
    font-weight: 700;
}

.contact-user-card__account[b-rr7qz84s8u],
.contact-user-card__org[b-rr7qz84s8u] {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.3;
}

.contact-user-card__org[b-rr7qz84s8u] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contact-user-card__rows[b-rr7qz84s8u] {
    display: flex;
    flex-direction: column;
    background: #ffffff;
}

.contact-user-card__row[b-rr7qz84s8u] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 2.55rem;
    padding: 0.55rem 1.1rem;
    border-bottom: 1px solid #f1f5f9;
}

.contact-user-card__row:last-child[b-rr7qz84s8u] {
    border-bottom: none;
}

.contact-user-card__label[b-rr7qz84s8u] {
    width: 3.2rem;
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 0.8rem;
}

.contact-user-card__value[b-rr7qz84s8u] {
    min-width: 0;
    color: #0f172a;
    font-size: 0.84rem;
    line-height: 1.35;
    word-break: break-all;
}

.contact-user-card__footer[b-rr7qz84s8u] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8rem 1.1rem 1rem;
    border-top: 1px solid #e6eaf0;
    background: #f8fafc;
}
/* /Components/Components/ImMobileChatModal.razor.rz.scp.css */
.im-mobile-chat[b-39vleb30ms] {
    display: flex;
    justify-content: center;
    padding: 0.25rem 0;
    min-height: 0;
    height: min(72dvh, 760px);
    max-height: calc(100dvh - 220px);
}

.im-mobile-chat__phone[b-39vleb30ms] {
    width: min(100%, 375px);
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid color-mix(in oklab, var(--ox-border) 72%, #000 8%);
    background: linear-gradient(180deg, #f6f7f8 0%, #edf0f2 100%);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.18);
}

.im-mobile-chat__topbar[b-39vleb30ms] {
    height: 2.15rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.85rem;
    background: #131b26;
    color: #f8fafc;
    font-size: 0.72rem;
}

.im-mobile-chat__signal[b-39vleb30ms] {
    font-weight: 600;
    letter-spacing: 0.02em;
}

.im-mobile-chat__tabs[b-39vleb30ms] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem;
    background: #f1f3f5;
    border-bottom: 1px solid #e5e7eb;
}

.im-mobile-chat__tab[b-39vleb30ms] {
    height: 2rem;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    background: #ffffff;
    color: #334155;
    font-size: 0.76rem;
    font-weight: 600;
    min-width: 0;
}

.im-mobile-chat__tab--active[b-39vleb30ms] {
    border-color: #1aad19;
    background: #1aad19;
    color: #ffffff;
}

.im-mobile-chat__body[b-39vleb30ms] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.im-mobile-chat__state[b-39vleb30ms] {
    margin: 0.65rem;
    padding: 0.6rem 0.7rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #dbe2ea;
    color: #475569;
    font-size: 0.74rem;
}

.im-mobile-chat__state--error[b-39vleb30ms] {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.im-mobile-chat__list[b-39vleb30ms] {
    min-height: 0;
    overflow-y: auto;
    padding: 0.35rem;
}

.im-mobile-chat__create[b-39vleb30ms] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    padding: 0.35rem 0.35rem 0.55rem;
}

.im-mobile-chat__create-input[b-39vleb30ms] {
    min-width: 0;
    flex: 1;
}

.im-mobile-chat__conv[b-39vleb30ms] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    border: none;
    border-radius: 12px;
    padding: 0.6rem;
    text-align: left;
    background: transparent;
}

.im-mobile-chat__conv:hover[b-39vleb30ms] {
    background: #e9eef3;
}

.im-mobile-chat__conv--active[b-39vleb30ms] {
    background: #dde8d8;
}

.im-mobile-chat__avatar[b-39vleb30ms] {
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #1aad19;
    color: #fff;
    font-size: 0.84rem;
    font-weight: 700;
}

.im-mobile-chat__conv-main[b-39vleb30ms] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.im-mobile-chat__conv-title[b-39vleb30ms] {
    font-size: 0.78rem;
    color: #0f172a;
    font-weight: 700;
}

.im-mobile-chat__conv-last[b-39vleb30ms] {
    font-size: 0.72rem;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.im-mobile-chat__badge[b-39vleb30ms] {
    min-width: 1.1rem;
    height: 1.1rem;
    border-radius: 999px;
    padding: 0 0.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ef4444;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
}

.im-mobile-chat__dialog[b-39vleb30ms] {
    min-height: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.im-mobile-chat__dialog-head[b-39vleb30ms] {
    padding: 0.6rem 0.8rem;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

.im-mobile-chat__dialog-name[b-39vleb30ms] {
    font-size: 0.8rem;
    color: #0f172a;
    font-weight: 700;
}

.im-mobile-chat__dialog-sub[b-39vleb30ms] {
    font-size: 0.68rem;
    color: #64748b;
}

.im-mobile-chat__messages[b-39vleb30ms] {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    padding: 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.im-mobile-chat__msg[b-39vleb30ms] {
    display: flex;
    justify-content: flex-start;
}

.im-mobile-chat__msg--mine[b-39vleb30ms] {
    justify-content: flex-end;
}

.im-mobile-chat__bubble[b-39vleb30ms] {
    max-width: 78%;
    border-radius: 12px;
    padding: 0.46rem 0.6rem;
    background: #ffffff;
    color: #0f172a;
    font-size: 0.74rem;
    line-height: 1.35;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.im-mobile-chat__msg--mine .im-mobile-chat__bubble[b-39vleb30ms] {
    background: #95ec69;
}

.im-mobile-chat__composer[b-39vleb30ms] {
    border-top: 1px solid #dbe2ea;
    background: #f8fafc;
    padding: 0.55rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.im-mobile-chat__input[b-39vleb30ms] {
    min-width: 0;
    flex: 1;
    height: 2rem;
    background: #ffffff;
}

.im-mobile-chat__send[b-39vleb30ms] {
    min-width: 3.2rem;
}

@media (max-width: 640px) {
    .im-mobile-chat[b-39vleb30ms] {
        height: min(78dvh, 760px);
        max-height: calc(100dvh - 180px);
    }
}
/* /Components/Components/MaterialSkuPicker.razor.rz.scp.css */
/* 物料/SKU 选择器：行内 + 弹层 */

.ox-sku-picker[b-9q3nk5jys1] {
    width: 100%;
    min-width: 0;
}

.ox-sku-picker__inline[b-9q3nk5jys1] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    min-width: 0;
}

.ox-sku-picker__input-wrap[b-9q3nk5jys1] {
    position: relative;
    flex: 1;
    min-width: 0;
}

/* 右侧「列表」按钮：与输入同高、略强调 */
.ox-sku-picker__browse-btn[b-9q3nk5jys1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    padding-inline: 0.65rem;
    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 35%, var(--ox-border, #e2e8f0));
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 6%, #fff);
}

.ox-sku-picker__browse-btn:not(:disabled):hover[b-9q3nk5jys1] {
    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 55%, var(--ox-border, #e2e8f0));
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 11%, #fff);
}

.ox-sku-picker__browse-btn:disabled[b-9q3nk5jys1] {
    opacity: 0.55;
}

/* —— 弹层 —— */
.ox-sku-picker__backdrop[b-9q3nk5jys1] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 42, 0.42);
    backdrop-filter: blur(2px);
}

.ox-sku-picker__sheet[b-9q3nk5jys1] {
    position: fixed;
    z-index: 1050;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(720px, calc(100vw - 2rem));
    max-height: min(88vh, 44rem);
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 90%, #0f172a);
    background: var(--ox-surface, #fff);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.06) inset,
        0 24px 48px -12px rgba(15, 23, 42, 0.28),
        0 12px 24px -8px rgba(15, 23, 42, 0.12);
    outline: none;
    overflow: hidden;
}

.ox-sku-picker__head[b-9q3nk5jys1] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1rem 0.75rem;
    flex-shrink: 0;
    background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
}

.ox-sku-picker__head-text[b-9q3nk5jys1] {
    min-width: 0;
}

.ox-sku-picker__title[b-9q3nk5jys1] {
    margin: 0 0 0.35rem;
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ox-title, #111827);
    line-height: 1.35;
}

.ox-sku-picker__subtitle[b-9q3nk5jys1] {
    margin: 0;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    line-height: 1.45;
    color: var(--ox-muted, #64748b);
    max-width: 52ch;
}

.ox-sku-picker__close[b-9q3nk5jys1] {
    flex-shrink: 0;
    margin-top: -0.125rem;
}

.ox-sku-picker__search-strip[b-9q3nk5jys1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1rem;
    flex-shrink: 0;
    background: #f4f6f9;
    border-bottom: 1px solid var(--ox-border, #e2e8f0);
}

.ox-sku-picker__search-strip-icon[b-9q3nk5jys1] {
    flex-shrink: 0;
    font-size: 1.125rem;
    color: var(--ox-muted, #64748b);
    opacity: 0.9;
}

.ox-sku-picker__search-input[b-9q3nk5jys1] {
    flex: 1;
    min-width: 0;
}

.ox-sku-picker__body[b-9q3nk5jys1] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.ox-sku-picker__state[b-9q3nk5jys1] {
    margin: 1.25rem 1rem;
    padding: 1rem 1rem;
    text-align: center;
    font-size: var(--ox-ui-fs, 0.875rem);
    border-radius: var(--ox-radius, 4px);
    border: 1px dashed var(--ox-border, #e2e8f0);
    color: var(--ox-muted, #64748b);
    background: #fafafa;
}

.ox-sku-picker__state--error[b-9q3nk5jys1] {
    border-style: solid;
    border-color: #fecaca;
    color: #991b1b;
    background: #fef2f2;
}

.ox-sku-picker__state--loading[b-9q3nk5jys1] {
    color: var(--ox-muted, #64748b);
}

.ox-sku-picker__table-scroll[b-9q3nk5jys1] {
    flex: 1;
    min-height: 0;
    overflow: auto;
    margin: 0;
}

.ox-sku-picker__table[b-9q3nk5jys1] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ox-ui-fs, 0.875rem);
    color: var(--ox-title, #111827);
}

.ox-sku-picker__table thead th[b-9q3nk5jys1] {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 0.5rem 0.75rem;
    text-align: left;
    font-weight: 600;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    color: var(--ox-muted, #64748b);
    background: #f3f4f6;
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
    white-space: nowrap;
}

.ox-sku-picker__col-code[b-9q3nk5jys1] {
    width: 1%;
}

.ox-sku-picker__data-row[b-9q3nk5jys1] {
    cursor: pointer;
    transition: background-color 0.12s ease;
    outline: none;
}

.ox-sku-picker__data-row:nth-child(even)[b-9q3nk5jys1] {
    background: rgba(248, 250, 252, 0.65);
}

.ox-sku-picker__data-row:hover[b-9q3nk5jys1] {
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 8%, #fff) !important;
}

.ox-sku-picker__data-row:focus-visible[b-9q3nk5jys1] {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ox-accent, #0067c0) 45%, transparent);
}

.ox-sku-picker__data-row td[b-9q3nk5jys1] {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--ox-border, #e2e8f0);
    vertical-align: top;
}

.ox-sku-picker__cell-material[b-9q3nk5jys1] {
    font-weight: 500;
    color: var(--ox-title, #111827);
}

.ox-sku-picker__cell-spec[b-9q3nk5jys1] {
    color: var(--ox-text, #334155);
}

.ox-sku-picker__cell-code[b-9q3nk5jys1] {
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    color: var(--ox-muted, #64748b);
}

.ox-sku-picker__pager-bar[b-9q3nk5jys1] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1rem;
    padding: 0.65rem 1rem;
    flex-shrink: 0;
    border-top: 1px solid var(--ox-border, #e2e8f0);
    background: #fafbfc;
}

.ox-sku-picker__pager-meta[b-9q3nk5jys1] {
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    color: var(--ox-muted, #64748b);
}

.ox-sku-picker__pager-em[b-9q3nk5jys1] {
    font-weight: 600;
    color: var(--ox-title, #111827);
}

.ox-sku-picker__footer[b-9q3nk5jys1] {
    display: flex;
    justify-content: flex-end;
    padding: 0.65rem 1rem 1rem;
    flex-shrink: 0;
    border-top: 1px solid var(--ox-border, #e2e8f0);
    background: #fff;
}

@media (max-width: 520px) {
    .ox-sku-picker__sheet[b-9q3nk5jys1] {
        width: calc(100vw - 1rem);
        max-height: 92vh;
    }

    .ox-sku-picker__subtitle[b-9q3nk5jys1] {
        max-width: none;
    }
}
/* /Components/Components/MomentImageViewer.razor.rz.scp.css */
/* ===== 全屏图片查看器（类似微信朋友圈大图浏览 + 缩放平移） ===== */
.ox-miv-scrim[b-4zl522t14r] {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(4px);
    animation: ox-miv-fadein-b-4zl522t14r 0.2s ease;
    outline: none;
}

@keyframes ox-miv-fadein-b-4zl522t14r {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- 关闭按钮 ---- */
.ox-miv-close[b-4zl522t14r] {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 10;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 1.15rem;
    cursor: pointer;
    transition: background 0.15s ease;
}

.ox-miv-close:hover[b-4zl522t14r] {
    background: rgba(255, 255, 255, 0.3);
}

/* ---- 图片计数 ---- */
.ox-miv-counter[b-4zl522t14r] {
    position: fixed;
    top: 1rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
    pointer-events: none;
}

/* ---- 缩放工具栏（顶栏居中，避免与左右翻页重叠） ---- */
.ox-miv-zoom-toolbar[b-4zl522t14r] {
    position: fixed;
    top: 3.25rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 11;
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
}

.ox-miv-zoom-btn[b-4zl522t14r] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background 0.15s ease, opacity 0.15s ease;
    opacity: 0.85;
}

.ox-miv-zoom-btn:hover[b-4zl522t14r] {
    background: rgba(255, 255, 255, 0.28);
    opacity: 1;
}

/* ---- 操作提示 ---- */
.ox-miv-hint[b-4zl522t14r] {
    position: fixed;
    bottom: 5.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9;
    max-width: min(90vw, 28rem);
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.45);
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.72rem;
    text-align: center;
    pointer-events: none;
    line-height: 1.35;
}

@media (max-width: 520px) {
    .ox-miv-hint[b-4zl522t14r] {
        bottom: 4.75rem;
        font-size: 0.65rem;
        padding-inline: 0.5rem;
    }
}

/* ---- 图片容器 ---- */
.ox-miv-image-wrap[b-4zl522t14r] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90vw;
    height: 85vh;
    max-width: 90vw;
    max-height: 85vh;
    overflow: hidden;
    user-select: none;
    -webkit-user-select: none;
    touch-action: none;
}

.ox-miv-zoom-layer[b-4zl522t14r] {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    will-change: transform;
}

.ox-miv-image[b-4zl522t14r] {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 0.25rem;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
    cursor: zoom-in;
}

.ox-miv-image-wrap--pannable .ox-miv-image[b-4zl522t14r] {
    cursor: grab;
}

.ox-miv-image-wrap--pannable .ox-miv-image:active[b-4zl522t14r] {
    cursor: grabbing;
}

/* ---- 加载中 ---- */
.ox-miv-loading[b-4zl522t14r] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

/* ---- 左右导航按钮 ---- */
.ox-miv-nav[b-4zl522t14r] {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 1.25rem;
    cursor: pointer;
    transition: background 0.15s ease, opacity 0.15s ease;
    opacity: 0.6;
}

.ox-miv-nav:hover[b-4zl522t14r] {
    background: rgba(255, 255, 255, 0.25);
    opacity: 1;
}

.ox-miv-nav:disabled[b-4zl522t14r] {
    opacity: 0.15;
    cursor: default;
}

.ox-miv-prev[b-4zl522t14r] {
    left: 1rem;
}

.ox-miv-next[b-4zl522t14r] {
    right: 1rem;
}

/* ---- 底部缩略图导航 ---- */
.ox-miv-thumbs[b-4zl522t14r] {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    max-width: 80vw;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ox-miv-thumbs-inner[b-4zl522t14r] {
    display: flex;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 2rem;
}

.ox-miv-thumb-btn[b-4zl522t14r] {
    width: 8px;
    height: 8px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, transform 0.15s ease;
}

.ox-miv-thumb-btn:hover[b-4zl522t14r] {
    background: rgba(255, 255, 255, 0.6);
}

.ox-miv-thumb-btn--active[b-4zl522t14r] {
    background: #fff;
    transform: scale(1.35);
}

/* ---- 滑动过渡层 ---- */
.ox-miv-transition-layer[b-4zl522t14r] {
    display: flex;
    transition: none;
    transform: translateX(var(--ox-miv-translate-x, 0px));
}

.ox-miv-transition-layer .ox-miv-image[b-4zl522t14r] {
    max-width: 90vw;
    max-height: 85vh;
    flex-shrink: 0;
}
/* /Components/Components/OxDateInput.razor.rz.scp.css */
.ox-date[b-ons96sao5f] {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    min-height: var(--ox-btn-size, 2rem);
    border: 1px solid var(--ox-border, #e4e4e7);
    border-radius: var(--ox-radius, 0.45rem);
    background: #fff;
    color: var(--ox-ink, #18181b);
    box-sizing: border-box;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.ox-date:hover:not(.is-disabled)[b-ons96sao5f] {
    border-color: color-mix(in oklab, var(--ox-primary, #2563eb) 35%, var(--ox-border, #e4e4e7));
}

.ox-date:focus-within[b-ons96sao5f] {
    border-color: var(--ox-primary, #2563eb);
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--ox-primary, #2563eb) 18%, transparent);
}

.ox-date.is-disabled[b-ons96sao5f] {
    opacity: 0.55;
    background: #f4f4f5;
    cursor: not-allowed;
}

.ox-date__face[b-ons96sao5f] {
    pointer-events: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.25rem 0.55rem 0.25rem 0.65rem;
    box-sizing: border-box;
}

.ox-date__text[b-ons96sao5f] {
    flex: 1;
    min-width: 0;
    font-size: var(--ox-ui-fs, 0.8125rem);
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    color: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ox-date:not(.has-value) .ox-date__text[b-ons96sao5f] {
    color: #a1a1aa;
}

.ox-date__ico[b-ons96sao5f] {
    flex-shrink: 0;
    font-size: 0.95rem;
    color: #71717a;
    line-height: 1;
}

.ox-date:focus-within .ox-date__ico[b-ons96sao5f] {
    color: var(--ox-primary, #2563eb);
}

.ox-date__native[b-ons96sao5f] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
    font-size: 1rem; /* iOS 避免缩放 */
}

.ox-date.is-disabled .ox-date__native[b-ons96sao5f] {
    cursor: not-allowed;
}

.ox-date.is-dense[b-ons96sao5f] {
    min-height: 1.7rem;
    width: auto;
    min-width: 1.7rem;
}

.ox-date.is-dense .ox-date__face[b-ons96sao5f] {
    padding: 0.15rem 0.35rem;
    justify-content: center;
}

.ox-date.is-dense .ox-date__text[b-ons96sao5f] {
    display: none;
}

.ox-date.is-dense .ox-date__ico[b-ons96sao5f] {
    font-size: 0.9rem;
}

.ox-date.is-dense.has-value[b-ons96sao5f] {
    min-width: 6.5rem;
}

.ox-date.is-dense.has-value .ox-date__text[b-ons96sao5f] {
    display: block;
    font-size: 0.72rem;
}
/* /Components/Components/OxImageTileGridUploader.razor.rz.scp.css */
/* 与 OxImageUrlField 的单行控件不同：本组件为多图正方形宫格 + 尾随加号，用于朋友圈类多图占位。 */
/* 限制整宫格最大宽度，避免在宽侧栏里单格随 1fr 无限放大；缩略图仅作预览，与 feed 小图尺度一致。 */

.ox-img-tile-wrap[b-aqywu5faz8] {
    max-width: 100%;
}

.ox-img-tile-grid[b-aqywu5faz8] {
    --_gap: 0.5rem;
    --_cols: var(--ox-img-tile-cols, 3);
    --_cell: var(--ox-img-tile-size, 96px);
    display: grid;
    gap: var(--_gap);
    /* 总宽不超过「列 × 单格 + 间距」，窄屏下随父级变窄 */
    width: min(
        100%,
        calc(var(--_cols) * var(--_cell) + (var(--_cols) - 1) * var(--_gap))
    );
    max-width: 100%;
    grid-template-columns: repeat(var(--_cols), minmax(0, 1fr));
    min-width: 0;
}

.ox-img-tile-cell[b-aqywu5faz8] {
    width: 100%;
    min-width: 0;
    aspect-ratio: 1 / 1;
    border-radius: 0.35rem;
    border: 1px solid var(--ox-border, var(--bs-border-color, #dee2e6));
    background: var(--ox-surface, var(--bs-body-bg, #fff));
    overflow: hidden;
    position: relative;
}

.ox-img-tile-img[b-aqywu5faz8] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.ox-img-tile-remove[b-aqywu5faz8] {
    position: absolute;
    top: 0.15rem;
    right: 0.15rem;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    border: none;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    cursor: pointer;
    line-height: 1;
}

.ox-img-tile-remove:hover[b-aqywu5faz8] {
    background: rgba(220, 53, 69, 0.85);
}

.ox-img-tile-remove:disabled[b-aqywu5faz8] {
    opacity: 0.4;
    cursor: not-allowed;
}

.ox-img-tile-add[b-aqywu5faz8] {
    width: 100%;
    min-width: 0;
    aspect-ratio: 1 / 1;
    border-radius: 0.35rem;
    border: 1px dashed var(--ox-border, #cbd5e1);
    background: var(--bs-tertiary-bg, #f1f5f9);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.ox-img-tile-add:hover[b-aqywu5faz8] {
    border-color: var(--bs-primary, #0d6efd);
    background: rgba(13, 110, 253, 0.06);
}

.ox-img-tile-add-inner[b-aqywu5faz8] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.ox-img-tile-plus[b-aqywu5faz8] {
    font-size: 1.75rem;
    font-weight: 300;
    line-height: 1;
    color: var(--bs-secondary-color, #64748b);
    user-select: none;
}

.ox-img-tile-add--busy[b-aqywu5faz8] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sr-only[b-aqywu5faz8] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Components/OxTablePager.razor.rz.scp.css */
/*
 * 与 .manage-user-table / .ox-data-table 表头同一套尺寸令牌（tailwind :root），
 * 行高与左右内边距与 thead th 一致。
 */
.ox-table-pager[b-nrd763j2rr] {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    box-sizing: border-box;
    min-height: var(--ox-table-pager-row-h);
    padding: var(--ox-table-cell-py) var(--ox-table-cell-px);
    border-top: 1px solid var(--ox-header-border, #e5e7eb);
    background: var(--ox-header-bg, #f9fafb);
    font-size: var(--ox-ui-fs, 0.75rem);
    line-height: 1.5;
}

.ox-table-pager__meta[b-nrd763j2rr] {
    color: var(--ox-muted, #6b7280);
}

.ox-table-pager__nav[b-nrd763j2rr] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
}

/* 高度与表头文字行盒对齐，避免分页条整体高于 thead */
.ox-table-pager__icon-btn[b-nrd763j2rr] {
    width: var(--ox-table-head-line-box);
    height: var(--ox-table-head-line-box);
    min-width: var(--ox-table-head-line-box);
    font-size: 0.8125rem;
}
/* /Components/Components/ProfileSelfEditModal.razor.rz.scp.css */
/* 个人信息弹框：顶区头像+姓名与账号同行，其下部门/角色；下方可编辑邮箱手机与密码；底栏固定 */
.profile-modal[b-6apvwrrm4n] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    min-width: 0;
}

.profile-modal--empty[b-6apvwrrm4n] {
    padding: 10px 16px 14px;
    justify-content: center;
}

.profile-modal-scroll[b-6apvwrrm4n] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 14px 18px 10px;
    box-sizing: border-box;
}

.profile-modal-footer[b-6apvwrrm4n] {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    padding: 8px 16px 12px;
    border-top: 1px solid var(--ox-header-border, #e5e7eb);
    background: linear-gradient(to top, #fafafa 0%, #fff 100%);
    box-sizing: border-box;
}

/* 顶：左头像 + 右姓名与账号一行，部门/角色在其下 */
.profile-top[b-6apvwrrm4n] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--ox-header-border, #e8eaed);
}

.profile-avatar-wrap[b-6apvwrrm4n] {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 10px;
    overflow: hidden;
    background: #e2e8f0;
}

.profile-avatar-img[b-6apvwrrm4n] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.profile-top-main[b-6apvwrrm4n] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.profile-name-row[b-6apvwrrm4n] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
}

.profile-name-label[b-6apvwrrm4n] {
    margin: 0;
    padding: 2px 0;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.25;
    color: #0f172a;
    word-break: break-word;
}

.profile-account-inline[b-6apvwrrm4n] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    max-width: 100%;
}

.profile-account-text[b-6apvwrrm4n] {
    font-size: 0.75rem;
    font-weight: 500;
    color: #64748b;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 可编辑区：邮箱、手机（与密码同属可改项）；顶部分隔由 .profile-top 底边承担 */
.profile-editable-block[b-6apvwrrm4n] {
    margin-bottom: 4px;
    padding-top: 8px;
}

.profile-contact[b-6apvwrrm4n] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.profile-ico[b-6apvwrrm4n] {
    font-size: 0.875rem;
    line-height: 1;
    flex-shrink: 0;
    color: #0ea5e9;
    opacity: 0.9;
}

.profile-ico--muted[b-6apvwrrm4n] {
    color: #64748b;
    opacity: 1;
}

.profile-ro-line[b-6apvwrrm4n] {
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: 0;
    line-height: 1.2;
    padding: 2px 0;
}

.profile-ro-text[b-6apvwrrm4n] {
    font-size: 0.6875rem;
    color: #475569;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.profile-pass[b-6apvwrrm4n] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding-top: 4px;
}

.profile-muted[b-6apvwrrm4n] {
    font-size: 0.75rem;
    color: var(--ox-muted, #6b7280);
    margin: 0;
    line-height: 1.2;
}

.profile-error[b-6apvwrrm4n] {
    font-size: 0.75rem;
    color: #dc2626;
    margin: 0;
    line-height: 1.2;
}

.profile-error-banner[b-6apvwrrm4n] {
    margin-bottom: 6px;
    padding: 4px 6px;
    border-radius: 4px;
    background: #fef2f2;
    border: 1px solid #fecaca;
}

/* /Components/Components/ShellLayout.razor.rz.scp.css */
.shell-middle.shell-main-pane[b-wbctkuawho] {
    box-sizing: border-box;
}

.shell-right.shell-main-pane[b-wbctkuawho] {
    padding: 0;
}

/* 首次登录进入时先恢复本地宽度 */
.shell-root--prefs-pending[b-wbctkuawho] {
    pointer-events: none;
}

.shell-prefs-mask[b-wbctkuawho] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in oklab, var(--shell-page-bg) 88%, rgba(24, 24, 27, 0.12));
}

.shell-prefs-mask__text[b-wbctkuawho] {
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #3f3f46;
    background: var(--shell-surface-bg, #fff);
    border: 1px solid var(--ox-border);
    box-shadow: var(--shell-card-shadow);
}

/* 竖分隔条与 manage-panel 边框去重 */
.shell-middle.shell-main-pane > .manage-middle.manage-split.dx-style[b-wbctkuawho] {
    border-left: none;
}

.shell-main.shell-main-with-right-split .shell-middle.shell-main-pane > .manage-middle.manage-split.dx-style[b-wbctkuawho] {
    border-right: none;
}

.shell-middle.shell-main-pane > .manage-middle.dx-style:not(.manage-split) > .manage-panel:first-child[b-wbctkuawho] {
    border-left: none;
}

.shell-main.shell-main-with-right-split
    .shell-middle.shell-main-pane
    > .manage-middle.dx-style:not(.manage-split)
    > .manage-panel:first-child[b-wbctkuawho] {
    border-right: none;
}

.shell-left-sized[b-wbctkuawho] {
    flex: 0 0 var(--shell-left-w, 264px) !important;
    width: var(--shell-left-w, 264px) !important;
    min-width: 0;
    max-width: min(100%, 90vw);
}

.shell-right-sized[b-wbctkuawho] {
    flex: 0 0 var(--shell-right-w, 420px) !important;
    width: var(--shell-right-w, 420px) !important;
    max-width: min(100%, 90vw);
}

.shell-right.shell-main-pane[b-wbctkuawho]  .ox-form-actions.shell-right-sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
    margin-bottom: 0;
    margin-inline: calc(-1 * var(--ox-panel-header-px, 1rem));
    width: calc(100% + 2 * var(--ox-panel-header-px, 1rem));
    max-width: none;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: 10px;
    min-height: 45px;
    padding-top: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    padding-inline: var(--ox-panel-header-px, 1rem);
    background: var(--shell-surface-bg, #fff);
    border-top: 1px solid var(--ox-header-border);
    border-bottom: 1px solid var(--ox-header-border);
}

.shell-user-avatar-btn[b-wbctkuawho] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: var(--ox-radius-sm);
    -webkit-tap-highlight-color: transparent;
}

.shell-user-avatar-btn:disabled[b-wbctkuawho] {
    cursor: default;
    opacity: 0.55;
}

.shell-user-avatar-btn:focus-visible[b-wbctkuawho] {
    outline: 2px solid var(--ox-focus-ring);
    outline-offset: 2px;
}

.shell-user-avatar-btn:not(:disabled):hover .shell-user-avatar[b-wbctkuawho] {
    box-shadow: 0 0 0 2px color-mix(in oklab, var(--ox-accent) 25%, transparent);
}

.shell-user-avatar[b-wbctkuawho] {
    margin: 6px 0;
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    min-height: 2.25rem;
    max-width: 2.25rem;
    max-height: 2.25rem;
    flex-shrink: 0;
    border-radius: 9999px;
    background-color: #a1a1aa;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    transition: box-shadow 0.15s ease;
}

.shell-user-avatar img[b-wbctkuawho] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.shell-left-rail[b-wbctkuawho] {
    background-color: var(--shell-rail-bg, #fff);
    box-sizing: border-box;
}

.shell-left-column[b-wbctkuawho],
.shell-right-column[b-wbctkuawho] {
    background: var(--shell-column-bg, #fff);
}

.shell-main-area[b-wbctkuawho] {
    background: var(--shell-page-bg, #f4f4f5);
}

.shell-middle--content-dim[b-wbctkuawho] {
    background: var(--shell-content-bg, #fafafa);
}

.shell-left-rail.shell-left-rail--dim[b-wbctkuawho] {
    background-color: var(--shell-rail-bg, #fff);
}

.shell-left-column--dim[b-wbctkuawho],
.shell-right-column--dim[b-wbctkuawho] {
    background: var(--shell-column-bg-dim, #fff);
}

.shell-left-column--dim[b-wbctkuawho]  .shell-subpanel {
    background-color: var(--shell-subpanel-bg, #fff);
}

.shell-subpanel-expand-rail[b-wbctkuawho] {
    margin-top: 2px;
    margin-bottom: 4px;
}

.shell-left-rail-bottom[b-wbctkuawho] {
    width: 100%;
}

.shell-left-logout[b-wbctkuawho] {
    margin-top: 0;
}
/* /Components/Components/ShellModalHost.razor.rz.scp.css */
/* 全局模态：前缀 ox-modal__（与 shell 壁纸弹层区分） */

.ox-modal-scrim[b-uvr8r42e3l] {
    position: fixed;
    inset: 0;
    z-index: 10800;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px))
        max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
    box-sizing: border-box;
    pointer-events: none;
}

.ox-modal-backdrop[b-uvr8r42e3l] {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    pointer-events: auto;
}

.ox-modal-panel[b-uvr8r42e3l] {
    position: relative;
    z-index: 1;
    width: min(440px, 100%);
    max-height: min(85vh, 640px);
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--ox-header-border, #e5e7eb);
    box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.35);
    box-sizing: border-box;
    pointer-events: auto;
    outline: none;
    overflow: hidden;
}

.ox-modal-header[b-uvr8r42e3l] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
    background: var(--ox-header-bg, #f9fafb);
}

.ox-modal-title[b-uvr8r42e3l] {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--ox-title, #374151);
    line-height: 1.3;
}

/* 标题栏关闭使用全局 .manage-btn-icon（见 ShellModalHost.razor） */

/* 由内部组件自行分区滚动区与固定底栏；此处仅作 flex 占位 */
.ox-modal-body[b-uvr8r42e3l] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    font-size: var(--ox-ui-fs, 0.75rem);
    box-sizing: border-box;
}

/* 手机竖屏比例预览（宽约 390/844 × 高），高度为视口约 90% */
/* 考核 / 主数据表单：更宽、可滚动，中间列表保持全宽 */
.ox-modal-panel.ox-modal-panel--form[b-uvr8r42e3l] {
    width: min(560px, calc(100vw - 32px));
    max-height: min(88vh, 720px);
}

.ox-modal-panel.ox-modal-panel--form-wide[b-uvr8r42e3l] {
    width: min(720px, calc(100vw - 32px));
    max-height: min(90vh, 840px);
}

.ox-modal-panel.ox-modal-panel--phone-preview[b-uvr8r42e3l] {
    --phone-preview-h: min(90vh, 90dvh);
    width: min(calc(var(--phone-preview-h) * 390 / 844), calc(100vw - 32px));
    height: var(--phone-preview-h);
    max-height: var(--phone-preview-h);
    max-width: calc(100vw - 32px);
    border-radius: 16px;
}
/* /Components/Components/ShellNavMenu.razor.rz.scp.css */
.shell-user-avatar[b-xnwahy64m5] {
    margin: 10px 0;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    max-width: 44px;
    max-height: 44px;
    flex-shrink: 0;
    border-radius: 10px;
    background-color: #a1a1aa;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.shell-user-avatar img[b-xnwahy64m5] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.shell-subpanel[b-xnwahy64m5] {
    background-color: var(--shell-subpanel-bg, #fff);
    min-width: 0;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.shell-subpanel > .manage-detail-header.shell-subpanel-detail-header[b-xnwahy64m5] {
    justify-content: space-between;
    width: 100%;
    min-height: 3rem;
    background: var(--shell-muted-strip-bg, #f4f4f5);
    border-bottom: 1px solid var(--ox-header-border);
}

.shell-subpanel-detail-header .manage-detail-title[b-xnwahy64m5] {
    flex: 1;
    min-width: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ox-title);
    letter-spacing: -0.01em;
}

.shell-subpanel .shell-subpanel-detail-header + .shell-subnav-list[b-xnwahy64m5] {
    margin-top: 0;
}

.shell-subpanel-expand-rail[b-xnwahy64m5] {
    margin-top: 2px;
    margin-bottom: 4px;
}

.shell-subnav-list[b-xnwahy64m5] {
    margin: 0;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 2px;
    box-sizing: border-box;
    scrollbar-gutter: auto;
    scrollbar-width: thin;
}

/* Metronic kt-menu-link 风格子菜单 */
.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    min-height: 2.25rem;
    padding: 0.375rem 0.625rem;
    margin: 0;
    color: #3f3f46;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.35;
    cursor: pointer;
    border-radius: var(--ox-radius-sm);
    border: none;
    background: transparent;
    box-shadow: none;
    transition: background-color 0.15s ease, color 0.15s ease;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item:focus {
    outline: none;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item:focus-visible {
    outline: 2px solid var(--ox-focus-ring);
    outline-offset: 1px;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item:hover {
    background: var(--ox-state-hover-bg);
    color: var(--ox-title);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item:active {
    background: var(--ox-state-hover-bg);
    color: var(--ox-title);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item.active {
    background: var(--ox-state-selected-bg);
    color: var(--ox-accent-foreground);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item.active:hover {
    background: var(--ox-state-selected-bg-hover);
    color: var(--ox-accent-foreground-strong);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item.active:active {
    background: var(--ox-state-selected-bg-hover);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-icon-wrap {
    width: 1.75rem;
    height: 1.75rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ox-radius-sm);
    background: #f4f4f5;
    border: none;
    box-shadow: none;
    transition: background-color 0.12s ease, color 0.12s ease;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item:hover .shell-subnav-icon-wrap {
    background: #e4e4e7;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item.active .shell-subnav-icon-wrap {
    background: var(--ox-state-selected-chrome-bg);
    color: var(--ox-accent-foreground);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item.active:hover .shell-subnav-icon-wrap {
    background: var(--ox-state-selected-chrome-bg-hover);
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-icon {
    font-size: 0.9375rem;
    line-height: 1;
    opacity: 0.9;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item:hover .shell-subnav-icon,
.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-item.active .shell-subnav-icon {
    opacity: 1;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-label {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-group-title {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #a1a1aa;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.5rem 0.625rem 0.25rem;
    margin-top: 0.25rem;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-children {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.shell-subnav-list[b-xnwahy64m5]  .shell-subnav-children-indented {
    padding-left: 0.375rem;
    margin-top: 0;
    margin-bottom: 0;
    border-left: 1px solid var(--ox-border);
}
/* /Components/Components/UiConfirmHost.razor.rz.scp.css */
.ox-confirm-scrim[b-mb6slujgcb] {
    position: fixed;
    inset: 0;
    z-index: 10950;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px))
        max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
    box-sizing: border-box;
    pointer-events: none;
}

.ox-confirm-backdrop[b-mb6slujgcb] {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.45);
    cursor: pointer;
    pointer-events: auto;
}

.ox-confirm-panel[b-mb6slujgcb] {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--ox-header-border, #e5e7eb);
    box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.35);
    box-sizing: border-box;
    pointer-events: auto;
    outline: none;
    overflow: hidden;
}

.ox-confirm-head[b-mb6slujgcb] {
    padding: 14px 16px 0;
}

.ox-confirm-title[b-mb6slujgcb] {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--ox-title, #18181b);
    line-height: 1.3;
}

.ox-confirm-body[b-mb6slujgcb] {
    padding: 10px 16px 4px;
}

.ox-confirm-message[b-mb6slujgcb] {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #3f3f46;
    white-space: pre-wrap;
    word-break: break-word;
}

.ox-confirm-panel.has-input[b-mb6slujgcb] {
    width: min(440px, 100%);
}

.ox-confirm-input-label[b-mb6slujgcb] {
    display: block;
    margin: 12px 0 6px;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #52525b;
}

.ox-confirm-input[b-mb6slujgcb] {
    display: block;
    width: 100%;
    margin: 10px 0 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fafafa;
    color: #18181b;
    font: inherit;
    font-size: 0.875rem;
    line-height: 1.45;
    resize: vertical;
    min-height: 4.5rem;
    box-sizing: border-box;
}

.ox-confirm-input:focus[b-mb6slujgcb] {
    outline: none;
    border-color: #94a3b8;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.25);
}

.ox-confirm-input--single[b-mb6slujgcb] {
    min-height: 2.5rem;
    resize: none;
}

.ox-confirm-input[b-mb6slujgcb]::placeholder {
    color: #a1a1aa;
}

.ox-confirm-attach[b-mb6slujgcb] {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ox-confirm-attach__list[b-mb6slujgcb] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ox-confirm-attach__item[b-mb6slujgcb] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fafafa;
    min-width: 0;
}

.ox-confirm-attach__thumb[b-mb6slujgcb] {
    width: 36px;
    height: 36px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
}

.ox-confirm-attach__fileico[b-mb6slujgcb] {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    color: #71717a;
    flex-shrink: 0;
    font-size: 1.15rem;
}

.ox-confirm-attach__name[b-mb6slujgcb] {
    flex: 1;
    min-width: 0;
    font-size: 0.8125rem;
    color: #3f3f46;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ox-confirm-attach__remove[b-mb6slujgcb] {
    appearance: none;
    border: 0;
    background: transparent;
    color: #a1a1aa;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    padding: 2px 4px;
    flex-shrink: 0;
}

.ox-confirm-attach__remove:hover[b-mb6slujgcb] { color: #b91c1c; }

.ox-confirm-attach__add[b-mb6slujgcb] {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    padding: 0.55rem 0.7rem;
    border: 1px dashed #d4d4d8;
    border-radius: 8px;
    background: #fff;
    color: #3f3f46;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

.ox-confirm-attach__add:hover[b-mb6slujgcb] {
    border-color: #a1a1aa;
    background: #fafafa;
}

.ox-confirm-attach__input[b-mb6slujgcb] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.ox-confirm-attach__hint[b-mb6slujgcb] {
    width: 100%;
    font-size: 0.7rem;
    font-weight: 500;
    color: #a1a1aa;
}

.ox-confirm-attach__err[b-mb6slujgcb] {
    margin: 0;
    font-size: 0.75rem;
    color: #b91c1c;
}

.ox-confirm-foot[b-mb6slujgcb] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 14px 16px 16px;
}

.ox-confirm-panel.is-danger .ox-confirm-title[b-mb6slujgcb] {
    color: #b91c1c;
}
/* /Components/Components/UiMessageStack.razor.rz.scp.css */
/* 全局轻提示栈，前缀 ox-msg__ */
/* 边距：在 app.css 的 :root 中覆盖 --ox-msg-inset（默认 16px） */

.ox-msg-stack[b-8dbq667xph] {
    position: fixed;
    z-index: 11000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: min(380px, calc(100vw - 32px * 2));
    pointer-events: none;
    --ox-msg-inset-pad: var(--ox-msg-inset, 16px);
}

/* 视口正中：水平 + 垂直居中 */
.ox-msg-stack--center[b-8dbq667xph] {
    left: 50%;
    top: 50%;
    right: auto;
    bottom: auto;
    transform: translate(-50%, -50%);
    max-width: min(420px, calc(100vw - 2 * var(--ox-msg-inset-pad)));
    align-items: stretch;
}

.ox-msg-stack--bottom-right[b-8dbq667xph] {
    right: var(--ox-msg-inset-pad);
    bottom: var(--ox-msg-inset-pad);
    left: auto;
    top: auto;
}

.ox-msg-stack--top-right[b-8dbq667xph] {
    top: var(--ox-msg-inset-pad);
    right: var(--ox-msg-inset-pad);
    left: auto;
    bottom: auto;
}

.ox-msg-stack--bottom-left[b-8dbq667xph] {
    left: var(--ox-msg-inset-pad);
    bottom: var(--ox-msg-inset-pad);
    right: auto;
    top: auto;
}

.ox-msg-stack--top-left[b-8dbq667xph] {
    left: var(--ox-msg-inset-pad);
    top: var(--ox-msg-inset-pad);
    right: auto;
    bottom: auto;
}

.ox-msg[b-8dbq667xph] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid var(--ox-msg-border, #e2e8f0);
    background: var(--ox-msg-bg, #fff);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.12), 0 6px 10px -6px rgba(15, 23, 42, 0.08);
    pointer-events: auto;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    line-height: 1.45;
}

.ox-msg--success[b-8dbq667xph] {
    border-color: #6ee7b7;
    background: #ecfdf5;
    color: #065f46;
}

.ox-msg--error[b-8dbq667xph] {
    border-color: #fca5a5;
    background: #fef2f2;
    color: #991b1b;
}

.ox-msg--warning[b-8dbq667xph] {
    border-color: #fcd34d;
    background: #fffbeb;
    color: #92400e;
}

.ox-msg--info[b-8dbq667xph] {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1e3a8a;
}

.ox-msg__icon[b-8dbq667xph] {
    flex-shrink: 0;
    margin-top: 1px;
    font-size: 1.125rem;
    opacity: 0.9;
}

.ox-msg__text[b-8dbq667xph] {
    flex: 1 1 auto;
    min-width: 0;
    word-break: break-word;
}

/* 关闭：基础样式为全局 .manage-btn-icon；此处仅做轻提示条内的紧凑尺寸与继承色 */
.ox-msg .manage-btn-icon.ox-msg__close[b-8dbq667xph] {
    width: 28px;
    height: 28px;
    min-width: 28px;
    margin: -4px -6px -4px 0;
    color: inherit;
    opacity: 0.65;
}

.ox-msg .manage-btn-icon.ox-msg__close:hover:not(:disabled)[b-8dbq667xph] {
    opacity: 1;
    background: rgba(0, 0, 0, 0.06);
    color: inherit;
}
/* /Components/Components/UserPickerMultiple.razor.rz.scp.css */
/* 用户多选：统一前缀 ox-user-picker__ */

.ox-user-picker[b-e4c8rq58oi] {
    box-sizing: border-box;
}

/* 仅作弹窗锚点：不占布局（弹层仍 fixed 全窗） */
.ox-user-picker--headless:not(.ox-user-picker--inline)[b-e4c8rq58oi] {
    display: contents;
}

/* 内嵌模式：不再使用第二层 fixed 弹窗，列表在父级模态内展开 */
.ox-user-picker--inline .ox-user-picker__field-row[b-e4c8rq58oi] {
    margin-bottom: 8px;
}

.ox-user-picker__inline-surface[b-e4c8rq58oi] {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    max-height: min(52vh, 420px);
    border: 1px solid var(--ox-border, #cbd5e1);
    border-radius: var(--ox-radius, 6px);
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.ox-user-picker__inline-title[b-e4c8rq58oi] {
    margin: 0;
    padding: 10px 14px 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ox-fg-muted, #334155);
}

.ox-user-picker__inline-hint[b-e4c8rq58oi] {
    margin: 0;
    padding: 8px 14px 10px;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--ox-muted, #64748b);
    border-top: 1px solid var(--ox-border-light, #f1f5f9);
    flex-shrink: 0;
}

.ox-user-picker__inline-surface .ox-user-picker__user-list[b-e4c8rq58oi] {
    min-height: 180px;
    max-height: min(36vh, 320px);
}

.ox-user-picker__inline-surface .ox-user-picker__pager[b-e4c8rq58oi] {
    border-top: 1px solid var(--ox-border-light, #e2e8f0);
}

.ox-user-picker__field-label[b-e4c8rq58oi] {
    display: block;
    margin-bottom: 6px;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-fg-muted, #334155);
}

.ox-user-picker__field-row[b-e4c8rq58oi] {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 10px;
    min-width: 0;
}

.ox-user-picker__chips[b-e4c8rq58oi] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 40px;
    padding: 6px 10px;
    border: 1px solid var(--ox-border, #d1d5db);
    border-radius: var(--ox-radius, 4px);
    background: var(--ox-bg-subtle, #f8fafc);
}

.ox-user-picker__empty[b-e4c8rq58oi] {
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-muted, #64748b);
}

.ox-user-picker__chip[b-e4c8rq58oi] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    padding: 2px 4px 2px 10px;
    border-radius: 999px;
    background: var(--ox-chip-bg, #e0f2fe);
    color: var(--ox-chip-fg, #0c4a6e);
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
}

.ox-user-picker__chip-text[b-e4c8rq58oi] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 200px;
}

.ox-user-picker__chip-remove[b-e4c8rq58oi] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    flex-shrink: 0;
}

.ox-user-picker__chip-remove:hover[b-e4c8rq58oi] {
    background: rgba(0, 0, 0, 0.08);
}

/* 「选择人员」主按钮使用全局 .menu-btn + .ox-user-picker__open-icon */

.ox-user-picker__open-icon[b-e4c8rq58oi] {
    font-size: 1.125rem;
    opacity: 0.85;
}

.ox-user-picker__backdrop[b-e4c8rq58oi] {
    position: fixed;
    inset: 0;
    /* 高于「添加考评卷」等同级 fixed 弹层（1050），便于套娃选人 */
    z-index: 1060;
    background: rgba(15, 23, 42, 0.45);
}

.ox-user-picker__dialog[b-e4c8rq58oi] {
    position: fixed;
    z-index: 1070;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(480px, calc(100vw - 32px));
    max-height: min(560px, calc(100vh - 48px));
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    outline: none;
}

/* 大尺寸：新建群聊、批量选人等场景 */
.ox-user-picker__dialog--large[b-e4c8rq58oi] {
    width: min(52rem, calc(100vw - 1.5rem));
    max-height: min(92vh, 960px);
    border-radius: 10px;
    box-shadow: 0 28px 64px -16px rgba(15, 23, 42, 0.35);
}

.ox-user-picker__dialog--large .ox-user-picker__dialog-title[b-e4c8rq58oi] {
    font-size: 1.1rem;
}

.ox-user-picker__dialog--large .ox-user-picker__dialog-search[b-e4c8rq58oi] {
    padding: 14px 18px 10px;
}

.ox-user-picker__dialog--large .ox-user-picker__search-input[b-e4c8rq58oi] {
    padding: 10px 12px;
    font-size: 0.9375rem;
}

.ox-user-picker__dialog--large .ox-user-picker__user-list[b-e4c8rq58oi] {
    min-height: min(48vh, 480px);
    max-height: min(58vh, 560px);
    padding: 6px 14px;
}

.ox-user-picker__dialog--large .ox-user-picker__user-label[b-e4c8rq58oi] {
    padding: 10px 6px;
}

.ox-user-picker__dialog--large .ox-user-picker__user-avatar-wrap[b-e4c8rq58oi] {
    width: 2.5rem;
    height: 2.5rem;
}

.ox-user-picker__dialog--large .ox-user-picker__user-name[b-e4c8rq58oi] {
    font-size: 0.9375rem;
}

.ox-user-picker__dialog--large .ox-user-picker__user-field-value[b-e4c8rq58oi] {
    max-width: min(18rem, 48vw);
}

.ox-user-picker__dialog--large .ox-user-picker__dialog-footer[b-e4c8rq58oi],
.ox-user-picker__dialog--large .ox-user-picker__pager[b-e4c8rq58oi] {
    padding-left: 18px;
    padding-right: 18px;
}

.ox-user-picker__dialog-header[b-e4c8rq58oi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
}

.ox-user-picker__dialog-title[b-e4c8rq58oi] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--ox-fg, #0f172a);
}

/* 对话框关闭使用全局 .manage-btn-icon */

.ox-user-picker__dialog-search[b-e4c8rq58oi] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px 8px;
    flex-shrink: 0;
}

.ox-user-picker__toolbar[b-e4c8rq58oi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 0 16px 8px;
    flex-shrink: 0;
}

.ox-user-picker__search-icon[b-e4c8rq58oi] {
    font-size: 1.125rem;
    color: var(--ox-muted, #94a3b8);
    flex-shrink: 0;
}

.ox-user-picker__search-input[b-e4c8rq58oi] {
    flex: 1;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--ox-border, #cbd5e1);
    border-radius: var(--ox-radius, 4px);
    font-size: var(--ox-ui-fs-sm, 0.875rem);
}

.ox-user-picker__search-input:focus[b-e4c8rq58oi] {
    outline: 2px solid var(--ox-accent-ring, #7dd3fc);
    outline-offset: 0;
    border-color: var(--ox-accent, #0ea5e9);
}

.ox-user-picker__list-error[b-e4c8rq58oi],
.ox-user-picker__list-loading[b-e4c8rq58oi],
.ox-user-picker__list-empty[b-e4c8rq58oi] {
    padding: 20px 16px;
    text-align: center;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-muted, #64748b);
}

.ox-user-picker__list-error[b-e4c8rq58oi] {
    color: #b91c1c;
}

.ox-user-picker__user-list[b-e4c8rq58oi] {
    list-style: none;
    margin: 0;
    padding: 4px 12px;
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 120px;
}

.ox-user-picker__user-row[b-e4c8rq58oi] {
    margin: 0;
    border-bottom: 1px solid var(--ox-border-light, #f1f5f9);
}

.ox-user-picker__user-row:last-child[b-e4c8rq58oi] {
    border-bottom: none;
}

.ox-user-picker__user-label[b-e4c8rq58oi] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 4px;
    cursor: pointer;
    margin: 0;
}

.ox-user-picker__user-check[b-e4c8rq58oi] {
    align-self: center;
    flex-shrink: 0;
    margin: 0;
}

.ox-user-picker__user-avatar-wrap[b-e4c8rq58oi] {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.35rem;
    overflow: hidden;
    border: 1px solid var(--ox-border-light, #e2e8f0);
    background: var(--ox-bg-subtle, #f1f5f9);
}

.ox-user-picker__user-avatar[b-e4c8rq58oi] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ox-user-picker__user-main[b-e4c8rq58oi] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

.ox-user-picker__user-name[b-e4c8rq58oi] {
    font-weight: 600;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-fg, #0f172a);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 第二行：部门 + 账号，统一标签 */
.ox-user-picker__user-meta[b-e4c8rq58oi] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.65rem 1rem;
    min-width: 0;
}

.ox-user-picker__user-field[b-e4c8rq58oi] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.28rem;
    min-width: 0;
    max-width: 100%;
}

.ox-user-picker__user-field-label[b-e4c8rq58oi] {
    flex-shrink: 0;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--ox-muted, #64748b);
    letter-spacing: 0.02em;
}

.ox-user-picker__user-field-value[b-e4c8rq58oi] {
    font-size: 0.75rem;
    color: var(--ox-fg-muted, #334155);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: min(14rem, 42vw);
}

.ox-user-picker__pager[b-e4c8rq58oi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 16px;
    border-top: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
    flex-wrap: wrap;
}

/* 分页使用全局 .manage-text-btn */

.ox-user-picker__pager-info[b-e4c8rq58oi] {
    font-size: 0.75rem;
    color: var(--ox-muted, #64748b);
    flex: 1 1 auto;
    text-align: center;
}

.ox-user-picker__dialog-footer[b-e4c8rq58oi] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 16px;
    border-top: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
}

/* 底栏使用全局 .menu-btn / .menu-btn-primary */
/* /Components/Evaluation/AddOrganizationalEvalFormDialog.razor.rz.scp.css */
/* 添加机构考评卷：关系 + 模板表 + 打分人（样式与人员考评卷弹窗一致） */

.ox-add-eval-form__backdrop[b-ud7srexwdd] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 42, 0.45);
}

.ox-add-eval-form__dialog[b-ud7srexwdd] {
    position: fixed;
    z-index: 1050;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(52rem, calc(100vw - 1.5rem));
    max-height: min(92vh, 900px);
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    background: var(--ox-surface-elevated, #fff);
    color: var(--ox-fg, inherit);
    box-shadow: 0 28px 64px -16px rgba(15, 23, 42, 0.35);
    outline: none;
}

.ox-add-eval-form__header[b-ud7srexwdd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
}

.ox-add-eval-form__title[b-ud7srexwdd] {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
}

.ox-add-eval-form__body[b-ud7srexwdd] {
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.ox-add-eval-form__rel-row[b-ud7srexwdd] {
    flex-shrink: 0;
}

.ox-add-eval-form__search[b-ud7srexwdd] {
    flex-shrink: 0;
}

.ox-add-eval-form__table-wrap[b-ud7srexwdd] {
    flex: 1 1 auto;
    min-height: 160px;
    max-height: min(40vh, 360px);
    overflow: auto;
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: var(--ox-radius, 6px);
    background: color-mix(in srgb, var(--ox-surface-elevated, #fff) 94%, transparent);
}

.ox-add-eval-form__table-wrap .ox-data-table[b-ud7srexwdd] {
    margin: 0;
}

.ox-add-eval-form__row-active[b-ud7srexwdd] {
    background: color-mix(in srgb, var(--ox-accent, #0ea5e9) 12%, transparent);
}

.ox-add-eval-form__picker-row[b-ud7srexwdd] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    flex-shrink: 0;
    min-height: 0;
}

.ox-add-eval-form__picker-row-main[b-ud7srexwdd] {
    flex: 1 1 auto;
    min-width: 0;
}

.ox-add-eval-form__picker-add[b-ud7srexwdd] {
    min-height: 0;
    padding: 2px 6px;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    align-self: center;
}

.ox-add-eval-form__footer[b-ud7srexwdd] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 18px;
    border-top: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
}
/* /Components/Evaluation/AddPersonnelEvalFormDialog.razor.rz.scp.css */
/* 添加人员考评卷：模板表 + 打分人，单层弹窗 */

.ox-add-eval-form__backdrop[b-o4a1njcbpi] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 42, 0.45);
}

.ox-add-eval-form__dialog[b-o4a1njcbpi] {
    position: fixed;
    z-index: 1050;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(52rem, calc(100vw - 1.5rem));
    max-height: min(92vh, 900px);
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    background: var(--ox-surface-elevated, #fff);
    color: var(--ox-fg, inherit);
    box-shadow: 0 28px 64px -16px rgba(15, 23, 42, 0.35);
    outline: none;
}

.ox-add-eval-form__header[b-o4a1njcbpi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
}

.ox-add-eval-form__title[b-o4a1njcbpi] {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
}

.ox-add-eval-form__body[b-o4a1njcbpi] {
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.ox-add-eval-form__search[b-o4a1njcbpi] {
    flex-shrink: 0;
}

.ox-add-eval-form__table-wrap[b-o4a1njcbpi] {
    flex: 1 1 auto;
    min-height: 160px;
    max-height: min(40vh, 360px);
    overflow: auto;
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: var(--ox-radius, 6px);
    background: color-mix(in srgb, var(--ox-surface-elevated, #fff) 94%, transparent);
}

.ox-add-eval-form__table-wrap .ox-data-table[b-o4a1njcbpi] {
    margin: 0;
}

.ox-add-eval-form__row-active[b-o4a1njcbpi] {
    background: color-mix(in srgb, var(--ox-accent, #0ea5e9) 12%, transparent);
}

.ox-add-eval-form__picker-row[b-o4a1njcbpi] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    flex-shrink: 0;
    min-height: 0;
}

.ox-add-eval-form__picker-row-main[b-o4a1njcbpi] {
    flex: 1 1 auto;
    min-width: 0;
}

.ox-add-eval-form__picker-add[b-o4a1njcbpi] {
    min-height: 0;
    padding: 2px 6px;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    align-self: center;
}

.ox-add-eval-form__footer[b-o4a1njcbpi] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 18px;
    border-top: 1px solid var(--ox-border, #e2e8f0);
    flex-shrink: 0;
}
/* /Components/Evaluation/EvaluationCampaignStepMatrix.razor.rz.scp.css */
/* 考核向导 · 赋权矩阵 */
.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar[b-if0bn2eag7] {
    --ev-matrix-toolbar-h: var(--ox-btn-size, 2rem);
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem 0.65rem;
    margin-bottom: 0.75rem;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__btn.menu-btn[b-if0bn2eag7] {
    box-sizing: border-box;
    flex-shrink: 0;
    height: var(--ev-matrix-toolbar-h);
    min-height: var(--ev-matrix-toolbar-h);
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.8125rem;
    line-height: 1.25;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__copy[b-if0bn2eag7] {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 0.4rem;
    flex: 0 1 auto;
    min-width: 0;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__field[b-if0bn2eag7] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__copy .ev-matrix-campaign-toolbar__field[b-if0bn2eag7] {
    flex: 1 1 12rem;
    min-width: 10rem;
    max-width: 16rem;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__search[b-if0bn2eag7] {
    flex: 0 1 12rem;
    min-width: 9rem;
    max-width: 14rem;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__label[b-if0bn2eag7] {
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--evs-ink-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar__select.ox-form-control[b-if0bn2eag7] {
    box-sizing: border-box;
    width: 100%;
    height: var(--ev-matrix-toolbar-h);
    min-height: var(--ev-matrix-toolbar-h);
    padding: 0 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.25;
}

.ev-studio--campaign-wizard .ev-matrix-campaign-toolbar .ev-campaign-qn-control-group[b-if0bn2eag7] {
    height: var(--ev-matrix-toolbar-h);
    min-height: var(--ev-matrix-toolbar-h);
}

.ev-studio--campaign-wizard .ev-matrix-campaign.leadership-rater-matrix-wrap[b-if0bn2eag7] {
    --ev-matrix-col-name-w: 5.5rem;
    --ev-matrix-col-group-w: 5rem;
    --ev-matrix-col-total-w: 8.5rem;
    --ev-matrix-head-row1: 2.75rem;
    margin: 0;
    overflow: auto;
}

.ev-studio--campaign-wizard .ev-matrix-campaign .leadership-rater-matrix[b-if0bn2eag7] {
    font-size: 0.8125rem;
    min-width: max-content;
    border-collapse: separate;
    border-spacing: 0;
}

/* 单边网格线，避免 separate 模式下相邻单元格叠成 2px */
.ev-studio--campaign-wizard .ev-matrix-campaign .leadership-rater-matrix th[b-if0bn2eag7],
.ev-studio--campaign-wizard .ev-matrix-campaign .leadership-rater-matrix td[b-if0bn2eag7] {
    padding: 0.35rem 0.45rem;
    border: 0;
    border-right: 1px solid var(--evs-line, #e2e8f0);
    border-bottom: 1px solid var(--evs-line, #e2e8f0);
    vertical-align: middle;
}

.ev-studio--campaign-wizard .ev-matrix-campaign .leadership-rater-matrix tr > :first-child[b-if0bn2eag7] {
    border-left: 1px solid var(--evs-line, #e2e8f0);
}

/* 双行表头：按 th 钉住；第二行 top 由 JS 写入 --ev-matrix-head-row1 */
.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table thead.ev-matrix-campaign__thead th[b-if0bn2eag7] {
    position: sticky;
    z-index: 5;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    background: var(--evs-paper-muted, #f8fafc);
    white-space: normal;
    word-break: break-word;
    text-transform: none;
    letter-spacing: normal;
}

.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table thead tr.ev-matrix-campaign__head-row--rater th[b-if0bn2eag7] {
    top: 0;
}

.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table thead tr.ev-matrix-campaign__head-row--channel th[b-if0bn2eag7] {
    top: var(--ev-matrix-head-row1);
}

/* 覆盖 evaluation-studio 对 thead/tbody 额外加的 border-bottom */
.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table thead.ev-matrix-campaign__thead th[b-if0bn2eag7],
.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table tbody td[b-if0bn2eag7] {
    border-bottom: 1px solid var(--evs-line, #e2e8f0);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__th-rater[b-if0bn2eag7] {
    min-width: 5rem;
    padding: 0.35rem 0.4rem;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__th-channel[b-if0bn2eag7] {
    min-width: 3.25rem;
    padding: 0.3rem 0.35rem;
}

/* 左上角：姓名 + 职务分类（rowspan 跨两行，横向钉住） */
.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table thead th.ev-matrix-campaign__corner[b-if0bn2eag7] {
    top: 0;
    left: 0;
    z-index: 12;
    vertical-align: middle;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__sort-btn[b-if0bn2eag7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    width: 100%;
    margin: 0;
    padding: 0.15rem 0.25rem;
    border: none;
    border-radius: 4px;
    background: transparent;
    font: inherit;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__sort-btn:hover[b-if0bn2eag7] {
    background: rgba(0, 0, 0, 0.04);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__sort-mark[b-if0bn2eag7] {
    font-size: 0.75em;
    color: var(--evs-accent, #2563eb);
    line-height: 1;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__channel-label[b-if0bn2eag7] {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--evs-ink-muted, #64748b);
}

.ev-studio--campaign-wizard .ev-matrix-campaign .channel-hint[b-if0bn2eag7] {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.625rem;
    font-weight: 500;
    color: var(--evs-ink-faint, #94a3b8);
}

/* 评分人列组：左边线 + 隔组底色 */
.ev-studio--campaign-wizard .ev-matrix-campaign__col--group-start[b-if0bn2eag7] {
    border-left: 2px solid var(--evs-line-strong, #cbd5e1);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__col--alt[b-if0bn2eag7] {
    background: var(--evs-paper-muted, #f1f5f9);
}

.ev-studio--campaign-wizard .ev-matrix-campaign thead .ev-matrix-campaign__col--alt[b-if0bn2eag7] {
    background: #e8eef4;
}

.ev-studio--campaign-wizard .ev-matrix-campaign .sticky-col[b-if0bn2eag7] {
    position: sticky;
    left: 0;
    z-index: 6;
    min-width: var(--ev-matrix-col-name-w);
    background: var(--evs-paper-elevated, #fff);
    border-right: 2px solid var(--evs-line-strong, #cbd5e1);
}

.ev-studio--campaign-wizard .ev-matrix-campaign .sticky-col-2[b-if0bn2eag7] {
    position: sticky;
    left: var(--ev-matrix-col-name-w);
    z-index: 6;
    min-width: var(--ev-matrix-col-group-w);
    background: var(--evs-paper-elevated, #fff);
    border-right: 2px solid var(--evs-line-strong, #cbd5e1);
}

.ev-studio--campaign-wizard .ev-matrix-campaign thead th.ev-matrix-campaign__corner.sticky-col[b-if0bn2eag7] {
    left: 0;
    background: var(--evs-paper-muted, #f8fafc);
}

.ev-studio--campaign-wizard .ev-matrix-campaign thead th.ev-matrix-campaign__corner.sticky-col-2[b-if0bn2eag7] {
    left: var(--ev-matrix-col-name-w);
    background: var(--evs-paper-muted, #f8fafc);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__name[b-if0bn2eag7] {
    text-align: center;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--evs-ink, #0f172a);
    white-space: normal;
    word-break: break-word;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__group[b-if0bn2eag7] {
    text-align: center;
    font-size: 0.75rem;
    line-height: 1.3;
    color: var(--evs-ink-muted, #64748b);
    white-space: normal;
    word-break: break-word;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__weight[b-if0bn2eag7] {
    text-align: center;
}

/* 赋权合计列：横向滚动时钉在右侧 */
.ev-studio--campaign-wizard .ev-matrix-campaign__th-total[b-if0bn2eag7],
.ev-studio--campaign-wizard .ev-matrix-campaign__total-cell[b-if0bn2eag7] {
    position: sticky;
    right: 0;
    z-index: 7;
    min-width: var(--ev-matrix-col-total-w);
    max-width: 10rem;
    background: var(--evs-paper-elevated, #fff);
    border-left: 2px solid var(--evs-line-strong, #cbd5e1);
    box-shadow: -2px 0 0 var(--evs-line-strong, #cbd5e1);
    text-align: left;
    vertical-align: top;
    padding: 0.35rem 0.4rem;
}

.ev-studio--campaign-wizard .ev-matrix-campaign.ev-studio-table-wrap .leadership-rater-matrix.ox-data-table thead th.ev-matrix-campaign__th-total[b-if0bn2eag7] {
    top: 0;
    z-index: 13;
    text-align: center;
    vertical-align: middle;
    background: var(--evs-paper-muted, #f8fafc);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-empty[b-if0bn2eag7] {
    display: block;
    text-align: center;
    font-size: 0.75rem;
    color: var(--evs-ink-faint, #94a3b8);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-lines[b-if0bn2eag7] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-line[b-if0bn2eag7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem;
    font-size: 0.6875rem;
    line-height: 1.35;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-line-name[b-if0bn2eag7] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--evs-ink-muted, #64748b);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-line-val[b-if0bn2eag7] {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--evs-ink, #0f172a);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-sum[b-if0bn2eag7] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
    margin-top: 0.3rem;
    padding-top: 0.25rem;
    border-top: 1px solid var(--evs-line, #e2e8f0);
    font-size: 0.75rem;
    color: var(--evs-ink-muted, #64748b);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-sum strong[b-if0bn2eag7] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: var(--evs-ink, #0f172a);
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-check[b-if0bn2eag7] {
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-sum--ok .ev-matrix-campaign__total-check[b-if0bn2eag7] {
    color: #15803d;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-sum--warn .ev-matrix-campaign__total-check[b-if0bn2eag7],
.ev-studio--campaign-wizard .ev-matrix-campaign__total-sum--warn strong[b-if0bn2eag7] {
    color: #b45309;
}

.ev-studio--campaign-wizard .ev-matrix-campaign__total-cell--warn[b-if0bn2eag7] {
    background: color-mix(in srgb, #f59e0b 8%, var(--evs-paper-elevated, #fff));
}

.ev-studio--campaign-wizard .ev-matrix-campaign__input.ox-form-control[b-if0bn2eag7] {
    box-sizing: border-box;
    width: 2.5rem;
    min-width: 2.5rem;
    height: var(--ox-btn-size, 2rem);
    min-height: var(--ox-btn-size, 2rem);
    margin: 0 auto;
    padding: 0 0.25rem;
    font-size: 0.8125rem;
    text-align: center;
}
/* /Components/Evaluation/EvaluationRaterQrPanel.razor.rz.scp.css */
.ev-rater-qr[b-z231b3d42r] {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--evs-line-strong, var(--ox-ui-border));
}

.ev-rater-qr__head[b-z231b3d42r] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ev-rater-qr__title[b-z231b3d42r] {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--evs-ink, var(--ox-ui-fg));
}

.ev-rater-qr__desc[b-z231b3d42r] {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--evs-ink-muted, var(--ox-ui-muted));
    max-width: 42rem;
}

.ev-rater-qr__grid[b-z231b3d42r] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
    gap: 0.75rem;
}

.ev-rater-qr__card[b-z231b3d42r] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    border: 1px solid var(--evs-line-strong, var(--ox-ui-border));
    border-radius: var(--evs-radius-sm, 0.5rem);
    background: var(--evs-paper-elevated, var(--ox-ui-surface));
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.ev-rater-qr__card--expanded[b-z231b3d42r] {
    grid-column: 1 / -1;
}

@media (min-width: 768px) {
    .ev-rater-qr__card--expanded[b-z231b3d42r] {
        grid-column: span 2;
    }
}

@media (min-width: 1200px) {
    .ev-rater-qr__card--expanded[b-z231b3d42r] {
        grid-column: span 2;
    }
}

.ev-rater-qr__card-head[b-z231b3d42r] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.ev-rater-qr__card-name[b-z231b3d42r] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--evs-ink, var(--ox-ui-fg));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-rater-qr__card-user[b-z231b3d42r] {
    font-size: 0.75rem;
    color: var(--evs-ink-muted, var(--ox-ui-muted));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-rater-qr__card-meta[b-z231b3d42r] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.65rem;
    font-size: 0.75rem;
    color: var(--evs-ink-muted, var(--ox-ui-muted));
}

.ev-rater-qr__card-actions[b-z231b3d42r] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: auto;
}

.ev-rater-qr__card-qr[b-z231b3d42r] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--evs-line, var(--ox-ui-border));
}

.ev-rater-qr__img[b-z231b3d42r] {
    flex-shrink: 0;
    width: 9.5rem;
    height: 9.5rem;
    border-radius: var(--evs-radius-sm, 0.375rem);
    border: 1px solid var(--evs-line, var(--ox-ui-border));
    background: #fff;
}

.ev-rater-qr__link-block[b-z231b3d42r] {
    flex: 1 1 12rem;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ev-rater-qr__link-title[b-z231b3d42r] {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
}

.ev-rater-qr__link-code[b-z231b3d42r] {
    display: block;
    padding: 0.45rem 0.55rem;
    font-size: 0.6875rem;
    line-height: 1.45;
    word-break: break-all;
    border-radius: var(--evs-radius-sm, 0.375rem);
    background: var(--evs-paper-muted, var(--ox-ui-surface-muted));
    color: var(--evs-ink, var(--ox-ui-fg));
}

.ev-rater-qr__hint[b-z231b3d42r] {
    margin: 0;
    font-size: 0.6875rem;
    line-height: 1.4;
    color: var(--evs-ink-muted, var(--ox-ui-muted));
}
/* /Components/Evaluation/EvaluationScoreForm.razor.rz.scp.css */
/* 评分卡片：移动端样式 - 分值右上角 + 底部固定操作栏 */

/* 整表纵向节奏：顶层块（被评头 + 题目 + 底部操作）间距一致 */
.ev-score-form[b-6b30elu97w] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--ev-score-stack-gap, 1rem);
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .ev-score-form[b-6b30elu97w] {
        --ev-score-stack-gap: 1.125rem;
    }
}

/* 顶部：谁在被打分（被评对象），与问卷题目区分开 */
.ev-score-form__subject-card[b-6b30elu97w] {
    border: 1px solid color-mix(in srgb, var(--ox-accent, #0067c0) 38%, var(--ox-border, #e2e8f0));
    border-radius: 12px;
    padding: 0.75rem 1rem;
    margin-bottom: 0;
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--ox-accent, #0067c0) 11%, rgba(255, 255, 255, 0.97)),
        rgba(255, 255, 255, 0.98)
    );
    box-sizing: border-box;
}

.ev-score-form__subject-kicker[b-6b30elu97w] {
    margin: 0 0 0.35rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--ox-muted, #64748b);
}

.ev-score-form__subject-name[b-6b30elu97w] {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ox-title, #0f172a);
    line-height: 1.35;
    word-break: break-word;
    min-width: 0;
    flex: 1 1 auto;
}

.ev-score-form__subject-head[b-6b30elu97w] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.ev-score-form__subject-score-wrap[b-6b30elu97w] {
    flex-shrink: 0;
    min-width: 54px;
    border-radius: 10px;
    padding: 4px 8px;
    text-align: center;
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 14%, transparent);
    color: var(--ox-accent, #0067c0);
}

.ev-score-form__subject-score-label[b-6b30elu97w] {
    display: block;
    font-size: 0.625rem;
    line-height: 1.2;
    opacity: 0.85;
    font-weight: 600;
}

.ev-score-form__subject-score[b-6b30elu97w] {
    display: block;
    margin-top: 1px;
    font-size: 1rem;
    line-height: 1.2;
    font-weight: 800;
}

.ev-score-form__subject-tags[b-6b30elu97w] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.ev-score-form__subject-tag[b-6b30elu97w] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 2px 7px;
    border-radius: 5px;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.35;
    background: #f1f5f9;
    color: var(--ox-muted, #64748b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-score-form__subject-tag--org[b-6b30elu97w] {
    background: #f5f3ff;
    color: #7c3aed;
}

/* legacy dl meta — removed from markup; keep minimal reset if reused elsewhere */
.ev-score-form__subject-meta[b-6b30elu97w] {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem 1rem;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
}

@media (min-width: 480px) {
    .ev-score-form__subject-meta[b-6b30elu97w] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.ev-score-form__subject-meta > div[b-6b30elu97w] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
    margin: 0;
}

.ev-score-form__subject-meta dt[b-6b30elu97w] {
    margin: 0;
    flex-shrink: 0;
    font-weight: 600;
    color: var(--ox-muted, #64748b);
}

.ev-score-form__subject-meta dt[b-6b30elu97w]::after {
    content: "：";
}

.ev-score-form__subject-meta dd[b-6b30elu97w] {
    margin: 0;
    flex: 1 1 6rem;
    min-width: 0;
    color: var(--ox-title, #1e293b);
    overflow-wrap: anywhere;
}

/* 题目卡片：分值右上角 */
.ev-score-form__item[b-6b30elu97w] {
    position: relative;
    border-radius: 14px;
    padding: var(--ev-score-item-py, 0.875rem) var(--ev-score-item-px, 1rem);
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 88%, #fff);
    background: color-mix(in srgb, #ffffff 76%, rgba(255, 255, 255, 0.4));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 10px 24px -16px rgba(15, 23, 42, 0.35);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ev-score-form__item--single[b-6b30elu97w] {
    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 24%, var(--ox-border, #e2e8f0));
}

.ev-score-form__item--multi[b-6b30elu97w] {
    border-color: color-mix(in srgb, #8b5cf6 32%, var(--ox-border, #e2e8f0));
}

.ev-score-form__item--graded[b-6b30elu97w] {
    border-left: 3px solid var(--ox-accent, #2563eb);
}

.ev-score-form__graded-detail[b-6b30elu97w] {
    padding-top: 0.25rem;
}

.ev-score-form__item--range[b-6b30elu97w] {
    border-color: color-mix(in srgb, #0ea5e9 32%, var(--ox-border, #e2e8f0));
}

.ev-score-form__item-head[b-6b30elu97w] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 0.75rem 1rem;
    padding-right: 6rem; /* 为右上角分值留出空间 */
}

.ev-score-form__item-title-wrap[b-6b30elu97w] {
    min-width: 0;
    display: flex;
    align-items: flex-start;
}

.ev-score-form__item-title-block[b-6b30elu97w] {
    min-width: 0;
}

.ev-score-form__item-title[b-6b30elu97w] {
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ox-title, #0f172a);
    white-space: pre-line;
}

.ev-score-form__item-weight[b-6b30elu97w] {
    margin: 2px 0 0;
    font-size: 0.75rem;
    line-height: 1.3;
    color: #64748b;
}

/* 分值：定位到卡片右上角 */
.ev-score-form__item-score[b-6b30elu97w] {
    position: absolute;
    top: 0.875rem;
    right: 1rem;
    flex-shrink: 0;
    min-width: 60px;
    border-radius: 10px;
    padding: 6px 10px;
    text-align: center;
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 14%, transparent);
    color: var(--ox-accent, #0067c0);
    z-index: 1;
}

.ev-score-form__item-score-label[b-6b30elu97w] {
    display: block;
    font-size: 0.625rem;
    line-height: 1.2;
    opacity: 0.8;
    font-weight: 600;
}

.ev-score-form__item-score strong[b-6b30elu97w] {
    display: block;
    margin-top: 1px;
    font-size: 1rem;
    line-height: 1.2;
    font-weight: 800;
}

.ev-score-form__choices .menu-btn[b-6b30elu97w] {
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        color 0.15s ease;
}

.ev-score-form__choices .menu-btn.menu-btn-primary.ev-score-form__choice--selected[b-6b30elu97w] {
    font-weight: 700;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--ox-accent, #0067c0) 38%, transparent);
}

.ev-score-form__choices.ev-score-form__choices--single[b-6b30elu97w] {
    gap: 0.5rem 0.625rem;
}

.ev-score-form__choices.ev-score-form__choices--multi[b-6b30elu97w] {
    gap: 0.5rem 0.75rem;
}

.ev-score-form__range-wrap[b-6b30elu97w] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.ev-score-form__range-meta[b-6b30elu97w] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.625rem;
}

.ev-score-form--stack .ev-score-form__choices[b-6b30elu97w] {
    flex-direction: column;
    align-items: stretch;
}

.ev-score-form--stack .ev-score-form__choices .menu-btn[b-6b30elu97w] {
    width: 100%;
    justify-content: center;
    min-height: 44px;
}

.ev-score-form--stack .ev-score-form__choices .menu-btn.menu-btn-primary.ev-score-form__choice--selected[b-6b30elu97w] {
    border-width: 2px;
    box-shadow:
        0 0 0 3px color-mix(in srgb, var(--ox-accent, #0067c0) 22%, transparent),
        0 2px 8px -2px color-mix(in srgb, var(--ox-accent, #0067c0) 35%, transparent);
}

/* 底部操作栏：固定定位 */
.ev-score-form__actions.score-actions[b-6b30elu97w] {
    margin-top: 0.125rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 92%, #94a3b8);
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .ev-score-form__item-head[b-6b30elu97w] {
        flex-direction: column;
        align-items: flex-start;
        padding-right: 0;
    }

    .ev-score-form__item-score[b-6b30elu97w] {
        top: 0.625rem;
        right: 0.75rem;
        min-width: 54px;
        padding: 4px 8px;
    }

    .ev-score-form__item-score strong[b-6b30elu97w] {
        font-size: 0.9375rem;
    }

    .ev-score-form__range-meta[b-6b30elu97w] {
        flex-direction: column;
        align-items: stretch;
    }

    .ev-score-form__actions.score-actions[b-6b30elu97w] {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        background: linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.98) 100%);
        backdrop-filter: blur(20px) saturate(180%);
        -webkit-backdrop-filter: blur(20px) saturate(180%);
        border-top: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 65%, transparent);
        border-radius: 0;
        padding: 0.625rem 0.75rem max(0.75rem, env(safe-area-inset-bottom, 0px));
        margin: 0;
        justify-content: space-between;
        z-index: 50;
        box-shadow: 0 -4px 20px -8px rgba(15, 23, 42, 0.12);
    }

    .ev-score-form__actions.score-actions .menu-btn[b-6b30elu97w] {
        flex: 1;
        min-height: 44px;
        justify-content: center;
        font-size: 0.875rem;
    }

    .ev-score-form[b-6b30elu97w] {
        padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
    }
}
/* /Components/Evaluation/EvaluationStudioPeriodSwitcher.razor.rz.scp.css */
.ev-studio-period-switcher[b-p8qsn034wq] {
    position: relative;
    flex-shrink: 0;
}

.ev-studio-period-switcher__backdrop[b-p8qsn034wq] {
    position: fixed;
    inset: 0;
    z-index: 40;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: default;
}

.ev-studio-period-switcher__trigger[b-p8qsn034wq] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    max-width: min(22rem, 42vw);
    min-height: 2.35rem;
    padding: 0.35rem 0.55rem 0.35rem 0.65rem;
    border-radius: 999px;
    border: 1px solid var(--evs-line-strong);
    background: var(--evs-paper);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    cursor: pointer;
    font: inherit;
    color: var(--evs-ink);
    transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.ev-studio-period-switcher__trigger:hover:not(:disabled)[b-p8qsn034wq] {
    border-color: color-mix(in srgb, var(--evs-accent) 45%, var(--evs-line-strong));
    background: var(--evs-accent-soft);
}

.ev-studio-period-switcher__trigger:focus-visible[b-p8qsn034wq] {
    outline: 2px solid var(--evs-accent);
    outline-offset: 2px;
}

.ev-studio-period-switcher__trigger:disabled[b-p8qsn034wq] {
    opacity: 0.6;
    cursor: not-allowed;
}

.ev-studio-period-switcher__trigger[aria-expanded="true"][b-p8qsn034wq] {
    border-color: var(--evs-accent);
    background: var(--evs-accent-soft);
    box-shadow: 0 0 0 2px var(--evs-accent-soft);
}

.ev-studio-period-switcher__icon[b-p8qsn034wq] {
    flex-shrink: 0;
    font-size: 1rem;
    color: var(--evs-accent);
}

.ev-studio-period-switcher__label[b-p8qsn034wq] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: 600;
    text-align: left;
}

.ev-studio-period-switcher__caret[b-p8qsn034wq] {
    flex-shrink: 0;
    font-size: 0.75rem;
    color: var(--evs-ink-muted);
    transition: transform 0.15s ease;
}

.ev-studio-period-switcher__caret--open[b-p8qsn034wq] {
    transform: rotate(180deg);
}

.ev-studio-period-switcher__menu[b-p8qsn034wq] {
    position: absolute;
    top: calc(100% + 0.35rem);
    right: 0;
    z-index: 50;
    min-width: 100%;
    max-width: min(24rem, 90vw);
    max-height: min(16rem, 50vh);
    overflow: auto;
    padding: 0.35rem;
    border-radius: var(--evs-radius-sm);
    border: 1px solid var(--evs-line-strong);
    background: var(--evs-paper-elevated);
    box-shadow: var(--evs-shadow);
}

.ev-studio-period-switcher__option[b-p8qsn034wq] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.5rem 0.55rem;
    border: 0;
    border-radius: calc(var(--evs-radius-sm) - 2px);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--evs-ink);
    text-align: left;
    transition: background 0.1s ease;
}

.ev-studio-period-switcher__option:hover[b-p8qsn034wq] {
    background: var(--evs-accent-soft);
}

.ev-studio-period-switcher__option--active[b-p8qsn034wq] {
    font-weight: 700;
    color: var(--evs-accent);
    background: var(--evs-accent-soft);
}

.ev-studio-period-switcher__check[b-p8qsn034wq] {
    flex-shrink: 0;
    width: 1rem;
    font-size: 0.875rem;
    color: var(--evs-accent);
}

.ev-studio-period-switcher__option-text[b-p8qsn034wq] {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
}
/* /Components/Layout/EvaluationMobileLayout.razor.rz.scp.css */
/* 移动考核页外层布局 — 全屏 + 安全区 */

.ev-mob-studio[b-9mmvec62mg] {
    min-height: 100dvh;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    overflow: hidden;
    font-family: -apple-system, 'SF Pro Display', system-ui, 'Segoe UI', Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    background: var(--ox-surface-muted, #f1f5f9);
    /* 禁止文本长按选择（App 体验） */
    -webkit-user-select: none;
    user-select: none;
}

.ev-mob-studio input[b-9mmvec62mg],
.ev-mob-studio textarea[b-9mmvec62mg] {
    -webkit-user-select: text;
    user-select: text;
}

.ev-mob-studio--compact-chrome[b-9mmvec62mg] {
    background: var(--ox-surface-muted, #f1f5f9);
}

/* 微信仍显示底部工具栏时的兜底留白 */
html.ua-wechat .ox-m-shell__tabbar[b-9mmvec62mg] {
    padding-bottom: calc(var(--ox-m-guard-bottom, 20px) + 28px);
}

html.ua-wechat .ox-m-shell:not(:has(.ox-m-shell__tabbar)) .ox-m-shell__content[b-9mmvec62mg] {
    padding-bottom: calc(max(16px, env(safe-area-inset-bottom, 0px)) + 28px);
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* 全局布局样式交由各页面控制 */
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* 导航样式已迁移至 Tailwind 工具类 */
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* 断线重连弹层：类名与 #id 与框架协议绑定，仅改色与圆角等视觉；勿删状态类。 */

.components-reconnect-first-attempt-visible[b-fc6zlgni3l],
.components-reconnect-repeated-attempt-visible[b-fc6zlgni3l],
.components-reconnect-failed-visible[b-fc6zlgni3l],
.components-pause-visible[b-fc6zlgni3l],
.components-resume-failed-visible[b-fc6zlgni3l],
.components-rejoining-animation[b-fc6zlgni3l] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-fc6zlgni3l],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-fc6zlgni3l],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-fc6zlgni3l],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-fc6zlgni3l],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-fc6zlgni3l],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-fc6zlgni3l],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-fc6zlgni3l] {
    display: block;
}

/* 未打开时 <dialog> 须保持隐藏；勿对 #components-reconnect-modal 本体加 display:block（会顶掉浏览器关闭态，导致首屏/重连时闪一帧白模态） */
#components-reconnect-modal:not([open])[b-fc6zlgni3l] {
    display: none !important;
    animation: none;
    opacity: 0;
    box-shadow: none;
}

#components-reconnect-modal[open][b-fc6zlgni3l] {
    display: block;
    background: var(--ox-surface, #fff);
    color: #0f172a;
    width: min(20rem, 92vw);
    margin: 20vh auto;
    padding: 1.75rem 1.5rem;
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: 0.75rem;
    box-shadow: 0 10px 40px rgba(15, 23, 42, 0.12);
    opacity: 1;
    animation: components-reconnect-modal-slideUp-b-fc6zlgni3l 1.5s cubic-bezier(0.05, 0.89, 0.25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-fc6zlgni3l 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
}

#components-reconnect-modal[open][b-fc6zlgni3l]::backdrop {
    background-color: rgba(15, 23, 42, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-fc6zlgni3l 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-fc6zlgni3l {
    0% {
        transform: translateY(20px) scale(0.98);
    }
    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-fc6zlgni3l {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

.components-reconnect-container[b-fc6zlgni3l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9rem;
}

#components-reconnect-modal p[b-fc6zlgni3l] {
    margin: 0;
    text-align: center;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #334155;
}

#components-reconnect-modal button[b-fc6zlgni3l] {
    border: 0;
    background: var(--ox-accent, #0067c0);
    color: #fff;
    font-size: 0.88rem;
    padding: 0.4rem 1.4rem;
    border-radius: 0.4rem;
    cursor: pointer;
    font-weight: 600;
}

#components-reconnect-modal button:hover[b-fc6zlgni3l] {
    filter: brightness(1.06);
}

#components-reconnect-modal button:active[b-fc6zlgni3l] {
    filter: brightness(0.96);
}

.components-rejoining-animation[b-fc6zlgni3l] {
    position: relative;
    width: 72px;
    height: 72px;
}

.components-rejoining-animation div[b-fc6zlgni3l] {
    position: absolute;
    border: 3px solid var(--ox-accent, #0067c0);
    opacity: 1;
    border-radius: 50%;
    animation: components-rejoining-ripple-b-fc6zlgni3l 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.components-rejoining-animation div:nth-child(2)[b-fc6zlgni3l] {
    animation-delay: -0.5s;
}

@keyframes components-rejoining-ripple-b-fc6zlgni3l {
    0% {
        top: 36px;
        left: 36px;
        width: 0;
        height: 0;
        opacity: 0;
    }
    4.9% {
        top: 36px;
        left: 36px;
        width: 0;
        height: 0;
        opacity: 0;
    }
    5% {
        top: 36px;
        left: 36px;
        width: 0;
        height: 0;
        opacity: 1;
    }
    100% {
        top: 0;
        left: 0;
        width: 72px;
        height: 72px;
        opacity: 0;
    }
}
/* /Components/Mobile/EvaluationMobileQuotaBar.razor.rz.scp.css */
/* 移动端分档控额状态条 — 固定于 Tab 栏上方 */

.ev-quota-bar[b-vww5av8s5n] {
    flex-shrink: 0;
    width: 100%;
    padding: 8px 12px 10px;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.98);
    border-bottom: 0.5px solid rgba(15, 23, 42, 0.08);
    border-top: 0.5px solid rgba(15, 23, 42, 0.06);
}

.ev-quota-bar--embedded[b-vww5av8s5n] {
    margin: 8px 12px 0;
    width: auto;
    border-radius: 12px;
    border: 0.5px solid rgba(15, 23, 42, 0.08);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}

.ev-quota-bar--ok[b-vww5av8s5n] {
    background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}

.ev-quota-bar--warn[b-vww5av8s5n] {
    background: linear-gradient(180deg, #fff7ed 0%, #fff 100%);
}

.ev-quota-bar--hint[b-vww5av8s5n] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 14px;
    font-size: 0.75rem;
    color: #64748b;
    background: #f8fafc;
}

.ev-quota-bar__hint-icon[b-vww5av8s5n] {
    font-size: 0.875rem;
    opacity: 0.75;
}

.ev-quota-bar--loading[b-vww5av8s5n] {
    padding: 12px 14px;
}

.ev-quota-bar__loading-line[b-vww5av8s5n] {
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, #e2e8f0 0%, #f1f5f9 50%, #e2e8f0 100%);
    background-size: 200% 100%;
    animation: ev-quota-bar-shimmer-b-vww5av8s5n 1.2s ease-in-out infinite;
}

@keyframes ev-quota-bar-shimmer-b-vww5av8s5n {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.ev-quota-bar__head[b-vww5av8s5n] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 6px;
}

.ev-quota-bar__head-icon[b-vww5av8s5n] {
    font-size: 0.875rem;
    color: #64748b;
}

.ev-quota-bar__head-title[b-vww5av8s5n] {
    font-size: 0.6875rem;
    font-weight: 700;
    color: #475569;
    letter-spacing: 0.02em;
}

.ev-quota-bar__bands[b-vww5av8s5n] {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
}

.ev-quota-bar__bands[b-vww5av8s5n]::-webkit-scrollbar {
    display: none;
}

.ev-quota-bar__band[b-vww5av8s5n] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f1f5f9;
    font-size: 0.6875rem;
    font-weight: 600;
    color: #334155;
    font-variant-numeric: tabular-nums;
}

.ev-quota-bar__band-name[b-vww5av8s5n] {
    color: #64748b;
    font-weight: 600;
}

.ev-quota-bar__band-count[b-vww5av8s5n] {
    color: #0f172a;
}

.ev-quota-bar__band--full .ev-quota-bar__band-count[b-vww5av8s5n] {
    color: #b45309;
}

.ev-quota-bar__band--over[b-vww5av8s5n] {
    background: #fef2f2;
}

.ev-quota-bar__band--over .ev-quota-bar__band-count[b-vww5av8s5n] {
    color: #dc2626;
}

.ev-quota-bar__band--preview[b-vww5av8s5n] {
    background: #ecfdf5;
    box-shadow: 0 0 0 1.5px #10b981;
}

.ev-quota-bar__band--preview-warn[b-vww5av8s5n] {
    background: #fef2f2;
    box-shadow: 0 0 0 1.5px #ef4444;
}

.ev-quota-bar__message[b-vww5av8s5n] {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin: 6px 0 0;
    font-size: 0.6875rem;
    line-height: 1.45;
    font-weight: 500;
}

.ev-quota-bar__message-icon[b-vww5av8s5n] {
    flex-shrink: 0;
    margin-top: 1px;
    font-size: 0.8125rem;
}

.ev-quota-bar__message--ok[b-vww5av8s5n] {
    color: #047857;
}

.ev-quota-bar__message--warn[b-vww5av8s5n] {
    color: #c2410c;
}

.ev-quota-bar--compact .ev-quota-bar__head[b-vww5av8s5n] {
    margin-bottom: 4px;
}

.ev-quota-bar--compact .ev-quota-bar__message[b-vww5av8s5n] {
    margin-top: 4px;
}
/* /Components/Mobile/EvaluationMobileShell.razor.rz.scp.css */
/* ============================================================
   考核模块 · 移动端壳 v3 — 原生触感设计系统
   设计语言：iOS/Android 混合风格 · 系统字体 · 沉浸式体验
   ============================================================ */

/* ===== 壳主体 + 设计令牌（变量挂在 shell 上，避免 Blazor 隔离 CSS 中 :root 失效） ===== */
.ox-m-shell[b-pfi84ivm4r] {
    --ox-m-font: -apple-system, 'SF Pro Display', 'Helvetica Neue', system-ui, 'Segoe UI', Roboto, sans-serif;
    --ox-m-font-mono: ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace;
    --ox-m-appbar-h: 50px;
    --ox-m-tabbar-h: 56px;
    --ox-m-safe-left: env(safe-area-inset-left, 0px);
    --ox-m-safe-right: env(safe-area-inset-right, 0px);
    --ox-m-guard-top: max(12px, env(safe-area-inset-top, 0px));
    --ox-m-guard-bottom: max(20px, env(safe-area-inset-bottom, 0px));
    --ox-m-radius-sm: 8px;
    --ox-m-radius-md: 12px;
    --ox-m-radius-lg: 16px;
    --ox-m-radius-xl: 20px;
    --ox-m-ease: cubic-bezier(0.34, 0.69, 0.1, 1);
    --ox-m-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --ox-m-transition: 0.2s var(--ox-m-ease);
    --ox-m-transition-slow: 0.35s var(--ox-m-ease);
    --ox-m-shadow-sm: 0 0.5px 1px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --ox-m-shadow-md: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 0, 0, 0.05);
    --ox-m-shadow-lg: 0 2px 8px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.06);
    --ox-m-shadow-tab: 0 -2px 12px rgba(0, 0, 0, 0.06);

    display: flex;
    flex-direction: column;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    background: var(--ox-surface-muted, #f1f5f9);
    color: var(--ox-foreground, #0f172a);
    padding-left: var(--ox-m-safe-left);
    padding-right: var(--ox-m-safe-right);
    box-sizing: border-box;
}

/* ===== 全局重置 ===== */
.ox-m-shell[b-pfi84ivm4r], .ox-m-shell *[b-pfi84ivm4r] {
    font-family: var(--ox-m-font);
}

/* ===== 顶部导航栏 (App Bar) ===== */
.ox-m-shell__appbar[b-pfi84ivm4r] {
    flex-shrink: 0;
    padding-top: var(--ox-m-guard-top);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.08);
    z-index: 10;
}

.ox-m-shell__appbar--with-below[b-pfi84ivm4r] {
    border-bottom: 0;
}

.ox-m-shell__below-appbar[b-pfi84ivm4r] {
    flex-shrink: 0;
}

.ox-m-shell__appbar-inner[b-pfi84ivm4r] {
    display: grid;
    grid-template-columns: minmax(40px, 56px) 1fr minmax(40px, 56px);
    align-items: center;
    min-height: var(--ox-m-appbar-h);
    padding: 0 4px;
    box-sizing: border-box;
}

.ox-m-shell__appbar-side[b-pfi84ivm4r] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
}

.ox-m-shell__appbar-side--start[b-pfi84ivm4r] {
    justify-content: flex-start;
    padding-left: 2px;
}

.ox-m-shell__appbar-side--end[b-pfi84ivm4r] {
    justify-content: flex-end;
    padding-right: 2px;
}

/* 返回按钮 (iOS 风格) */
.ox-m-backbtn[b-pfi84ivm4r] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--ox-m-radius-sm);
    color: var(--ox-accent, #0067c0);
    text-decoration: none;
    font-size: 1.25rem;
    transition: background var(--ox-m-transition);
    -webkit-tap-highlight-color: transparent;
}

.ox-m-backbtn:active[b-pfi84ivm4r] {
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 12%, transparent);
    transform: scale(0.9);
}

/* 标题区 (iOS 大标题风格) */
.ox-m-shell__appbar-main[b-pfi84ivm4r] {
    min-width: 0;
    text-align: center;
}

.ox-m-shell__title[b-pfi84ivm4r] {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: #000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ox-m-shell__subtitle[b-pfi84ivm4r] {
    display: none; /* 移动端顶部不显示副标题，避免拥挤 */
}

/* ===== 内容滚动区 ===== */
.ox-m-shell__content[b-pfi84ivm4r] {
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    padding: calc(8px + var(--ox-m-guard-top) * 0.25) 14px var(--ox-m-guard-bottom);
    box-sizing: border-box;
    scroll-behavior: smooth;
    scroll-padding-top: var(--ox-m-guard-top);
    scroll-padding-bottom: var(--ox-m-guard-bottom);
}

/* 无底部 Tab 的页面（如打分页） */
.ox-m-shell:not(:has(.ox-m-shell__tabbar)) .ox-m-shell__content[b-pfi84ivm4r] {
    padding-bottom: calc(var(--ox-m-guard-bottom) + 8px);
}

/* 有固定操作栏时：内容底边距交给操作栏，避免双重安全区 */
.ox-m-shell__content--with-bar[b-pfi84ivm4r] {
    padding-bottom: 12px;
}

.ox-m-shell__bottombar[b-pfi84ivm4r] {
    flex-shrink: 0;
    padding: 0.65rem 14px calc(0.65rem + var(--ox-m-guard-bottom));
    box-sizing: border-box;
    background: #fff;
    border-top: 0.5px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 -4px 16px rgba(28, 39, 55, 0.06);
    z-index: 9;
}

/* 内容区入口动画 (仅首次) */
@keyframes ox-m-content-fade-b-pfi84ivm4r {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ===== 底部导航栏 (Tab Bar — iOS 风格) ===== */
.ox-m-shell__tabbar[b-pfi84ivm4r] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: calc(var(--ox-m-tabbar-h) + var(--ox-m-guard-bottom));
    padding-bottom: var(--ox-m-guard-bottom);
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-top: 0.5px solid rgba(0, 0, 0, 0.08);
    box-shadow: var(--ox-m-shadow-tab);
    z-index: 10;
}

.ox-m-shell__tabbar[b-pfi84ivm4r]  .ox-m-tabbar-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    min-height: var(--ox-m-tabbar-h);
}

/* Tab */
.ox-m-shell__tabbar[b-pfi84ivm4r]  .ox-m-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    min-height: var(--ox-m-tabbar-h);
    padding: 6px 4px 4px;
    text-decoration: none;
    color: #8e8e93; /* iOS 未选中灰 */
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    -webkit-tap-highlight-color: transparent;
    transition: color var(--ox-m-transition);
    position: relative;
}

.ox-m-shell__tabbar[b-pfi84ivm4r]  .ox-m-tab.active {
    color: var(--ox-accent, #0067c0);
}

/* 图标 */
.ox-m-shell__tabbar[b-pfi84ivm4r]  .ox-m-tab__icon {
    font-size: 1.375rem;
    line-height: 1;
    margin-bottom: 1px;
    transition: transform var(--ox-m-transition);
}

.ox-m-shell__tabbar[b-pfi84ivm4r]  .ox-m-tab:active .ox-m-tab__icon {
    transform: scale(0.86);
}

/* 徽标 (iOS 红点/数字) */
.ox-m-shell__tabbar[b-pfi84ivm4r]  .ox-m-tab__badge {
    position: absolute;
    top: 2px;
    left: 50%;
    margin-left: 10px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ff3b30; /* iOS 红 */
    color: #fff;
    font-size: 0.5625rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 999px;
    border: 1.5px solid rgba(255, 255, 255, 0.8);
    animation: ox-m-badge-pop-b-pfi84ivm4r 0.3s var(--ox-m-ease-spring);
}

@keyframes ox-m-badge-pop-b-pfi84ivm4r {
    from { transform: scale(0); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* ===== 顶栏图标按钮 (iOS 风格) ===== */
.ox-m-shell[b-pfi84ivm4r]  .ox-m-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: var(--ox-m-radius-sm);
    background: transparent;
    color: var(--ox-accent, #0067c0);
    cursor: pointer;
    font-size: 1.125rem;
    transition: background var(--ox-m-transition);
    -webkit-tap-highlight-color: transparent;
}

.ox-m-shell[b-pfi84ivm4r]  .ox-m-iconbtn:active {
    background: color-mix(in srgb, var(--ox-accent, #0067c0) 12%, transparent);
    transform: scale(0.88);
}

.ox-m-shell[b-pfi84ivm4r]  .ox-m-iconbtn--spinning {
    animation: ox-m-spin-b-pfi84ivm4r 0.8s linear infinite;
}

@keyframes ox-m-spin-b-pfi84ivm4r {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ===== 通用移动端全局样式 (也作用于 shell 内的其他组件) ===== */

/* 原生风格卡片 */
.ox-m-shell[b-pfi84ivm4r]  .ox-card {
    background: #fff;
    border-radius: var(--ox-m-radius-md);
    box-shadow: var(--ox-m-shadow-sm);
    border: none;
}

/* 原生风格按钮 */
.ox-m-shell[b-pfi84ivm4r]  .ox-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    border: none;
    border-radius: var(--ox-m-radius-md);
    font-family: var(--ox-m-font);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: opacity var(--ox-m-transition), transform var(--ox-m-transition);
}

.ox-m-shell[b-pfi84ivm4r]  .ox-btn:active {
    transform: scale(0.97);
    opacity: 0.85;
}

.ox-m-shell[b-pfi84ivm4r]  .ox-btn-primary {
    background: var(--ox-accent, #0067c0);
    color: #fff;
}

.ox-m-shell[b-pfi84ivm4r]  .ox-btn-secondary {
    background: #f1f5f9;
    color: #0f172a;
}

.ox-m-shell[b-pfi84ivm4r]  .ox-btn-danger {
    background: #fef2f2;
    color: #dc2626;
}

/* 搜索框 */
.ox-m-shell[b-pfi84ivm4r]  .ox-search {
    width: 100%;
    min-height: 40px;
    border: none;
    border-radius: 10px;
    padding: 0 12px 0 36px;
    background: #f1f5f9;
    font-family: var(--ox-m-font);
    font-size: 0.875rem;
    color: #0f172a;
    outline: none;
    box-sizing: border-box;
    transition: background var(--ox-m-transition);
}

.ox-m-shell[b-pfi84ivm4r]  .ox-search::placeholder {
    color: #94a3b8;
}

.ox-m-shell[b-pfi84ivm4r]  .ox-search:focus {
    background: #e8ecf0;
}

/* 分割线 */
.ox-m-shell[b-pfi84ivm4r]  .ox-divider {
    height: 0.5px;
    background: rgba(0, 0, 0, 0.06);
    margin: 0 -14px;
}

/* Toast / 提示条 */
.ox-m-shell[b-pfi84ivm4r]  .ox-toast {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: calc(var(--ox-m-tabbar-h) + var(--ox-m-guard-bottom) + 72px);
    padding: 12px 16px;
    border-radius: var(--ox-m-radius-md);
    background: rgba(0, 0, 0, 0.85);
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 500;
    text-align: center;
    z-index: 100;
    animation: ox-toast-in-b-pfi84ivm4r 0.25s var(--ox-m-ease);
    backdrop-filter: blur(10px);
}

@keyframes ox-toast-in-b-pfi84ivm4r {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.ev-mob-studio--compact-chrome[b-pfi84ivm4r] {
    /* 扫码入口：内容区顶到微信顶栏下方，不再叠 App 顶栏 */
    background: var(--ox-surface-muted, #f1f5f9);
}

/* 扫码/微信精简模式：无 App 顶栏，内容区顶格 + 安全区 */
.ox-m-shell--compact-chrome .ox-m-shell__content[b-pfi84ivm4r] {
    padding-top: max(10px, env(safe-area-inset-top, 0px));
}

.ox-m-shell--compact-chrome:not(:has(.ox-m-shell__tabbar)) .ox-m-shell__content[b-pfi84ivm4r] {
    padding-bottom: calc(max(16px, env(safe-area-inset-bottom, 0px)) + 8px);
}

/* ===== 安全区适配 (窄刘海/挖孔屏) ===== */
@media (display-mode: standalone) {
    /* PWA 全屏模式额外适配 */
}
/* /Components/Mobile/EvaluationScoreWheelSheet.razor.rz.scp.css */
/* 底部评分 Sheet — iOS 闹钟式滚轮 */

.ev-score-sheet[b-7ij0e5k1b9] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: ev-score-sheet-fade-b-7ij0e5k1b9 0.22s ease-out;
}

@keyframes ev-score-sheet-fade-b-7ij0e5k1b9 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ev-score-sheet-rise-b-7ij0e5k1b9 {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}

.ev-score-sheet__panel[b-7ij0e5k1b9] {
    --ev-score-sheet-safe-bottom: max(24px, calc(env(safe-area-inset-bottom, 0px) + 16px));
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 520px;
    max-height: min(88vh, 100dvh);
    overflow: hidden;
    border-radius: 20px 20px 0 0;
    background: #fff;
    box-shadow: 0 -8px 32px rgba(15, 23, 42, 0.18);
    animation: ev-score-sheet-rise-b-7ij0e5k1b9 0.32s cubic-bezier(0.32, 0.72, 0, 1);
}

.ev-score-sheet__header[b-7ij0e5k1b9] {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;
    padding: 10px 12px 6px;
    border-bottom: 0.5px solid rgba(15, 23, 42, 0.08);
    background: #fff;
    z-index: 2;
}

.ev-score-sheet__body[b-7ij0e5k1b9] {
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--ev-score-sheet-safe-bottom);
}

.ev-score-sheet__header-main[b-7ij0e5k1b9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
}

.ev-score-sheet__header-title[b-7ij0e5k1b9] {
    text-align: center;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #64748b;
    letter-spacing: 0.02em;
}

.ev-score-sheet__header-main .ev-score-sheet__status[b-7ij0e5k1b9] {
    font-size: 0.8125rem;
    padding: 3px 10px;
}

.ev-score-sheet__panel--compact[b-7ij0e5k1b9] {
    max-height: min(92vh, 100dvh);
}

.ev-score-sheet__compact-top[b-7ij0e5k1b9] {
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    padding: 10px 0 4px;
}

.ev-score-sheet__grabber[b-7ij0e5k1b9] {
    width: 36px;
    height: 4px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.16);
}

.ev-score-sheet__footer[b-7ij0e5k1b9] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    border-top: 0.5px solid rgba(15, 23, 42, 0.08);
    background: #fff;
}

.ev-score-sheet__footer-actions[b-7ij0e5k1b9] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ev-score-sheet__footer-btn[b-7ij0e5k1b9] {
    min-height: 36px;
    padding: 0 14px;
    border: none;
    border-radius: 10px;
    background: #f1f5f9;
    color: #334155;
    font-size: 0.875rem;
    font-weight: 600;
}

.ev-score-sheet__footer-btn--primary[b-7ij0e5k1b9] {
    background: var(--ox-accent, #0067c0);
    color: #fff;
}

.ev-score-sheet__footer-btn:disabled[b-7ij0e5k1b9] {
    opacity: 0.55;
}

.ev-score-sheet__panel--compact .ev-score-sheet__body[b-7ij0e5k1b9] {
    padding-bottom: 12px;
}

.ev-score-sheet__header-btn[b-7ij0e5k1b9] {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: #f1f5f9;
    color: #475569;
    font-size: 1.125rem;
    cursor: pointer;
    transition: transform 0.15s ease, background 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.ev-score-sheet__header-btn:active[b-7ij0e5k1b9] {
    transform: scale(0.94);
}

.ev-score-sheet__header-btn--confirm[b-7ij0e5k1b9] {
    background: linear-gradient(135deg, var(--ox-accent, #0067c0), #0ea5e9);
    color: #fff;
    box-shadow: 0 2px 10px rgba(0, 103, 192, 0.28);
}

.ev-score-sheet__header-btn:disabled[b-7ij0e5k1b9] {
    opacity: 0.55;
    cursor: not-allowed;
}

.ev-score-sheet__spin[b-7ij0e5k1b9] {
    animation: ev-score-sheet-spin-b-7ij0e5k1b9 0.8s linear infinite;
}

@keyframes ev-score-sheet-spin-b-7ij0e5k1b9 {
    to { transform: rotate(360deg); }
}

.ev-score-sheet__subject[b-7ij0e5k1b9] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 8px 16px 10px;
    border-bottom: 0.5px solid rgba(15, 23, 42, 0.06);
}

.ev-score-sheet__avatar[b-7ij0e5k1b9] {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.01em;
}

.ev-score-sheet__avatar--person[b-7ij0e5k1b9] {
    background: linear-gradient(135deg, #6366f1, #818cf8);
}

.ev-score-sheet__avatar--org[b-7ij0e5k1b9] {
    background: linear-gradient(135deg, #7c3aed, #a78bfa);
}

.ev-score-sheet__profile-main[b-7ij0e5k1b9] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ev-score-sheet__profile-name[b-7ij0e5k1b9] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.3;
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-score-sheet__profile-meta[b-7ij0e5k1b9] {
    font-size: 0.6875rem;
    line-height: 1.35;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-score-sheet__profile-meta--org[b-7ij0e5k1b9] {
    color: #7c3aed;
}

.ev-score-sheet__status[b-7ij0e5k1b9] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.ev-score-sheet__status--todo[b-7ij0e5k1b9] {
    color: #c2410c;
    background: #fff7ed;
    box-shadow: inset 0 0 0 1px rgba(234, 88, 12, 0.22);
}

.ev-score-sheet__status--draft[b-7ij0e5k1b9] {
    color: #64748b;
    background: #f1f5f9;
    box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.18);
}

.ev-score-sheet__status--submitted[b-7ij0e5k1b9] {
    color: #047857;
    background: #ecfdf5;
    box-shadow: inset 0 0 0 1px rgba(5, 150, 105, 0.22);
}

.ev-score-sheet__loading[b-7ij0e5k1b9],
.ev-score-sheet__hint[b-7ij0e5k1b9] {
    margin: 24px 18px;
    text-align: center;
    font-size: 0.875rem;
    color: #64748b;
}

.ev-score-sheet__preview[b-7ij0e5k1b9] {
    padding: 8px 18px 4px;
    text-align: center;
}

.ev-score-sheet__preview-score[b-7ij0e5k1b9] {
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #0f172a;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.ev-score-sheet__preview-score--pending[b-7ij0e5k1b9] {
    color: #94a3b8;
    font-size: 2.25rem;
}

.ev-score-sheet__preview-grade--pending[b-7ij0e5k1b9] {
    color: #94a3b8;
    background: #f1f5f9;
    font-weight: 600;
}

.ev-score-sheet__preview-dot[b-7ij0e5k1b9] {
    opacity: 0.45;
    margin: 0 1px;
}

.ev-score-sheet__preview-grade[b-7ij0e5k1b9] {
    display: inline-flex;
    margin-top: 6px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 700;
}

.ev-score-sheet__preview-grade--excellent[b-7ij0e5k1b9] {
    color: #047857;
    background: #ecfdf5;
}

.ev-score-sheet__preview-grade--good[b-7ij0e5k1b9] {
    color: #0369a1;
    background: #e0f2fe;
}

.ev-score-sheet__preview-grade--fair[b-7ij0e5k1b9] {
    color: #b45309;
    background: #fffbeb;
}

.ev-score-sheet__preview-grade--poor[b-7ij0e5k1b9] {
    color: #b91c1c;
    background: #fef2f2;
}

.ev-score-sheet__wheel-wrap[b-7ij0e5k1b9] {
    padding: 0 12px;
}

.ev-wheel[b-7ij0e5k1b9] {
    position: relative;
    height: 220px;
    overflow: hidden;
}

.ev-wheel__highlight[b-7ij0e5k1b9] {
    position: absolute;
    left: 16px;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    height: 44px;
    border-radius: 12px;
    background: rgba(15, 23, 42, 0.06);
    pointer-events: none;
    z-index: 1;
}

.ev-wheel__columns[b-7ij0e5k1b9] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    height: 100%;
    position: relative;
    z-index: 2;
    mask-image: linear-gradient(to bottom, transparent, #000 22%, #000 78%, transparent);
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22%, #000 78%, transparent);
}

.ev-wheel__col[b-7ij0e5k1b9] {
    height: 100%;
    overflow-y: auto;
    scroll-snap-type: y mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    text-align: center;
}

.ev-wheel__col[b-7ij0e5k1b9]::-webkit-scrollbar {
    display: none;
}

.ev-wheel__pad[b-7ij0e5k1b9] {
    height: calc(50% - 22px);
    flex-shrink: 0;
}

.ev-wheel__item[b-7ij0e5k1b9] {
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    scroll-snap-align: center;
    font-size: 1.375rem;
    font-weight: 600;
    color: #94a3b8;
    font-variant-numeric: tabular-nums;
    transition: color 0.15s ease, transform 0.15s ease;
}

.ev-score-sheet__error[b-7ij0e5k1b9] {
    margin: 8px 18px 0;
    font-size: 0.8125rem;
    color: #dc2626;
    line-height: 1.4;
}

.ev-score-sheet__remark[b-7ij0e5k1b9] {
    display: block;
    margin: 14px 18px 12px;
}

.ev-score-sheet__remark-label[b-7ij0e5k1b9] {
    display: block;
    margin-bottom: 6px;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #475569;
}

.ev-score-sheet__remark-input[b-7ij0e5k1b9] {
    width: 100%;
    min-height: 72px;
    border: none;
    border-radius: 12px;
    padding: 10px 12px;
    background: #f8fafc;
    font-family: inherit;
    font-size: 0.875rem;
    color: #0f172a;
    resize: vertical;
    box-sizing: border-box;
    outline: none;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.06);
}

.ev-score-sheet__remark-input:focus[b-7ij0e5k1b9] {
    box-shadow: inset 0 0 0 2px rgba(0, 103, 192, 0.2);
}
/* /Components/Pages/ApiSources.razor.rz.scp.css */
.api-sources-subtitle[b-w0382pn581] {
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    color: var(--ox-muted, #6b7280);
}

#api-sources-split.manage-middle.manage-split.dx-style[b-w0382pn581] {
    gap: 0;
}

#api-sources-split .manage-panel[b-w0382pn581] {
    border: none;
}

.api-sources-split-body[b-w0382pn581] {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
}

.api-sources-source-pane[b-w0382pn581] {
    min-width: 180px;
}

.api-sources-op-pane[b-w0382pn581] {
    flex: 1 1 auto;
    min-width: 0;
}

.api-sources-remark-input[b-w0382pn581] {
    min-height: 96px;
    resize: vertical;
}

.api-sources-op-head-sub[b-w0382pn581] {
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    color: var(--ox-muted, #6b7280);
    font-weight: 400;
}

.api-sources-op-sync-btn[b-w0382pn581] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding-inline: 0.625rem;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
}

.api-sources-op-sync-btn .ph[b-w0382pn581] {
    font-size: 1rem;
    line-height: 1;
}

.api-sources-op-toolbar[b-w0382pn581] {
    padding: 8px var(--ox-panel-header-px, 0.75rem);
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
    background: var(--ox-header-bg, #f9fafb);
}

.api-sources-list-item[b-w0382pn581] {
    width: 100%;
}

.api-sources-op-table-wrap[b-w0382pn581] {
    margin: 0;
    overflow: auto;
    max-height: calc(100vh - 180px);
}

.api-sources-source-pane .manage-list[b-w0382pn581] {
    width: 100%;
}

@media (max-width: 1200px) {
    .api-sources-source-pane[b-w0382pn581] {
        min-width: 180px;
    }
}
/* /Components/Pages/Contacts.razor.rz.scp.css */
/* 通讯录：左联系人 / 中会话 / 右对话（微信式浅色条带） */

.contacts-dir__gate[b-h3cujxtn8q] {
    padding: 1.5rem;
    color: #475569;
    font-size: 0.9rem;
}

.contacts-dir[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    width: 100%;
    height: 100%;
    background: color-mix(in oklab, #f8fafc 92%, transparent);
}

:root[b-h3cujxtn8q] {
    --contacts-head-h: 2.45rem;
}

/* 与 contacts-dir--mid 一致：顶栏贴壳顶，避免「联系人」比「会话」上方多出一条与 header 同色的内边距，被看成更高的一整条 */
.contacts-dir--left[b-h3cujxtn8q] {
    padding: 0 0.5rem 0.65rem;
}

.contacts-dir--mid[b-h3cujxtn8q] {
    padding: 0;
    border-left: 1px solid color-mix(in oklab, var(--ox-border) 70%, #000 6%);
    background: linear-gradient(180deg, #f1f5f9 0%, #eef2f7 100%);
}

.contacts-dir--right[b-h3cujxtn8q] {
    padding: 0;
    background: #f6f7f8;
    /* ShellLayout 的 .shell-right-scroll 默认有 inline padding，这里抵消确保对话区贴边填满 */
    margin-inline: calc(-1 * var(--ox-panel-header-px, 1rem));
    width: calc(100% + 2 * var(--ox-panel-header-px, 1rem));
    max-width: none;
    box-sizing: border-box;
}

/* Contacts 右栏需要贴底：覆盖全局 .shell-right-scroll 的默认 padding-bottom */
.contacts-page[b-h3cujxtn8q]  .shell-right-scroll {
    padding-bottom: 0 !important;
}

/* 左「联系人」/ 中「会话」/ 右聊天标题行：同高、同内边距，避免右侧 h6+基线对齐撑出行高差 */
.contacts-dir__col-head[b-h3cujxtn8q],
.contacts-dir__dialog-head[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    height: var(--contacts-head-h);
    min-height: var(--contacts-head-h);
    max-height: var(--contacts-head-h);
    padding: 0.42rem 0.5rem;
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
    box-sizing: border-box;
}

.contacts-dir__col-head .manage-btn-icon[b-h3cujxtn8q] {
    width: var(--ox-btn-size, 2rem);
    height: var(--ox-btn-size, 2rem);
    min-width: var(--ox-btn-size, 2rem);
}

/* 与「会话」栏一致：标题右側操作组（与 Razor 中 flex items-center gap-1 同语义，避免仅一侧用包装层） */
.contacts-dir__col-head-actions[b-h3cujxtn8q] {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.25rem;
}

.contacts-dir__col-title[b-h3cujxtn8q] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: 0.02em;
}

.contacts-dir__search-wrap[b-h3cujxtn8q] {
    padding: 0.4rem 0.5rem 0.5rem;
}

/* 与顶栏 .contacts-dir__col-head 之间留足空隙，内嵌左侧搜索图标 */
.contacts-dir__search-field[b-h3cujxtn8q] {
    position: relative;
    width: 100%;
}

.contacts-dir__search-icon[b-h3cujxtn8q] {
    position: absolute;
    left: 0.55rem;
    top: 50%;
    z-index: 1;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-size: 0.95rem;
    line-height: 0;
    pointer-events: none;
}

.contacts-dir__search[b-h3cujxtn8q] {
    width: 100%;
    font-size: 0.8rem;
    /* 默认 6px 10px，左侧为图标让位 */
    padding: 6px 10px 6px 2.05rem;
}

.contacts-dir__scroll[b-h3cujxtn8q] {
    flex: 1;
    min-height: 0;
    min-width: 0;
    width: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.contacts-dir__pager[b-h3cujxtn8q] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    margin: 0.35rem 0.25rem 0;
    padding: 0.45rem 0.5rem;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
}

.contacts-dir__pager-count[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #64748b;
}

.contacts-dir__pager-btn[b-h3cujxtn8q] {
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 999px;
    font-size: 0.75rem;
    padding: 0.2rem 0.55rem;
    line-height: 1.3;
}

.contacts-dir__pager-btn:disabled[b-h3cujxtn8q] {
    opacity: 0.65;
    cursor: default;
}

.contacts-dir__pager-end[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #94a3b8;
}

.contacts-dir__hint[b-h3cujxtn8q] {
    margin: 0.5rem 0.45rem;
    padding: 0.5rem 0.55rem;
    border-radius: 10px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #64748b;
    font-size: 0.76rem;
}

.contacts-dir__hint--error[b-h3cujxtn8q] {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.contacts-dir__hint--tail[b-h3cujxtn8q] {
    text-align: center;
    border: none;
    background: transparent;
    color: #94a3b8;
    font-size: 0.75rem;
}

.contacts-dir__card-grid[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0 0.12rem 0.5rem;
    min-width: 0;
    width: 100%;
}

.contacts-dir__card[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    border: none;
    border-bottom: 1px solid #e9edf3;
    border-radius: 10px;
    padding: 0.44rem 0.45rem;
    background: transparent;
    cursor: pointer;
    transition: background 0.12s ease;
}

.contacts-dir__card:hover[b-h3cujxtn8q] {
    background: #edf2f7;
}

.contacts-dir__card--active[b-h3cujxtn8q] {
    background: #e6edf8;
    box-shadow: inset 0 0 0 1px #cfddf2;
}

.contacts-dir__avatar[b-h3cujxtn8q] {
    width: 2.16rem;
    height: 2.16rem;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    background: #e2e8f0;
}

.contacts-dir__avatar img[b-h3cujxtn8q] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contacts-dir__card-main[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    gap: 0.11rem;
    min-width: 0;
    flex: 1;
}

.contacts-dir__online-dot[b-h3cujxtn8q] {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 999px;
    margin-left: auto;
    margin-top: 0;
    box-shadow: 0 0 0 2px #fff;
    flex-shrink: 0;
}

.contacts-dir__online-dot--on[b-h3cujxtn8q] {
    background: #22c55e;
    box-shadow: 0 0 0 2px #fff, 0 0 8px rgba(34, 197, 94, 0.55);
}

.contacts-dir__online-dot--off[b-h3cujxtn8q] {
    background: #94a3b8;
}

.contacts-dir__card-name[b-h3cujxtn8q] {
    font-size: 0.79rem;
    font-weight: 600;
    color: #111827;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contacts-dir__card-name-btn[b-h3cujxtn8q] {
    display: inline-block;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.contacts-dir__card-name-btn:hover[b-h3cujxtn8q] {
    text-decoration: underline;
}

.contacts-dir__card-sub[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #9ca3af;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 会话列表 */
.contacts-dir__conv-list[b-h3cujxtn8q] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.08rem 0.18rem 0.22rem;
}

.contacts-dir__conv[b-h3cujxtn8q] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.52rem;
    border: none;
    border-radius: 10px;
    padding: 0.46rem 0.45rem;
    text-align: left;
    background: transparent;
    cursor: pointer;
    border-bottom: 1px solid #e9edf3;
}

.contacts-dir__conv:hover[b-h3cujxtn8q] {
    background: #edf2f7;
}

.contacts-dir__conv--active[b-h3cujxtn8q] {
    background: #e6edf8;
    box-shadow: inset 0 0 0 1px #cfddf2;
}

.contacts-dir__conv-avatar[b-h3cujxtn8q] {
    width: 2.18rem;
    height: 2.18rem;
    border-radius: 6px;
    background: #16a34a;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    font-weight: 700;
    flex-shrink: 0;
}

.contacts-dir__conv-avatar img[b-h3cujxtn8q] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.contacts-dir__conv-main[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
    flex: 1;
}

.contacts-dir__conv-title[b-h3cujxtn8q] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contacts-dir__conv-last[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #9ca3af;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contacts-dir__badge[b-h3cujxtn8q] {
    min-width: 1.02rem;
    height: 1.02rem;
    padding: 0 0.24rem;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
}

/* 右侧：在共用 .contacts-dir__dialog-head 上叠一层 z-index，供群「更多」下拉在 scrim 之上 */
.contacts-dir__dialog-head[b-h3cujxtn8q] {
    flex-shrink: 0;
    width: 100%;
    flex-wrap: nowrap;
    /* 必须高于 .contacts-dir__more-scrim (80)，否则全屏遮罩会盖在「更多」下拉之上，导致无法点击添加成员等 */
    position: relative;
    z-index: 100;
}

.contacts-dir__dialog-head .manage-btn-icon[b-h3cujxtn8q] {
    width: var(--ox-btn-size, 2rem);
    height: var(--ox-btn-size, 2rem);
    min-width: var(--ox-btn-size, 2rem);
    flex-shrink: 0;
}

/* 标题吃满中间；右侧操作组（更多、折叠）贴右 */
.contacts-dir__dialog-head-actions[b-h3cujxtn8q] {
    margin-inline-start: auto;
    display: flex;
    align-items: center;
    gap: 0.15rem;
    flex-shrink: 0;
}

.contacts-dir__dialog-name[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    margin: 0;
}

/* 姓名为首，机构紧挨其后（不撑满整段以免看似贴 header 最右） */
.contacts-dir__dialog-title-glue[b-h3cujxtn8q] {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 0.3rem;
    min-width: 0;
    flex: 1 1 0;
    width: 100%;
}

.contacts-dir__dialog-title-text[b-h3cujxtn8q] {
    min-width: 0;
    flex: 0 1 auto;
    /* 不让标题 flex 撑满：姓名与机构、人数挨在一起，右侧留白自然留给操作按钮区 */
    max-width: min(13rem, 52%);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.25;
}

.contacts-dir__dialog-group-count[b-h3cujxtn8q] {
    flex-shrink: 0;
    font-weight: 600;
    font-size: 0.78rem;
    color: #64748b;
}

/* 单聊对端机构：在姓名后紧跟，略小、略浅，与姓名底边对齐，过长再省略 */
.contacts-dir__dialog-org[b-h3cujxtn8q] {
    flex: 0 1 auto;
    min-width: 0;
    max-width: min(10rem, 40%);
    font-size: 0.75rem;
    font-weight: 500;
    color: #94a3b8;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contacts-dir__messages[b-h3cujxtn8q] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.65rem 0.75rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.contacts-dir__history-tip[b-h3cujxtn8q] {
    align-self: center;
    margin-bottom: 0.2rem;
    padding: 0.16rem 0.56rem;
    border-radius: 999px;
    font-size: 0.75rem;
    color: #94a3b8;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.contacts-dir__day-divider[b-h3cujxtn8q] {
    display: flex;
    justify-content: center;
    margin: 0.15rem 0 0.1rem;
}

.contacts-dir__day-divider-text[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #94a3b8;
    line-height: 1;
    padding: 0.16rem 0.52rem;
    border-radius: 999px;
    background: rgba(248, 250, 252, 0.9);
    border: 1px solid #e2e8f0;
}

.contacts-dir__msg[b-h3cujxtn8q] {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0.42rem;
}

.contacts-dir__msg--mine[b-h3cujxtn8q] {
    justify-content: flex-end;
}

.contacts-dir__msg--mine .contacts-dir__bubble-wrap[b-h3cujxtn8q] {
    order: 1;
    margin-left: auto;
}

.contacts-dir__msg--mine .contacts-dir__msg-avatar[b-h3cujxtn8q] {
    order: 2;
}

.contacts-dir__msg-avatar[b-h3cujxtn8q] {
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 8px;
    overflow: hidden;
    background: #e2e8f0;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.contacts-dir__msg-avatar img[b-h3cujxtn8q] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contacts-dir__bubble-wrap[b-h3cujxtn8q] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.16rem;
    max-width: min(92%, 28rem);
}

.contacts-dir__msg--mine .contacts-dir__bubble-wrap[b-h3cujxtn8q] {
    align-items: flex-end;
}

.contacts-dir__msg-meta[b-h3cujxtn8q] {
    display: inline-flex;
    align-items: center;
    gap: 0.34rem;
}

.contacts-dir__sender[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 500;
    line-height: 1;
}

.contacts-dir__msg-time[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #94a3b8;
    line-height: 1;
}

.contacts-dir__bubble[b-h3cujxtn8q] {
    max-width: 100%;
    padding: 0.46rem 0.68rem;
    border-radius: 4px 12px 12px 12px;
    background: #ffffff;
    border: 1px solid #dfe4ea;
    font-size: 0.82rem;
    color: #111827;
    line-height: 1.45;
    word-break: break-word;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.contacts-dir__bubble-title[b-h3cujxtn8q] {
    display: block;
    margin-bottom: 0.24rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: #475569;
}

.contacts-dir__bubble-text[b-h3cujxtn8q] {
    white-space: pre-wrap;
}

.contacts-dir__bubble-code[b-h3cujxtn8q] {
    margin: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.75rem;
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
}

.contacts-dir__bubble--json[b-h3cujxtn8q],
.contacts-dir__bubble--html[b-h3cujxtn8q] {
    background: #f8fafc;
}

.contacts-dir__bubble--streaming[b-h3cujxtn8q] {
    background: #f8fafc;
    border-style: dashed;
    border-color: #bfdbfe;
}

/* Markdown 气泡（AI 代码块、列表等） */
.contacts-dir__bubble-md[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    min-width: 0;
}

.contacts-dir__bubble-md-inner.ox-im-md[b-h3cujxtn8q] {
    min-width: 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.contacts-dir__bubble-md-inner.ox-im-md :first-child[b-h3cujxtn8q] {
    margin-top: 0 !important;
}

.contacts-dir__bubble-md-inner.ox-im-md :last-child[b-h3cujxtn8q] {
    margin-bottom: 0 !important;
}

.contacts-dir__bubble-md-inner.ox-im-md p[b-h3cujxtn8q] {
    margin: 0.35rem 0;
}

.contacts-dir__bubble-md-inner.ox-im-md h1[b-h3cujxtn8q],
.contacts-dir__bubble-md-inner.ox-im-md h2[b-h3cujxtn8q],
.contacts-dir__bubble-md-inner.ox-im-md h3[b-h3cujxtn8q],
.contacts-dir__bubble-md-inner.ox-im-md h4[b-h3cujxtn8q] {
    margin: 0.45rem 0 0.25rem;
    font-weight: 700;
    line-height: 1.25;
}

.contacts-dir__bubble-md-inner.ox-im-md h1[b-h3cujxtn8q] {
    font-size: 1rem;
}

.contacts-dir__bubble-md-inner.ox-im-md h2[b-h3cujxtn8q] {
    font-size: 0.92rem;
}

.contacts-dir__bubble-md-inner.ox-im-md h3[b-h3cujxtn8q],
.contacts-dir__bubble-md-inner.ox-im-md h4[b-h3cujxtn8q] {
    font-size: 0.86rem;
}

.contacts-dir__bubble-md-inner.ox-im-md ul[b-h3cujxtn8q],
.contacts-dir__bubble-md-inner.ox-im-md ol[b-h3cujxtn8q] {
    margin: 0.25rem 0;
    padding-left: 1.15rem;
}

.contacts-dir__bubble-md-inner.ox-im-md blockquote[b-h3cujxtn8q] {
    margin: 0.35rem 0;
    padding-left: 0.55rem;
    border-left: 3px solid #cbd5e1;
    color: #475569;
}

.contacts-dir__bubble-md-inner.ox-im-md pre[b-h3cujxtn8q] {
    margin: 0.35rem 0;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    overflow-x: auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.75rem;
    line-height: 1.4;
}

.contacts-dir__bubble-md-inner.ox-im-md code[b-h3cujxtn8q] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.78em;
    padding: 0.06rem 0.2rem;
    border-radius: 4px;
    background: #f1f5f9;
}

.contacts-dir__bubble-md-inner.ox-im-md pre code[b-h3cujxtn8q] {
    padding: 0;
    font-size: inherit;
    background: transparent;
    border-radius: 0;
}

.contacts-dir__bubble-md-inner.ox-im-md table[b-h3cujxtn8q] {
    border-collapse: collapse;
    width: 100%;
    margin: 0.35rem 0;
    font-size: 0.76rem;
}

.contacts-dir__bubble-md-inner.ox-im-md th[b-h3cujxtn8q],
.contacts-dir__bubble-md-inner.ox-im-md td[b-h3cujxtn8q] {
    border: 1px solid #e2e8f0;
    padding: 0.22rem 0.4rem;
}

.contacts-dir__bubble-md-inner.ox-im-md th[b-h3cujxtn8q] {
    background: #f8fafc;
}

.contacts-dir__bubble-md-actions[b-h3cujxtn8q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem;
    justify-content: flex-end;
    align-items: center;
}

.contacts-dir__bubble-icon-btn[b-h3cujxtn8q] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.72rem;
    height: 1.72rem;
    padding: 0;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #334155;
    border-radius: 6px;
    cursor: pointer;
    line-height: 1;
}

.contacts-dir__bubble-icon-btn .ph[b-h3cujxtn8q] {
    font-size: 0.95rem;
}

.contacts-dir__bubble-icon-btn:hover[b-h3cujxtn8q] {
    background: #f8fafc;
    border-color: #94a3b8;
    color: #0f172a;
}

.contacts-dir__msg--mine .contacts-dir__bubble-icon-btn[b-h3cujxtn8q] {
    background: rgba(255, 255, 255, 0.35);
    border-color: rgba(34, 100, 45, 0.35);
    color: #14532a;
}

.contacts-dir__msg--mine .contacts-dir__bubble-icon-btn:hover[b-h3cujxtn8q] {
    background: rgba(255, 255, 255, 0.55);
    border-color: rgba(34, 100, 45, 0.5);
}

.contacts-dir__msg--mine .contacts-dir__bubble-md-inner.ox-im-md pre[b-h3cujxtn8q] {
    background: rgba(255, 255, 255, 0.42);
    border-color: rgba(34, 100, 45, 0.22);
}

.contacts-dir__msg--mine .contacts-dir__bubble-md-inner.ox-im-md code[b-h3cujxtn8q] {
    background: rgba(255, 255, 255, 0.45);
}

.contacts-dir__md-preview-scrim[b-h3cujxtn8q] {
    position: fixed;
    inset: 0;
    z-index: 6000;
    background: rgba(15, 23, 42, 0.45);
}

.contacts-dir__md-preview-panel[b-h3cujxtn8q] {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 6001;
    display: flex;
    flex-direction: column;
    width: min(720px, 92vw);
    max-height: min(82vh, 880px);
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.22);
    overflow: hidden;
}

.contacts-dir__md-preview-head[b-h3cujxtn8q] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}

.contacts-dir__md-preview-title[b-h3cujxtn8q] {
    font-size: 0.88rem;
    font-weight: 700;
    color: #0f172a;
}

.contacts-dir__md-preview-body[b-h3cujxtn8q] {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding: 0.85rem 1rem 1rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

.contacts-dir__md-preview-body.ox-im-md :first-child[b-h3cujxtn8q] {
    margin-top: 0 !important;
}

.contacts-dir__md-preview-body.ox-im-md pre[b-h3cujxtn8q] {
    margin: 0.5rem 0;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    overflow-x: auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.78rem;
}

.contacts-dir__msg--mine .contacts-dir__bubble[b-h3cujxtn8q] {
    border-radius: 12px 4px 12px 12px;
    background: #95ec69;
    border-color: #8adf60;
    box-shadow: 0 1px 2px rgba(67, 160, 71, 0.22);
}

.contacts-dir__composer[b-h3cujxtn8q] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0.45rem 0.62rem 0.5rem;
    border-top: 1px solid #dde3ea;
    background: #f0f2f5;
}

.contacts-dir__pending-attach[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
    padding: 0.35rem 0.45rem;
    border-radius: 8px;
    border: 1px solid #d7dde5;
    background: #ffffff;
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, 0.03);
}

.contacts-dir__pending-attach-thumb[b-h3cujxtn8q] {
    width: 2.75rem;
    height: 2.75rem;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    border: 1px solid #e2e8f0;
}

.contacts-dir__pending-attach-fileicon[b-h3cujxtn8q] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    font-size: 1.35rem;
    color: #64748b;
    background: #f1f5f9;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}

.contacts-dir__pending-attach-meta[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
    flex: 1;
}

.contacts-dir__pending-attach-name[b-h3cujxtn8q] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contacts-dir__pending-attach-size[b-h3cujxtn8q] {
    font-size: 0.75rem;
    color: #94a3b8;
}

.contacts-dir__pending-attach-remove[b-h3cujxtn8q] {
    margin-left: auto;
}

.contacts-dir__composer-stack[b-h3cujxtn8q] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
}

.contacts-dir__composer-toolbar[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 2rem;
}

.contacts-dir__composer-toolbar-left[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.contacts-dir__composer-toolbar-right[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

/* 与右侧「AI托管」同款 contacts-dir__host；透明 InputFile 叠层可点整钮 */
.contacts-dir__composer-attach[b-h3cujxtn8q] {
    margin: 0;
    padding: 0 0.5rem;
    min-width: 2rem;
    justify-content: center;
}

.contacts-dir__composer-attach .ph[b-h3cujxtn8q] {
    line-height: 1;
    font-size: 1.05rem;
}

.contacts-dir__composer-attach-input-hidden[b-h3cujxtn8q] {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    left: 0;
    top: 0;
    z-index: -1;
}

.contacts-dir__new-msg-tip[b-h3cujxtn8q] {
    align-self: center;
    margin: 0.2rem 0 0.15rem;
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 999px;
    padding: 0.22rem 0.62rem;
    font-size: 0.75rem;
    line-height: 1.2;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.15);
}

.contacts-dir__composer-input[b-h3cujxtn8q] {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 0.82rem;
    line-height: 1.45;
    border: 1px solid #d7dde5;
    border-radius: 10px;
    background: #ffffff;
    min-height: 2.35rem;
    padding: 0.45rem 0.62rem;
    resize: none;
    overflow-x: hidden;
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, 0.03);
}

.contacts-dir__ai-reply-tip[b-h3cujxtn8q] {
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 8px;
    padding: 0.28rem 0.55rem;
    font-size: 0.75rem;
    line-height: 1.35;
}

.contacts-dir__bubble--image .contacts-dir__bubble-media[b-h3cujxtn8q],
.contacts-dir__bubble--file .contacts-dir__bubble-file[b-h3cujxtn8q] {
    display: block;
}

.contacts-dir__bubble-img[b-h3cujxtn8q] {
    display: block;
    max-width: min(100%, 18rem);
    max-height: 14rem;
    width: auto;
    height: auto;
    border-radius: 8px;
    object-fit: contain;
}

.contacts-dir__bubble-file[b-h3cujxtn8q] {
    font-size: 0.86rem;
    font-weight: 600;
    color: #1d4ed8;
    text-decoration: underline;
    text-underline-offset: 2px;
    word-break: break-all;
}

.contacts-dir__bubble-file:hover[b-h3cujxtn8q] {
    color: #1e40af;
}

.contacts-dir__host[b-h3cujxtn8q] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0 0.45rem;
    min-height: 2rem;
    border-radius: 8px;
    border: 1px solid #c5cdd9;
    background: #ffffff;
    color: #475569;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.contacts-dir__host:hover:not(:disabled)[b-h3cujxtn8q] {
    border-color: #93c5fd;
    color: #1d4ed8;
}

.contacts-dir__host:disabled[b-h3cujxtn8q] {
    opacity: 0.45;
    cursor: not-allowed;
}

.contacts-dir__host--on[b-h3cujxtn8q] {
    border-color: #60a5fa;
    background: #eff6ff;
    color: #1d4ed8;
}

.contacts-dir__host-label[b-h3cujxtn8q] {
    white-space: nowrap;
}

.contacts-dir__send[b-h3cujxtn8q] {
    flex-shrink: 0;
    min-width: 3.1rem;
    min-height: 2rem;
    padding: 0 0.72rem;
    border-radius: 8px;
    border: 1px solid #07c160;
    background: #07c160;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1;
}

.contacts-dir__send:disabled[b-h3cujxtn8q] {
    border-color: #9ca3af;
    background: #9ca3af;
    color: #f8fafc;
}

.contacts-dir__send--stop[b-h3cujxtn8q] {
    border-color: #fca5a5;
    background: #fff1f2;
    color: #b91c1c;
}

.contacts-dir__send--stop:hover[b-h3cujxtn8q] {
    border-color: #f87171;
    background: #ffe4e6;
}

/* 三栏统一滚动条（更接近微信桌面端） */
.contacts-dir__scroll[b-h3cujxtn8q],
.contacts-dir__conv-list[b-h3cujxtn8q],
.contacts-dir__messages[b-h3cujxtn8q] {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}

.contacts-dir__scroll[b-h3cujxtn8q]::-webkit-scrollbar,
.contacts-dir__conv-list[b-h3cujxtn8q]::-webkit-scrollbar,
.contacts-dir__messages[b-h3cujxtn8q]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.contacts-dir__scroll[b-h3cujxtn8q]::-webkit-scrollbar-track,
.contacts-dir__conv-list[b-h3cujxtn8q]::-webkit-scrollbar-track,
.contacts-dir__messages[b-h3cujxtn8q]::-webkit-scrollbar-track {
    background: transparent;
}

.contacts-dir__scroll[b-h3cujxtn8q]::-webkit-scrollbar-thumb,
.contacts-dir__conv-list[b-h3cujxtn8q]::-webkit-scrollbar-thumb,
.contacts-dir__messages[b-h3cujxtn8q]::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: content-box;
}

.contacts-dir__scroll[b-h3cujxtn8q]::-webkit-scrollbar-thumb:hover,
.contacts-dir__conv-list[b-h3cujxtn8q]::-webkit-scrollbar-thumb:hover,
.contacts-dir__messages[b-h3cujxtn8q]::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
    background-clip: content-box;
}

/* contacts 页中右分割条与两侧 header 边框同色，避免视觉出现“中间空隙” */
.contacts-page[b-h3cujxtn8q]  .shell-main-splitter {
    background: #e5e7eb !important;
}

/* 窄屏自适应：
   - 中屏（<=1280）：收窄左右栏，保证会话+聊天可读
   - 小屏（<=1024）：自动折叠联系人栏，变为会话+聊天双栏 */
@media (max-width: 1280px) {
    .contacts-page[b-h3cujxtn8q]  .shell-left-sized {
        flex-basis: 220px !important;
        width: 220px !important;
    }

    .contacts-page[b-h3cujxtn8q]  .shell-right-sized {
        flex-basis: 360px !important;
        width: 360px !important;
    }
}

@media (max-width: 1024px) {
    .contacts-page[b-h3cujxtn8q]  .shell-left-sized,
    .contacts-page[b-h3cujxtn8q]  .shell-left-splitter {
        display: none !important;
    }

    .contacts-page .contacts-dir__col-head[b-h3cujxtn8q],
    .contacts-page .contacts-dir__dialog-head[b-h3cujxtn8q] {
        height: 2.2rem;
        min-height: 2.2rem;
        max-height: 2.2rem;
        padding: 0.38rem 0.46rem;
    }
}

/* —— 群聊：更多菜单、九宫格头像、新建群弹窗 —— */
.contacts-dir--right[b-h3cujxtn8q] {
    position: relative;
}

.contacts-dir__more-wrap[b-h3cujxtn8q] {
    position: relative;
}

.contacts-dir__more-scrim[b-h3cujxtn8q] {
    position: fixed;
    inset: 0;
    z-index: 80;
    background: transparent;
}

.contacts-dir__more-dropdown[b-h3cujxtn8q] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 90;
    width: min(18rem, calc(100vw - 2rem));
    max-height: min(70vh, 26rem);
    overflow: auto;
    padding: 0.55rem 0.6rem;
    border-radius: 0.55rem;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}

.contacts-dir__more-row[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
}

.contacts-dir__more-row--label[b-h3cujxtn8q] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.contacts-dir__more-search-icon[b-h3cujxtn8q] {
    color: #94a3b8;
    font-size: 0.85rem;
}

.contacts-dir__more-search-input[b-h3cujxtn8q] {
    flex: 1;
    min-width: 0;
    font-size: 0.78rem;
}

.contacts-dir__more-members[b-h3cujxtn8q] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(3.6rem, 1fr));
    gap: 0.55rem 0.4rem;
    align-items: start;
    justify-items: center;
    margin-bottom: 0.5rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid #f1f5f9;
}

.contacts-dir__member-cell[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 0;
    gap: 0.2rem;
}

.contacts-dir__member-avatar-stack[b-h3cujxtn8q] {
    position: relative;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
}

.contacts-dir__member-avatar[b-h3cujxtn8q] {
    display: block;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.35rem;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
}

.contacts-dir__member-avatar img[b-h3cujxtn8q] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 群主移出成员：头像右上角减号角标 */
.contacts-dir__member-remove-badge[b-h3cujxtn8q] {
    position: absolute;
    right: -0.18rem;
    top: -0.18rem;
    width: 1.05rem;
    height: 1.05rem;
    margin: 0;
    padding: 0;
    border: 1.5px solid #fff;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.28);
    -webkit-tap-highlight-color: transparent;
}

.contacts-dir__member-remove-badge:hover[b-h3cujxtn8q] {
    background: #dc2626;
}

.contacts-dir__member-remove-badge .ph[b-h3cujxtn8q] {
    font-size: 0.75rem;
    line-height: 1;
}

.contacts-dir__member-name[b-h3cujxtn8q] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #334155;
    text-align: center;
    line-height: 1.2;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 与成员格子一致：上方虚线框内仅加号，「添加」在框下 */
.contacts-dir__member-add[b-h3cujxtn8q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    gap: 0.2rem;
    -webkit-tap-highlight-color: transparent;
}

.contacts-dir__member-add-box[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
    border: 1px dashed #94a3b8;
    border-radius: 0.35rem;
    background: #fafafa;
    box-sizing: border-box;
}

.contacts-dir__member-add-box .ph[b-h3cujxtn8q] {
    font-size: 1rem;
    line-height: 1;
}

.contacts-dir__member-add:hover .contacts-dir__member-add-box[b-h3cujxtn8q] {
    border-color: #3b82f6;
    background: #eff6ff;
}

.contacts-dir__member-add:hover[b-h3cujxtn8q] {
    color: #1d4ed8;
}

.contacts-dir__member-add-label[b-h3cujxtn8q] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    line-height: 1.2;
    text-align: center;
    max-width: 100%;
}

.contacts-dir__more-pin[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: #334155;
    margin: 0.35rem 0 0.45rem;
    cursor: pointer;
}

.contacts-dir__more-leave-wrap[b-h3cujxtn8q] {
    display: flex;
    justify-content: center;
    padding-top: 0.25rem;
}

.contacts-dir__more-leave[b-h3cujxtn8q] {
    border: none;
    background: none;
    color: #dc2626;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
}

.contacts-dir__more-leave:hover[b-h3cujxtn8q] {
    text-decoration: underline;
}

.contacts-dir__more-leave:disabled[b-h3cujxtn8q] {
    color: #94a3b8;
    cursor: not-allowed;
    text-decoration: none;
}

.contacts-dir__conv-avatar-grid[b-h3cujxtn8q] {
    display: grid;
    gap: 1px;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.38rem;
    overflow: hidden;
    background: #e2e8f0;
    flex-shrink: 0;
}

.contacts-dir__conv-avatar-grid img[b-h3cujxtn8q] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.contacts-dir__conv-avatar-grid--n1[b-h3cujxtn8q] {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
}

.contacts-dir__conv-avatar-grid--n2[b-h3cujxtn8q] {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
}

.contacts-dir__conv-avatar-grid--n3[b-h3cujxtn8q],
.contacts-dir__conv-avatar-grid--n4[b-h3cujxtn8q] {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
}

.contacts-dir__conv-avatar-grid--n5[b-h3cujxtn8q],
.contacts-dir__conv-avatar-grid--n6[b-h3cujxtn8q],
.contacts-dir__conv-avatar-grid--n7[b-h3cujxtn8q],
.contacts-dir__conv-avatar-grid--n8[b-h3cujxtn8q],
.contacts-dir__conv-avatar-grid--n9[b-h3cujxtn8q] {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
}

/*
 * 添加群成员 UserPicker：挂在 ShellLayout ViewportOverlay（shell-root 外），此处仅隐藏自带「打开」行。
 * 宿主不占交互；弹层 pointer-events 见下。
 */
.contacts-dir__group-member-picker-host[b-h3cujxtn8q] {
    position: static;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    overflow: visible;
    border: 0;
}

.contacts-im-picker-portal[b-h3cujxtn8q] {
    pointer-events: none;
}

.contacts-dir__group-member-picker-host[b-h3cujxtn8q]  .ox-user-picker__field-label,
.contacts-dir__group-member-picker-host[b-h3cujxtn8q]  .ox-user-picker__field-row {
    display: none !important;
}

.contacts-im-picker-portal[b-h3cujxtn8q]  .ox-user-picker__backdrop,
.contacts-im-picker-portal[b-h3cujxtn8q]  .ox-user-picker__dialog {
    pointer-events: auto;
}

.contacts-dir__modal-scrim[b-h3cujxtn8q] {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(15, 23, 42, 0.35);
}

.contacts-dir__modal-panel[b-h3cujxtn8q] {
    position: fixed;
    z-index: 110;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(26rem, calc(100vw - 1.5rem));
    max-height: min(85vh, 32rem);
    overflow: auto;
    border-radius: 0.65rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
}

/* 新建群聊：与放大后的选人弹窗配套，避免外层面板过窄 */
.contacts-dir__modal-panel--wide[b-h3cujxtn8q] {
    width: min(42rem, calc(100vw - 1.5rem));
    max-height: min(90vh, 48rem);
}

.contacts-dir__modal-head[b-h3cujxtn8q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid #e5e7eb;
}

.contacts-dir__modal-title[b-h3cujxtn8q] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
}

.contacts-dir__modal-body[b-h3cujxtn8q] {
    padding: 0.65rem 0.75rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.contacts-dir__modal-label[b-h3cujxtn8q] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.contacts-dir__modal-field[b-h3cujxtn8q] {
    font-size: 0.82rem;
}

.contacts-dir__modal-actions[b-h3cujxtn8q] {
    display: flex;
    justify-content: flex-end;
    gap: 0.45rem;
    margin-top: 0.35rem;
}
/* /Components/Pages/EvaluationLeadershipRaters.razor.rz.scp.css */
.leadership-rater-matrix-wrap[b-kwvm1dalk8] {
    overflow: auto;
    max-height: calc(100vh - 14rem);
    margin: 0 0.75rem 1rem;
}

.leadership-rater-matrix[b-kwvm1dalk8] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.8125rem;
    min-width: max-content;
}

.leadership-rater-matrix th[b-kwvm1dalk8],
.leadership-rater-matrix td[b-kwvm1dalk8] {
    border: 1px solid var(--ox-ui-border, #e5e7eb);
    padding: 0.35rem 0.5rem;
    background: var(--ox-ui-surface, #fff);
    white-space: nowrap;
}

.leadership-rater-matrix thead th[b-kwvm1dalk8] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--ox-ui-surface-muted, #f8fafc);
    text-align: center;
}

.leadership-rater-matrix .sticky-col[b-kwvm1dalk8] {
    position: sticky;
    left: 0;
    z-index: 3;
    background: var(--ox-ui-surface, #fff);
    min-width: 5.5rem;
}

.leadership-rater-matrix .sticky-col-2[b-kwvm1dalk8] {
    position: sticky;
    left: 5.5rem;
    z-index: 3;
    background: var(--ox-ui-surface, #fff);
    min-width: 7rem;
}

.leadership-rater-matrix thead .sticky-col[b-kwvm1dalk8],
.leadership-rater-matrix thead .sticky-col-2[b-kwvm1dalk8] {
    z-index: 4;
    background: var(--ox-ui-surface-muted, #f8fafc);
}

.leadership-rater-matrix input.ox-form-control[b-kwvm1dalk8] {
    width: 2.5rem;
    min-width: 2.5rem;
    padding: 0.2rem 0.25rem;
    text-align: center;
}

.leadership-rater-matrix .channel-hint[b-kwvm1dalk8] {
    font-size: 0.65rem;
    color: var(--ox-ui-muted, #64748b);
    font-weight: normal;
}
/* /Components/Pages/EvaluationMobileDashboard.razor.rz.scp.css */
/* ============================================================
   待评分仪表盘 v4 — 移动 App 级体验
   设计语言：iOS 原生质感 · 卡片化 · 微交互动画
   ============================================================ */

/* ===== 1. 设计令牌 ===== */
.ev-dash[b-64c37r7aro] {
    --ev-avatar-size: 42px;
    --ev-radius-sm: 10px;
    --ev-radius-md: 14px;
    --ev-radius-lg: 18px;
    --ev-shadow-card: 0 0.5px 1px rgba(0,0,0,0.03), 0 2px 8px rgba(0,0,0,0.04);
    --ev-shadow-card-hover: 0 1px 3px rgba(0,0,0,0.04), 0 4px 14px rgba(0,0,0,0.06);
    --ev-shadow-elevated: 0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.06);
    --ev-bg-card: rgba(255,255,255,0.95);
    --ev-bg-card-hover: rgba(255,255,255,0.98);
    --ev-page-bg: var(--ox-surface-muted, #f1f5f9);
    --ev-text-primary: #0f172a;
    --ev-text-secondary: #64748b;
    --ev-text-tertiary: #94a3b8;
    --ev-accent: var(--ox-accent, #0067c0);
    --ev-accent-gradient: linear-gradient(135deg, var(--ev-accent), #0ea5e9);
    --ev-green: #059669;
    --ev-green-bg: #ecfdf5;
    --ev-amber: #d97706;
    --ev-amber-bg: #fffbeb;
    --ev-blue-bg: #eef2ff;
    --ev-red: #ef4444;
    --ev-purple: #7c3aed;
    --ev-purple-bg: #f5f3ff;
}

/* ===== 2. 全局内容入场动画 ===== */
@keyframes ev-dash-fade-in-b-64c37r7aro {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes ev-dash-slide-up-b-64c37r7aro {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes ev-dash-slide-down-b-64c37r7aro {
    from { opacity: 0; transform: translateY(-12px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes ev-dash-scale-in-b-64c37r7aro {
    from { opacity: 0; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1); }
}
@keyframes ev-dash-shimmer-b-64c37r7aro {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
@keyframes ev-dash-badge-pop-b-64c37r7aro {
    0% { transform: scale(0); opacity: 0; }
    60% { transform: scale(1.15); }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes ev-dash-check-circle-b-64c37r7aro {
    0% { transform: scale(0); opacity: 0; }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes ev-dash-pulse-glow-b-64c37r7aro {
    0%, 100% { box-shadow: 0 0 0 0 rgba(0,103,192,0.15); }
    50% { box-shadow: 0 0 0 8px rgba(0,103,192,0); }
}
@keyframes ev-dash-float-b-64c37r7aro {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-6px); }
}
@keyframes ev-dash-progress-fill-b-64c37r7aro {
    from { width: var(--ev-fill-from, 0%); }
}
@keyframes ev-dash-ripple-b-64c37r7aro {
    from { opacity: 0.5; transform: scale(0); }
    to { opacity: 0; transform: scale(4); }
}

/* ===== 3. 骨架屏 ===== */
.ev-dash__skeleton[b-64c37r7aro] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 4px 0;
    animation: ev-dash-fade-in-b-64c37r7aro 0.3s ease-out;
}
.ev-dash__skeleton-header[b-64c37r7aro] {
    height: 40px;
    border-radius: var(--ev-radius-sm);
    background: linear-gradient(110deg, #f1f5f9 30%, #e2e8f0 50%, #f1f5f9 70%);
    background-size: 200% 100%;
    animation: ev-dash-shimmer-b-64c37r7aro 1.5s ease-in-out infinite;
}
.ev-dash__skeleton-metrics[b-64c37r7aro] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}
.ev-dash__skeleton-metric[b-64c37r7aro] {
    height: 52px;
    border-radius: 8px;
    background: linear-gradient(110deg, #f1f5f9 30%, #e2e8f0 50%, #f1f5f9 70%);
    background-size: 200% 100%;
    animation: ev-dash-shimmer-b-64c37r7aro 1.5s ease-in-out infinite;
}
.ev-dash__skeleton-select[b-64c37r7aro] {
    height: 62px;
    border-radius: var(--ev-radius-md);
    background: linear-gradient(110deg, #f1f5f9 30%, #e2e8f0 50%, #f1f5f9 70%);
    background-size: 200% 100%;
    animation: ev-dash-shimmer-b-64c37r7aro 1.5s ease-in-out infinite;
}
.ev-dash__skeleton-card[b-64c37r7aro] {
    height: 70px;
    border-radius: var(--ev-radius-md);
    background: linear-gradient(110deg, #f1f5f9 30%, #e2e8f0 50%, #f1f5f9 70%);
    background-size: 200% 100%;
    animation: ev-dash-shimmer-b-64c37r7aro 1.5s ease-in-out infinite;
}

/* ===== 4. 空态 ===== */
.ev-dash__empty[b-64c37r7aro] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 72px 24px 60px;
    text-align: center;
    gap: 6px;
    animation: ev-dash-fade-in-b-64c37r7aro 0.4s ease-out;
}
.ev-dash__empty-graphic[b-64c37r7aro] {
    position: relative;
    width: 88px;
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.ev-dash__empty-graphic-bg[b-64c37r7aro] {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, color-mix(in srgb, var(--ev-accent) 8%, transparent), color-mix(in srgb, #0ea5e9 12%, transparent));
    animation: ev-dash-float-b-64c37r7aro 3s ease-in-out infinite;
}
.ev-dash__empty-icon[b-64c37r7aro] {
    position: relative;
    z-index: 1;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    border-radius: 50%;
    background: rgba(255,255,255,0.85);
    color: var(--ev-accent);
    box-shadow: 0 2px 12px rgba(0,103,192,0.12);
}
.ev-dash__empty-title[b-64c37r7aro] {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--ev-text-primary);
    letter-spacing: -0.01em;
}
.ev-dash__empty-desc[b-64c37r7aro] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--ev-text-tertiary);
    line-height: 1.5;
    max-width: 240px;
}

/* ===== 5. 周期选择器 (iOS 风格横向滚动) ===== */
.ev-dash__periods[b-64c37r7aro] {
    margin-bottom: 12px;
    animation: ev-dash-slide-down-b-64c37r7aro 0.35s cubic-bezier(0.34, 0.69, 0.1, 1);
}
.ev-dash__periods-scroll[b-64c37r7aro] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 2px;
    margin: -2px;
}
.ev-dash__periods-scroll[b-64c37r7aro]::-webkit-scrollbar { display: none; }
.ev-dash__period-pill[b-64c37r7aro] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 16px;
    border: none;
    border-radius: var(--ev-radius-md);
    background: var(--ev-bg-card);
    box-shadow: var(--ev-shadow-card);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
    -webkit-tap-highlight-color: transparent;
    position: relative;
    overflow: hidden;
}
.ev-dash__period-pill:active[b-64c37r7aro] {
    transform: scale(0.94);
}
.ev-dash__period-pill--active[b-64c37r7aro] {
    background: var(--ev-accent-gradient);
    box-shadow: 0 2px 12px rgba(0, 103, 192, 0.3);
}
.ev-dash__period-pill-label[b-64c37r7aro] {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--ev-text-primary);
    line-height: 1.3;
    letter-spacing: -0.01em;
}
.ev-dash__period-pill--active .ev-dash__period-pill-label[b-64c37r7aro] {
    color: #fff;
}
.ev-dash__period-pill-date[b-64c37r7aro] {
    font-size: 0.5625rem;
    color: var(--ev-text-tertiary);
    line-height: 1.2;
    letter-spacing: 0.01em;
}
.ev-dash__period-pill--active .ev-dash__period-pill-date[b-64c37r7aro] {
    color: rgba(255,255,255,0.72);
}

/* ===== 6. 进度卡片 (iOS 风格) ===== */
.ev-dash__progress[b-64c37r7aro] {
    background: var(--ev-bg-card);
    border-radius: var(--ev-radius-md);
    padding: 12px 12px 10px;
    margin-bottom: 10px;
    box-shadow: var(--ev-shadow-card);
    animation: ev-dash-slide-up-b-64c37r7aro 0.4s cubic-bezier(0.34, 0.69, 0.1, 1);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.ev-dash__progress-top[b-64c37r7aro] {
    margin-bottom: 10px;
}
.ev-dash__progress-head[b-64c37r7aro] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.ev-dash__progress-label-group[b-64c37r7aro] {
    display: flex;
    align-items: center;
    gap: 6px;
}
.ev-dash__progress-label[b-64c37r7aro] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--ev-text-secondary);
    letter-spacing: 0.01em;
}
.ev-dash__progress-label-icon[b-64c37r7aro] {
    font-size: 0.875rem;
    color: var(--ev-accent);
}
.ev-dash__progress-pct[b-64c37r7aro] {
    font-size: 1.125rem;
    font-weight: 800;
    color: var(--ev-accent);
    letter-spacing: -0.03em;
    line-height: 1;
    transition: all 0.3s ease;
}
.ev-dash__progress-pct--done[b-64c37r7aro] {
    color: var(--ev-green);
}
.ev-dash__progress-bar-track[b-64c37r7aro] {
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, #f1f5f9, #eef2ff);
    overflow: hidden;
    position: relative;
}
.ev-dash__progress-fill[b-64c37r7aro] {
    height: 100%;
    border-radius: inherit;
    background: var(--ev-accent-gradient);
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}
.ev-dash__progress-fill[b-64c37r7aro]::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 20px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35));
    border-radius: inherit;
}
.ev-dash__progress-fill--complete[b-64c37r7aro] {
    background: linear-gradient(90deg, #059669, #10b981);
}

/* 状态筛选 (iOS 分段控件风格) */
.ev-dash__progress-stats[b-64c37r7aro] {
    display: flex;
    background: #f1f5f9;
    border-radius: 8px;
    padding: 2px;
    gap: 1px;
}
.ev-dash__stat-chip[b-64c37r7aro] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    padding: 5px 2px 4px;
    border: none;
    border-radius: 7px;
    background: transparent;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.34, 0.69, 0.1, 1);
    -webkit-tap-highlight-color: transparent;
    font-family: inherit;
    position: relative;
}
.ev-dash__stat-chip:active[b-64c37r7aro] { transform: scale(0.94); }
.ev-dash__stat-chip--active[b-64c37r7aro] {
    background: #fff;
    box-shadow: 0 0.5px 2px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
}
.ev-dash__stat-chip-val[b-64c37r7aro] {
    font-size: 0.875rem;
    font-weight: 800;
    color: var(--ev-text-secondary);
    line-height: 1.15;
    letter-spacing: -0.02em;
    transition: color 0.2s ease;
    font-variant-numeric: tabular-nums;
}
.ev-dash__stat-chip--active .ev-dash__stat-chip-val[b-64c37r7aro] { color: var(--ev-text-primary); }
.ev-dash__stat-chip-lbl[b-64c37r7aro] {
    font-size: 0.5625rem;
    color: var(--ev-text-tertiary);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
    transition: color 0.2s ease;
    white-space: nowrap;
}
.ev-dash__stat-chip--active .ev-dash__stat-chip-lbl[b-64c37r7aro] {
    color: var(--ev-accent);
}

/* 脉冲动画（待评分 > 0 时） */
.ev-dash__stat-chip--warn.ev-dash__stat-chip--active .ev-dash__stat-chip-val[b-64c37r7aro] {
    color: var(--ev-amber);
    animation: ev-dash-pulse-glow-b-64c37r7aro 2s ease-in-out infinite;
}

.ev-dash__stat-chip--draft.ev-dash__stat-chip--active .ev-dash__stat-chip-val[b-64c37r7aro] {
    color: #64748b;
}

.ev-dash__stat-chip--draft.ev-dash__stat-chip--active .ev-dash__stat-chip-lbl[b-64c37r7aro] {
    color: #64748b;
}

.ev-dash__stat-chip--ok.ev-dash__stat-chip--active .ev-dash__stat-chip-val[b-64c37r7aro] {
    color: var(--ev-green);
}

.ev-dash__stat-chip--ok.ev-dash__stat-chip--active .ev-dash__stat-chip-lbl[b-64c37r7aro] {
    color: var(--ev-green);
}

/* ===== 7. 搜索与类别筛选 ===== */
.ev-dash__controls[b-64c37r7aro] {
    margin-bottom: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    animation: ev-dash-slide-up-b-64c37r7aro 0.45s cubic-bezier(0.34, 0.69, 0.1, 1);
}

.ev-dash__category-filter[b-64c37r7aro] {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 2px;
    margin: -2px;
}
.ev-dash__category-filter[b-64c37r7aro]::-webkit-scrollbar { display: none; }

.ev-dash__category-btn[b-64c37r7aro] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 0 12px;
    border: none;
    border-radius: 999px;
    background: var(--ev-bg-card);
    box-shadow: var(--ev-shadow-card);
    color: var(--ev-text-secondary);
    font-family: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    white-space: nowrap;
}
.ev-dash__category-btn:active[b-64c37r7aro] { transform: scale(0.96); }
.ev-dash__category-btn--active[b-64c37r7aro] {
    background: var(--ev-accent-gradient);
    color: #fff;
    box-shadow: 0 2px 10px rgba(0, 103, 192, 0.28);
}
.ev-dash__category-btn-count[b-64c37r7aro] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    font-size: 0.625rem;
    font-weight: 700;
    background: rgba(15, 23, 42, 0.08);
    color: inherit;
}
.ev-dash__category-btn--active .ev-dash__category-btn-count[b-64c37r7aro] {
    background: rgba(255, 255, 255, 0.22);
}

/* ===== 7b. 列表排序 + 一键提交 ===== */
.ev-dash__sort[b-64c37r7aro] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 10px;
    padding: 0 4px;
    min-height: 28px;
}

.ev-dash__sort-track[b-64c37r7aro] {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
}

.ev-dash__sort-item[b-64c37r7aro] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin: 0;
    padding: 2px 0;
    border: none;
    background: none;
    font-family: inherit;
    line-height: 1.4;
    cursor: pointer;
    transition: color 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.ev-dash__sort-item--on .ev-dash__sort-label[b-64c37r7aro] {
    color: var(--ev-accent);
    font-weight: 600;
}

.ev-dash__sort-item--on .ev-dash__sort-icon[b-64c37r7aro] {
    color: var(--ev-accent);
    opacity: 1;
}

.ev-dash__sort-label[b-64c37r7aro] {
    color: var(--ev-text-muted);
    font-size: 0.8125rem;
    font-weight: 500;
}

.ev-dash__sort-icon[b-64c37r7aro] {
    font-size: 0.875rem;
    line-height: 1;
    color: var(--ev-text-muted);
    opacity: 0.72;
}

.ev-dash__sort-sep[b-64c37r7aro] {
    flex-shrink: 0;
    width: 1px;
    height: 0.75rem;
    margin: 0 12px;
    background: color-mix(in srgb, var(--ev-text-primary) 14%, transparent);
}

.ev-dash__template-banner[b-64c37r7aro] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    padding: 10px 14px;
    border-radius: var(--ev-radius-sm);
    background: color-mix(in srgb, var(--ev-accent) 8%, #fff);
    color: var(--ev-text-secondary);
    box-shadow: var(--ev-shadow-card);
    animation: ev-dash-slide-up-b-64c37r7aro 0.42s cubic-bezier(0.34, 0.69, 0.1, 1);
}
.ev-dash__template-banner-text[b-64c37r7aro] {
    flex: 1;
    min-width: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--ev-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-dash__batch-submit[b-64c37r7aro] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 28px;
    padding: 0 10px;
    margin: 0;
    border: 1px solid rgba(5, 150, 105, 0.32);
    border-radius: 999px;
    background: rgba(236, 253, 245, 0.95);
    color: #047857;
    font-family: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(5, 150, 105, 0.1);
    transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.ev-dash__batch-submit-icon[b-64c37r7aro] {
    font-size: 0.8125rem;
    line-height: 1;
}

.ev-dash__batch-submit:active:not(:disabled)[b-64c37r7aro] {
    transform: scale(0.96);
    background: #d1fae5;
    border-color: rgba(5, 150, 105, 0.45);
}

.ev-dash__batch-submit:disabled[b-64c37r7aro] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* 一键提交确认框 */
.ev-dash__modal-layer[b-64c37r7aro] {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    pointer-events: none;
}
.ev-dash__modal-scrim[b-64c37r7aro] {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: ev-dash-fade-in-b-64c37r7aro 0.2s ease-out;
    pointer-events: auto;
}
.ev-dash__modal[b-64c37r7aro] {
    position: relative;
    z-index: 1;
    width: min(340px, 100%);
    border-radius: var(--ev-radius-md);
    background: #fff;
    box-shadow: var(--ev-shadow-elevated);
    animation: ev-dash-scale-in-b-64c37r7aro 0.24s cubic-bezier(0.34, 1.56, 0.64, 1);
    overflow: hidden;
    pointer-events: auto;
}
.ev-dash__modal-head[b-64c37r7aro] {
    padding: 16px 18px 8px;
}
.ev-dash__modal-title[b-64c37r7aro] {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--ev-text-primary);
    letter-spacing: -0.01em;
}
.ev-dash__modal-body[b-64c37r7aro] {
    padding: 4px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ev-dash__modal-stat[b-64c37r7aro] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--ev-text-secondary);
    line-height: 1.5;
}
.ev-dash__modal-stat strong[b-64c37r7aro] {
    color: var(--ev-text-primary);
    font-weight: 800;
}
.ev-dash__modal-note[b-64c37r7aro] {
    margin: 0;
    padding: 8px 10px;
    border-radius: 8px;
    background: #f8fafc;
    font-size: 0.8125rem;
    color: var(--ev-text-secondary);
    line-height: 1.45;
}
.ev-dash__modal-error[b-64c37r7aro] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid rgba(239, 68, 68, 0.28);
    background: #fef2f2;
    font-size: 0.8125rem;
    color: #b91c1c;
    line-height: 1.45;
}
.ev-dash__modal-error-icon[b-64c37r7aro] {
    flex-shrink: 0;
    margin-top: 1px;
    font-size: 0.9375rem;
}
.ev-dash__modal-warn[b-64c37r7aro] {
    margin: 4px 0 0;
    font-size: 0.75rem;
    color: var(--ev-amber);
    line-height: 1.45;
}
.ev-dash__modal-actions[b-64c37r7aro] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 0 18px 18px;
}
.ev-dash__modal-btn[b-64c37r7aro] {
    min-height: 42px;
    border: none;
    border-radius: var(--ev-radius-sm);
    background: #f1f5f9;
    color: var(--ev-text-secondary);
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.15s ease;
}
.ev-dash__modal-btn:active:not(:disabled)[b-64c37r7aro] {
    transform: scale(0.98);
}
.ev-dash__modal-btn--primary[b-64c37r7aro] {
    background: linear-gradient(135deg, #059669, #10b981);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 10px rgba(5, 150, 105, 0.28);
}
.ev-dash__modal-btn:disabled[b-64c37r7aro] {
    opacity: 0.6;
    cursor: not-allowed;
}
.ev-dash__template-banner-icon[b-64c37r7aro] {
    flex-shrink: 0;
    font-size: 0.9375rem;
    color: var(--ev-accent);
}

.ev-dash__list-section[b-64c37r7aro] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 4px 2px 8px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--ev-text-secondary);
    letter-spacing: 0.01em;
}
.ev-dash__list-section-icon[b-64c37r7aro] {
    font-size: 0.8125rem;
    color: var(--ev-accent);
}

.ev-dash__control-row[b-64c37r7aro] {
    width: 100%;
}
.ev-dash__search-wrap[b-64c37r7aro] {
    position: relative;
}
.ev-dash__search-icon[b-64c37r7aro] {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9375rem;
    color: var(--ev-text-tertiary);
    pointer-events: none;
    z-index: 1;
    transition: color 0.2s ease;
}
.ev-dash__search-wrap:focus-within .ev-dash__search-icon[b-64c37r7aro] {
    color: var(--ev-accent);
}
.ev-dash__search[b-64c37r7aro] {
    width: 100%;
    min-height: 42px;
    border: none;
    border-radius: var(--ev-radius-sm);
    padding: 0 36px 0 38px;
    background: var(--ev-bg-card);
    font-family: inherit;
    font-size: 0.875rem;
    color: var(--ev-text-primary);
    outline: none;
    box-sizing: border-box;
    transition: all 0.2s ease;
    box-shadow: var(--ev-shadow-card);
    -webkit-appearance: none;
}
.ev-dash__search[b-64c37r7aro]::placeholder { color: var(--ev-text-tertiary); }
.ev-dash__search:focus[b-64c37r7aro] {
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06), 0 0 0 2px rgba(0,103,192,0.12);
}
.ev-dash__search[b-64c37r7aro]::-webkit-search-decoration,
.ev-dash__search[b-64c37r7aro]::-webkit-search-cancel-button { display: none; }
.ev-dash__search-clear[b-64c37r7aro] {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%) scale(1);
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--ev-text-tertiary);
    cursor: pointer;
    font-size: 0.75rem;
    transition: all 0.15s ease;
}
.ev-dash__search-clear:hover[b-64c37r7aro],
.ev-dash__search-clear:active[b-64c37r7aro] {
    background: #e2e8f0;
    transform: translateY(-50%) scale(1.1);
}

/* ===== 8. 任务列表 (iOS 卡片分组风格) ===== */
.ev-dash__list[b-64c37r7aro] {
    list-style: none;
    margin: 0;
    padding: 0 0 8px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* 每个任务项都是独立卡片 */
.ev-dash__task[b-64c37r7aro] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--ev-bg-card);
    border-radius: var(--ev-radius-md);
    padding: 14px 16px;
    cursor: pointer;
    box-shadow: var(--ev-shadow-card);
    transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
    -webkit-tap-highlight-color: transparent;
    animation: ev-dash-slide-up-b-64c37r7aro 0.4s cubic-bezier(0.34, 0.69, 0.1, 1) both;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    position: relative;
    overflow: hidden;
    border: 0.5px solid rgba(255,255,255,0.6);
}
/* 传入渐变 = 拖尾渐隐 */
.ev-dash__task[b-64c37r7aro]::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, var(--ev-accent) 0%, transparent 35%);
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}
.ev-dash__task:hover[b-64c37r7aro]::before,
.ev-dash__task:active[b-64c37r7aro]::before {
    opacity: 0.035;
}
.ev-dash__task:active[b-64c37r7aro] {
    transform: scale(0.97);
    box-shadow: var(--ev-shadow-card-hover);
}

/* 点击波纹 */
.ev-dash__task[b-64c37r7aro]::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: var(--ev-accent);
    opacity: 0;
    width: 100px;
    height: 100px;
    margin-top: -50px;
    margin-left: -50px;
    top: 50%;
    left: 50%;
    transform: scale(0);
}
.ev-dash__task:active[b-64c37r7aro]::after {
    animation: ev-dash-ripple-b-64c37r7aro 0.4s ease-out;
}

/* 头像 */
.ev-dash__task-avatar[b-64c37r7aro] {
    flex-shrink: 0;
    width: var(--ev-avatar-size);
    height: var(--ev-avatar-size);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 1.0625rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.01em;
    transition: transform 0.2s ease;
    position: relative;
    z-index: 1;
}
.ev-dash__task:active .ev-dash__task-avatar[b-64c37r7aro] {
    transform: scale(0.92);
}
.ev-dash__task-avatar--person[b-64c37r7aro] {
    background: linear-gradient(135deg, #6366f1, #818cf8);
}
.ev-dash__task-avatar--org[b-64c37r7aro] {
    background: linear-gradient(135deg, #7c3aed, #a78bfa);
}

/* 右上角状态角标 */
.ev-dash__task-corner-badge[b-64c37r7aro] {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 5px 12px 6px 14px;
    border-radius: 0 var(--ev-radius-md) 0 10px;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    border-left: 0.5px solid transparent;
    border-bottom: 0.5px solid transparent;
    box-shadow: -1px 1px 0 rgba(255, 255, 255, 0.65) inset;
    pointer-events: none;
}

.ev-dash__task-corner-badge__icon[b-64c37r7aro] {
    font-size: 0.6875rem;
    line-height: 1;
    font-weight: 700;
}

.ev-dash__task-corner-badge--draft[b-64c37r7aro] {
    color: #64748b;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border-left-color: rgba(100, 116, 139, 0.22);
    border-bottom-color: rgba(100, 116, 139, 0.22);
}

.ev-dash__task-corner-badge--done[b-64c37r7aro] {
    color: #047857;
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border-left-color: rgba(5, 150, 105, 0.22);
    border-bottom-color: rgba(5, 150, 105, 0.22);
}

.ev-dash__task--draft .ev-dash__task-tail[b-64c37r7aro],
.ev-dash__task--submitted .ev-dash__task-tail[b-64c37r7aro] {
    padding-top: 12px;
}

.ev-dash__task--draft[b-64c37r7aro] {
    border-color: rgba(100, 116, 139, 0.14);
}

.ev-dash__task--submitted[b-64c37r7aro] {
    border-color: rgba(5, 150, 105, 0.14);
}

/* 四档分值：整张卡片渐变底（未打分保持默认白底） */
.ev-dash__task--excellent[b-64c37r7aro] {
    background: linear-gradient(180deg, #ecfdf5 0%, #fff 72%);
    border-color: rgba(5, 150, 105, 0.25);
}
.ev-dash__task--good[b-64c37r7aro] {
    background: linear-gradient(180deg, #e0f2fe 0%, #fff 72%);
    border-color: rgba(3, 105, 161, 0.22);
}
.ev-dash__task--fair[b-64c37r7aro] {
    background: linear-gradient(180deg, #fffbeb 0%, #fff 72%);
    border-color: rgba(180, 83, 9, 0.22);
}
.ev-dash__task--poor[b-64c37r7aro] {
    background: linear-gradient(180deg, #fef2f2 0%, #fff 72%);
    border-color: rgba(185, 28, 28, 0.22);
}

/* 当前选中 / 刚编辑的任务卡片 */
.ev-dash__task--active[b-64c37r7aro] {
    border-color: rgba(0, 103, 192, 0.38);
    border-left-width: 3px;
    border-left-color: var(--ev-accent, #0067c0);
    padding-left: 13px;
    box-shadow:
        0 0 0 1px rgba(0, 103, 192, 0.14),
        0 4px 16px rgba(0, 103, 192, 0.12);
}

.ev-dash__task--active:not(.ev-dash__task--excellent):not(.ev-dash__task--good):not(.ev-dash__task--fair):not(.ev-dash__task--poor)[b-64c37r7aro] {
    background: color-mix(in srgb, var(--ev-accent, #0067c0) 5%, var(--ev-bg-card));
}

.ev-dash__task--active[b-64c37r7aro]::before {
    opacity: 0.06;
}

.ev-dash__task--active .ev-dash__task-name[b-64c37r7aro] {
    color: var(--ev-accent, #0067c0);
    font-weight: 700;
}

.ev-dash__task--active .ev-dash__task-avatar[b-64c37r7aro] {
    box-shadow: 0 0 0 2px rgba(0, 103, 192, 0.22);
}

/* Sheet 打开时，正在编辑的卡片再加强一层 */
.ev-dash__task--editing[b-64c37r7aro] {
    border-left-color: #0ea5e9;
    box-shadow:
        0 0 0 2px rgba(14, 165, 233, 0.28),
        0 6px 20px rgba(0, 103, 192, 0.16);
}

.ev-dash__task--editing:not(.ev-dash__task--excellent):not(.ev-dash__task--good):not(.ev-dash__task--fair):not(.ev-dash__task--poor)[b-64c37r7aro] {
    background: color-mix(in srgb, var(--ev-accent, #0067c0) 8%, var(--ev-bg-card));
}

.ev-dash__task--editing[b-64c37r7aro]::before {
    opacity: 0.1;
}

/* 主体 */
.ev-dash__task-body[b-64c37r7aro] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    position: relative;
    z-index: 1;
}
.ev-dash__task-row1[b-64c37r7aro] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.ev-dash__task-name[b-64c37r7aro] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--ev-text-primary);
    line-height: 1.3;
    letter-spacing: -0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-dash__task-meta[b-64c37r7aro] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-width: 0;
}
.ev-dash__task-meta-chip[b-64c37r7aro] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 2px 7px;
    border-radius: 5px;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.35;
    background: #f1f5f9;
    color: var(--ev-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ev-dash__task-meta-chip--org[b-64c37r7aro] {
    background: var(--ev-purple-bg);
    color: var(--ev-purple);
}

/* legacy aliases kept for compatibility */
.ev-dash__task-kind[b-64c37r7aro] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 5px;
    font-size: 0.5625rem;
    font-weight: 700;
    background: var(--ev-blue-bg);
    color: #6366f1;
    letter-spacing: 0.03em;
    line-height: 1.2;
}
.ev-dash__task-kind--org[b-64c37r7aro] {
    background: var(--ev-purple-bg);
    color: var(--ev-purple);
}

/* 右侧信息 */
.ev-dash__task-tail[b-64c37r7aro] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 54px;
    position: relative;
    z-index: 1;
}
.ev-dash__task-status[b-64c37r7aro] {
    font-size: 0.625rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 20px;
    color: var(--ev-accent);
    background: var(--ev-blue-bg);
    white-space: nowrap;
    line-height: 1.4;
    transition: all 0.2s ease;
    letter-spacing: 0.01em;
}
.ev-dash__task-status--done[b-64c37r7aro] {
    color: var(--ev-green);
    background: var(--ev-green-bg);
}

/* 快捷打分：毛玻璃读数徽章（档位由卡片渐变表达） */
.ev-dash__score-badge[b-64c37r7aro] {
    display: inline-flex;
    align-items: stretch;
    justify-content: center;
    min-width: 52px;
    padding: 0;
    border: 1px dashed rgba(0, 103, 192, 0.35);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.9);
    cursor: pointer;
    font-family: inherit;
    overflow: hidden;
    transition: transform 0.2s cubic-bezier(0.34, 0.69, 0.1, 1), box-shadow 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}
.ev-dash__score-badge:active[b-64c37r7aro] {
    transform: scale(0.94);
}
.ev-dash__score-badge--empty[b-64c37r7aro] {
    min-height: 44px;
    padding: 4px 8px;
    border-style: dashed;
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.ev-dash__score-badge--filled[b-64c37r7aro] {
    border: 1px solid rgba(15, 23, 42, 0.14);
    background: rgba(255, 255, 255, 0.62);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.ev-dash__task--excellent .ev-dash__score-badge--filled[b-64c37r7aro] {
    border-color: rgba(5, 150, 105, 0.45);
    background: color-mix(in srgb, #ecfdf5 68%, rgba(255, 255, 255, 0.55));
}
.ev-dash__task--good .ev-dash__score-badge--filled[b-64c37r7aro] {
    border-color: rgba(3, 105, 161, 0.42);
    background: color-mix(in srgb, #e0f2fe 68%, rgba(255, 255, 255, 0.55));
}
.ev-dash__task--fair .ev-dash__score-badge--filled[b-64c37r7aro] {
    border-color: rgba(180, 83, 9, 0.42);
    background: color-mix(in srgb, #fffbeb 68%, rgba(255, 255, 255, 0.55));
}
.ev-dash__task--poor .ev-dash__score-badge--filled[b-64c37r7aro] {
    border-color: rgba(185, 28, 28, 0.42);
    background: color-mix(in srgb, #fef2f2 68%, rgba(255, 255, 255, 0.55));
}
.ev-dash__score-badge-stack[b-64c37r7aro] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 52px;
}
.ev-dash__score-badge-value[b-64c37r7aro] {
    font-size: 0.9375rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ev-text-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    text-align: center;
}
.ev-dash__score-badge--filled .ev-dash__score-badge-value[b-64c37r7aro] {
    padding: 5px 10px 4px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.ev-dash__task--excellent .ev-dash__score-badge--filled .ev-dash__score-badge-value[b-64c37r7aro] {
    border-bottom-color: rgba(5, 150, 105, 0.2);
}
.ev-dash__task--good .ev-dash__score-badge--filled .ev-dash__score-badge-value[b-64c37r7aro] {
    border-bottom-color: rgba(3, 105, 161, 0.18);
}
.ev-dash__task--fair .ev-dash__score-badge--filled .ev-dash__score-badge-value[b-64c37r7aro] {
    border-bottom-color: rgba(180, 83, 9, 0.18);
}
.ev-dash__task--poor .ev-dash__score-badge--filled .ev-dash__score-badge-value[b-64c37r7aro] {
    border-bottom-color: rgba(185, 28, 28, 0.18);
}
.ev-dash__score-badge--filled .ev-dash__score-badge-grade[b-64c37r7aro] {
    padding: 3px 10px 5px;
}
.ev-dash__score-badge--empty .ev-dash__score-badge-value[b-64c37r7aro] {
    color: var(--ev-accent);
    font-size: 1rem;
}
.ev-dash__score-badge-grade[b-64c37r7aro] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-align: center;
    color: var(--ev-text-secondary);
}

.ev-dash__task--excellent .ev-dash__score-badge-grade[b-64c37r7aro] { color: #047857; }
.ev-dash__task--good .ev-dash__score-badge-grade[b-64c37r7aro] { color: #0369a1; }
.ev-dash__task--fair .ev-dash__score-badge-grade[b-64c37r7aro] { color: #b45309; }
.ev-dash__task--poor .ev-dash__score-badge-grade[b-64c37r7aro] { color: #b91c1c; }

.ev-dash__task-score[b-64c37r7aro] {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--ev-text-secondary);
    letter-spacing: -0.02em;
    transition: color 0.2s ease;
}

/* ===== 8b. 交错入场动画 ===== */
.ev-dash__task:nth-child(1)[b-64c37r7aro] { animation-delay: 0ms; }
.ev-dash__task:nth-child(2)[b-64c37r7aro] { animation-delay: 40ms; }
.ev-dash__task:nth-child(3)[b-64c37r7aro] { animation-delay: 80ms; }
.ev-dash__task:nth-child(4)[b-64c37r7aro] { animation-delay: 120ms; }
.ev-dash__task:nth-child(5)[b-64c37r7aro] { animation-delay: 160ms; }
.ev-dash__task:nth-child(6)[b-64c37r7aro] { animation-delay: 200ms; }
.ev-dash__task:nth-child(7)[b-64c37r7aro] { animation-delay: 240ms; }
.ev-dash__task:nth-child(8)[b-64c37r7aro] { animation-delay: 280ms; }
.ev-dash__task:nth-child(9)[b-64c37r7aro] { animation-delay: 320ms; }
.ev-dash__task:nth-child(10)[b-64c37r7aro] { animation-delay: 360ms; }
.ev-dash__task:nth-child(11)[b-64c37r7aro] { animation-delay: 400ms; }
.ev-dash__task:nth-child(12)[b-64c37r7aro] { animation-delay: 440ms; }
.ev-dash__task:nth-child(13)[b-64c37r7aro] { animation-delay: 480ms; }
.ev-dash__task:nth-child(14)[b-64c37r7aro] { animation-delay: 520ms; }
.ev-dash__task:nth-child(15)[b-64c37r7aro] { animation-delay: 560ms; }

/* ===== 9. 无搜索结果 ===== */
.ev-dash__hint[b-64c37r7aro] {
    margin: 0;
    padding: 32px 16px;
    text-align: center;
    color: var(--ev-text-tertiary);
    font-size: 0.8125rem;
    line-height: 1.5;
    animation: ev-dash-fade-in-b-64c37r7aro 0.3s ease-out;
}

/* ===== 10. 响应式微调 ===== */
@media (max-width: 374px) {
    .ev-dash__task[b-64c37r7aro] { padding: 12px 14px; gap: 10px; }
    .ev-dash__task-avatar[b-64c37r7aro] { width: 36px; height: 36px; font-size: 0.9375rem; border-radius: 10px; }
    .ev-dash__progress[b-64c37r7aro] { padding: 14px 12px 12px; }
    .ev-dash__progress-pct[b-64c37r7aro] { font-size: 1.125rem; }
}

/* iPhone Pro Max / 大屏 */
@media (min-width: 414px) {
    .ev-dash__task[b-64c37r7aro] { padding: 16px 18px; }
    .ev-dash__progress[b-64c37r7aro] { padding: 20px 18px 16px; }
}
/* /Components/Pages/EvaluationMobileMe.razor.rz.scp.css */
/* 我的 v3 — App 化 */

/* 骨架屏 */
.ev-me__skeleton[b-03wjjqzx7v] { display:flex; flex-direction:column; gap:12px; padding:4px 0; animation:ox-m-content-fade 0.3s ease-out; }
.ev-me__skeleton-card[b-03wjjqzx7v] { height:80px; border-radius:16px; background:linear-gradient(110deg,#f1f5f9 30%,#e2e8f0 50%,#f1f5f9 70%); background-size:200% 100%; animation:ev-me-shimmer-b-03wjjqzx7v 1.5s ease-in-out infinite; }
.ev-me__skeleton-row[b-03wjjqzx7v] { height:20px; border-radius:8px; background:linear-gradient(110deg,#f1f5f9 30%,#e2e8f0 50%,#f1f5f9 70%); background-size:200% 100%; animation:ev-me-shimmer-b-03wjjqzx7v 1.5s ease-in-out infinite; }
@keyframes ev-me-shimmer-b-03wjjqzx7v { 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }

/* 个人信息卡片 (App 风格) */
.ev-me__profile[b-03wjjqzx7v] {
    display:flex; align-items:center; gap:14px;
    background:#fff; border-radius:14px; padding:16px; margin-bottom:10px;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
    border:none;
}
.ev-me__avatar[b-03wjjqzx7v] {
    flex-shrink:0; width:48px; height:48px; display:flex; align-items:center; justify-content:center;
    border-radius:14px;
    background:linear-gradient(135deg,color-mix(in srgb,var(--ox-accent,#0067c0) 20%,transparent),color-mix(in srgb,#0ea5e9 20%,transparent));
    color:var(--ox-accent,#0067c0); font-size:1.25rem;
}
.ev-me__profile-info[b-03wjjqzx7v] { min-width:0; display:flex; flex-direction:column; gap:3px; }
.ev-me__name[b-03wjjqzx7v] { font-size:1.0625rem; font-weight:600; color:#0f172a; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-me__meta[b-03wjjqzx7v] { font-size:0.75rem; color:#94a3b8; }

/* 指标 */
.ev-me__metrics[b-03wjjqzx7v] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.ev-me__metric[b-03wjjqzx7v] {
    display:flex; flex-direction:column; align-items:center; gap:4px;
    padding:14px 8px; border-radius:14px; background:#fff;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
    border:none;
}
.ev-me__metric-val[b-03wjjqzx7v] { font-size:1.25rem; font-weight:800; line-height:1.1; letter-spacing:-0.02em; }
.ev-me__metric-lbl[b-03wjjqzx7v] { font-size:0.625rem; font-weight:600; color:#94a3b8; letter-spacing:0.02em; }
.ev-me__metric--all .ev-me__metric-val[b-03wjjqzx7v] { color:#0f172a; }
.ev-me__metric--done .ev-me__metric-val[b-03wjjqzx7v] { color:#059669; }
.ev-me__metric--pending .ev-me__metric-val[b-03wjjqzx7v] { color:#d97706; }

/* 完成率 */
.ev-me__completion[b-03wjjqzx7v] {
    background:#fff; border-radius:14px; padding:14px 16px; margin-bottom:10px;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
    border:none;
}
.ev-me__completion-head[b-03wjjqzx7v] { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.ev-me__completion-label[b-03wjjqzx7v] { font-size:0.8125rem; font-weight:600; color:#64748b; }
.ev-me__completion-pct[b-03wjjqzx7v] { font-size:1.125rem; font-weight:800; color:var(--ox-accent,#0067c0); letter-spacing:-0.02em; }
.ev-me__completion-bar[b-03wjjqzx7v] { height:5px; border-radius:999px; background:#f1f5f9; overflow:hidden; }
.ev-me__completion-fill[b-03wjjqzx7v] { height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ox-accent,#0067c0),#0ea5e9); transition:width 0.5s cubic-bezier(0.4,0,0.2,1); }

/* 面板 */
.ev-me__panel[b-03wjjqzx7v] {
    background:#fff; border-radius:14px; padding:16px; margin-bottom:10px;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
    border:none;
}
.ev-me__panel-title[b-03wjjqzx7v] { margin:0 0 12px; font-size:0.875rem; font-weight:700; color:#0f172a; }
.ev-me__hint[b-03wjjqzx7v] { margin:0; font-size:0.8125rem; color:#94a3b8; text-align:center; padding:12px 0; }

/* 周期列表 (分隔线风格) */
.ev-me__period-list[b-03wjjqzx7v] { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0; }
.ev-me__period-item[b-03wjjqzx7v] {
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:12px 0; border-bottom:0.5px solid rgba(0,0,0,0.05);
}
.ev-me__period-item:last-child[b-03wjjqzx7v] { border-bottom:none; }
.ev-me__period-main[b-03wjjqzx7v] { min-width:0; display:flex; flex-direction:column; gap:2px; }
.ev-me__period-name[b-03wjjqzx7v] { font-size:0.8125rem; font-weight:600; color:#0f172a; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-me__period-date[b-03wjjqzx7v] { font-size:0.6875rem; color:#94a3b8; }
.ev-me__period-stats[b-03wjjqzx7v] { flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.ev-me__period-stat[b-03wjjqzx7v] { font-size:0.75rem; font-weight:600; }
.ev-me__period-stat--done[b-03wjjqzx7v] { color:#059669; }
.ev-me__period-score[b-03wjjqzx7v] { font-size:0.6875rem; color:#94a3b8; }

/* 退出按钮 (App 风格) */
.ev-me__logout[b-03wjjqzx7v] {
    display:flex; align-items:center; justify-content:center; gap:6px;
    width:100%; min-height:44px; margin-top:8px; padding:0 16px;
    border:none; border-radius:14px; font-family:inherit; font-size:0.875rem; font-weight:600;
    background:#fff; color:#ef4444; cursor:pointer;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
    -webkit-tap-highlight-color:transparent; transition:all 0.15s ease;
    text-decoration:none;
}
.ev-me__logout:active[b-03wjjqzx7v] { background:#fef2f2; transform:scale(0.98); }

@media (max-width:374px) { .ev-me__metrics[b-03wjjqzx7v] { grid-template-columns:1fr; } }
/* /Components/Pages/EvaluationMobileResults.razor.rz.scp.css */
/* 移动端统计 — 与桌面汇总页对齐 */

.ev-stat__skeleton[b-wp5mo561s7] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 4px 0;
    animation: ox-m-content-fade 0.3s ease-out;
}

.ev-stat__skeleton-metrics[b-wp5mo561s7] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.ev-stat__skeleton-metric[b-wp5mo561s7],
.ev-stat__skeleton-select[b-wp5mo561s7],
.ev-stat__skeleton-bar[b-wp5mo561s7] {
    background: linear-gradient(110deg, #f1f5f9 30%, #e2e8f0 50%, #f1f5f9 70%);
    background-size: 200% 100%;
    animation: ev-stat-shimmer-b-wp5mo561s7 1.5s ease-in-out infinite;
}

.ev-stat__skeleton-metric[b-wp5mo561s7] { height: 72px; border-radius: 14px; }
.ev-stat__skeleton-select[b-wp5mo561s7] { height: 40px; border-radius: 12px; }
.ev-stat__skeleton-bar[b-wp5mo561s7] { height: 40px; border-radius: 10px; }

@keyframes ev-stat-shimmer-b-wp5mo561s7 {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.ev-stat__periods[b-wp5mo561s7] { margin-bottom: 10px; }

.ev-stat__periods-scroll[b-wp5mo561s7] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 2px;
}

.ev-stat__periods-scroll[b-wp5mo561s7]::-webkit-scrollbar { display: none; }

.ev-stat__period-pill[b-wp5mo561s7] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 14px;
    border: none;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.04);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: all 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.ev-stat__period-pill:active[b-wp5mo561s7] { transform: scale(0.96); background: #f1f5f9; }

.ev-stat__period-pill--active[b-wp5mo561s7] {
    background: linear-gradient(135deg, var(--ox-accent, #0067c0) 0%, #0ea5e9 100%);
    box-shadow: 0 2px 8px rgba(0, 103, 192, 0.25);
}

.ev-stat__period-pill-name[b-wp5mo561s7] {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

.ev-stat__period-pill--active .ev-stat__period-pill-name[b-wp5mo561s7] { color: #fff; }

.ev-stat__period-pill-date[b-wp5mo561s7] {
    font-size: 0.5625rem;
    color: #94a3b8;
    line-height: 1.2;
}

.ev-stat__period-pill--active .ev-stat__period-pill-date[b-wp5mo561s7] { color: rgba(255, 255, 255, 0.7); }

.ev-stat__metrics[b-wp5mo561s7] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.ev-stat__metric[b-wp5mo561s7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 16px 8px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ev-stat__metric-icon[b-wp5mo561s7] { font-size: 1.25rem; color: #94a3b8; line-height: 1; }
.ev-stat__metric-val[b-wp5mo561s7] { font-size: 1.25rem; font-weight: 800; color: #0f172a; line-height: 1.1; }
.ev-stat__metric-lbl[b-wp5mo561s7] { font-size: 0.625rem; font-weight: 600; color: #94a3b8; }

.ev-stat__section[b-wp5mo561s7] { margin-bottom: 12px; }

.ev-stat__section-title[b-wp5mo561s7] {
    margin: 0 0 10px 4px;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #64748b;
}

.ev-stat__section-filter[b-wp5mo561s7] {
    font-weight: 600;
    color: var(--ox-accent, #0067c0);
}

/* 分档控额（横向卡片，点击筛选合分列表） */
.ev-stat__quota-scroll[b-wp5mo561s7] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
}

.ev-stat__quota-scroll[b-wp5mo561s7]::-webkit-scrollbar { display: none; }

.ev-stat__quota-card[b-wp5mo561s7] {
    flex: 0 0 min(82vw, 16rem);
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    -webkit-tap-highlight-color: transparent;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

.ev-stat__quota-card--active[b-wp5mo561s7] {
    border-color: var(--ox-accent, #0067c0);
    box-shadow: 0 0 0 2px rgba(0, 103, 192, 0.12);
}

.ev-stat__quota-card-title[b-wp5mo561s7] {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #0f172a;
}

.ev-stat__quota-bands[b-wp5mo561s7] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ev-stat__quota-band[b-wp5mo561s7] {
    display: grid;
    grid-template-columns: 3.25rem 1fr auto;
    align-items: center;
    gap: 6px;
}

.ev-stat__quota-band-label[b-wp5mo561s7] {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #64748b;
}

.ev-stat__quota-band-track[b-wp5mo561s7] {
    height: 5px;
    border-radius: 999px;
    background: #f1f5f9;
    overflow: hidden;
}

.ev-stat__quota-band-fill[b-wp5mo561s7] {
    height: 100%;
    border-radius: inherit;
    background: var(--ox-accent, #0067c0);
}

.ev-stat__quota-band--full .ev-stat__quota-band-fill[b-wp5mo561s7] { background: #b45309; }
.ev-stat__quota-band--over .ev-stat__quota-band-fill[b-wp5mo561s7] { background: #dc2626; }

.ev-stat__quota-band-count[b-wp5mo561s7] {
    font-size: 0.6875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #0f172a;
}

.ev-stat__quota-band--over .ev-stat__quota-band-count[b-wp5mo561s7] { color: #dc2626; }

/* 领导力加权合分列表 */
.ev-stat__lead-list[b-wp5mo561s7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ev-stat__lead-item[b-wp5mo561s7] {
    padding: 12px 14px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
}

.ev-stat__lead-item:last-child[b-wp5mo561s7] { border-bottom: none; }

.ev-stat__lead-head[b-wp5mo561s7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ev-stat__lead-name[b-wp5mo561s7] {
    font-size: 0.875rem;
    font-weight: 700;
    color: #0f172a;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-stat__lead-score[b-wp5mo561s7] {
    flex-shrink: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--ox-accent, #0067c0);
    font-variant-numeric: tabular-nums;
}

.ev-stat__lead-meta[b-wp5mo561s7] {
    margin: 4px 0 0;
    font-size: 0.6875rem;
    color: #94a3b8;
    line-height: 1.35;
}

.ev-stat__lead-foot[b-wp5mo561s7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 6px;
}

.ev-stat__lead-group[b-wp5mo561s7] {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #64748b;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-stat__grade-pill[b-wp5mo561s7] {
    flex-shrink: 0;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 700;
    background: rgba(0, 103, 192, 0.1);
    color: var(--ox-accent, #0067c0);
}

/* 人员排行 */
.ev-stat__list[b-wp5mo561s7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ev-stat__item[b-wp5mo561s7] {
    padding: 14px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.ev-stat__item:active[b-wp5mo561s7] { background: #f8fafc; }
.ev-stat__item:last-child[b-wp5mo561s7] { border-bottom: none; }

.ev-stat__rank[b-wp5mo561s7] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 700;
    background: #f1f5f9;
    color: #64748b;
}

.ev-stat__item:nth-child(-n+3) .ev-stat__rank[b-wp5mo561s7] {
    background: linear-gradient(135deg, #f59e0b, #f97316);
    color: #fff;
}

.ev-stat__item-head[b-wp5mo561s7] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.ev-stat__name[b-wp5mo561s7] {
    flex: 1;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-stat__score[b-wp5mo561s7] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--ox-accent, #0067c0);
    flex-shrink: 0;
}

.ev-stat__item-chevron[b-wp5mo561s7] { flex-shrink: 0; font-size: 0.75rem; color: #cbd5e1; }

.ev-stat__bar-track[b-wp5mo561s7] {
    height: 4px;
    border-radius: 999px;
    background: #f1f5f9;
    overflow: hidden;
}

.ev-stat__bar-fill[b-wp5mo561s7] {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0ea5e9, var(--ox-accent, #0067c0));
}

/* 机构考核 */
.ev-stat__org-list[b-wp5mo561s7] {
    list-style: none;
    margin: 0;
    padding: 0;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ev-stat__org-item[b-wp5mo561s7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
}

.ev-stat__org-item:last-child[b-wp5mo561s7] { border-bottom: none; }

.ev-stat__org-main[b-wp5mo561s7] { min-width: 0; display: flex; flex-direction: column; gap: 2px; }

.ev-stat__org-name[b-wp5mo561s7] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-stat__org-template[b-wp5mo561s7] { font-size: 0.6875rem; color: #94a3b8; }

.ev-stat__org-stats[b-wp5mo561s7] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.ev-stat__org-raters[b-wp5mo561s7] { font-size: 0.6875rem; color: #94a3b8; }
.ev-stat__org-avg[b-wp5mo561s7] { font-size: 0.8125rem; color: var(--ox-accent, #0067c0); }
.ev-stat__org-avg strong[b-wp5mo561s7] { font-weight: 800; }

.ev-stat__empty[b-wp5mo561s7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 48px 24px;
    text-align: center;
    color: #94a3b8;
    font-size: 0.875rem;
}

.ev-stat__empty--compact[b-wp5mo561s7] {
    padding: 24px 16px;
    background: #fff;
    border-radius: 14px;
}

.ev-stat__empty-icon[b-wp5mo561s7] { font-size: 2rem; opacity: 0.4; }

@media (max-width: 374px) {
    .ev-stat__metrics[b-wp5mo561s7] { grid-template-columns: 1fr; }
}
/* /Components/Pages/EvaluationMobileScore.razor.rz.scp.css */
/* 移动端评分页 v3 — App 化 */

/* 状态提示 */
.ev-mob-score__state[b-shcvhrt44y] {
    padding: 60px 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    animation: ox-m-content-fade 0.3s ease-out;
}
.ev-mob-score__state-icon[b-shcvhrt44y] { font-size: 2.5rem; color: #94a3b8; margin-bottom: 4px; }
.ev-mob-score__state-text[b-shcvhrt44y] { margin: 0; font-size: 0.9375rem; color: #64748b; line-height: 1.5; }

/* 评分导航条 (App 风格) */
.ev-mob-score__nav-bar[b-shcvhrt44y] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    padding: 6px 4px;
    background: rgba(255,255,255,0.9);
    border-radius: 12px;
    box-shadow: 0 0.5px 1px rgba(0,0,0,0.04);
}
.ev-mob-score__nav-btn[b-shcvhrt44y] {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 6px 10px; border: none; border-radius: 9px;
    background: transparent; font-size: 0.6875rem; font-weight: 600;
    color: var(--ox-accent, #0067c0); cursor: pointer;
    transition: all 0.1s ease; font-family: inherit; white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
}
.ev-mob-score__nav-btn:active[b-shcvhrt44y] { background: #eef2ff; transform: scale(0.96); }
.ev-mob-score__nav-btn--disabled[b-shcvhrt44y] { opacity: 0.3; pointer-events: none; }
.ev-mob-score__nav-indicator[b-shcvhrt44y] { flex:1; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1px; }
.ev-mob-score__nav-pos[b-shcvhrt44y] { font-size:0.8125rem; font-weight:700; color:#0f172a; }
.ev-mob-score__nav-badge[b-shcvhrt44y] {
    display:inline-flex; align-items:center; padding:1px 7px; border-radius:999px;
    font-size:0.5625rem; font-weight:700; letter-spacing:0.02em;
}
.ev-mob-score__nav-badge--done[b-shcvhrt44y] { background:#ecfdf5; color:#059669; }
.ev-mob-score__nav-badge--draft[b-shcvhrt44y] { background:#fffbeb; color:#d97706; }
.ev-mob-score__nav-badge--filter[b-shcvhrt44y] { background:#eef2ff; color:#4f46e5; }
/* /Components/Pages/EvaluationOrganizationalEvalForms.razor.rz.scp.css */
/* 与人员考评卷共用布局类名；本页加宽被评机构列并增加机构图标槽 */

.org-eval-page[b-omtl7nrgdj] {
    --pe-evaluatee-col-max: 6.75rem;
}

.org-eval-target-icon[b-omtl7nrgdj] {
    width: 100%;
    height: 100%;
    border-radius: var(--pe-avatar-r, 8px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--ox-surface) 92%, var(--ox-border));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--ox-border) 80%, transparent);
    font-size: 1.2rem;
    color: var(--ox-ui-muted, #64748b);
}

/* —— 以下与 EvaluationPersonnelEvalForms.razor.css 同步 —— */

.personnel-list-toolbar--row[b-omtl7nrgdj] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 10px;
    width: 100%;
    max-width: 42rem;
    margin-inline: auto;
    margin-top: 0.75rem;
    margin-bottom: 0.875rem;
    padding-block: 0.375rem;
    box-sizing: border-box;
}

.personnel-list-toolbar--row select.ox-form-control[b-omtl7nrgdj],
.personnel-list-toolbar--row input.ox-form-control[b-omtl7nrgdj] {
    height: 2.25rem;
    min-height: 2.25rem;
    line-height: 1.25;
    box-sizing: border-box;
}

.personnel-list-toolbar--row .menu-btn.personnel-list-toolbar__btn[b-omtl7nrgdj] {
    min-height: 2.25rem;
    height: 2.25rem;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.personnel-list-toolbar__period[b-omtl7nrgdj] {
    width: min(17rem, 100%);
    min-width: 9rem;
}

.personnel-list-toolbar__search[b-omtl7nrgdj] {
    flex: 1 1 11rem;
    min-width: 7rem;
    max-width: 18rem;
}

.personnel-list-tr--placeholder[b-omtl7nrgdj] {
    user-select: none;
    pointer-events: none;
}

.personnel-eval-right-empty[b-omtl7nrgdj] {
    margin: 0;
    padding: 0.5rem 0.25rem 0.75rem;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    line-height: 1.45;
    color: var(--ox-ui-muted, #64748b);
    text-align: center;
    border: 1px dashed var(--ox-border, #e2e8f0);
    border-radius: 8px;
    background: color-mix(in srgb, var(--ox-surface) 90%, var(--ox-border));
}

.personnel-eval-cards[b-omtl7nrgdj] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.personnel-eval-panel[b-omtl7nrgdj] {
    min-width: 0;
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: 8px;
    background: color-mix(in srgb, var(--ox-surface-elevated, #fff) 96%, transparent);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.personnel-eval-panel__header[b-omtl7nrgdj] {
    margin: 0;
}

.personnel-eval-panel__delete[b-omtl7nrgdj] {
    color: var(--ox-ui-muted, #64748b);
}

.personnel-eval-panel__delete:hover:not(:disabled)[b-omtl7nrgdj] {
    color: #b91c1c;
    background: color-mix(in srgb, #fecaca 50%, transparent);
}

.personnel-eval-panel--empty[b-omtl7nrgdj] {
    border-style: dashed;
    background: color-mix(in srgb, var(--ox-surface-elevated, #fff) 92%, transparent);
}

.personnel-eval-panel__empty-hint[b-omtl7nrgdj] {
    margin: 0;
    padding: 6px 12px 10px;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    line-height: 1.4;
    color: var(--ox-ui-muted, #64748b);
    text-align: center;
    border-top: 1px solid color-mix(in srgb, var(--ox-border) 80%, transparent);
    background: color-mix(in srgb, var(--ox-surface) 86%, var(--ox-border));
    box-sizing: border-box;
}

.personnel-eval-panel__body[b-omtl7nrgdj] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, var(--pe-evaluatee-col-max, 3.75rem));
    align-items: center;
    gap: 8px 10px;
    padding: 10px 12px;
    box-sizing: border-box;
    min-width: 0;
}

.personnel-eval-panel__col--left[b-omtl7nrgdj] {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.personnel-eval-panel__col--arrow[b-omtl7nrgdj] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 36px;
    place-self: center;
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 88%, var(--ox-fg));
}

.personnel-eval-panel__arrow[b-omtl7nrgdj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    flex: 0 0 auto;
}

.personnel-eval-panel__arrow-icon[b-omtl7nrgdj] {
    display: block;
    font-size: 1.25rem;
    line-height: 1;
    color: inherit;
}

.personnel-eval-panel__col--right[b-omtl7nrgdj] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    max-width: var(--pe-evaluatee-col-max, 3.75rem);
    justify-self: end;
}

.personnel-eval-panel__col--right .personnel-eval-rater[b-omtl7nrgdj] {
    max-width: 100%;
    width: 100%;
}

.personnel-eval-panel__col--right .personnel-eval-rater__name[b-omtl7nrgdj] {
    max-width: 100%;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-all;
    line-height: 1.15;
}

.personnel-eval-rater-row[b-omtl7nrgdj] {
    --pe-avatar-r: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 12px;
    min-width: 0;
}

.personnel-eval-rater[b-omtl7nrgdj] {
    flex-shrink: 0;
    position: relative;
    max-width: 5.5rem;
}

.personnel-eval-rater__stack[b-omtl7nrgdj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 0;
    width: 100%;
}

.personnel-eval-rater__name[b-omtl7nrgdj] {
    font-size: 0.6875rem;
    line-height: 1.2;
    color: var(--ox-ui-muted, #64748b);
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.personnel-eval-add-col[b-omtl7nrgdj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    min-width: 0;
    max-width: 6.25rem;
}

.personnel-eval-add-col__label[b-omtl7nrgdj] {
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 92%, var(--ox-fg));
    white-space: normal;
    line-height: 1.2;
}

.personnel-eval-rater__wrap[b-omtl7nrgdj] {
    position: relative;
    width: 36px;
    height: 36px;
}

.personnel-eval-rater__img[b-omtl7nrgdj] {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--pe-avatar-r, 8px);
    object-fit: cover;
    vertical-align: middle;
    background: color-mix(in srgb, var(--ox-surface) 92%, var(--ox-border));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--ox-border) 80%, transparent);
}

.personnel-eval-rater__badge[b-omtl7nrgdj] {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 17px;
    height: 17px;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    background: color-mix(in srgb, #b91c1c 92%, #450a0a);
    box-shadow: 0 0 0 1.5px var(--ox-surface-elevated, #fff);
}

.personnel-eval-rater__badge:hover[b-omtl7nrgdj] {
    filter: brightness(1.08);
}

.personnel-eval-rater__badge:active[b-omtl7nrgdj] {
    filter: brightness(0.94);
}

.personnel-eval-rater-empty[b-omtl7nrgdj] {
    font-size: 0.8125rem;
    color: var(--ox-ui-muted, #64748b);
}

button.personnel-eval-add-slot[b-omtl7nrgdj] {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border-width: 1.5px;
    border-style: dashed;
    border-color: color-mix(
        in srgb,
        var(--ox-ui-muted, #64748b) 55%,
        var(--ox-border, #d1d5db)
    );
    border-radius: var(--pe-avatar-r, 8px);
    background: color-mix(in srgb, var(--ox-surface) 94%, transparent);
    color: var(--ox-ui-muted, #64748b);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 1.05rem;
    line-height: 1;
    transition:
        border-color 0.12s ease,
        color 0.12s ease,
        background 0.12s ease;
}

button.personnel-eval-add-slot:hover:not(:disabled)[b-omtl7nrgdj] {
    border-color: color-mix(
        in srgb,
        var(--ox-accent, #0ea5e9) 70%,
        var(--ox-border, #d1d5db)
    );
    color: var(--ox-accent, #0ea5e9);
    background: color-mix(in srgb, var(--ox-accent) 10%, var(--ox-surface));
}

button.personnel-eval-add-slot:active:not(:disabled)[b-omtl7nrgdj] {
    filter: brightness(0.97);
}

button.personnel-eval-add-slot:focus-visible[b-omtl7nrgdj] {
    outline: 2px solid color-mix(in srgb, var(--ox-accent) 55%, transparent);
    outline-offset: 2px;
}

button.personnel-eval-add-slot:disabled[b-omtl7nrgdj] {
    cursor: not-allowed;
    opacity: 0.75;
    filter: none;
    color: var(--ox-ui-muted, #64748b);
    background: color-mix(in srgb, var(--ox-surface) 90%, var(--ox-border));
}

.personnel-eval-cards__state[b-omtl7nrgdj] {
    margin: 0;
    padding: 12px 8px;
    text-align: center;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-ui-muted, #64748b);
    border: 1px dashed var(--ox-border, #e2e8f0);
    border-radius: 8px;
}
/* /Components/Pages/EvaluationOrgRateRelationships.razor.rz.scp.css */
/* 机构考核关系：中间关系图 + 右栏 manage-panel */

.eval-org-rel-page .manage-panel > .eval-org-rel-graph[b-dtsr4pzwtc] {
    flex: 1 1 auto;
    min-height: 0;
}

.eval-org-rel-graph[b-dtsr4pzwtc] {
    box-sizing: border-box;
    padding: 0.5rem 0.75rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    flex: 1 1 auto;
    min-height: 0;
}

.eval-org-rel-graph__legend[b-dtsr4pzwtc] {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--ox-ui-muted, #64748b) 6%, var(--ox-surface, #fff));
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 88%, transparent);
    font-size: var(--ox-ui-fs-sm, 0.75rem);
    line-height: 1.45;
    color: var(--ox-ui-muted, #64748b);
}

.eval-org-rel-graph__legend-icon[b-dtsr4pzwtc] {
    flex-shrink: 0;
    margin-top: 0.08rem;
    font-size: 1rem;
    opacity: 0.85;
}

.eval-org-rel-graph__legend-text[b-dtsr4pzwtc] {
    min-width: 0;
}

/* 图形模式：布局切换 + 缩放工具条 */
.eval-org-rel-viewbar[b-dtsr4pzwtc] {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.85rem;
    padding: 0.35rem 0.15rem 0.55rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 70%, transparent);
    margin-bottom: 0.35rem;
}

.eval-org-rel-viewbar__layouts[b-dtsr4pzwtc],
.eval-org-rel-viewbar__role[b-dtsr4pzwtc],
.eval-org-rel-viewbar__zoom[b-dtsr4pzwtc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.eval-org-rel-viewbar__hint[b-dtsr4pzwtc] {
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    font-weight: 600;
    color: var(--ox-ui-muted, #64748b);
    margin-right: 0.15rem;
}

.eval-org-rel-chip[b-dtsr4pzwtc] {
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: 999px;
    padding: 0.28rem 0.65rem;
    font-size: var(--ox-ui-fs-sm, 0.75rem);
    font-weight: 600;
    background: var(--ox-surface, #fff);
    color: var(--ox-fg, inherit);
    cursor: pointer;
    line-height: 1.2;
    transition:
        border-color 0.12s ease,
        background 0.12s ease,
        color 0.12s ease;
}

.eval-org-rel-chip:hover[b-dtsr4pzwtc] {
    border-color: color-mix(in srgb, var(--ox-accent, #0ea5e9) 35%, var(--ox-border));
}

.eval-org-rel-chip--on[b-dtsr4pzwtc] {
    border-color: color-mix(in srgb, var(--ox-accent) 45%, var(--ox-border));
    background: color-mix(in srgb, var(--ox-accent) 10%, var(--ox-surface, #fff));
    color: var(--ox-accent, #0ea5e9);
}

.eval-org-rel-icon-btn[b-dtsr4pzwtc] {
    box-sizing: border-box;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.45rem;
    border-radius: 8px;
    border: 1px solid var(--ox-border, #e2e8f0);
    background: var(--ox-surface, #fff);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    color: var(--ox-fg, inherit);
    transition:
        border-color 0.12s ease,
        background 0.12s ease;
}

.eval-org-rel-icon-btn:hover[b-dtsr4pzwtc] {
    border-color: color-mix(in srgb, var(--ox-accent) 35%, var(--ox-border));
    background: color-mix(in srgb, var(--ox-accent) 5%, var(--ox-surface, #fff));
}

/* 顶栏：图形 / 列表切换高亮 */
.manage-btn-icon.eval-org-rel-view-tog--on[b-dtsr4pzwtc] {
    border-color: color-mix(in srgb, var(--ox-accent, #0ea5e9) 45%, var(--ox-border, #e2e8f0));
    background: color-mix(in srgb, var(--ox-accent) 10%, var(--ox-surface, #fff));
    color: var(--ox-accent, #0ea5e9);
}

/* —— 矢量关系图（SVG） —— */
.eval-org-rel-svg-scroll[b-dtsr4pzwtc] {
    box-sizing: border-box;
    position: relative;
    flex: 1 1 auto;
    min-height: 10rem;
    max-height: none;
    overflow: hidden;
    border-radius: 10px;
    border: 1px solid var(--ox-border, #e2e8f0);
    background: color-mix(in srgb, var(--ox-surface, #fff) 97%, var(--ox-border));
}

.eval-org-rel-svg__pan-floor[b-dtsr4pzwtc] {
    fill: transparent;
    stroke: none;
    cursor: grab;
}

.eval-org-rel-svg__pan-floor:active[b-dtsr4pzwtc] {
    cursor: grabbing;
}

.eval-org-rel-svg[b-dtsr4pzwtc] {
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    vertical-align: middle;
    touch-action: none;
}

.eval-org-rel-svg__arrow-head[b-dtsr4pzwtc] {
    fill: currentColor;
}

.eval-org-rel-svg__edge[b-dtsr4pzwtc] {
    cursor: pointer;
}

.eval-org-rel-svg__hit[b-dtsr4pzwtc] {
    cursor: pointer;
}

.eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    pointer-events: none;
    stroke: color-mix(in srgb, var(--ox-ui-muted, #64748b) 88%, var(--ox-fg, #0f172a));
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 88%, var(--ox-fg, #0f172a));
}

.eval-org-rel-svg__edge--off .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    opacity: 0.52;
    stroke-dasharray: 9 7;
}

.eval-org-rel-svg__edge--hi:not(.eval-org-rel-svg__edge--sel) .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    stroke-width: 3.4;
    opacity: 1;
}

.eval-org-rel-svg__edge--sel .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    stroke: var(--ox-accent, #0ea5e9);
    stroke-width: 3.6;
    color: var(--ox-accent, #0ea5e9);
}

/* 不拦截连线点击；节点组本身亦不抢事件（连线在节点下方时可点到） */
.eval-org-rel-svg__fo-pass[b-dtsr4pzwtc] {
    pointer-events: none;
}

/* foreignObject 内 HTML（避免 Blazor 将 SVG <text> 误认为 Razor 标记） */
.eval-org-rel-svg__fo-edge[b-dtsr4pzwtc] {
    box-sizing: border-box;
    margin: 0;
    padding: 0 4px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--ox-fg, #0f172a);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
    text-shadow:
        0 0 6px color-mix(in srgb, var(--ox-surface, #fff) 90%, transparent),
        0 0 3px color-mix(in srgb, var(--ox-surface, #fff) 85%, transparent);
}

.eval-org-rel-svg__node[b-dtsr4pzwtc] {
    pointer-events: none;
}

.eval-org-rel-svg__node *[b-dtsr4pzwtc] {
    pointer-events: none;
}

.eval-org-rel-svg__node-hit[b-dtsr4pzwtc] {
    fill: transparent;
    stroke: none;
    cursor: pointer;
}

.eval-org-rel-svg__node .eval-org-rel-svg__node-hit[b-dtsr4pzwtc] {
    pointer-events: auto;
}

.eval-org-rel-svg__node rect[b-dtsr4pzwtc] {
    fill: color-mix(in srgb, var(--ox-surface, #fff) 94%, var(--ox-border, #e2e8f0));
    stroke: var(--ox-border, #e2e8f0);
    stroke-width: 1.25;
}

.eval-org-rel-svg__fo-node[b-dtsr4pzwtc] {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--ox-fg, #0f172a);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
}

/* —— 关系图谱：白底画布 + 深色节点与边（悬停弱化无关项） —— */
.eval-org-rel-svg-scroll--obsidian[b-dtsr4pzwtc] {
    background: #fff;
    border-color: var(--ox-border, #e2e8f0);
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__arrow-head[b-dtsr4pzwtc] {
    fill: #334155;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    stroke: color-mix(in srgb, #0f172a 72%, #64748b);
    stroke-width: 1.85;
    color: #334155;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__edge--off .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    opacity: 0.45;
    stroke-dasharray: 8 6;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__edge--dim .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    opacity: 0.22;
    stroke-width: 1.25;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__edge--hi .eval-org-rel-svg__visible[b-dtsr4pzwtc],
.eval-org-rel-svg--obsidian .eval-org-rel-svg__edge--sel .eval-org-rel-svg__visible[b-dtsr4pzwtc] {
    opacity: 1;
    stroke: var(--ox-accent, #0ea5e9);
    stroke-width: 2.6;
    color: var(--ox-accent, #0ea5e9);
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__node-dot[b-dtsr4pzwtc] {
    fill: #0f172a;
    stroke: #475569;
    stroke-width: 1.15;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__node--dim[b-dtsr4pzwtc] {
    opacity: 0.32;
    transition: opacity 0.15s ease;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__node--dim .eval-org-rel-svg__node-dot[b-dtsr4pzwtc] {
    fill: #64748b;
    stroke: #94a3b8;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__node--focus .eval-org-rel-svg__node-dot[b-dtsr4pzwtc] {
    fill: var(--ox-accent, #0ea5e9);
    stroke: color-mix(in srgb, var(--ox-accent, #0ea5e9) 50%, #0f172a);
    stroke-width: 1.45;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__node--focus .eval-org-rel-svg__fo-node-obsidian[b-dtsr4pzwtc] {
    color: #0f172a;
    font-weight: 700;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__edge[b-dtsr4pzwtc] {
    transition: opacity 0.12s ease;
}

.eval-org-rel-svg--obsidian .eval-org-rel-svg__fo-edge[b-dtsr4pzwtc] {
    color: #1e293b;
    text-shadow:
        0 0 6px color-mix(in srgb, #fff 92%, transparent),
        0 0 3px color-mix(in srgb, #fff 88%, transparent);
}

.eval-org-rel-svg__fo-node-obsidian[b-dtsr4pzwtc] {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 2px 4px 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.35;
    color: #0f172a;
    text-align: center;
    word-break: break-all;
    pointer-events: none;
    text-shadow:
        0 0 4px color-mix(in srgb, #fff 95%, transparent),
        0 1px 0 #fff;
}

.eval-org-rel-graph__list[b-dtsr4pzwtc] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.eval-org-rel-graph__item[b-dtsr4pzwtc] {
    margin: 0;
    padding: 0;
}

.eval-org-rel-edge[b-dtsr4pzwtc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    width: 100%;
    text-align: left;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ox-surface, #fff) 96%, var(--ox-border));
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    cursor: pointer;
    font: inherit;
    color: inherit;
    box-sizing: border-box;
    transition:
        border-color 0.12s ease,
        box-shadow 0.12s ease,
        background 0.12s ease;
}

.eval-org-rel-edge:hover[b-dtsr4pzwtc] {
    border-color: color-mix(in srgb, var(--ox-accent, #0ea5e9) 35%, var(--ox-border));
    background: color-mix(in srgb, var(--ox-accent) 4%, var(--ox-surface, #fff));
}

.eval-org-rel-edge:focus[b-dtsr4pzwtc] {
    outline: none;
}

.eval-org-rel-edge:focus-visible[b-dtsr4pzwtc] {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--ox-accent) 45%, transparent);
}

.eval-org-rel-edge--active[b-dtsr4pzwtc] {
    border-color: var(--ox-accent, #0ea5e9);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--ox-accent) 55%, transparent);
    background: color-mix(in srgb, var(--ox-accent) 8%, var(--ox-surface, #fff));
}

.eval-org-rel-edge__flow[b-dtsr4pzwtc] {
    display: flex;
    flex: 1 1 12rem;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    flex-wrap: wrap;
}

.eval-org-rel-node[b-dtsr4pzwtc] {
    display: inline-block;
    max-width: min(14rem, 100%);
    padding: 0.4rem 0.7rem;
    border-radius: 8px;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    font-weight: 600;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    box-sizing: border-box;
}

.eval-org-rel-node--rater[b-dtsr4pzwtc] {
    background: color-mix(in srgb, var(--ox-accent, #0ea5e9) 14%, var(--ox-surface, #fff));
    border: 1px solid color-mix(in srgb, var(--ox-accent) 32%, var(--ox-border, #e2e8f0));
    color: var(--ox-fg, inherit);
}

.eval-org-rel-node--target[b-dtsr4pzwtc] {
    background: color-mix(in srgb, var(--ox-ui-muted, #64748b) 9%, var(--ox-surface, #fff));
    border: 1px solid var(--ox-border, #e2e8f0);
    color: var(--ox-fg, inherit);
}

.eval-org-rel-edge__arrow[b-dtsr4pzwtc] {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    gap: 0;
    color: color-mix(in srgb, var(--ox-ui-muted) 92%, var(--ox-fg));
}

.eval-org-rel-edge__arrow-line[b-dtsr4pzwtc] {
    display: none;
}

@media (min-width: 640px) {
    .eval-org-rel-edge__arrow-line[b-dtsr4pzwtc] {
        display: block;
        width: 1.25rem;
        height: 2px;
        border-radius: 1px;
        background: linear-gradient(
            90deg,
            color-mix(in srgb, var(--ox-ui-muted) 35%, transparent),
            color-mix(in srgb, var(--ox-ui-muted) 65%, transparent)
        );
        margin-right: 2px;
    }
}

.eval-org-rel-edge__arrow-icon[b-dtsr4pzwtc] {
    font-size: 1.05rem;
    line-height: 1;
}

.eval-org-rel-edge__aside[b-dtsr4pzwtc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem 0.6rem;
    flex-shrink: 0;
}

.eval-org-rel-edge__alias[b-dtsr4pzwtc] {
    font-size: var(--ox-ui-fs-sm, 0.75rem);
    color: var(--ox-ui-muted, #64748b);
    max-width: 8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eval-org-rel-badge[b-dtsr4pzwtc] {
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    font-weight: 600;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    line-height: 1.2;
}

.eval-org-rel-badge--on[b-dtsr4pzwtc] {
    background: color-mix(in srgb, #16a34a 16%, var(--ox-surface));
    color: #15803d;
    border: 1px solid color-mix(in srgb, #16a34a 35%, var(--ox-border));
}

.eval-org-rel-badge--off[b-dtsr4pzwtc] {
    background: color-mix(in srgb, var(--ox-ui-muted) 12%, var(--ox-surface));
    color: var(--ox-ui-muted, #64748b);
    border: 1px solid var(--ox-border, #e2e8f0);
}

.eval-org-rel-graph__empty[b-dtsr4pzwtc] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    text-align: center;
    border: 1px dashed var(--ox-border, #e2e8f0);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ox-surface) 92%, var(--ox-border));
}

.eval-org-rel-graph__empty-icon[b-dtsr4pzwtc] {
    font-size: 2rem;
    line-height: 1;
    color: color-mix(in srgb, var(--ox-ui-muted) 80%, transparent);
}

.eval-org-rel-graph__empty-text[b-dtsr4pzwtc] {
    margin: 0;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-ui-muted, #64748b);
    line-height: 1.45;
    max-width: 20rem;
}

.eval-org-rel-right[b-dtsr4pzwtc] {
    box-sizing: border-box;
}

/* 右侧编辑区：整卡 panel（与中间列表区 manage-panel 同系顶栏 + 白底） */
.eval-org-rel-right-panel.manage-panel[b-dtsr4pzwtc] {
    flex: none;
    flex-basis: auto;
    width: 100%;
    min-height: 0;
    border-radius: var(--ox-radius);
}

.eval-org-rel-right-panel .manage-panel-header[b-dtsr4pzwtc] {
    border-radius: var(--ox-radius) var(--ox-radius) 0 0;
}

.eval-org-rel-right-panel__body[b-dtsr4pzwtc] {
    box-sizing: border-box;
    padding: 0.75rem var(--ox-panel-header-px) 1rem;
    min-width: 0;
}

/* 表单：单列栈 + 两列行内等宽对齐 */
.eval-org-rel-right__form[b-dtsr4pzwtc] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

/* 不可写 display:block：会与 .ox-form-field-legend--check 的 flex 冲突，导致方框内无法垂直居中 */
.eval-org-rel-field[b-dtsr4pzwtc] {
    margin: 0;
    min-width: 0;
}

.eval-org-rel-field-row[b-dtsr4pzwtc] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1rem;
    align-items: start;
    min-width: 0;
}

@media (max-width: 520px) {
    .eval-org-rel-field-row[b-dtsr4pzwtc] {
        grid-template-columns: 1fr;
    }
}

/* --check 内：在 min-height 方框中占满高度并垂直居中内容 */
.eval-org-rel-field.ox-form-field-legend--check .ox-form-field-legend__fill[b-dtsr4pzwtc] {
    display: flex;
    align-items: center;
    align-self: stretch;
    min-width: 0;
}

.eval-org-rel-enable-check[b-dtsr4pzwtc] {
    align-items: center;
    width: 100%;
}

.eval-org-rel-enable-check > span[b-dtsr4pzwtc] {
    white-space: normal;
    line-height: 1.45;
}

.eval-org-rel-right__actions[b-dtsr4pzwtc] {
    margin-top: 0.35rem;
    padding-top: 0.25rem;
}

.eval-org-rel-right__delete[b-dtsr4pzwtc] {
    margin-left: auto;
}
/* /Components/Pages/EvaluationPersonnelEvalForms.razor.rz.scp.css */
/* 中间：人员列表工具栏 — 周期、搜索、按钮一行居中；与顶栏、表格留白协调 */

.personnel-list-toolbar--row[b-2ag9gc5wzu] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 10px;
    width: 100%;
    max-width: 42rem;
    margin-inline: auto;
    margin-top: 0.75rem;
    margin-bottom: 0.875rem;
    padding-block: 0.375rem;
    box-sizing: border-box;
}

.personnel-list-toolbar--row select.ox-form-control[b-2ag9gc5wzu],
.personnel-list-toolbar--row input.ox-form-control[b-2ag9gc5wzu] {
    height: 2.25rem;
    min-height: 2.25rem;
    line-height: 1.25;
    box-sizing: border-box;
}

.personnel-list-toolbar--row .menu-btn.personnel-list-toolbar__btn[b-2ag9gc5wzu] {
    min-height: 2.25rem;
    height: 2.25rem;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.personnel-list-toolbar__period[b-2ag9gc5wzu] {
    width: min(17rem, 100%);
    min-width: 9rem;
}

.personnel-list-toolbar__search[b-2ag9gc5wzu] {
    flex: 1 1 11rem;
    min-width: 7rem;
    max-width: 18rem;
}

/* 无人员数据时仍保留表格局样的一行空占位 */
.personnel-list-tr--placeholder[b-2ag9gc5wzu] {
    user-select: none;
    pointer-events: none;
}

/* 右侧：人员考评卷 — Panel（标题=模板名+删；主体三列：打分人 / 箭 / 被考评人） */

.personnel-eval-right-empty[b-2ag9gc5wzu] {
    margin: 0;
    padding: 0.5rem 0.25rem 0.75rem;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    line-height: 1.45;
    color: var(--ox-ui-muted, #64748b);
    text-align: center;
    border: 1px dashed var(--ox-border, #e2e8f0);
    border-radius: 8px;
    background: color-mix(in srgb, var(--ox-surface) 90%, var(--ox-border));
}

.personnel-eval-cards[b-2ag9gc5wzu] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.personnel-eval-panel[b-2ag9gc5wzu] {
    min-width: 0;
    border: 1px solid var(--ox-border, #e2e8f0);
    border-radius: 8px;
    background: color-mix(in srgb, var(--ox-surface-elevated, #fff) 96%, transparent);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.personnel-eval-panel__header[b-2ag9gc5wzu] {
    margin: 0;
}

.personnel-eval-panel__delete[b-2ag9gc5wzu] {
    color: var(--ox-ui-muted, #64748b);
}

.personnel-eval-panel__delete:hover:not(:disabled)[b-2ag9gc5wzu] {
    color: #b91c1c;
    background: color-mix(in srgb, #fecaca 50%, transparent);
}

.personnel-eval-panel--empty[b-2ag9gc5wzu] {
    border-style: dashed;
    background: color-mix(in srgb, var(--ox-surface-elevated, #fff) 92%, transparent);
}

.personnel-eval-panel__empty-hint[b-2ag9gc5wzu] {
    margin: 0;
    padding: 6px 12px 10px;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    line-height: 1.4;
    color: var(--ox-ui-muted, #64748b);
    text-align: center;
    border-top: 1px solid color-mix(in srgb, var(--ox-border) 80%, transparent);
    background: color-mix(in srgb, var(--ox-surface) 86%, var(--ox-border));
    box-sizing: border-box;
}

/* 左：评分用户（可展宽） / 中：箭头 / 右：被考评人仅一人，用窄列不再与左侧 1fr 对分 */
.personnel-eval-panel__body[b-2ag9gc5wzu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, var(--pe-evaluatee-col-max, 3.75rem));
    align-items: center;
    gap: 8px 10px;
    padding: 10px 12px;
    box-sizing: border-box;
    min-width: 0;
}

.personnel-eval-panel__col--left[b-2ag9gc5wzu] {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.personnel-eval-panel__col--arrow[b-2ag9gc5wzu] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 36px;
    place-self: center;
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 88%, var(--ox-fg));
}

.personnel-eval-panel__arrow[b-2ag9gc5wzu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    flex: 0 0 auto;
}

/* Phosphor：ph-caret-double-right */
.personnel-eval-panel__arrow-icon[b-2ag9gc5wzu] {
    display: block;
    font-size: 1.25rem;
    line-height: 1;
    color: inherit;
}

.personnel-eval-panel__col--right[b-2ag9gc5wzu] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    max-width: var(--pe-evaluatee-col-max, 3.75rem);
    justify-self: end;
}

/* 被评人仅一列，收窄头像+姓名，避免与左侧 scoring 等分 */
.personnel-eval-panel__col--right .personnel-eval-rater[b-2ag9gc5wzu] {
    max-width: 100%;
    width: 100%;
}

.personnel-eval-panel__col--right .personnel-eval-rater__name[b-2ag9gc5wzu] {
    max-width: 100%;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-all;
    line-height: 1.15;
}

/* 打分人区：圆角方头像 + 角标 ×；下方姓名；末尾虚线圆角方框 + */
.personnel-eval-rater-row[b-2ag9gc5wzu] {
    --pe-avatar-r: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 12px;
    min-width: 0;
}

.personnel-eval-rater[b-2ag9gc5wzu] {
    flex-shrink: 0;
    position: relative;
    max-width: 5.5rem;
}

.personnel-eval-rater__stack[b-2ag9gc5wzu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 0;
    width: 100%;
}

.personnel-eval-rater__name[b-2ag9gc5wzu] {
    font-size: 0.6875rem;
    line-height: 1.2;
    color: var(--ox-ui-muted, #64748b);
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.personnel-eval-add-col[b-2ag9gc5wzu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    min-width: 0;
    max-width: 6.25rem;
}

.personnel-eval-add-col__label[b-2ag9gc5wzu] {
    /* 与 .personnel-eval-rater__name 同基类，可略强调占位语义 */
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 92%, var(--ox-fg));
    white-space: normal;
    line-height: 1.2;
}

.personnel-eval-rater__wrap[b-2ag9gc5wzu] {
    position: relative;
    width: 36px;
    height: 36px;
}

.personnel-eval-rater__img[b-2ag9gc5wzu] {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--pe-avatar-r, 8px);
    object-fit: cover;
    vertical-align: middle;
    background: color-mix(in srgb, var(--ox-surface) 92%, var(--ox-border));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--ox-border) 80%, transparent);
}

.personnel-eval-rater__badge[b-2ag9gc5wzu] {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 17px;
    height: 17px;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    background: color-mix(in srgb, #b91c1c 92%, #450a0a);
    box-shadow: 0 0 0 1.5px var(--ox-surface-elevated, #fff);
}

.personnel-eval-rater__badge:hover[b-2ag9gc5wzu] {
    filter: brightness(1.08);
}

.personnel-eval-rater__badge:active[b-2ag9gc5wzu] {
    filter: brightness(0.94);
}

.personnel-eval-rater-empty[b-2ag9gc5wzu] {
    font-size: 0.8125rem;
    color: var(--ox-ui-muted, #64748b);
}

/* 须覆盖全局 button 预检（如 Tailwind preflight 的 border-width:0） */
button.personnel-eval-add-slot[b-2ag9gc5wzu] {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border-width: 1.5px;
    border-style: dashed;
    border-color: color-mix(
        in srgb,
        var(--ox-ui-muted, #64748b) 55%,
        var(--ox-border, #d1d5db)
    );
    border-radius: var(--pe-avatar-r, 8px);
    background: color-mix(in srgb, var(--ox-surface) 94%, transparent);
    color: var(--ox-ui-muted, #64748b);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 1.05rem;
    line-height: 1;
    transition:
        border-color 0.12s ease,
        color 0.12s ease,
        background 0.12s ease;
}

button.personnel-eval-add-slot:hover:not(:disabled)[b-2ag9gc5wzu] {
    border-color: color-mix(
        in srgb,
        var(--ox-accent, #0ea5e9) 70%,
        var(--ox-border, #d1d5db)
    );
    color: var(--ox-accent, #0ea5e9);
    background: color-mix(in srgb, var(--ox-accent) 10%, var(--ox-surface));
}

button.personnel-eval-add-slot:active:not(:disabled)[b-2ag9gc5wzu] {
    filter: brightness(0.97);
}

button.personnel-eval-add-slot:focus-visible[b-2ag9gc5wzu] {
    outline: 2px solid color-mix(in srgb, var(--ox-accent) 55%, transparent);
    outline-offset: 2px;
}

button.personnel-eval-add-slot:disabled[b-2ag9gc5wzu] {
    cursor: not-allowed;
    opacity: 0.75;
    filter: none;
    color: var(--ox-ui-muted, #64748b);
    background: color-mix(in srgb, var(--ox-surface) 90%, var(--ox-border));
}

.personnel-eval-cards__state[b-2ag9gc5wzu] {
    margin: 0;
    padding: 12px 8px;
    text-align: center;
    font-size: var(--ox-ui-fs-sm, 0.875rem);
    color: var(--ox-ui-muted, #64748b);
    border: 1px dashed var(--ox-border, #e2e8f0);
    border-radius: 8px;
}
/* /Components/Pages/EvaluationPersonScoreDetail.razor.rz.scp.css */
/* ── 人员评分明细页 ── */

/* 骨架屏 */
.ev-detail__skeleton[b-kmuto8u8qf] { display:flex; flex-direction:column; gap:12px; padding:4px 0; }
.ev-detail__skeleton-card[b-kmuto8u8qf] { height:180px; border-radius:14px; background:linear-gradient(110deg,#f1f5f9 30%,#e2e8f0 50%,#f1f5f9 70%); background-size:200% 100%; animation:ev-stat-shimmer-b-kmuto8u8qf 1.5s ease-in-out infinite; }

/* 空态/错误态 */
.ev-detail__state[b-kmuto8u8qf] { display:flex; flex-direction:column; align-items:center; gap:8px; padding:48px 24px; text-align:center; color:#94a3b8; font-size:0.875rem; }
.ev-detail__state-icon[b-kmuto8u8qf] { font-size:2rem; opacity:0.4; }

/* 人员信息头 */
.ev-detail__header[b-kmuto8u8qf] {
    display:flex; align-items:center; gap:12px;
    padding:16px; margin-bottom:12px;
    background:#fff; border-radius:14px;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
}
.ev-detail__avatar[b-kmuto8u8qf] { font-size:2.5rem; color:var(--ox-accent,#0067c0); line-height:1; flex-shrink:0; }
.ev-detail__info[b-kmuto8u8qf] { min-width:0; }
.ev-detail__name[b-kmuto8u8qf] { margin:0; font-size:1.125rem; font-weight:800; color:#0f172a; line-height:1.3; }
.ev-detail__period[b-kmuto8u8qf] { margin:2px 0 0; font-size:0.75rem; color:#94a3b8; }

/* 模板评分卡片 */
.ev-detail__card[b-kmuto8u8qf] {
    background:#fff; border-radius:14px; overflow:hidden;
    box-shadow:0 0.5px 1px rgba(0,0,0,0.04),0 2px 8px rgba(0,0,0,0.04);
    margin-bottom:12px;
}
.ev-detail__card-header[b-kmuto8u8qf] {
    padding:14px 16px 10px;
    border-bottom:0.5px solid #f1f5f9;
}
.ev-detail__card-title-row[b-kmuto8u8qf] {
    display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.ev-detail__card-title[b-kmuto8u8qf] { font-size:0.9375rem; font-weight:700; color:#0f172a; }
.ev-detail__card-score[b-kmuto8u8qf] { font-size:1.125rem; font-weight:800; color:var(--ox-accent,#0067c0); flex-shrink:0; }
.ev-detail__card-meta[b-kmuto8u8qf] {
    display:flex; align-items:center; gap:12px; margin-top:4px;
    font-size:0.625rem; color:#94a3b8;
}
.ev-detail__card-rater[b-kmuto8u8qf], .ev-detail__card-time[b-kmuto8u8qf] { display:inline-flex; align-items:center; gap:3px; }

/* 题目列表 */
.ev-detail__questions[b-kmuto8u8qf] { padding:4px 0; }
.ev-detail__q-item[b-kmuto8u8qf] {
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 16px; border-bottom:0.5px solid #f8fafc;
}
.ev-detail__q-item:last-child[b-kmuto8u8qf] { border-bottom:none; }
.ev-detail__q-head[b-kmuto8u8qf] { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ev-detail__q-title[b-kmuto8u8qf] { font-size:0.8125rem; font-weight:600; color:#0f172a; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-detail__q-type[b-kmuto8u8qf] { font-size:0.5625rem; font-weight:600; color:#94a3b8; letter-spacing:0.03em; }
.ev-detail__q-body[b-kmuto8u8qf] { flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.ev-detail__q-score[b-kmuto8u8qf] { font-size:0.9375rem; font-weight:700; color:var(--ox-accent,#0067c0); }
.ev-detail__q-option[b-kmuto8u8qf] { font-size:0.5625rem; color:#94a3b8; }

/* 复用骨架屏动画 */
@keyframes ev-stat-shimmer-b-kmuto8u8qf { 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }
/* /Components/Pages/EvaluationResults.razor.rz.scp.css */
/* 考评结果汇总 — 内容区 */

.ev-results[b-13a49k3ocq] {
    padding: 0 0.75rem 1.25rem;
}

.ev-results-section + .ev-results-section[b-13a49k3ocq] {
    margin-top: 1.75rem;
}

.ev-results-section__title[b-13a49k3ocq] {
    margin: 0 0 0.75rem;
    font-family: var(--evs-display);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--evs-ink);
}

.ev-results-section__filter[b-13a49k3ocq] {
    font-weight: 600;
    color: var(--evs-accent);
}

.ev-results-quota-grid[b-13a49k3ocq] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
}

.ev-results-quota-card[b-13a49k3ocq] {
    flex: 1 1 10rem;
    min-width: min(100%, 10rem);
    padding: 0.85rem 1rem;
    border-radius: var(--evs-radius-sm);
    border: 1px solid var(--evs-line-strong);
    background: var(--evs-paper);
    box-sizing: border-box;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.ev-results-quota-card:hover[b-13a49k3ocq] {
    border-color: color-mix(in srgb, var(--evs-accent) 40%, var(--evs-line-strong));
    background: var(--evs-accent-soft);
}

.ev-results-quota-card--active[b-13a49k3ocq] {
    border-color: var(--evs-accent);
    box-shadow: 0 0 0 2px var(--evs-accent-soft);
    background: var(--evs-accent-soft);
}

.ev-results-quota-card:focus-visible[b-13a49k3ocq] {
    outline: 2px solid var(--evs-accent);
    outline-offset: 2px;
}

.ev-results-quota-card__title[b-13a49k3ocq] {
    margin: 0 0 0.65rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--evs-ink);
}

.ev-results-quota-bands[b-13a49k3ocq] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.ev-results-quota-band[b-13a49k3ocq] {
    display: grid;
    grid-template-columns: minmax(3.5rem, auto) 1fr auto;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
}

.ev-results-quota-band__label[b-13a49k3ocq] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--evs-ink-muted);
}

.ev-results-quota-band__track[b-13a49k3ocq] {
    height: 6px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.ev-results-quota-band__fill[b-13a49k3ocq] {
    height: 100%;
    border-radius: inherit;
    background: var(--evs-accent);
    transition: width 0.2s ease;
}

.ev-results-quota-band--full .ev-results-quota-band__fill[b-13a49k3ocq] {
    background: #b45309;
}

.ev-results-quota-band--over .ev-results-quota-band__fill[b-13a49k3ocq] {
    background: #dc2626;
}

.ev-results-quota-band__count[b-13a49k3ocq] {
    font-size: 0.75rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--evs-ink);
    min-width: 3.25rem;
    text-align: right;
}

.ev-results-quota-band--over .ev-results-quota-band__count[b-13a49k3ocq] {
    color: #dc2626;
}

.ev-results-score-wrap[b-13a49k3ocq] {
    border-radius: var(--evs-radius-sm);
    border: 1px solid var(--evs-line-strong);
    background: var(--evs-paper-elevated);
    overflow: auto;
}

.ev-results-table[b-13a49k3ocq] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.ev-results-table thead th[b-13a49k3ocq] {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.55rem 0.75rem;
    text-align: left;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--evs-ink-muted);
    background: #f9f9f9;
    border-bottom: 1px solid var(--evs-line-strong);
    white-space: nowrap;
}

.ev-results-table tbody td[b-13a49k3ocq] {
    padding: 0.6rem 0.75rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--evs-line);
}

.ev-results-table tbody tr:last-child td[b-13a49k3ocq] {
    border-bottom: 0;
}

.ev-results-table__person-name[b-13a49k3ocq] {
    font-weight: 600;
    color: var(--evs-ink);
}

.ev-results-table__person-meta[b-13a49k3ocq] {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--evs-ink-faint);
}

.ev-results-table__rater[b-13a49k3ocq] {
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: var(--evs-ink-muted);
}

.ev-results-table__rater--empty[b-13a49k3ocq] {
    color: var(--evs-ink-faint);
}

.ev-results-table__composite[b-13a49k3ocq] {
    text-align: right;
    font-size: 0.9375rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--evs-accent);
}

.ev-results-table__grade[b-13a49k3ocq] {
    text-align: center;
}

.ev-results-grade-pill[b-13a49k3ocq] {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--evs-accent-soft);
    color: var(--evs-accent);
}

.ev-results-table thead th.ev-results-table__col-composite[b-13a49k3ocq],
.ev-results-table thead th.ev-results-table__col-grade[b-13a49k3ocq] {
    text-align: center;
}

.ev-results-table thead th.ev-results-table__col-rater[b-13a49k3ocq] {
    text-align: center;
    max-width: 5rem;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* /Components/Pages/EvaluationScore.razor.rz.scp.css */
.score-actions[b-atrlflqef3] {

    display: flex;

    gap: 0.5rem;

    flex-wrap: wrap;

}



/*

 * 顶栏沿用 --ox-panel-header-px；其下内容与左右竖分割线拉开距离，并与顶栏文字左右对齐。

 */

.evaluation-score-layout .evaluation-score-panel-body[b-atrlflqef3] {

    padding-inline: var(--ox-panel-header-px);

    box-sizing: border-box;

    flex: 1;

    min-height: 0;

    display: flex;

    flex-direction: column;

}



/* --------- 评分进度 --------- */

.evaluation-score-progress-card[b-atrlflqef3] {

    margin-bottom: 0.85rem;

    padding: 0.75rem 0.95rem;

    border-radius: var(--ox-radius, 8px);

    border: 1px solid color-mix(in srgb, var(--ox-accent, #0067c0) 32%, var(--ox-header-border, #e5e7eb));

    background: linear-gradient(

        180deg,

        color-mix(in srgb, var(--ox-accent, #0067c0) 8%, #fff),

        rgba(248, 250, 252, 0.98)

    );

    box-sizing: border-box;

}



.evaluation-score-progress-card__top[b-atrlflqef3] {

    display: flex;

    flex-wrap: wrap;

    align-items: flex-start;

    justify-content: space-between;

    gap: 0.35rem 0.85rem;

    margin-bottom: 0.55rem;

}



.evaluation-score-progress-card__lead[b-atrlflqef3] {

    font-size: 0.75rem;

    font-weight: 700;

    color: var(--ox-title, #0f172a);

    letter-spacing: 0.02em;

}



.evaluation-score-progress-card__rater[b-atrlflqef3] {

    margin-top: 0.25rem;

    font-size: var(--ox-ui-fs-sm, 0.8125rem);

    color: var(--ox-muted, #64748b);

}



.evaluation-score-progress-card__rater-label[b-atrlflqef3] {

    font-weight: 500;

}



.evaluation-score-progress-card__figures[b-atrlflqef3] {

    flex-shrink: 0;

}



.evaluation-score-progress-card__pct[b-atrlflqef3] {

    font-size: 1.35rem;

    font-weight: 800;

    line-height: 1;

    color: color-mix(in srgb, var(--ox-accent, #0067c0) 85%, var(--ox-title, #0f172a));

}



.evaluation-score-progress-bar[b-atrlflqef3] {

    height: 9px;

    border-radius: 999px;

    background: rgba(148, 163, 184, 0.28);

    overflow: hidden;

    margin-bottom: 0.55rem;

}



.evaluation-score-progress-bar__fill[b-atrlflqef3] {

    height: 100%;

    border-radius: inherit;

    background: linear-gradient(

        90deg,

        color-mix(in srgb, var(--ox-accent, #0067c0) 86%, #1d4ed8),

        color-mix(in srgb, var(--ox-accent, #0067c0) 62%, #38bdf8)

    );

    min-width: 0;

}



.evaluation-score-progress-stats[b-atrlflqef3] {

    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 0.35rem;

    padding: 0;

    margin: 0;

    border: none;

    font-size: var(--ox-ui-fs-sm, 0.8125rem);

}



@media (max-width: 520px) {

    .evaluation-score-progress-stats[b-atrlflqef3] {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}



.evaluation-score-progress-stats__btn[b-atrlflqef3] {

    display: flex;

    flex-direction: column;

    align-items: stretch;

    gap: 0.2rem;

    margin: 0;

    padding: 0.42rem 0.4rem;

    border-radius: 8px;

    border: 1px solid color-mix(in srgb, var(--ox-accent, #0067c0) 28%, transparent);

    background: rgba(255, 255, 255, 0.72);

    color: inherit;

    text-align: left;

    cursor: pointer;

    font: inherit;

    transition:

        border-color 0.12s ease,

        box-shadow 0.12s ease,

        background 0.12s ease;

}



.evaluation-score-progress-stats__btn:hover[b-atrlflqef3] {

    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 52%, transparent);

    background: #fff;

    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);

}



.evaluation-score-progress-stats__btn--active[b-atrlflqef3] {

    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 82%, transparent);

    background:

        linear-gradient(

            165deg,

            color-mix(in srgb, var(--ox-accent, #0067c0) 12%, rgba(239, 246, 255, 1)),

            #fff);

    box-shadow:

        0 0 0 1px color-mix(in srgb, var(--ox-accent, #0067c0) 12%, transparent);

}



.evaluation-score-progress-stats__btn:focus-visible[b-atrlflqef3] {

    outline: 2px solid color-mix(in srgb, var(--ox-accent, #0067c0) 70%, transparent);

    outline-offset: 1px;

}



.evaluation-score-progress-stats__lbl[b-atrlflqef3] {

    margin: 0;

    font-size: 0.6875rem;

    font-weight: 600;

    color: var(--ox-muted, #64748b);

}



.evaluation-score-progress-stats__val[b-atrlflqef3] {

    margin: 0;

    font-size: 1.05rem;

    font-weight: 800;

    line-height: 1.15;

    color: var(--ox-title, #111827);

    font-variant-numeric: tabular-nums;

}



.evaluation-score-progress-stats__btn--active .evaluation-score-progress-stats__val[b-atrlflqef3] {

    color: color-mix(in srgb, var(--ox-accent, #0067c0) 72%, var(--ox-title, #111827));

}



.evaluation-score-progress-stats__val--warn[b-atrlflqef3] {

    color: #c2410c;

}



.evaluation-score-progress-stats__val--ok[b-atrlflqef3] {

    color: #15803d;

}



.evaluation-score-progress-stats__val--ok-strong[b-atrlflqef3] {

    color: #166534;

    font-weight: 800;

}



.evaluation-score-progress-stats__unit[b-atrlflqef3] {

    margin-left: 0.08em;

    font-size: 0.6875rem;

    font-weight: 600;

    color: var(--ox-muted);

}



/* --------- 搜索 --------- */
.evaluation-score-queue-toolbar[b-atrlflqef3] {
    display: block;
    margin-bottom: 0.85rem;
}

.evaluation-score-queue-toolbar__search[b-atrlflqef3] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    min-height: 2.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--evs-line-strong, var(--ox-header-border, #e5e7eb));
    background: var(--evs-paper-elevated, #fff);
    box-sizing: border-box;
}

.evaluation-score-queue-toolbar__icon[b-atrlflqef3] {
    flex-shrink: 0;
    font-size: 0.9375rem;
    color: var(--evs-ink-muted, #605e5c);
}

.evaluation-score-queue-toolbar__input[b-atrlflqef3] {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    font-size: 0.8125rem;
    color: var(--evs-ink, inherit);
    outline: none;
}

.evaluation-score-queue-toolbar__input[b-atrlflqef3]::placeholder {
    color: var(--evs-ink-faint, #8a8886);
}

.evaluation-score-queue-toolbar__search:focus-within[b-atrlflqef3] {
    border-color: var(--evs-accent, var(--ox-accent, #0067c0));
    box-shadow: 0 0 0 2px var(--evs-accent-soft, rgba(0, 103, 192, 0.12));
}


/* --------- 卡片列表 --------- */

.evaluation-score-queue-scroll[b-atrlflqef3] {

    flex: 1;

    min-height: 0;

    overflow-y: auto;

}



.evaluation-score-queue-grid[b-atrlflqef3] {

    display: grid;

    grid-template-columns: 1fr;

    gap: 0.65rem;

    padding-bottom: 0.15rem;

}



@media (min-width: 840px) {

    .evaluation-score-queue-grid[b-atrlflqef3] {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}



.evaluation-score-queue-empty[b-atrlflqef3] {

    margin: 0 0 0.5rem;

    padding: 0.75rem 0.65rem;

    border-radius: 8px;

    border: 1px dashed var(--ox-header-border, #e5e7eb);

    font-size: var(--ox-ui-fs-sm, 0.8125rem);

    color: var(--ox-muted, #64748b);

    background: rgba(248, 250, 252, 0.9);

}



.evaluation-score-queue-card[b-atrlflqef3] {

    display: flex;

    flex-direction: row;

    align-items: stretch;

    gap: 0.65rem 0.85rem;

    width: 100%;

    text-align: left;

    padding: 0.75rem 0.85rem;

    border-radius: 10px;

    border: 1px solid var(--ox-header-border, #e5e7eb);

    background: #fff;

    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);

    cursor: pointer;

    transition:

        border-color 0.12s ease,

        box-shadow 0.12s ease,

        background 0.12s ease,

        transform 0.08s ease;

    box-sizing: border-box;

}



.evaluation-score-queue-card__main[b-atrlflqef3] {

    flex: 1 1 0;

    min-width: 0;

    display: flex;

    flex-direction: column;

    align-items: stretch;

}



.evaluation-score-queue-card:hover[b-atrlflqef3] {

    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 35%, var(--ox-border));

    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.07);

}



.evaluation-score-queue-card--active[b-atrlflqef3] {

    border-color: color-mix(in srgb, var(--ox-accent, #0067c0) 62%, transparent);

    background: rgba(239, 246, 255, 0.97);

    box-shadow:

        0 0 0 1px color-mix(in srgb, var(--ox-accent, #0067c0) 22%, transparent),

        0 4px 12px rgba(15, 23, 42, 0.08);

}



.evaluation-score-queue-card--active .evaluation-score-queue-card__score-big[b-atrlflqef3] {

    color: color-mix(in srgb, var(--ox-accent, #0067c0) 48%, var(--ox-title, #0f172a));

}



.evaluation-score-queue-card__row1[b-atrlflqef3] {

    display: flex;

    align-items: flex-start;

    justify-content: flex-start;

    gap: 0.5rem;

    margin-bottom: 0.25rem;

}



.evaluation-score-queue-card__name[b-atrlflqef3] {

    font-size: 0.9375rem;

    font-weight: 700;

    color: var(--ox-title, #0f172a);

    line-height: 1.3;

    word-break: break-word;

}



.evaluation-score-queue-card__chip[b-atrlflqef3] {

    flex-shrink: 0;

    font-size: 0.625rem;

    font-weight: 700;

    padding: 0.12rem 0.4rem;

    border-radius: 999px;

    border: 1px solid transparent;

}



.evaluation-score-queue-card__chip.is-person[b-atrlflqef3] {

    color: #0369a1;

    background: rgba(224, 242, 254, 0.95);

    border-color: rgba(56, 189, 248, 0.45);

}



.evaluation-score-queue-card__chip.is-org[b-atrlflqef3] {

    color: #6d28d9;

    background: rgba(237, 233, 254, 0.95);

    border-color: rgba(167, 139, 250, 0.45);

}



.evaluation-score-queue-card__template[b-atrlflqef3] {

    margin: 0 0 0.4rem;

    font-size: var(--ox-ui-fs-sm, 0.8125rem);

    color: var(--ox-muted, #64748b);

    line-height: 1.35;

    display: -webkit-box;

    -webkit-line-clamp: 2;

    -webkit-box-orient: vertical;

    overflow: hidden;

}



.evaluation-score-queue-card__meta[b-atrlflqef3] {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 0.35rem;

    margin-bottom: 0.35rem;

}



.evaluation-score-queue-card__kind-status[b-atrlflqef3] {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    justify-content: space-between;

    gap: 0.35rem;

    padding-top: 0.4rem;

    margin-top: auto;

    border-top: 1px solid rgba(226, 232, 240, 0.95);

}



.evaluation-score-queue-card__pos[b-atrlflqef3] {

    font-size: 0.6875rem;

    color: #64748b;

    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

    word-break: break-all;

}



.evaluation-score-queue-card__badge[b-atrlflqef3] {

    font-size: 0.625rem;

    font-weight: 700;

    padding: 0.1rem 0.45rem;

    border-radius: 6px;

}



.evaluation-score-queue-card__badge.is-done[b-atrlflqef3] {

    color: #166534;

    background: rgba(220, 252, 231, 0.95);

    border: 1px solid rgba(34, 197, 94, 0.35);

}



.evaluation-score-queue-card__badge.is-todo[b-atrlflqef3] {

    color: #9a3412;

    background: rgba(255, 237, 213, 0.95);

    border: 1px solid rgba(251, 146, 60, 0.4);

}



.evaluation-score-queue-card__scorecol[b-atrlflqef3] {

    flex: 0 0 auto;

    display: flex;

    flex-direction: column;

    align-items: flex-end;

    justify-content: center;

    gap: 0.2rem;

    min-width: 4.25rem;

    padding-left: 0.5rem;

    border-left: 1px solid rgba(226, 232, 240, 0.95);

}



.evaluation-score-queue-card__score-sublabel[b-atrlflqef3] {

    font-size: 0.625rem;

    font-weight: 600;

    letter-spacing: 0.03em;

    color: var(--ox-muted, #64748b);

    text-transform: none;

}



.evaluation-score-queue-card__score-big[b-atrlflqef3] {

    font-size: clamp(1.375rem, 1rem + 1.2vw, 1.75rem);

    font-weight: 800;

    line-height: 1.05;

    font-variant-numeric: tabular-nums;

    color: var(--ox-title, #0f172a);

}



.evaluation-score-detail-header[b-atrlflqef3] {
    flex-wrap: nowrap;
    align-items: center;
}

.evaluation-score-detail-header > .min-w-0[b-atrlflqef3] {
    flex: 1 1 auto;
    min-width: 0;
}

.evaluation-score-detail-header .manage-btn-icon[b-atrlflqef3] {
    flex-shrink: 0;
}

.evaluation-score-right-subtitle[b-atrlflqef3] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}



/*

 * shell-right-scroll 已有一层横向留白，此处再给评分块一级收紧，避免骑线控件/边框贴竖分隔条。

 */

.evaluation-score-pane-right[b-atrlflqef3] {

    padding-inline: clamp(10px, 0.625rem + 0.5vw, 14px);

    box-sizing: border-box;

}



@media (max-width: 768px) {

    .score-page[b-atrlflqef3] {

        padding-bottom: 4.5rem;

    }



    .score-actions[b-atrlflqef3] {

        position: fixed;

        left: 0;

        right: 0;

        bottom: 0;

        background: #fff;

        border-top: 1px solid var(--ox-border);

        padding: 0.5rem 0.75rem;

        z-index: 8;

        justify-content: space-between;

    }

}


/* /Components/Pages/EvaluationTemplates.razor.rz.scp.css */
/* 「题目」卡顶说明：单列阅读，避免与右侧栏抢宽变形 */
.eval-templates-items-lead[b-yaxkmz70ao] {
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    line-height: 1.45;
    max-width: 100%;
    word-break: break-word;
}

/* 「题目」卡片：删除角标贴外框右上角（略伸出边框） */
.eval-templates-item-card--editor[b-yaxkmz70ao] {
    position: relative;
    overflow: visible;
}

.eval-templates-item-remove-badge[b-yaxkmz70ao] {
    position: absolute;
    top: -0.45rem;
    right: -0.45rem;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    margin: 0;
    padding: 0.22rem 0.5rem 0.22rem 0.4rem;
    min-height: 1.625rem;
    border-radius: 9999px;
    border: 1px solid color-mix(in srgb, #dc2626 40%, var(--ox-border, #d1d5db));
    background: color-mix(in srgb, #fef2f2 90%, var(--ox-surface, #fff));
    color: #b91c1c;
    cursor: pointer;
    box-sizing: border-box;
    flex-shrink: 0;
    line-height: 1.2;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
    -webkit-appearance: none;
    appearance: none;
}

.eval-templates-item-remove-badge__text[b-yaxkmz70ao] {
    white-space: nowrap;
    line-height: 1.2;
}

.eval-templates-item-remove-badge:hover:not(:disabled)[b-yaxkmz70ao] {
    background: color-mix(in srgb, #fee2e2 85%, var(--ox-surface, #fff));
    border-color: color-mix(in srgb, #dc2626 52%, var(--ox-border, #d1d5db));
}

.eval-templates-item-remove-badge:focus-visible[b-yaxkmz70ao] {
    outline: 2px solid var(--ox-focus-ring, #0067c073);
    outline-offset: 1px;
}

.eval-templates-item-remove-badge:disabled[b-yaxkmz70ao] {
    opacity: 0.45;
    cursor: not-allowed;
}

.eval-templates-item-remove-badge .ph[b-yaxkmz70ao] {
    font-size: 0.85rem;
    flex-shrink: 0;
}

.eval-templates-tab-panel[b-yaxkmz70ao] {
    min-width: 0;
    padding-top: 0.35rem;
}

.eval-templates-list-name[b-yaxkmz70ao] {
    font-weight: 600;
    line-height: 1.35;
}

.eval-templates-list-itemcount[b-yaxkmz70ao] {
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    color: var(--ox-ui-muted, #64748b);
    line-height: 1.35;
    margin-top: 0.12rem;
}

.eval-templates-list-maxscore[b-yaxkmz70ao] {
    font-weight: 500;
    color: var(--ox-ui-fg, #0f172a);
}

/* 状态列：容纳「已发布」「已归档」等三字 + 原生下拉箭头（5rem 过窄会只显示「已」） */
.eval-templates-th-status[b-yaxkmz70ao] {
    width: 6.75rem;
    min-width: 6.75rem;
    white-space: nowrap;
}

.eval-templates-status-cell[b-yaxkmz70ao] {
    vertical-align: middle;
    width: 6.75rem;
    min-width: 6.75rem;
}

.eval-templates-actions-cell[b-yaxkmz70ao] {
    vertical-align: middle;
}

.eval-templates-status-select[b-yaxkmz70ao] {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-width: 6.25rem;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
    padding-inline: 0.4rem 1.45rem;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
}

.eval-templates-actions[b-yaxkmz70ao] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.eval-templates-bank-panel[b-yaxkmz70ao] {
    background: color-mix(in srgb, var(--ox-surface, #fff) 96%, var(--ox-border, #e2e8f0));
}

/* 标题栏：展开搜索 + 与 + 号同组操作 */
.eval-templates-panel-header[b-yaxkmz70ao] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    min-width: 0;
}

.eval-templates-header-spacer[b-yaxkmz70ao] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 1px;
}

/* 搜索：紧贴工具栏放大镜左侧，向左展开，不占满标题旁空间 */
.eval-templates-header-search-cluster[b-yaxkmz70ao] {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 0.28rem;
    min-width: 0;
}

.eval-templates-header-search-wrap[b-yaxkmz70ao] {
    flex: 0 1 auto;
    width: 11rem;
    max-width: min(11rem, calc(100vw - 10rem));
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.12rem 0.45rem 0.12rem 0.4rem;
    min-height: 1.95rem;
    box-sizing: border-box;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 92%, transparent);
    background: var(--ox-surface, #fff);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--ox-border, #e2e8f0) 35%, transparent);
    animation: eval-templates-search-reveal-b-yaxkmz70ao 0.16s ease-out;
}

@keyframes eval-templates-search-reveal-b-yaxkmz70ao {
    from {
        opacity: 0;
        transform: translateX(0.4rem);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.eval-templates-header-search-wrap:focus-within[b-yaxkmz70ao] {
    border-color: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 45%, var(--ox-border, #e2e8f0));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--ox-ui-primary, #2563eb) 18%, transparent);
}

.eval-templates-header-search-glyph[b-yaxkmz70ao] {
    color: var(--ox-ui-muted, #64748b);
    font-size: 1.05rem;
    flex-shrink: 0;
    line-height: 1;
    pointer-events: none;
}

.eval-templates-header-search-input[b-yaxkmz70ao] {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0.2rem 0;
    border: none;
    border-radius: 0;
    background: transparent;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    line-height: 1.4;
    color: var(--ox-ui-fg, #0f172a);
    box-shadow: none;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.eval-templates-header-search-input[b-yaxkmz70ao]::placeholder {
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 85%, transparent);
}

.eval-templates-header-search-input:focus[b-yaxkmz70ao] {
    outline: none;
    box-shadow: none;
}

.manage-btn-icon.manage-btn-icon--active[b-yaxkmz70ao] {
    background: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 14%, var(--ox-surface, #fff));
    border-color: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 35%, var(--ox-border, #e2e8f0));
}

/* 状态：分段单选（展开为横向按钮组） */
.eval-templates-status-segment[b-yaxkmz70ao] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: stretch;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 90%, transparent);
    overflow: hidden;
    background: var(--ox-surface, #fff);
}

.eval-templates-status-segment__btn[b-yaxkmz70ao] {
    margin: 0;
    padding: 0.35rem 0.75rem;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    line-height: 1.35;
    border: none;
    border-right: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 85%, transparent);
    background: transparent;
    color: var(--ox-ui-fg, #0f172a);
    cursor: pointer;
    white-space: nowrap;
}

.eval-templates-status-segment__btn:last-child[b-yaxkmz70ao] {
    border-right: none;
}

.eval-templates-status-segment__btn:hover[b-yaxkmz70ao] {
    background: color-mix(in srgb, var(--ox-ui-muted, #64748b) 6%, var(--ox-surface, #fff));
}

.eval-templates-status-segment__btn--active[b-yaxkmz70ao] {
    background: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 12%, var(--ox-surface, #fff));
    font-weight: 600;
    color: var(--ox-ui-primary, #2563eb);
}

/* 列表：筛选工具栏（居中，两侧留白） */
.eval-templates-list-toolbar[b-yaxkmz70ao] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    margin: 0.5rem 0;
    padding: 0 0.75rem;
    box-sizing: border-box;
}

.eval-templates-tags-cell[b-yaxkmz70ao] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    max-width: 14rem;
}

.eval-templates-tag-chip[b-yaxkmz70ao] {
    display: inline-block;
    padding: 0.12rem 0.45rem;
    border-radius: 6px;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    line-height: 1.35;
    background: color-mix(in srgb, var(--ox-ui-muted, #64748b) 12%, var(--ox-surface, #fff));
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 80%, transparent);
    color: var(--ox-ui-fg, #0f172a);
}

.eval-templates-list-empty[b-yaxkmz70ao] {
    text-align: center;
    padding: 1.25rem 0.5rem;
    color: var(--ox-ui-muted, #64748b);
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* 品牌区：底图为静态 logo，叠加层为蒙版 + 锥形/线性流光（仅作用于不透明区域，透明镂空区保持原图/穿透） */
.login-brand[b-jwe8tgwryn] {
    position: relative;
    width: 108px;
    height: 108px;
    padding: 0;
    isolation: isolate;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.5rem;
}

.login-brand[b-jwe8tgwryn]::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    pointer-events: none;
    background: conic-gradient(
        from 210deg,
        #f8fafc 0deg,
        #eef2f7 90deg,
        #e2e8f0 180deg,
        #edf2f7 270deg,
        #f8fafc 360deg
    );
    box-shadow:
        inset 0 0 0 1px rgba(148, 163, 184, 0.22),
        inset 0 0 6px rgba(15, 23, 42, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 -3px 4px rgba(15, 23, 42, 0.28);
    z-index: 0;
}

/* 底部做不规则“向下凹陷”质感：像纸张被撕开后压出阴影 */
.login-brand[b-jwe8tgwryn]::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    pointer-events: none;
    background:
        radial-gradient(18% 12% at 16% 95%, rgba(15, 23, 42, 0.34) 0%, rgba(15, 23, 42, 0) 100%),
        radial-gradient(10% 8% at 31% 99%, rgba(15, 23, 42, 0.26) 0%, rgba(15, 23, 42, 0) 100%),
        radial-gradient(15% 10% at 47% 96%, rgba(15, 23, 42, 0.38) 0%, rgba(15, 23, 42, 0) 100%),
        radial-gradient(9% 8% at 60% 99%, rgba(15, 23, 42, 0.24) 0%, rgba(15, 23, 42, 0) 100%),
        radial-gradient(17% 12% at 82% 95%, rgba(15, 23, 42, 0.31) 0%, rgba(15, 23, 42, 0) 100%),
        radial-gradient(35% 14% at 67% 91%, rgba(15, 23, 42, 0.16) 0%, rgba(15, 23, 42, 0) 100%),
        radial-gradient(56% 20% at 48% 90%, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0) 100%);
    -webkit-mask: radial-gradient(circle, transparent 0 84%, #000 85% 100%);
    mask: radial-gradient(circle, transparent 0 84%, #000 85% 100%);
    z-index: 2;
}

.login-logo-stack[b-jwe8tgwryn] {
    position: absolute;
    inset: 6px;
    /* 所有圆形层统一同心基准：不再做视觉偏移补偿，确保几何严格对齐 */
    --logo-visual-scale: 100%;
    --logo-visual-shift-y: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
    border-radius: 50%;
    overflow: hidden;
    /* 与登录页 bg-slate-100 一致（Tailwind slate-100 = #f1f5f9） */
    background: #f1f5f9;
    /* 与外框内阴影交汇处：细环颜色贴近阴影末端（浅灰白），不贴在最外圈 */
    box-shadow: inset 0 0 0 2.5px rgba(241, 245, 249, 0.96);
    /* 整圈慢转 + 其内渐变位移动画与扫光，合起来是「看得见」的流光 */
    transform-origin: 50% 50%;
    animation: login-logo-spin-b-jwe8tgwryn 22s linear infinite;
    z-index: 1;
}

/* 辅助弱光斑：更小更淡，避免与主探照灯叠成一片死白 */
.login-logo-stack[b-jwe8tgwryn]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: radial-gradient(
        circle 16% at 50% 50%,
        rgba(255, 255, 255, 0.34) 0%,
        rgba(255, 255, 255, 0.08) 32%,
        transparent 52%
    );
    background-size: 300% 300%;
    background-position: 70% 40%;
    background-repeat: no-repeat;
    mix-blend-mode: soft-light;
    opacity: 0.55;
    -webkit-mask-image: url("/images/logo/light.png");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: url("/images/logo/light.png");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-mode: alpha;
    mask-mode: alpha;
    animation: login-spotlight-secondary-b-jwe8tgwryn 7.2s ease-in-out infinite;
}

/* 底图 */
.login-logo-base[b-jwe8tgwryn] {
    position: relative;
    z-index: 0;
    width: var(--logo-visual-scale);
    max-width: 100%;
    height: var(--logo-visual-scale);
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    transform: none;
    filter: drop-shadow(0 2px 6px rgba(15, 23, 42, 0.12)) drop-shadow(0 1px 2px rgba(15, 23, 42, 0.08));
}

/* 探照灯：仅局部径向高光扫过，其余区域透明，不再用 luminosity 整面改明暗 */
.login-logo-sheen[b-jwe8tgwryn] {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(
        circle 20% at 50% 50%,
        rgba(255, 255, 255, 0.58) 0%,
        rgba(255, 255, 255, 0.16) 30%,
        rgba(255, 255, 255, 0) 52%
    );
    background-size: 260% 260%;
    background-repeat: no-repeat;
    background-position: 22% 32%;
    mix-blend-mode: soft-light;
    -webkit-mask-image: url("/images/logo/light.png");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: url("/images/logo/light.png");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-mode: alpha;
    mask-mode: alpha;
    animation: login-spotlight-primary-b-jwe8tgwryn 4.9s cubic-bezier(0.42, 0.03, 0.32, 0.98) infinite;
}

.login-logo-breathe[b-jwe8tgwryn] {
    animation: login-breathe-b-jwe8tgwryn 5.5s ease-in-out infinite;
    transform-origin: 50% 50%;
}

/* 登录表：骑线 legend 与输入区拉开距离；表单项与登录按钮之间统一垂直间距 */
.login-form .ox-form-field-legend[b-jwe8tgwryn] {
    padding-top: 0.55rem;
    margin-bottom: 1.125rem;
}

/* 把骑线对齐到顶边下移后的 input 上边框，避免与输入文字挤在一起 */
.login-form .ox-form-field-legend__text[b-jwe8tgwryn] {
    top: 0.55rem;
    padding: 0 0.4rem 0.05rem 0.4rem;
    line-height: 1.28;
    background: var(--ox-surface, #fff);
}

.login-form .ox-form-field-legend .ox-form-control[b-jwe8tgwryn] {
    padding-top: 0.5rem;
    /* 略增垂直内边距，与骑线错开，视觉更舒适 */
    padding-bottom: 0.45rem;
}

@keyframes login-logo-spin-b-jwe8tgwryn {
    to {
        transform: rotate(360deg);
    }
}

@keyframes login-spotlight-primary-b-jwe8tgwryn {
    0% {
        background-position: 18% 30%;
    }
    22% {
        background-position: 72% 38%;
    }
    48% {
        background-position: 58% 78%;
    }
    72% {
        background-position: 28% 68%;
    }
    100% {
        background-position: 18% 30%;
    }
}

@keyframes login-spotlight-secondary-b-jwe8tgwryn {
    0% {
        background-position: 68% 36%;
    }
    35% {
        background-position: 32% 58%;
    }
    62% {
        background-position: 82% 72%;
    }
    100% {
        background-position: 68% 36%;
    }
}

@keyframes login-breathe-b-jwe8tgwryn {
    0%,
    100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.01);
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-logo-stack[b-jwe8tgwryn],
    .login-logo-breathe[b-jwe8tgwryn],
    .login-logo-sheen[b-jwe8tgwryn],
    .login-logo-stack[b-jwe8tgwryn]::after {
        animation: none;
    }

    .login-logo-sheen[b-jwe8tgwryn] {
        opacity: 0.75;
        background-position: 50% 50%;
    }

    .login-logo-stack[b-jwe8tgwryn]::after {
        opacity: 0;
    }
}
/* /Components/Pages/Manage.razor.rz.scp.css */
/* 组织与用户：顶栏合并 + 下方双栏（其余面板/按钮见全局 tailwind components） */

.manage-readonly-id[b-s57egrhtj6] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    color: var(--ox-muted, #6b7280);
    cursor: default;
}

.manage-middle.manage-split.dx-style[b-s57egrhtj6] {
    flex-direction: column;
    gap: 0;
    box-sizing: border-box;
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    min-height: 0;
    height: 100%;
    border: 1px solid var(--ox-border, #d1d5db);
    /* 与 shell-middle 顶缘对齐：顶部无圆角，仅底部圆角 */
    border-radius: 0 0 var(--ox-radius, 4px) var(--ox-radius, 4px);
    background: #fff;
    /* 纵向可滚动且顶栏 sticky；勿用 overflow:hidden，否则标题条无法相对外层滚动区固定 */
    overflow-x: hidden;
    overflow-y: auto;
}

.manage-split-toolbar[b-s57egrhtj6] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    width: 100%;
}

.manage-split-toolbar-left[b-s57egrhtj6] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.manage-split-toolbar-right[b-s57egrhtj6] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-inline-start: auto;
    flex-shrink: 0;
}

.manage-split-body[b-s57egrhtj6] {
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    min-height: 0;
    gap: 0;
}

.manage-middle.manage-split .manage-panel[b-s57egrhtj6] {
    border: none;
    border-radius: 0;
}

.manage-middle.manage-split .manage-split-pane-org[b-s57egrhtj6] {
    min-width: 0;
}

.manage-middle.manage-split .manage-split-pane-user[b-s57egrhtj6] {
    flex: 1 1 auto;
    min-width: 0;
    border-left: 1px solid var(--ox-header-border, #e5e7eb);
}

/* .manage-splitter 见 tailwind.css：--ox-split-hit 布局宽、--ox-split-target-w 拖拽命中宽 */

.manage-user-toolbar[b-s57egrhtj6] {
    flex-shrink: 0;
    padding: 0.5rem var(--ox-panel-header-px, 0.75rem);
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
    box-sizing: border-box;
    background: var(--ox-header-bg, #f9fafb);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.manage-user-toolbar .manage-user-scope-select[b-s57egrhtj6] {
    flex: 0 1 180px;
    min-width: 140px;
}

.manage-user-toolbar .manage-user-role-filter[b-s57egrhtj6] {
    flex: 0 1 160px;
    min-width: 120px;
}

.manage-user-toolbar .manage-user-search[b-s57egrhtj6] {
    flex: 1 1 160px;
    min-width: 0;
    box-sizing: border-box;
}

/* 用户编辑：顶部圆形头像（点击上传） */
.manage-user-avatar-hero[b-s57egrhtj6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 4px 0 14px;
    margin-bottom: 4px;
}

.manage-user-avatar-ring[b-s57egrhtj6] {
    position: relative;
    display: block;
    width: 96px;
    flex-shrink: 0;
    height: 96px;
    margin: 0 auto;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid var(--ox-header-border, #e5e7eb);
    background: #f3f4f6;
    overflow: hidden;
    box-sizing: border-box;
}

.manage-user-avatar-ring:hover[b-s57egrhtj6] {
    border-color: #93c5fd;
}

.manage-user-avatar-input[b-s57egrhtj6] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
    font-size: 0;
}

.manage-user-avatar-face[b-s57egrhtj6] {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: 50%;
    overflow: hidden;
}

.manage-user-avatar-img[b-s57egrhtj6] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.manage-user-avatar-placeholder[b-s57egrhtj6] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: linear-gradient(145deg, #e5e7eb, #d1d5db);
    color: #9ca3af;
    font-size: 2.75rem;
    line-height: 1;
}

.manage-user-avatar-hint[b-s57egrhtj6] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 4px 2px;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: center;
    color: #fff;
    background: rgba(15, 23, 42, 0.55);
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
    z-index: 1;
}

.manage-user-avatar-ring:hover .manage-user-avatar-hint[b-s57egrhtj6] {
    opacity: 1;
}

.manage-user-avatar-error[b-s57egrhtj6] {
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    color: #dc2626;
    text-align: center;
    max-width: 280px;
}

.manage-tree[b-s57egrhtj6] {
    flex: 1;
    overflow-y: auto;
}

/*
 * 组织树：贴近 Win11 资源管理器导航窗格（浅色、圆角行、悬停/选中、三角展开）
 */
.manage-tree-org-win11[b-s57egrhtj6] {
    padding: 4px 6px 8px;
    font-family: "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, sans-serif;
    font-size: 13px;
    line-height: 1.35;
    color: #202020;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-item {
    margin: 0;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-row {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 5px 8px 5px 4px;
    margin: 1px 0;
    cursor: pointer;
    border-radius: 4px;
    min-height: 32px;
    box-sizing: border-box;
    border: 1px solid transparent;
    transition:
        background-color 0.12s ease,
        border-color 0.12s ease,
        color 0.12s ease;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-row:hover {
    background: #f2f2f2;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-row.active {
    background: var(--ox-state-selected-bg);
    color: #202020;
    border-color: var(--ox-state-selected-border);
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-toggle {
    width: 22px;
    height: 22px;
    padding: 0;
    margin: 0;
    border: none;
    outline: none;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    color: #5c5c5c;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 4px;
    font-size: 10px;
    line-height: 1;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-toggle:hover,
.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-toggle:focus {
    color: #202020;
    background: rgba(0, 0, 0, 0.06);
    outline: none;
    box-shadow: none;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-toggle:focus-visible {
    outline: 2px solid var(--ox-focus-ring);
    outline-offset: 1px;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-spacer {
    width: 22px;
    flex-shrink: 0;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-icon {
    font-size: 16px;
    color: #5c5c5c;
    flex-shrink: 0;
    opacity: 0.95;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-row.active .org-tree-icon {
    color: var(--ox-accent);
    opacity: 1;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 400;
    letter-spacing: 0.01em;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-row.active .org-tree-label {
    font-weight: 500;
}

.manage-tree-org-win11[b-s57egrhtj6]  .org-tree-children {
    margin: 0;
}

/* .manage-list / .manage-list-item / .manage-item-* 已迁至 styles/tailwind.css @layer components，供所有管理页复用 */

.manage-item-org[b-s57egrhtj6] {
    margin-top: 2px;
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
    color: #4b5563;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.manage-detail-avatar-row[b-s57egrhtj6] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.manage-detail-avatar[b-s57egrhtj6] {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    background: #e5e7eb;
    color: #374151;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
}

.manage-detail-name[b-s57egrhtj6] {
    font-weight: 600;
    font-size: 14px;
}

.manage-detail-sub[b-s57egrhtj6] {
    font-size: var(--ox-ui-fs, 0.75rem);
    color: #6b7280;
}

.manage-detail-dl[b-s57egrhtj6] {
    font-size: var(--ox-ui-fs, 0.75rem);
    margin: 0;
}

.manage-detail-dl dt[b-s57egrhtj6] {
    display: inline-block;
    width: 80px;
    color: #6b7280;
    margin: 0 0 4px 0;
}

.manage-detail-dl dd[b-s57egrhtj6] {
    display: inline;
    margin: 0 0 4px 0;
}

.manage-detail-dl dd[b-s57egrhtj6]::after {
    content: "";
    display: block;
}
/* /Components/Pages/Menus.razor.rz.scp.css */
/* 菜单树局部样式（面板/按钮见全局 tailwind components） */
.manage-tree[b-xlfu3a1b49] {
    flex: 1;
    overflow-y: auto;
}

[b-xlfu3a1b49] .org-tree-item {
    margin: 0;
}

[b-xlfu3a1b49] .org-tree-row {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    cursor: pointer;
    border-radius: 3px;
    min-height: 28px;
}

[b-xlfu3a1b49] .org-tree-row:hover {
    background: var(--ox-state-hover-bg);
}

[b-xlfu3a1b49] .org-tree-row.active {
    background: var(--ox-state-selected-bg);
    color: var(--ox-accent-foreground);
}

[b-xlfu3a1b49] .org-tree-toggle {
    width: 20px;
    height: 20px;
    padding: 0;
    margin: 0;
    border: none;
    outline: none;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

[b-xlfu3a1b49] .org-tree-toggle:hover,
[b-xlfu3a1b49] .org-tree-toggle:focus {
    color: #374151;
    border: none;
    background: transparent;
    outline: none;
    box-shadow: none;
}

[b-xlfu3a1b49] .org-tree-spacer {
    width: 20px;
    flex-shrink: 0;
}

[b-xlfu3a1b49] .org-tree-icon {
    font-size: 14px;
    color: #6b7280;
    flex-shrink: 0;
}

[b-xlfu3a1b49] .org-tree-row.active .org-tree-icon {
    color: var(--ox-accent);
}

[b-xlfu3a1b49] .org-tree-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
}

[b-xlfu3a1b49] .org-tree-children {
    margin: 0;
}

[b-xlfu3a1b49] .menu-tree-hidden-tag {
    font-size: 10px;
    padding: 0 4px;
    border-radius: 2px;
    background: #fef3c7;
    color: #92400e;
    flex-shrink: 0;
}

[b-xlfu3a1b49] .menu-tree-module-code {
    font-size: 10px;
    font-family: ui-monospace, monospace;
    padding: 1px 5px;
    border-radius: 3px;
    background: #e0f2fe;
    color: #0369a1;
    flex-shrink: 0;
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* /Components/Pages/PersonnelManage.razor.rz.scp.css */
/* 列表上方：关键词搜索（与组织/用户管理工具条对齐） */
.personnel-list-toolbar[b-nmk2k8jhdq] {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 0.5rem var(--ox-panel-header-px, 0.75rem);
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
    box-sizing: border-box;
    background: var(--ox-header-bg, #f9fafb);
}

.personnel-list-toolbar__search[b-nmk2k8jhdq] {
    flex: 1 1 180px;
    min-width: 0;
    max-width: 320px;
    box-sizing: border-box;
}

/* 人员档案右侧：Tab 条与内容区一体化卡片，弱化「横线 + 另一块渐变面板」的割裂感 */

.personnel-editor[b-nmk2k8jhdq] {
    border: 1px solid var(--ox-header-border, #e5e7eb);
    border-radius: 10px;
    background: var(--ox-surface, #fff);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 6px 16px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    box-sizing: border-box;
}

.personnel-editor .ox-tab-bar--underline[b-nmk2k8jhdq] {
    margin: 0;
    padding: 6px 12px 0;
    border-bottom: 1px solid var(--ox-header-border, #e5e7eb);
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 50%, #eef2f6 100%);
    gap: 4px 10px;
}

.personnel-editor .ox-tab-bar--underline .ox-tab[b-nmk2k8jhdq] {
    padding-top: 8px;
    padding-bottom: 8px;
}

/* 与全局 ox-stack-panel 解耦：内容区单层白底，不再叠渐变描边盒子 */
.personnel-editor .ox-tab-panel.ox-stack-panel[b-nmk2k8jhdq] {
    margin: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: #ffffff;
    padding: 18px 16px 22px;
}

.personnel-editor .ox-stack-toolbar[b-nmk2k8jhdq] {
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}

.personnel-editor .ox-stack-empty[b-nmk2k8jhdq] {
    background: rgba(248, 250, 252, 0.95);
    border-color: rgba(203, 213, 225, 0.9);
}

.personnel-editor .ox-stack-item[b-nmk2k8jhdq] {
    border-color: rgba(226, 232, 240, 0.98);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.personnel-editor .ox-stack-item__head[b-nmk2k8jhdq] {
    background: linear-gradient(180deg, #fafbfc 0%, #f4f6f8 100%);
}
/* /Components/Pages/ProductHub.razor.rz.scp.css */
.product-hub-grid[b-3w3ybzc9w3] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    padding: 1rem;
}

a.product-hub-card[b-3w3ybzc9w3] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    text-align: left;
    text-decoration: none;
    color: inherit;
    padding: 1rem 1.1rem;
    border-radius: 0.5rem;
    border: 1px solid var(--ox-state-selected-border, #c4c4c4);
    background: var(--ox-surface-accent-tint, #f8fafc);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

a.product-hub-card:hover[b-3w3ybzc9w3] {
    background: var(--ox-state-hover-bg, #f1f5f9);
    border-color: var(--ox-state-selected-border-strong, #94a3b8);
}

.product-hub-card__icon[b-3w3ybzc9w3] {
    font-size: 1.75rem;
    color: var(--ox-accent, #0067c0);
}

.product-hub-card__title[b-3w3ybzc9w3] {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--ox-accent-foreground-strong, #0f172a);
}

.product-hub-card__desc[b-3w3ybzc9w3] {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.35;
}
/* /Components/Pages/ProductPreview.razor.rz.scp.css */
.jd-preview[b-sbdgqmbj88] {
    min-height: 100vh;
    background: #f3f4f6;
}

.jd-preview__toolbar[b-sbdgqmbj88] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    position: sticky;
    top: 0;
    z-index: 10;
}

.jd-preview__back[b-sbdgqmbj88] {
    font-size: 0.85rem;
    color: var(--ox-accent, #0067c0);
}

.jd-preview__back:hover[b-sbdgqmbj88] {
    text-decoration: underline;
}

.jd-preview__badge[b-sbdgqmbj88] {
    font-size: 0.75rem;
    color: #6b7280;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: #f3f4f6;
}

.jd-preview__grid[b-sbdgqmbj88] {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(320px, 420px);
    gap: 1.5rem;
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.25rem;
}

@media (max-width: 900px) {
    .jd-preview__grid[b-sbdgqmbj88] {
        grid-template-columns: 1fr;
    }
}

.jd-preview__gallery[b-sbdgqmbj88] {
    background: #fff;
    border-radius: 0.5rem;
    padding: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.jd-preview__hero[b-sbdgqmbj88] {
    aspect-ratio: 1;
    border-radius: 0.35rem;
    overflow: hidden;
    background: #fafafa;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jd-preview__hero-img[b-sbdgqmbj88] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.jd-preview__hero-ph[b-sbdgqmbj88] {
    color: #9ca3af;
    font-size: 0.9rem;
}

.jd-preview__buy[b-sbdgqmbj88] {
    background: #fff;
    border-radius: 0.5rem;
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.jd-preview__title[b-sbdgqmbj88] {
    font-size: 1.35rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.35;
}

.jd-preview__sub[b-sbdgqmbj88] {
    margin-top: 0.35rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.jd-preview__priceblock[b-sbdgqmbj88] {
    margin-top: 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid #f3f4f6;
    border-bottom: 1px solid #f3f4f6;
}

.jd-preview__price-main[b-sbdgqmbj88] {
    font-size: 1.75rem;
    font-weight: 800;
    color: #e11d48;
}

.jd-preview__yen[b-sbdgqmbj88] {
    font-size: 1rem;
    margin-right: 0.1rem;
}

.jd-preview__price-list[b-sbdgqmbj88] {
    font-size: 0.85rem;
    color: #9ca3af;
    text-decoration: line-through;
    margin-top: 0.25rem;
}

.jd-preview__coupon-hint[b-sbdgqmbj88] {
    margin-top: 0.75rem;
    padding: 0.5rem 0.65rem;
    border-radius: 0.35rem;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    font-size: 0.8rem;
    color: #9a3412;
}

.jd-preview__coupon-tag[b-sbdgqmbj88] {
    display: inline-block;
    padding: 0 0.35rem;
    border-radius: 0.2rem;
    background: #f97316;
    color: #fff;
    font-size: 0.7rem;
    margin-right: 0.35rem;
}

.jd-preview__spec-group[b-sbdgqmbj88] {
    margin-top: 1rem;
}

.jd-preview__spec-name[b-sbdgqmbj88] {
    font-size: 0.8rem;
    color: #6b7280;
    margin-bottom: 0.35rem;
}

.jd-preview__spec-values[b-sbdgqmbj88] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.jd-preview__chip[b-sbdgqmbj88] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border-radius: 0.35rem;
    border: 1px solid #d1d5db;
    background: #fff;
    font-size: 0.8rem;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.jd-preview__chip:hover[b-sbdgqmbj88] {
    border-color: var(--ox-accent, #0067c0);
}

.jd-preview__chip--on[b-sbdgqmbj88] {
    border-color: var(--ox-accent, #0067c0);
    background: var(--ox-surface-accent-tint, #eff6ff);
    color: var(--ox-accent-foreground-strong, #0f172a);
}

.jd-preview__chip-img[b-sbdgqmbj88] {
    width: 22px;
    height: 22px;
    object-fit: cover;
    border-radius: 0.2rem;
}

.jd-preview__coupon-try[b-sbdgqmbj88] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px dashed #e5e7eb;
}

.jd-preview__detail[b-sbdgqmbj88] {
    max-width: 1100px;
    margin: 0 auto 2rem;
    padding: 0 1.25rem;
}

.jd-preview__detail-title[b-sbdgqmbj88] {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: #374151;
}

.jd-preview__detail-html[b-sbdgqmbj88] {
    background: #fff;
    border-radius: 0.5rem;
    padding: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    font-size: 0.9rem;
    line-height: 1.6;
    color: #374151;
}

.jd-preview__detail-html img[b-sbdgqmbj88] {
    max-width: 100%;
    height: auto;
}
/* /Components/Pages/QuestionBank.razor.rz.scp.css */
/* 与问卷库列表一致的标题搜索 + 分段筛选（本页独立 scoped） */

.eval-templates-panel-header[b-gkhjzx6591] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    min-width: 0;
}

.eval-templates-header-spacer[b-gkhjzx6591] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 1px;
}

.eval-templates-header-search-cluster[b-gkhjzx6591] {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 0.28rem;
    min-width: 0;
}

.eval-templates-header-search-wrap[b-gkhjzx6591] {
    flex: 0 1 auto;
    width: 11rem;
    max-width: min(11rem, calc(100vw - 10rem));
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.12rem 0.45rem 0.12rem 0.4rem;
    min-height: 1.95rem;
    box-sizing: border-box;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 92%, transparent);
    background: var(--ox-surface, #fff);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--ox-border, #e2e8f0) 35%, transparent);
    animation: eval-templates-search-reveal-b-gkhjzx6591 0.16s ease-out;
}

@keyframes eval-templates-search-reveal-b-gkhjzx6591 {
    from {
        opacity: 0;
        transform: translateX(0.4rem);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.eval-templates-header-search-wrap:focus-within[b-gkhjzx6591] {
    border-color: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 45%, var(--ox-border, #e2e8f0));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--ox-ui-primary, #2563eb) 18%, transparent);
}

.eval-templates-header-search-glyph[b-gkhjzx6591] {
    color: var(--ox-ui-muted, #64748b);
    font-size: 1.05rem;
    flex-shrink: 0;
    line-height: 1;
    pointer-events: none;
}

.eval-templates-header-search-input[b-gkhjzx6591] {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0.2rem 0;
    border: none;
    border-radius: 0;
    background: transparent;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    line-height: 1.4;
    color: var(--ox-ui-fg, #0f172a);
    box-shadow: none;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.eval-templates-header-search-input[b-gkhjzx6591]::placeholder {
    color: color-mix(in srgb, var(--ox-ui-muted, #64748b) 85%, transparent);
}

.eval-templates-header-search-input:focus[b-gkhjzx6591] {
    outline: none;
    box-shadow: none;
}

.manage-btn-icon.manage-btn-icon--active[b-gkhjzx6591] {
    background: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 14%, var(--ox-surface, #fff));
    border-color: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 35%, var(--ox-border, #e2e8f0));
}

.eval-templates-status-segment[b-gkhjzx6591] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: stretch;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 90%, transparent);
    overflow: hidden;
    background: var(--ox-surface, #fff);
}

.eval-templates-status-segment__btn[b-gkhjzx6591] {
    margin: 0;
    padding: 0.35rem 0.75rem;
    font-size: var(--ox-ui-fs-sm, 0.8125rem);
    line-height: 1.35;
    border: none;
    border-right: 1px solid color-mix(in srgb, var(--ox-border, #e2e8f0) 85%, transparent);
    background: transparent;
    color: var(--ox-ui-fg, #0f172a);
    cursor: pointer;
    white-space: nowrap;
}

.eval-templates-status-segment__btn:last-child[b-gkhjzx6591] {
    border-right: none;
}

.eval-templates-status-segment__btn:hover[b-gkhjzx6591] {
    background: color-mix(in srgb, var(--ox-ui-muted, #64748b) 6%, var(--ox-surface, #fff));
}

.eval-templates-status-segment__btn--active[b-gkhjzx6591] {
    background: color-mix(in srgb, var(--ox-ui-primary, #2563eb) 12%, var(--ox-surface, #fff));
    font-weight: 600;
    color: var(--ox-ui-primary, #2563eb);
}

.eval-templates-list-toolbar[b-gkhjzx6591] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    margin: 0.5rem 0;
    padding: 0 0.75rem;
    box-sizing: border-box;
}

.eval-templates-list-empty[b-gkhjzx6591] {
    text-align: center;
    padding: 1.25rem 0.5rem;
    color: var(--ox-ui-muted, #64748b);
    font-size: var(--ox-ui-fs-sm, 0.6875rem);
}
/* /Components/Pages/Roles.razor.rz.scp.css */
/* 角色页菜单位掩码：布局见 tailwind.css .role-menu-mask-*；勾选行内标签见 .ox-checkbox-item */
/* /Components/Pages/Settings.razor.rz.scp.css */
.settings-page[b-qsb6jumvqu] {
    padding: 1rem;
    font-size: var(--ox-ui-fs, 0.75rem);
}

.settings-header[b-qsb6jumvqu] {
    margin-bottom: 1.5rem;
}

.settings-title[b-qsb6jumvqu] {
    font-weight: 600;
    font-size: 0.875rem;
    color: #1f2329;
}

.settings-desc[b-qsb6jumvqu] {
    color: var(--ox-muted, #6b7280);
    margin: 0.25rem 0 0;
    font-size: var(--ox-ui-fs, 0.75rem);
}

.settings-content[b-qsb6jumvqu] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.settings-card[b-qsb6jumvqu] {
    background: #fff;
    border: 1px solid var(--ox-header-border, #e5e7eb);
    border-radius: var(--ox-radius, 4px);
    padding: 1rem 1.25rem;
}

.settings-card-title[b-qsb6jumvqu] {
    font-weight: 600;
    font-size: var(--ox-ui-fs, 0.75rem);
    margin-bottom: 0.75rem;
    color: var(--ox-title, #374151);
}

.settings-dl[b-qsb6jumvqu] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5rem 1.5rem;
    margin: 0;
}

.settings-dl dt[b-qsb6jumvqu] {
    color: var(--ox-muted, #6b7280);
    font-weight: 500;
}

.settings-dl dd[b-qsb6jumvqu] {
    margin: 0;
}

.settings-card-lead[b-qsb6jumvqu] {
    margin: 0 0 0.75rem;
    color: var(--ox-muted, #4b5563);
    font-size: var(--ox-ui-fs, 0.75rem);
    line-height: 1.5;
}

.settings-link-list[b-qsb6jumvqu] {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--ox-ui-fs, 0.75rem);
}

.settings-link-list li + li[b-qsb6jumvqu] {
    margin-top: 0.5rem;
}

.settings-field[b-qsb6jumvqu] {
    display: block;
    max-width: 28rem;
}

.settings-actions[b-qsb6jumvqu] {
    margin-top: 0.75rem;
}
/* /Components/Pages/TasksMy.razor.rz.scp.css */
.tasks-my-page[b-ffxuwt3qzj] {
    min-height: 100%;
    background: #f8fafc;
}

.tasks-my-header[b-ffxuwt3qzj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.tasks-my-title[b-ffxuwt3qzj] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
}

.tasks-my-subtitle[b-ffxuwt3qzj] {
    margin: 4px 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

.tasks-filter-wrap[b-ffxuwt3qzj] {
    display: inline-flex;
    background: var(--ox-border, #e2e8f0);
    border-radius: 999px;
    padding: 3px;
    gap: 2px;
}

.tasks-filter-btn[b-ffxuwt3qzj] {
    border: none;
    background: transparent;
    color: var(--ox-title, #334155);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 0.76rem;
    font-weight: 600;
    cursor: pointer;
}

.tasks-filter-btn:focus-visible[b-ffxuwt3qzj] {
    outline: 2px solid var(--ox-focus-ring, #93c5fd);
    outline-offset: 1px;
}

.tasks-filter-btn.active[b-ffxuwt3qzj] {
    background: #ffffff;
    color: var(--ox-fg, #0f172a);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}

.tasks-list[b-ffxuwt3qzj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tasks-item[b-ffxuwt3qzj] {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #ffffff;
    padding: 12px;
    display: flex;
    align-items: stretch;
    gap: 10px;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.tasks-item:hover[b-ffxuwt3qzj] {
    border-color: #cbd5e1;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
}

.tasks-item.active[b-ffxuwt3qzj] {
    border-color: var(--ox-state-selected-border);
    box-shadow: 0 0 0 2px rgba(0, 103, 192, 0.12);
}

.tasks-item-main[b-ffxuwt3qzj] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tasks-item-title-row[b-ffxuwt3qzj] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tasks-item-title[b-ffxuwt3qzj] {
    flex: 1;
    min-width: 0;
    font-size: 0.92rem;
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tasks-item-desc[b-ffxuwt3qzj] {
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tasks-status-chip[b-ffxuwt3qzj] {
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.tasks-status-chip.ongoing[b-ffxuwt3qzj] {
    background: #e0f2fe;
    color: #0369a1;
}

.tasks-status-chip.done[b-ffxuwt3qzj] {
    background: #dcfce7;
    color: #166534;
}

.tasks-status-chip.overdue[b-ffxuwt3qzj] {
    background: #fee2e2;
    color: #b91c1c;
}

.tasks-item-meta[b-ffxuwt3qzj] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    color: #64748b;
}

.tasks-deadline-progress[b-ffxuwt3qzj] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 8px;
}

.tasks-deadline-progress .tasks-item-meta[b-ffxuwt3qzj] {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.tasks-progress-inline[b-ffxuwt3qzj] {
    flex-shrink: 0;
    min-width: 72px;
    text-align: right;
    font-size: 0.78rem;
    font-weight: 700;
    color: #0f172a;
}

.tasks-meta-sep[b-ffxuwt3qzj] {
    color: #94a3b8;
}

.tasks-progress-wrap[b-ffxuwt3qzj] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-shrink: 0;
}

.tasks-progress-track[b-ffxuwt3qzj] {
    width: 100px;
    height: 6px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
    flex-shrink: 0;
}

.tasks-progress-value[b-ffxuwt3qzj] {
    height: 100%;
    border-radius: inherit;
    transition: width 0.25s ease;
}

.tasks-progress-value.ongoing[b-ffxuwt3qzj] {
    background: linear-gradient(90deg, #38bdf8, #0284c7);
}

.tasks-progress-value.done[b-ffxuwt3qzj] {
    background: linear-gradient(90deg, #4ade80, #16a34a);
}

.tasks-progress-value.overdue[b-ffxuwt3qzj] {
    background: linear-gradient(90deg, #f87171, #dc2626);
}

.tasks-progress-percent[b-ffxuwt3qzj] {
    width: 44px;
    text-align: right;
    font-size: 0.78rem;
    font-weight: 700;
    color: #0f172a;
    flex-shrink: 0;
}

.tasks-meta-progress-row[b-ffxuwt3qzj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.tasks-meta-progress-row .tasks-item-meta[b-ffxuwt3qzj] {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.tasks-item-actions[b-ffxuwt3qzj] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 2px;
}

.tasks-proof-panel[b-ffxuwt3qzj] {
    border: 1px solid var(--ox-state-selected-border);
    border-radius: 12px;
    background: var(--ox-surface-accent-tint);
    padding: 12px;
}

.tasks-proof-header[b-ffxuwt3qzj] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
}

.tasks-proof-title[b-ffxuwt3qzj] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
}

.tasks-proof-sub[b-ffxuwt3qzj] {
    margin-top: 2px;
    font-size: 0.75rem;
    color: #64748b;
}

.tasks-proof-files[b-ffxuwt3qzj] {
    margin: 0 0 10px;
    padding-left: 16px;
    font-size: 0.75rem;
    color: #334155;
}

.tasks-proof-actions[b-ffxuwt3qzj] {
    display: flex;
    gap: 8px;
}

.tasks-notice[b-ffxuwt3qzj] {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #166534;
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 0.78rem;
}

.tasks-empty[b-ffxuwt3qzj] {
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 28px 14px;
    text-align: center;
    background: #ffffff;
}

.tasks-empty-icon[b-ffxuwt3qzj] {
    font-size: 1.4rem;
    color: #94a3b8;
    margin-bottom: 8px;
}

.tasks-empty-title[b-ffxuwt3qzj] {
    font-size: 0.9rem;
    font-weight: 600;
    color: #0f172a;
}

.tasks-empty-sub[b-ffxuwt3qzj] {
    margin-top: 4px;
    font-size: 0.74rem;
    color: #64748b;
}

.tasks-side-note[b-ffxuwt3qzj] {
    margin: 12px;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    padding: 12px;
    font-size: 0.78rem;
    color: #475569;
}

.tasks-side-note h6[b-ffxuwt3qzj] {
    margin: 0 0 6px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #0f172a;
}

.tasks-side-note p[b-ffxuwt3qzj] {
    margin: 0;
    line-height: 1.5;
}
/* /Components/Pages/WarehouseHub.razor.rz.scp.css */
.product-hub-grid[b-dqmw5ichtv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    padding: 1rem;
}

a.product-hub-card[b-dqmw5ichtv] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    text-align: left;
    text-decoration: none;
    color: inherit;
    padding: 1rem 1.1rem;
    border-radius: 0.5rem;
    border: 1px solid var(--ox-state-selected-border, #c4c4c4);
    background: var(--ox-surface-accent-tint, #f8fafc);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

a.product-hub-card:hover[b-dqmw5ichtv] {
    background: var(--ox-state-hover-bg, #f1f5f9);
    border-color: var(--ox-state-selected-border-strong, #94a3b8);
}

.product-hub-card__icon[b-dqmw5ichtv] {
    font-size: 1.75rem;
    color: var(--ox-accent, #0067c0);
}

.product-hub-card__title[b-dqmw5ichtv] {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--ox-accent-foreground-strong, #0f172a);
}

.product-hub-card__desc[b-dqmw5ichtv] {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.35;
}
/* /Components/Pages/WorkMomentCategories.razor.rz.scp.css */
.moments-cat-middle-body[b-7r2e27s85u] {
    padding: 0.75rem var(--ox-panel-header-px, 0.75rem) 0;
}

.moments-cat-grid[b-7r2e27s85u] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.moments-cat-card[b-7r2e27s85u] {
    display: flex;
    flex-direction: column;
    min-height: 6.75rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    padding: 0.875rem 1rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.moments-cat-card:hover[b-7r2e27s85u] {
    border-color: rgba(13, 110, 253, 0.45);
    box-shadow: 0 2px 8px rgba(13, 110, 253, 0.08);
}

.moments-cat-card-head[b-7r2e27s85u] {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.moments-cat-card-meta[b-7r2e27s85u] {
    flex: 1;
    min-width: 0;
}

.moments-cat-card-title[b-7r2e27s85u] {
    font-weight: 600;
    font-size: 1rem;
    margin: 0 0 0.35rem 0;
    line-height: 1.3;
}

.moments-cat-chip[b-7r2e27s85u] {
    font-size: 0.75rem;
    padding: 0.15rem 0.45rem;
    border-radius: 0.25rem;
    background: rgba(13, 110, 253, 0.12);
    color: var(--bs-primary, #0d6efd);
    word-break: break-all;
}

.moments-cat-card-extra[b-7r2e27s85u] {
    margin-top: auto;
    padding-top: 0.5rem;
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.moments-cat-extra-label[b-7r2e27s85u] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6c757d);
}

.moments-cat-extra-value[b-7r2e27s85u] {
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
    color: var(--bs-secondary-color, #6c757d);
}

.moments-icon-btn[b-7r2e27s85u] {
    border: none;
    background: transparent;
    padding: 0.15rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 0.25rem;
}

.moments-icon-btn:hover[b-7r2e27s85u] {
    color: var(--bs-danger, #dc3545);
    background: rgba(220, 53, 69, 0.08);
}

.moments-cat-card--selectable[b-7r2e27s85u] {
    cursor: pointer;
}

.moments-cat-card--selectable:focus-visible[b-7r2e27s85u] {
    outline: 2px solid rgba(13, 110, 253, 0.45);
    outline-offset: 2px;
}

.moments-cat-card--active[b-7r2e27s85u] {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.25);
}

.moments-cat-card--active:hover[b-7r2e27s85u] {
    border-color: var(--bs-primary, #0d6efd);
}

.moments-cat-right-edit[b-7r2e27s85u] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.moments-cat-right-edit .ox-form-field-legend[b-7r2e27s85u] {
    margin-bottom: 0;
}
/* /Components/Pages/WorkMomentsAdmin.razor.rz.scp.css */
.moments-page-header[b-jt9s29sgg5] {
    margin-bottom: 1rem;
}

.moments-page-title[b-jt9s29sgg5] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.moments-filter-row[b-jt9s29sgg5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
    align-items: center;
}

.moments-filter-control[b-jt9s29sgg5] {
    max-width: 11rem;
}

.moments-feed[b-jt9s29sgg5] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.moments-card[b-jt9s29sgg5] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--bs-body-bg, #fff);
}

.moments-card--interactive[b-jt9s29sgg5] {
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.moments-card--interactive:hover[b-jt9s29sgg5] {
    border-color: var(--bs-primary, #0d6efd);
}

.moments-card--active[b-jt9s29sgg5] {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.25);
}

.moments-location[b-jt9s29sgg5] {
    white-space: pre-wrap;
    margin-top: 0.25rem;
}
.moments-card-head[b-jt9s29sgg5] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.moments-time[b-jt9s29sgg5] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.moments-chip[b-jt9s29sgg5] {
    font-size: 0.75rem;
    padding: 0.1rem 0.45rem;
    border-radius: 0.25rem;
    background: rgba(13, 110, 253, 0.12);
    color: var(--bs-primary, #0d6efd);
}

.moments-icon-btn[b-jt9s29sgg5] {
    border: none;
    background: transparent;
    padding: 0.15rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
}

.moments-card-title[b-jt9s29sgg5] {
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.moments-card-content[b-jt9s29sgg5] {
    white-space: pre-wrap;
    margin-bottom: 0.35rem;
}

.moments-tags[b-jt9s29sgg5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.35rem;
}

.moments-tag[b-jt9s29sgg5] {
    font-size: 0.72rem;
    padding: 0.05rem 0.35rem;
    border-radius: 0.2rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    color: var(--bs-body-color, #212529);
}

.moments-media-grid[b-jt9s29sgg5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.5rem;
}

.moments-thumb-wrap[b-jt9s29sgg5] {
    display: block;
}

.moments-thumb[b-jt9s29sgg5] {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 0.25rem;
}

.moments-pager[b-jt9s29sgg5] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
}

.moments-empty-icon[b-jt9s29sgg5] {
    font-size: 2.5rem;
    opacity: 0.35;
}

.moments-compose .ox-form-field-legend[b-jt9s29sgg5] {
    margin-bottom: 0.65rem;
}

.moments-compose-media[b-jt9s29sgg5] {
    margin-top: 0.85rem;
}

.moments-author[b-jt9s29sgg5] {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Pages/WorkMomentsMy.razor.rz.scp.css */
.manage-panel[b-3k5wbxv1ea] {
    overflow: hidden;
}

.moments-my-middle-body[b-3k5wbxv1ea] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0.75rem var(--ox-panel-header-px, 0.75rem) 0;
}

.moments-my-toolbar[b-3k5wbxv1ea] {
    padding: 0 0 var(--ox-panel-header-py, 0.5rem);
}

.moments-filter-row[b-3k5wbxv1ea] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
    align-items: center;
}

.moments-filter-control[b-3k5wbxv1ea] {
    max-width: 11rem;
}

.moments-feed[b-3k5wbxv1ea] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.moments-card[b-3k5wbxv1ea] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--bs-body-bg, #fff);
}

.moments-card--interactive[b-3k5wbxv1ea] {
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.moments-card--interactive:hover[b-3k5wbxv1ea] {
    border-color: var(--bs-primary, #0d6efd);
}

.moments-card--active[b-3k5wbxv1ea] {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.25);
}

.moments-card-head[b-3k5wbxv1ea] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.moments-time[b-3k5wbxv1ea] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.moments-chip[b-3k5wbxv1ea] {
    font-size: 0.75rem;
    padding: 0.1rem 0.45rem;
    border-radius: 0.25rem;
    background: rgba(13, 110, 253, 0.12);
    color: var(--bs-primary, #0d6efd);
}

.moments-icon-btn[b-3k5wbxv1ea] {
    border: none;
    background: transparent;
    padding: 0.15rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
}

.moments-card-title[b-3k5wbxv1ea] {
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.moments-card-content[b-3k5wbxv1ea] {
    white-space: pre-wrap;
    margin-bottom: 0.35rem;
}

.moments-tags[b-3k5wbxv1ea] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.35rem;
}

.moments-tag[b-3k5wbxv1ea] {
    font-size: 0.72rem;
    padding: 0.05rem 0.35rem;
    border-radius: 0.2rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    color: var(--bs-body-color, #212529);
}

.moments-media-grid[b-3k5wbxv1ea] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.5rem;
}

.moments-thumb-wrap[b-3k5wbxv1ea] {
    display: block;
}

.moments-thumb[b-3k5wbxv1ea] {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 0.25rem;
}

.moments-pager[b-3k5wbxv1ea] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
}

.moments-empty-icon[b-3k5wbxv1ea] {
    font-size: 2.5rem;
    opacity: 0.35;
}

.moments-my-right-edit[b-3k5wbxv1ea] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.moments-my-right-edit .ox-form-field-legend[b-3k5wbxv1ea] {
    margin-bottom: 0;
}

/* 配图：与上方「标签」区拉开间距（标签块已有 margin-bottom） */
.moments-compose-media[b-3k5wbxv1ea] {
    margin-top: 0.85rem;
}

.moments-location [class*="ph-map-pin"][b-3k5wbxv1ea] {
    margin-right: 0.3rem;
    font-size: 0.85em;
    vertical-align: -0.05em;
}
